make some style change
This commit is contained in:
parent
3b6db1f851
commit
4c34736fe0
174
whuF2caculate.js
174
whuF2caculate.js
@ -72,67 +72,69 @@
|
||||
// 获取gnmkdmKey的值
|
||||
var gnmkdmKey = document.getElementById('gnmkdmKey').value;
|
||||
|
||||
// 构造请求URL和postData
|
||||
// 构造请求URL和postData
|
||||
var url = 'https://jwgl.whu.edu.cn/cjcx/cjcx_cxXsgrcj.html';
|
||||
var params = 'doType=query&gnmkdm=' + encodeURIComponent(gnmkdmKey);
|
||||
|
||||
|
||||
// 最终请求URL
|
||||
// 最终请求URL
|
||||
var finalUrl = url + '?' + params;
|
||||
|
||||
// Bind click event to the query button
|
||||
queryButton.addEventListener('click', function() {
|
||||
var postData = 'xnm=' + yearSelect.value + '&xqm=&kcbj=&_search=false&nd=' + Date.now() + '&queryModel.showCount=50&queryModel.currentPage=1&queryModel.sortName=&queryModel.sortOrder=asc&time=0';
|
||||
// Perform the same POST request as the calculate button
|
||||
// console.log(postData);
|
||||
GM_xmlhttpRequest({
|
||||
method: 'POST',
|
||||
url: finalUrl,
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
data: postData,
|
||||
onload: function(response) {
|
||||
var responseData = JSON.parse(response.responseText);
|
||||
let items = responseData.items;
|
||||
// console.log(items);
|
||||
var postData = 'xnm=' + yearSelect.value + '&xqm=&kcbj=&_search=false&nd=' + Date.now() + '&queryModel.showCount=50&queryModel.currentPage=1&queryModel.sortName=&queryModel.sortOrder=asc&time=0';
|
||||
// Perform the same POST request as the calculate button
|
||||
// console.log(postData);
|
||||
GM_xmlhttpRequest({
|
||||
method: 'POST',
|
||||
url: finalUrl,
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
data: postData,
|
||||
onload: function(response) {
|
||||
var responseData = JSON.parse(response.responseText);
|
||||
let items = responseData.items;
|
||||
// console.log(items);
|
||||
|
||||
// Only consider items where kcxzmc includes "选修"
|
||||
var electiveItems = items.filter((item) => {
|
||||
return item && items[item].kcxzmc && items[item].kcxzmc.includes("选修");
|
||||
});
|
||||
// Only consider items where kcxzmc includes "选修"
|
||||
var electiveItems = items.filter((item) => {
|
||||
// console.log('item:', items[item]);
|
||||
// console.log('kcxzmc:', items[item] && items[item].kcxzmc);
|
||||
return item && items[item].kcxzmc && items[item].kcxzmc.includes("选修");
|
||||
});
|
||||
|
||||
// Display these items in a list with checkboxes
|
||||
var electiveList = document.createElement('ul');
|
||||
electiveList.style.listStyleType = 'none';
|
||||
electiveList.style.border = '1px solid black'; // Add border to the list
|
||||
electiveList.style.padding = '10px'; // Add some padding
|
||||
electiveList.style.marginTop = '20px'; // Add margin at the top
|
||||
// Display these items in a list with checkboxes
|
||||
var electiveList = document.createElement('ul');
|
||||
electiveList.style.listStyleType = 'none';
|
||||
electiveList.style.border = '1px solid black'; // Add border to the list
|
||||
electiveList.style.padding = '10px'; // Add some padding
|
||||
electiveList.style.marginTop = '20px'; // Add margin at the top
|
||||
|
||||
electiveItems.forEach(item => {
|
||||
var listItem = document.createElement('li');
|
||||
listItem.style.marginTop = '5px';
|
||||
listItem.style.display = 'flex'; // Use flex layout
|
||||
listItem.style.alignItems = 'center'; // Center-align items vertically
|
||||
electiveItems.forEach(item => {
|
||||
var listItem = document.createElement('li');
|
||||
listItem.style.marginTop = '5px';
|
||||
listItem.style.display = 'flex'; // Use flex layout
|
||||
listItem.style.alignItems = 'center'; // Center-align items vertically
|
||||
|
||||
var checkbox = document.createElement('input');
|
||||
checkbox.type = 'checkbox';
|
||||
checkbox.value = item.kcmc;
|
||||
checkbox.style.marginRight = '10px'; // Add some space between the checkbox and the label
|
||||
listItem.appendChild(checkbox);
|
||||
var checkbox = document.createElement('input');
|
||||
checkbox.type = 'checkbox';
|
||||
checkbox.value = item.kcmc;
|
||||
checkbox.style.marginRight = '10px'; // Add some space between the checkbox and the label
|
||||
listItem.appendChild(checkbox);
|
||||
|
||||
var label = document.createElement('label');
|
||||
label.textContent = item.kcmc;
|
||||
listItem.appendChild(label);
|
||||
var label = document.createElement('label');
|
||||
label.textContent = item.kcmc;
|
||||
listItem.appendChild(label);
|
||||
|
||||
electiveList.appendChild(listItem);
|
||||
});
|
||||
electiveList.appendChild(listItem);
|
||||
});
|
||||
|
||||
// Add the list to the container
|
||||
container.appendChild(electiveList);
|
||||
}
|
||||
// Add the list to the container
|
||||
container.appendChild(electiveList);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// 绑定按钮点击事件
|
||||
@ -141,53 +143,53 @@
|
||||
let postData = 'xnm=' + yearSelect.value + '&xqm=&kcbj=&_search=false&nd=' + Date.now() + '&queryModel.showCount=70&queryModel.currentPage=1&queryModel.sortName=&queryModel.sortOrder=asc&time=0';
|
||||
// 发送POST请求
|
||||
GM_xmlhttpRequest({
|
||||
method: 'POST',
|
||||
url: finalUrl,
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
data: postData,
|
||||
onload: function(response) {
|
||||
var responseData = JSON.parse(response.responseText);
|
||||
let items = responseData.items;
|
||||
// console.log(items);
|
||||
method: 'POST',
|
||||
url: finalUrl,
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
},
|
||||
data: postData,
|
||||
onload: function(response) {
|
||||
var responseData = JSON.parse(response.responseText);
|
||||
let items = responseData.items;
|
||||
// console.log(items);
|
||||
|
||||
// 创建变量用于存储必修成绩、选修成绩和必修学分
|
||||
var requiredScore = 0;
|
||||
var electiveScore = 0;
|
||||
var requiredCredits = 0;
|
||||
// 创建变量用于存储必修成绩、选修成绩和必修学分
|
||||
var requiredScore = 0;
|
||||
var electiveScore = 0;
|
||||
var requiredCredits = 0;
|
||||
|
||||
// Get the selected elective courses
|
||||
var selectedElectives = Array.from(container.querySelectorAll('input[type="checkbox"]:checked')).map(input => input.value);
|
||||
// Iterate through each item in the items array
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var item = items[i];
|
||||
var kcxzmc = item.kcxzmc;
|
||||
var bfzcj = parseFloat(item.bfzcj);
|
||||
var xf = parseFloat(item.xf);
|
||||
// Get the selected elective courses
|
||||
var selectedElectives = Array.from(container.querySelectorAll('input[type="checkbox"]:checked')).map(input => input.value);
|
||||
// Iterate through each item in the items array
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var item = items[i];
|
||||
var kcxzmc = item.kcxzmc;
|
||||
var bfzcj = parseFloat(item.bfzcj);
|
||||
var xf = parseFloat(item.xf);
|
||||
|
||||
if (kcxzmc.includes("必修")) {
|
||||
requiredScore += bfzcj * xf;
|
||||
requiredCredits += xf;
|
||||
} else if (kcxzmc.includes("选修")) {
|
||||
if (selectedElectives.includes(item.kcmc)) {
|
||||
// Treat the selected elective courses as required courses
|
||||
if (kcxzmc.includes("必修")) {
|
||||
requiredScore += bfzcj * xf;
|
||||
requiredCredits += xf;
|
||||
} else {
|
||||
// Only consider the non-selected elective courses for the elective score
|
||||
electiveScore += bfzcj * xf;
|
||||
} else if (kcxzmc.includes("选修")) {
|
||||
if (selectedElectives.includes(item.kcmc)) {
|
||||
// Treat the selected elective courses as required courses
|
||||
requiredScore += bfzcj * xf;
|
||||
requiredCredits += xf;
|
||||
} else {
|
||||
// Only consider the non-selected elective courses for the elective score
|
||||
electiveScore += bfzcj * xf;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 计算必修课平均成绩和选修课成绩
|
||||
var requiredGrade = requiredScore / requiredCredits;
|
||||
var electiveGrade = electiveScore * 0.002;
|
||||
// 计算必修课平均成绩和选修课成绩
|
||||
var requiredGrade = requiredScore / requiredCredits;
|
||||
var electiveGrade = electiveScore * 0.002;
|
||||
|
||||
// 在窗口中显示结果
|
||||
var resultElement = document.createElement('div');
|
||||
resultElement.style.marginTop = '10px';
|
||||
resultElement.textContent = "必修课: " + requiredGrade.toFixed(3) + ",选修课: " + electiveGrade.toFixed(3)+",总成绩:"+(requiredGrade+electiveGrade).toFixed(3);
|
||||
container.appendChild(resultElement);
|
||||
}})})})();
|
||||
// 在窗口中显示结果
|
||||
var resultElement = document.createElement('div');
|
||||
resultElement.style.marginTop = '10px';
|
||||
resultElement.textContent = "必修课: " + requiredGrade.toFixed(3) + ",选修课: " + electiveGrade.toFixed(3)+",总成绩:"+(requiredGrade+electiveGrade).toFixed(3);
|
||||
container.appendChild(resultElement);
|
||||
}})})})();
|
||||
|
Loading…
Reference in New Issue
Block a user