Rmengdi пре 2 месеци
родитељ
комит
86b92411fa

+ 2 - 0
markDataStart.bat

@@ -0,0 +1,2 @@
+# nodejs exe路径
+call F:\workspace\dataMark\dataMark-app\app.exe

+ 8 - 1
package.json

@@ -2,10 +2,17 @@
   "name": "ming",
   "version": "0.1.0",
   "private": true,
+  "bin": "./app.js",
   "scripts": {
     "serve": "vue-cli-service serve --port 8080 --host 127.0.0.1",
     "build": "vue-cli-service build",
-    "dev": "nodemon ./app.js"
+    "dev": "nodemon ./app.js",
+    "pkg": "pkg . -t  node16-win-x64 -o app"
+  },
+  "pkg": {
+    "assets": [
+      "public/**/*"
+    ]
   },
   "dependencies": {
     "body-parser": "^1.19.0",

+ 2 - 2
pool.js

@@ -4,8 +4,8 @@ const pool = mysql.createPool({
   host: 'localhost',
   port: 3306,
   user: 'root',
-  // password: '123456zxc',
-  password: '010203zx',
+  password: '123456',
+  // password: '010203zx',
   database: 'data_mark',
   connectionLimit: 15,
   dateStrings: true

BIN
public/uploadFile/17416585993860050494714132325536-标注数据模板.xlsx


BIN
public/uploadFile/174165897940508533184563925178-标注数据模板.xlsx


BIN
public/uploadFile/174166044755205542779823337338-标注数据模板.xlsx


BIN
public/uploadFile/174166222088902874945588514297-标注数据模板.xlsx


BIN
public/uploadFile/174166346273101734784020430553-标注数据模板.xlsx


BIN
public/uploadFile/17416635157110051698532534504515-标注数据模板.xlsx


BIN
public/uploadFile/174166361166004700495984442199-标注数据模板.xlsx


BIN
public/uploadFile/1741663627963023356802513827124-标注数据模板.xlsx


BIN
public/uploadFile/174166365104203313454785024623-标注数据模板.xlsx


BIN
public/uploadFile/17416648037710035115750383357236-标注数据模板.xlsx


BIN
public/uploadFile/174166484474405986775418777441-标注数据模板.xlsx


BIN
public/uploadFile/174166485684406998006956098437-标注数据模板.xlsx


+ 6 - 5
router/dataMark/dataMark.js

@@ -5,10 +5,11 @@ const pools = require('../../utils/pools.js')
 
 // 修改标注结果数据
 router.post('/updataMarkInfo', async (req, res) => {
-  console.log("req.body",req);
-  
-  let sql = 'UPDATE mark_data_t SET markInfo=?,state=? WHERE id=?' ,obj = req.body
-  await pools({ sql, val: [JSON.stringify(obj.markInfo),obj.state, obj.id], run: false, res, req })
+  // console.log("req.body",req);
+
+  let sql = 'UPDATE mark_data_t SET markInfo=?,state=? WHERE id=?',
+    obj = req.body
+  await pools({ sql, val: [JSON.stringify(obj.markInfo), obj.state, obj.id], run: false, res, req })
 })
 
-module.exports = router
+module.exports = router

+ 35 - 34
router/dataMark/dataset.js

@@ -69,7 +69,6 @@ router.post('/delDataset', async (req, res) => {
 router.post('/getImportRecord', async (req, res) => {
   let user = await utils.getUserInfo({ req, res })
   obj = req.body
-  console.log('req.body', req.body)
   let sql = `SELECT 
     f.id,
     f.name,
@@ -115,9 +114,10 @@ router.post('/importData', async (req, res) => {
   let filename = fileArr[0].filename
   const fileType = req.files[0].mimetype
   let list
+  let uploadAddress = 'D:/dataMark/uploadFile'
   //配置获取文件路径
   if (fileType.includes('text')) {
-    const path = `public/uploadFile/${filename}`
+    const path = `D:/dataMark/uploadFile/${filename}`
     fs.readFile(path, 'utf-8', (err, data) => {
       if (err) {
         res.send(utils.returnData({ code: -1, msg: '文件解析失败' }))
@@ -127,7 +127,8 @@ router.post('/importData', async (req, res) => {
       writeToDatabase(fileArr, list, req, res)
     })
   } else {
-    let xlsxRes = xlsx.parse(`${path.join(__dirname, '../../', 'public/uploadFile/')}${filename}`, { cellDates: true })
+    // let xlsxRes = xlsx.parse(`${path.join(__dirname, '../../', 'public/uploadFile/')}${filename}`, { cellDates: true })
+    let xlsxRes = xlsx.parse(`${uploadAddress}/${filename}`, { cellDates: true })
     list = xlsxRes[0].data
     list.splice(0, 1)
     writeToDatabase(fileArr, list, req, res)
@@ -149,7 +150,6 @@ const writeToDatabase = (fileArr, list, req, res) => {
     values: fileImportParam
   })
   let markDataSql = 'INSERT INTO mark_data_t(text,`file_id`,`dataset_id`,is_mark,state) VALUES (?,?,?,?,?)'
-  console.log('list.length', list.length)
   for (let i = 0; i < list.length; i++) {
     let item = list[i]
     var markDataParams = [item[0], uniqueId, datasetId, true, false]
@@ -163,13 +163,14 @@ const writeToDatabase = (fileArr, list, req, res) => {
       res.send(utils.returnData({ code: 1, msg: '导入成功', data: [] }))
     })
     .catch((err) => {
-      res.send(utils.returnData({ code: -1, msg:'导入失败', err, req }))
+      res.send(utils.returnData({ code: -1, msg: '导入失败', err, req }))
     })
 }
 
 // 修改text数据
 router.post('/updataData', async (req, res) => {
-  let sql = 'UPDATE mark_data_t SET text=? WHERE id=?',obj = req.body
+  let sql = 'UPDATE mark_data_t SET text=? WHERE id=?',
+    obj = req.body
   await pools({ sql, val: [obj.text, obj.id], run: false, res, req })
 })
 
@@ -179,7 +180,8 @@ router.post('/delData', async (req, res) => {
   obj = req.body
   let placeholders = obj.map(() => '?').join(',')
   let sql = `DELETE FROM mark_data_t WHERE id in (${placeholders})`
-  let sqlUpdata = `UPDATE file_import_t SET data_volume = data_volume - ${obj.length}`
+  // console.log('obj', obj, obj.length)
+  // let sqlUpdata = `UPDATE file_import_t SET data_volume = data_volume - ${obj.length} WHERE dataset_id=?`
   sqlParams.push(
     {
       sql: sql,
@@ -213,7 +215,6 @@ router.post('/PNData', async (req, res) => {
   sql = utils.setLike(sql, 'text', obj.text)
   sql = utils.setMoreId(sql, user)
   let { result } = await pools({ sql, val: [obj.id, obj.dataset_id], req })
-  console.log('result', result)
   if (result.length === 0 && obj.type === 'previous') {
     res.send(utils.returnData({ data: result, code: 2, msg: '已第一条数据' }))
   } else if (result.length === 0 && obj.type === 'next') {
@@ -224,36 +225,36 @@ router.post('/PNData', async (req, res) => {
 })
 
 //导出数据
-router.post("/exportDataset",async (req,res)=>{
-  let user = await utils.getUserInfo({req, res}),obj=req.body;
-  let sql = `SELECT id,text,markInfo FROM mark_data_t m WHERE m.dataset_id=?`;
-  sql+=` ORDER BY id ASC`;
-  let { result }=await pools({ sql, val: [obj.dataset_id], res, req });
-  
+router.post('/exportDataset', async (req, res) => {
+  let user = await utils.getUserInfo({ req, res }),
+    obj = req.body
+  let sql = `SELECT id,text,markInfo FROM mark_data_t m WHERE m.dataset_id=?`
+  sql += ` ORDER BY id ASC`
+  let { result } = await pools({ sql, val: [obj.dataset_id], res, req })
+
   // 查询数据集名称
-  let datasetSql = `SELECT name FROM dataset_t d WHERE d.id=?`;
-  let { datasetName }=await pools({ sql:datasetSql, val: [obj.dataset_id], res, req });
-  console.log("datasetName",datasetName);
-  
-  let data =[ ['id','文本','标注信息']];
-  result.map(t=>{
+  let datasetSql = `SELECT name FROM dataset_t d WHERE d.id=?`
+  let { datasetName } = await pools({ sql: datasetSql, val: [obj.dataset_id], res, req })
+
+  let data = [['id', '文本', '标注信息']]
+  result.map((t) => {
     data.push(Object.values(t))
   })
-  let buffer = xlsx.build([{name:'sheet1',data}]);
-  const filename = `标注数据.xlsx`;
-  const encodedFilename = encodeURI(filename);
-  res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;filename='+encodedFilename);
-  res.send(buffer);
-});
+  let buffer = xlsx.build([{ name: 'sheet1', data }])
+  const filename = `标注数据.xlsx`
+  const encodedFilename = encodeURI(filename)
+  res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;filename=' + encodedFilename)
+  res.send(buffer)
+})
 
 //下载模板
-router.post("/downloadTemplate",async (req,res)=>{
-  let data =[ ['文本']];
-  let buffer = xlsx.build([{name:'sheet1',data}]);
-  const filename = '标注数据模板.xlsx';
-  const encodedFilename = encodeURI(filename);
-  res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;filename='+encodedFilename);
-  res.send(buffer);
-});
+router.post('/downloadTemplate', async (req, res) => {
+  let data = [['文本']]
+  let buffer = xlsx.build([{ name: 'sheet1', data }])
+  const filename = '标注数据模板.xlsx'
+  const encodedFilename = encodeURI(filename)
+  res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;filename=' + encodedFilename)
+  res.send(buffer)
+})
 
 module.exports = router

+ 4 - 7
router/dataMark/entity.js

@@ -47,7 +47,7 @@ router.post('/getChildList', async (req, res) => {
   let user = await utils.getUserInfo({ req, res }),
     obj = req.body
   let sql = `SELECT id AS entityId,name,introduce,is_show,parent_id AS parentId,color FROM entity_t WHERE parent_id=?`
-  let { total } = await utils.getSumWhere({ sql:'',val: [obj.parentId], name: 'entity_t', res, req }) // 执行SQL查询并获取结果中的总数
+  let { total } = await utils.getSumWhere({ sql: '', val: [obj.parentId], name: 'entity_t', res, req }) // 执行SQL查询并获取结果中的总数
   sql += ` ORDER BY id ASC` // 在SQL查询语句的末尾添加了一个ORDER BY子句,用于根据id字段排序结果 ASC升序、DESC降序
   // sql = utils.pageSize(sql, obj.page, obj.size) // 函数来修改SQL语句,添加分页功能。它使用obj.page和obj.size来确定返回结果的范围。
   let { result } = await pools({ sql, val: [obj.parentId], req })
@@ -96,26 +96,23 @@ router.post('/importEntity', async (req, res) => {
   let fileArr = await fileEvent(req, res)
   let filename = fileArr[0].filename
   //配置获取文件路径
-  let xlsxRes = xlsx.parse(`${path.join(__dirname, '../../', 'public/uploadFile/')}${filename}`, { cellDates: true })
+  // let xlsxRes = xlsx.parse(`${path.join(__dirname, '../../', 'public/uploadFile/')}${filename}`, { cellDates: true })
+  let uploadAddress = 'D:/dataMark/uploadFile'
+  let xlsxRes = xlsx.parse(`${uploadAddress}/${filename}`, { cellDates: true })
   let list = xlsxRes[0].data
   list.splice(0, 1)
-  console.log('list', list)
   for (let i = 0; i < list.length; i++) {
     let item = list[i]
     if (item[item.length - 1] === 0) {
       let res1 = await pools({ sql, val: [[item]], run: true, res, req, msg: '请确认导入的一级节点的值没有问题!!!' })
-      console.log('res1', res1)
     } else {
       let parentName = item[item.length - 1]
       let parentSql = 'SELECT id FROM entity_t WHERE `name` = ?'
       let parentId
       try {
         let result = await pools({ sql: parentSql, val: [parentName], run: true, res, req })
-        console.log('result', result)
         parentId = result.result[0].id
-        console.log('parentId', parentId)
       } catch (error) {
-        console.log('获取父节点id失败', error)
         res.status(500).send('获取父节点id失败')
         return
       }

+ 84 - 83
router/tests.js

@@ -1,100 +1,101 @@
-const express = require('express');
-const router = express.Router();
-const utils = require("../utils/index.js");
-const {primary}=require("../utils/roleString");
-const pools = require("../utils/pools.js");
-const xlsx = require('node-xlsx');
-const path = require('path');
-const fileEvent = require('../utils/file');
+const express = require('express')
+const router = express.Router()
+const utils = require('../utils/index.js')
+const { primary } = require('../utils/roleString')
+const pools = require('../utils/pools.js')
+const xlsx = require('node-xlsx')
+const path = require('path')
+const fileEvent = require('../utils/file')
 //添加测试账号
-router.post("/addTests", async (req, res) => {
-	let sql = "INSERT INTO tests(name,remark,more_id) VALUES (?,?,?)",
-		obj = req.body;
-	let user = await utils.getUserInfo({req, res,addMore:true});
-	await pools({sql,val:[obj.name, obj.remark,user.moreId],run:false,res,req});
-});
+router.post('/addTests', async (req, res) => {
+  let sql = 'INSERT INTO tests(name,remark,more_id) VALUES (?,?,?)',
+    obj = req.body
+  let user = await utils.getUserInfo({ req, res, addMore: true })
+  await pools({ sql, val: [obj.name, obj.remark, user.moreId], run: false, res, req })
+})
 
 //查询测试账号
-router.post("/getTests", async (req, res) => {
-	let user = await utils.getUserInfo({req, res}),obj=req.body;
-	let sql = `SELECT id,name,remark,update_time AS updateTime,create_time AS createTime FROM tests WHERE 1=1`;
-	sql=utils.setLike(sql,"name",obj.name);
-	sql=utils.setMoreId(sql,user);
-	let {total}=await utils.getSum({sql,name:"tests",res,req});
-	sql+=` ORDER BY id DESC`;
-	sql=utils.pageSize(sql,obj.page,obj.size);
-	let {result}=await pools({sql,res,req});
-	res.send(utils.returnData({ data: result ,total}));
-});
+router.post('/getTests', async (req, res) => {
+  let user = await utils.getUserInfo({ req, res }),
+    obj = req.body
+  let sql = `SELECT id,name,remark,update_time AS updateTime,create_time AS createTime FROM tests WHERE 1=1`
+  sql = utils.setLike(sql, 'name', obj.name)
+  sql = utils.setMoreId(sql, user)
+  let { total } = await utils.getSum({ sql, name: 'tests', res, req })
+  sql += ` ORDER BY id DESC`
+  sql = utils.pageSize(sql, obj.page, obj.size)
+  let { result } = await pools({ sql, res, req })
+  res.send(utils.returnData({ data: result, total }))
+})
 
 //修改测试账号
-router.post("/upTests", async (req, res) => {
-	let sql = "UPDATE  tests SET name=?,remark=? WHERE id=?",
-		obj = req.body;
-	await pools({sql,val:[obj.name, obj.remark, obj.id],run:false,res,req});
-});
+router.post('/upTests', async (req, res) => {
+  let sql = 'UPDATE  tests SET name=?,remark=? WHERE id=?',
+    obj = req.body
+  await pools({ sql, val: [obj.name, obj.remark, obj.id], run: false, res, req })
+})
 
 //删除测试账号
-router.post("/delTests", async (req, res) => {
-	let sql = "DELETE FROM tests WHERE id=?",
-		obj = req.body;
-	await pools({sql,val:[obj.id],run:false,res,req});
-});
+router.post('/delTests', async (req, res) => {
+  let sql = 'DELETE FROM tests WHERE id=?',
+    obj = req.body
+  await pools({ sql, val: [obj.id], run: false, res, req })
+})
 
 //测试菜单接口权限
-router.post("/checkMenu",async (req,res)=>{
-	//需要有roleKey1 这个菜单权限才能请求!
-	await utils.checkPermi({role:["roleKey1"],res,req});
-	res.send(utils.returnData({data:{msg:"请求成功了!"}}));
-});
+router.post('/checkMenu', async (req, res) => {
+  //需要有roleKey1 这个菜单权限才能请求!
+  await utils.checkPermi({ role: ['roleKey1'], res, req })
+  res.send(utils.returnData({ data: { msg: '请求成功了!' } }))
+})
 //测试角色接口权限
-router.post("/checkRole",async (req,res)=>{
-	//需要有primary 这个角色权限才能请求!
-	await utils.checkRole({req,res,role:[primary]});
-	res.send(utils.returnData({data:{msg:"请求成功了!"}}));
-});
-
+router.post('/checkRole', async (req, res) => {
+  //需要有primary 这个角色权限才能请求!
+  await utils.checkRole({ req, res, role: [primary] })
+  res.send(utils.returnData({ data: { msg: '请求成功了!' } }))
+})
 
 //导入数据
-router.post("/importTests",async (req,res)=>{
-	let sql = "INSERT INTO tests(`name`,`remark`,`more_id`) VALUES ?";
-	let fileArr=await fileEvent(req,res);
-	let filename=fileArr[0].filename;
-	//配置获取文件路径
-	let xlsxRes = xlsx.parse(`${path.join(__dirname, '../','public/')}${filename}`, { cellDates: true });
-	let list=xlsxRes[0].data;
-	list.splice(0,1);
-	await pools({sql,val:[list],run:false,res,req,msg:"请确认文档导入值没有问题!!!"});
-});
+router.post('/importTests', async (req, res) => {
+  let sql = 'INSERT INTO tests(`name`,`remark`,`more_id`) VALUES ?'
+  let fileArr = await fileEvent(req, res)
+  let filename = fileArr[0].filename
+  //配置获取文件路径
+  let xlsxRes = xlsx.parse(`${path.join(__dirname, '../', 'public/')}${filename}`, { cellDates: true })
+  let list = xlsxRes[0].data
+  list.splice(0, 1)
+  await pools({ sql, val: [list], run: false, res, req, msg: '请确认文档导入值没有问题!!!' })
+})
 
 //下载模板
-router.post("/downloadTemplate",async (req,res)=>{
-	let data =[ ['名称','备注','多账户编号']];
-	let buffer = xlsx.build([{name:'sheet1',data}]);
-	const filename = '测试模板.xlsx';
-	const encodedFilename = encodeURI(filename);
-	res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;filename='+encodedFilename);
-	res.send(buffer);
-});
+router.post('/downloadTemplate', async (req, res) => {
+  let data = [['名称', '备注', '多账户编号']]
+  let buffer = xlsx.build([{ name: 'sheet1', data }])
+  const filename = '测试模板.xlsx'
+  const encodedFilename = encodeURI(filename)
+  res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;filename=' + encodedFilename)
+  res.send(buffer)
+})
 
 //导出数据
-router.post("/exportTest",async (req,res)=>{
-	let user = await utils.getUserInfo({req, res}),obj=req.body;
-	let sql = `SELECT id,name,remark FROM tests WHERE 1=1`;
-	sql=utils.setLike(sql,"name",obj.name);
-	sql=utils.setMoreId(sql,user);
-	sql+=` ORDER BY id DESC`;
-	sql=utils.pageSize(sql,obj.page,obj.size);
-	let {result}=await pools({sql,res,req});
-	let data =[ ['编号','名称','备注']];
-	result.map(t=>{
-		data.push(Object.values(t))
-	})
-	let buffer = xlsx.build([{name:'sheet1',data}]);
-	const filename = '测试数据.xlsx';
-	const encodedFilename = encodeURI(filename);
-	res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;filename='+encodedFilename);
-	res.send(buffer);
-});
+router.post('/exportTest', async (req, res) => {
+  let user = await utils.getUserInfo({ req, res }),
+    obj = req.body
+  let sql = `SELECT id,name,remark FROM tests WHERE 1=1`
+  sql = utils.setLike(sql, 'name', obj.name)
+  sql = utils.setMoreId(sql, user)
+  sql += ` ORDER BY id DESC`
+  sql = utils.pageSize(sql, obj.page, obj.size)
+  let { result } = await pools({ sql, res, req })
+  let data = [['编号', '名称', '备注']]
+  result.map((t) => {
+    data.push(Object.values(t))
+  })
+  let buffer = xlsx.build([{ name: 'sheet1', data }])
+  const filename = '测试数据.xlsx'
+  const encodedFilename = encodeURI(filename)
+  res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;filename=' + encodedFilename)
+  res.send(buffer)
+})
 
-module.exports = router;
+module.exports = router

+ 2 - 1
utils/config.js

@@ -1,6 +1,7 @@
 module.exports = {
   //上传文件位置
-  fileSite: 'public/uploadFile',
+  // fileSite: 'public/uploadFile',
+  fileSite: 'D:/dataMark/uploadFile',
   //上传name
   fileName: 'file',
   //文件host