Explorar el Código

fix 修复前端部分bug

YueYunyun hace 1 mes
padre
commit
ca021f7c70

+ 2 - 2
SourceCode/DataMiddleware/app/data_process/pre_process.py

@@ -135,8 +135,8 @@ class PreProcess:
             # 初始化self._data[project_no],避免在循环中重复初始化
             for data in excel_data:
                 prompt = self.prompt_template([data])
-                # response = self._ai_helper.call_openai(self._ai_sys_prompt, prompt)
-                response = {'data': [{'n': '阻燃型导线穿管敷设', 'm': 'WDZB1-BYJ-750V-2.5mm2', 'u': '米', 'c': 900.0}, {'n': '阻燃型导线穿管敷设', 'm': 'WDZB1-BYJ-750V-4mm2', 'u': '米', 'c': 800.0}, {'n': '耐火型导线穿管敷设', 'm': 'WDZB1N-BYJ-750V-2.5mm2', 'u': '米', 'c': 200.0}, {'n': '防火堵料', 'm': '', 'u': '公斤', 'c': 10.0}, {'n': '防火漆', 'm': '10kg/', '': '桶', 'c': 2.0}, {'n': '镀锌钢管', 'm': 'SC20', 'u': '米', 'c': 580.0}, {'n': '接地线', 'm': '热浸镀锌扁钢25x4', 'u': '米', 'c': 50.0}, {'n': '局部等电位端子箱', 'm': '', 'u': '个', 'c': 2.0}, {'n': '双联单控照明开关', 'm': '~250V 10A', 'u': '个', 'c': 4.0}, {'n': '密闭双联单控照明开关', 'm': '~250V 10A', 'u': '个', 'c': 4.0}, {'n': '配合空调室外机移位', 'm': '', 'u': '项', 'c': 1.0}, {'n': '应急照明灯', 'm': '220V,10W', 'u': '套', 'c': 4.0}, {'n': '门禁', 'm': '', 'u': '套', 'c': 4.0}, {'n': '配电线路改移', 'm': '开槽、移点位等', 'u': '项', 'c': 1.0}, {'n': '烘手器插座', 'm': '220V,10A,密闭型', 'u': '个', 'c': 2.0}], 'completion_tokens': 439, 'prompt_tokens': 766, 'total_tokens': 1205}
+                response = self._ai_helper.call_openai(self._ai_sys_prompt, prompt)
+                # response = {'data': [{'n': '阻燃型导线穿管敷设', 'm': 'WDZB1-BYJ-750V-2.5mm2', 'u': '米', 'c': 900.0}, {'n': '阻燃型导线穿管敷设', 'm': 'WDZB1-BYJ-750V-4mm2', 'u': '米', 'c': 800.0}, {'n': '耐火型导线穿管敷设', 'm': 'WDZB1N-BYJ-750V-2.5mm2', 'u': '米', 'c': 200.0}, {'n': '防火堵料', 'm': '', 'u': '公斤', 'c': 10.0}, {'n': '防火漆', 'm': '10kg/', '': '桶', 'c': 2.0}, {'n': '镀锌钢管', 'm': 'SC20', 'u': '米', 'c': 580.0}, {'n': '接地线', 'm': '热浸镀锌扁钢25x4', 'u': '米', 'c': 50.0}, {'n': '局部等电位端子箱', 'm': '', 'u': '个', 'c': 2.0}, {'n': '双联单控照明开关', 'm': '~250V 10A', 'u': '个', 'c': 4.0}, {'n': '密闭双联单控照明开关', 'm': '~250V 10A', 'u': '个', 'c': 4.0}, {'n': '配合空调室外机移位', 'm': '', 'u': '项', 'c': 1.0}, {'n': '应急照明灯', 'm': '220V,10W', 'u': '套', 'c': 4.0}, {'n': '门禁', 'm': '', 'u': '套', 'c': 4.0}, {'n': '配电线路改移', 'm': '开槽、移点位等', 'u': '项', 'c': 1.0}, {'n': '烘手器插座', 'm': '220V,10A,密闭型', 'u': '个', 'c': 2.0}], 'completion_tokens': 439, 'prompt_tokens': 766, 'total_tokens': 1205}
                 # 更新数据部分
                 project.items.extend(self.format_data(project_id, response["data"]))
                 project.completion_tokens += response["completion_tokens"]

+ 2 - 2
SourceCode/DataMiddleware/app/ui/project_services.py

@@ -97,9 +97,9 @@ class SourceDataService:
         project = self._store.query_project(project_id)
         if project:
             self._store.delete_project(project_id)
-            return True
+            return True,''
         else:
-            return False
+            return False, '项目不存在'
 
     def get_project_item_list_by_project_paginated(self, project_id: int, page: int, per_page: int, keyword: str = None) -> (list[ProjectItemModel], int):
         return self._store.query_project_items_by_project_paginated(project_id, page, per_page, keyword)

+ 4 - 4
SourceCode/DataMiddleware/app/ui/project_views.py

@@ -131,16 +131,16 @@ def start_project_task(project_id:int):
 
 @project.route('/process_project/<project_id>', methods=['POST'])
 def process_project(project_id:int):
-    result, err_msg = SourceDataService.start_task(project_id)
+    result, err_msg = SourceDataService.process_project(project_id)
     return jsonify({'success': result, 'error': err_msg})
 @project.route('/send_project/<project_id>', methods=['POST'])
 def send_project(project_id:int):
     result, err_msg = SourceDataService.start_send_data(project_id)
     return jsonify({'success': result, 'error': err_msg})
 @project.route('/delete_project/<project_id>', methods=['POST'])
-def delete_project(project_id):
-    SourceDataService.delete_project(project_id)  # 使用实例方法
-    return redirect(url_for('project.project_list'))
+def delete_project(project_id:int):
+    result, err_msg =  SourceDataService.delete_project(project_id)
+    return jsonify({'success': result, 'error': err_msg})
 
 @project.route('/add_project_item', methods=['POST'])
 def add_project_item():

+ 25 - 43
SourceCode/DataMiddleware/app/ui/static/project_list.js

@@ -4,6 +4,11 @@ function addProject() {
 	inputs.forEach((input) => {
 		input.value = ''
 	})
+	// 移除已存在的delete_old_data复选框
+	const existingCheckbox = document.getElementById('delete_old_data')
+	if (existingCheckbox) {
+		existingCheckbox.parentNode.remove()
+	}
 	const file = document.getElementById('new_project_file').parentNode
 	file.innerHTML = `<label for="new_project_file">项目数据:</label><input type="file" id="new_project_file" class="form-control" accept=".xlsx,.xls,.csv" multiple>`
 
@@ -22,7 +27,7 @@ function updateProject(row, id) {
 		existingCheckbox.parentNode.remove()
 	}
 	const checkboxDiv = document.createElement('div')
-	checkboxDiv.innerHTML = `<label for="delete_old_data">删除原数据:</label><input type="checkbox" id="delete_old_data" class="form-control" style="width: auto;">`
+	checkboxDiv.innerHTML = `<label for="delete_old_data">删除原数据:</label><input type="checkbox" id="delete_old_data" class="form-control" style="width: auto;flex: 0;">`
 	file.parentNode.insertBefore(checkboxDiv, file.nextSibling)
 	document.getElementById('new_work_catalog').value = row.querySelector('.work_catalog .form-control').value
 	document.getElementById('new_work_content').value = row.querySelector('.work_content .form-control').value
@@ -70,7 +75,9 @@ function saveProject() {
 	formData.append('work_catalog', catalog)
 	formData.append('work_content', content)
 	formData.append('standard_version', version)
-	formData.append('delete_old_data', document.getElementById('delete_old_data').checked)
+	if (document.getElementById('delete_old_data')){
+		formData.append('delete_old_data', document.getElementById('delete_old_data').checked)
+	}
 
 	fetch('/save_project', {
 		method: 'POST',
@@ -142,51 +149,25 @@ function saveProjectUpdate(row, id) {
 		})
 }
 
-function confirmCollectData(id) {
-	if (confirm('确定要开始采集数据吗?')) {
-		fetch(`/collect_project/${id}`, {
-			method: 'POST',
-			headers: {
-				'Content-Type': 'application/json',
-			},
-		})
-			.then((response) => response.json())
-			.then((data) => {
-				if (data.success) {
-					alert('操作成功')
-					window.location.reload()
-				} else {
-					alert('采集失败:' + data.error)
-				}
-			})
-			.catch((error) => {})
-	}
+function confirmStartTask(id){
+	_confirm('确定要开始任务吗?',`/start_project_task/${id}`)
 }
 
-function confirmProcessData(id) {
-	if (confirm('确定要开始分析处理数据吗?')) {
-		fetch(`/process_project/${id}`, {
-			method: 'POST',
-			headers: {
-				'Content-Type': 'application/json',
-			},
-		})
-			.then((response) => response.json())
-			.then((data) => {
-				if (data.success) {
-					alert('操作成功')
-					window.location.reload()
-				} else {
-					alert('分析处理失败:' + data.error)
-				}
-			})
-			.catch((error) => {})
-	}
+function confirmReStartTask(id){
+	_confirm('确定要重新采集数据吗?',`/start_project_task/${id}`)
+}
+
+function confirmReProcessData(id){
+	_confirm('确定要重新处理数据吗?',`/process_project/${id}`)
 }
 
 function confirmSendData(id) {
-	if (confirm('确定要开始上传数据吗?')) {
-		fetch(`/send_project/${id}`, {
+	_confirm('确定要开始上传数据吗?',`/send_project/${id}`)
+}
+
+function _confirm(text,url){
+	if (confirm(text)) {
+		fetch(url, {
 			method: 'POST',
 			headers: {
 				'Content-Type': 'application/json',
@@ -198,13 +179,14 @@ function confirmSendData(id) {
 					alert('操作成功')
 					window.location.reload()
 				} else {
-					alert('分析处理失败:' + data.error)
+					alert('操作失败:' + data.error)
 				}
 			})
 			.catch((error) => {})
 	}
 }
 
+
 function confirmProjectDelete(id) {
 	if (confirm('确定要删除该项目吗?')) {
 		fetch(`/delete_project/${id}`, {

+ 1 - 1
SourceCode/DataMiddleware/app/ui/templates/project/project_list.html

@@ -116,7 +116,7 @@
                             <td class="editable work_catalog">
                                 <span class="show">{{ project.work_catalog if project.work_catalog else '-' }}</span>
                                 <span class="edit">
-                                    <input type="text" class="form-control" title="工作目录" name="work_catalogvalue="{{ project.work_catalog if project.work_catalog else '' }}">
+                                    <input type="text" class="form-control" title="工作目录" name="work_catalog" value="{{ project.work_catalog if project.work_catalog else '' }}">
                                 </span>
                             </td>
                             <td class="editable work_content">