// var _elementIdToDataMap={};
var commonDebugFlag = true;
//视图数据改变通用处理(更新数据对象里的值)
function commonOnchangeFun(elementId) {
commonDebug(elementId, "commonOnchangeFun elementId");
var value = getElementVal("#" + elementId);
commonDebug(value, "commonOnchangeFun value");
var data = dataViewCommonJs.elementIdToDataMap[elementId].data;
commonDebug(data, "commonOnchangeFun data");
var field = dataViewCommonJs.elementIdToDataMap[elementId].field;
commonDebug(field, "commonOnchangeFun field");
//更新数据对象里的值
data[field]=value;
}
// var initDataPage = {
// defaultFormValue:data,
// formValue:{},
// modelId:"app",
// formFieldDes:{}
// };
// formDataInit(initDataPage);
function commonFormDataInit(initData) {
// var defaultFormValue=deepClone(initData.defaultFormValue);
var formValue=deepClone(initData.defaultFormValue);
initData.formValue=formValue;
observe(initData.formValue,initData,initData.modelId);
//
//初始值进行一次赋值
// objToObjByField(defaultFormValue,initData.formValue);
commonDebug(dataViewCommonJs.elementIdToDataMap, "formDataInit elementIdToDataMap");
commonDebug(initData.formValue, "formDataInit data");
};
//
function observe(data,initData,modelId) {
if (!data || typeof data !== 'object') {
return;
}
// 取出所有属性遍历
var keys= Object.keys(data);
commonDebug(keys, "observe keys");
for(var i=0 ;i<keys.length;i++){
var key = keys[i];
var modelIdTemp = modelId + "_" + key;
commonDebug(modelIdTemp, "observe modelIdTemp");
//=====================
if (data._fieldInfoObject === undefined) {
data._fieldInfoObject = {};
}
data._fieldInfoObject[key] = {
// _initData:initData,
fieldToElementId:modelIdTemp,
formFieldDes:initData.formFieldDes,
};
//=====================Watch
if (data._fieldWatchObject === undefined) {
data._fieldWatchObject = {};
}
data._fieldWatchObject[key] = {
// _initData:initData,
// fieldToElementId:modelIdTemp,
// formFieldDes:initData.formFieldDes,
watchFunList:[],
};
//=====================
//=====================
if(dataViewCommonJs.elementIdToDataMap[modelIdTemp]!=undefined){
throw modelIdTemp+"已经存在!"
}
dataViewCommonJs.elementIdToDataMap[modelIdTemp] = {data:data,field:key};
//=====================
defineReactive(data, key, data[key],initData,modelIdTemp);
}
};
function defineReactive(data, key, val,initData,modelId) {
observe(val,initData,modelId); // 监听子属性
Object.defineProperty(data, key, {
enumerable : true, // 可枚举
configurable : false, // 不能再define
get : function () {
commonDebug("key = " + key + ",val = " + val, "defineReactive get");
return val;
},
set : function (newVal) {
commonDebug("key = " + key + ",newVal = " + newVal, "defineReactive set");
var oldVal =val;
val = newVal;
//============
commonFieldWatchDeal(key,data,newVal,oldVal);
//============
commonUpdateView(key,data);
}
});
}
function commonFieldWatchDeal(key,data,newVal,oldVal) {
// commonDebug(field, "updateView field");
var watchFunList = data._fieldWatchObject[key].watchFunList;
if(watchFunList.length==0){
return;
}
// commonDebug(key, "commonFieldWatchDeal key");
for(var i=0 ;i<watchFunList.length;i++){
commonDebug(key, "commonFieldWatchDeal key");
watchFunList[i](newVal,oldVal);
}
}
function commonUpdateView(field,data) {
commonDebug(field, "updateView field");
commonDebug(data, "updateView data");
var fieldInfoObject = data._fieldInfoObject[field];
var fieldToElementId = fieldInfoObject.fieldToElementId;
// var ElementId = fieldToElementIdMap[field];
// setElementVal('#' + fieldToElementId, data[field]);
commonUpdateViewDeal(fieldToElementId,field,data);
}
function commonUpdateViewDeal(elementId,field,data) {
setElementVal('#' + elementId, data[field]);
}
function commonAddWatch(fieldString,initData,fun) {
var fieldStringTemp = replaceAll(fieldString,"\\.","_");
var key = initData.modelId +"_" + fieldStringTemp;
if(dataViewCommonJs.elementIdToDataMap[key]==undefined){
throw "请先调用commonFormDataInit进行初始化"
}
var data = dataViewCommonJs.elementIdToDataMap[key].data;
commonDebug(data, "commonAddWatch data");
var field = dataViewCommonJs.elementIdToDataMap[key].field;
commonDebug(field, "commonAddWatch field");
if(data._fieldWatchObject[field]==undefined){
throw "请先调用commonFormDataInit进行初始化"
}
var watchFunList = data._fieldWatchObject[field].watchFunList;
commonDebug(watchFunList, "commonAddWatch watchFunList");
if(watchFunList==undefined){
throw "请先调用commonFormDataInit进行初始化"
}
if(fun){
watchFunList.push(fun)
}else{
throw "请先输入正确的回调函数"
}
}
var dataViewCommonJs={
//全部存放id对应的数据对象和字段名,commonOnchangeFun里进行使用
elementIdToDataMap:{},
commonOnchangeFun:commonOnchangeFun,
commonFormDataInit:commonFormDataInit,
commonAddWatch:commonAddWatch,
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../../miniui/scripts/jquery-1.11.1.min.js" type="text/javascript"></script>
<script src="../commonJs.js" type="text/javascript"></script>
<script src="../jqCommonJs.js" type="text/javascript"></script>
<script src="./dataViewCommonJs.js" type="text/javascript"></script>
<!-- dataViewCommonJs-->
<style>
</style>
</head>
<body>
<div id="app">
<input type="text" id="app_name" onchange="dataViewCommonJs.commonOnchangeFun(this.id)">
<input type="text" id="app_test_id" onchange="dataViewCommonJs.commonOnchangeFun(this.id)">
<p id="show-txt"></p>
</div>
</body>
</html>
<script type="text/javascript">
// var modelDataIdMap = {
// app_name : {
// id : "app_name",
// modelDataField : "name",
// type : 'input',
// modelData : data,
// }
//
// }
//全部存放id对应的数据对象和字段名,commonOnchangeFun里进行使用
// var _elementIdToDataMap={};
// //视图数据改变通用处理(更新数据对象里的值)
// function commonOnchangeFun(elementId) {
// commonDebug(elementId, "commonOnchangeFun elementId");
// var value = getElementVal("#" + elementId);
// commonDebug(value, "commonOnchangeFun value");
// var data = _elementIdToDataMap[elementId].data;
// commonDebug(data, "commonOnchangeFun data");
// var field = _elementIdToDataMap[elementId].field;
// commonDebug(field, "commonOnchangeFun field");
//
// //更新数据对象里的值
// data[field]=value;
// }
var ss =[];
commonDebug(ss, "commonAddWatch ss");
ss.push(function () {
})
var data = {
name : 'kindeng',
test : {id : '22'},
fsize : '4545'
};
var initDataPage = {
defaultFormValue:data,
formValue:data,
modelId:"app",
formFieldDes:{}
};
dataViewCommonJs.commonFormDataInit(initDataPage);
initDataPage.formValue.name="shdjfh";
// var applyINfoData = {
// app : {
// modelKey : 'app',
// modelDataDes : {},
// modelData : data,
// }
//
// }
// dataViewCommonJs.commonAddWatch('name',initDataPage,function (newVal,oldVal) {
// commonConsole(newVal, "commonAddWatch newVal");
// commonConsole(oldVal, "commonAddWatch oldVal");
//
// initDataPage.formValue.fsize = 'aadd';
// })
dataViewCommonJs.commonAddWatch('test.id',initDataPage,function (newVal,oldVal) {
commonConsole(newVal, "commonAddWatch newVal");
commonConsole(oldVal, "commonAddWatch oldVal");
initDataPage.formValue.name = 'aadd';
})
// dataViewCommonJs.commonAddWatch('fsize',initDataPage,function (newVal,oldVal) {
// commonConsole(newVal, "commonAddWatch newVal");
// commonConsole(oldVal, "commonAddWatch oldVal");
//
// // initDataPage.formValue.name = 'aaddsdasdas';
// })
// formDataInit(initDataPage);
//
// function formDataInit(initData) {
//
// observe(initData.formValue,initData,initData.modelId);
// commonDebug(_elementIdToDataMap, "_elementIdToDataMap");
// //
// // commonDebug(initData.formValue, "initData.formValue");
// commonDebug(initData.formValue, "initData.formValue");
// };
//
//
// function observe(data,initData,modelId) {
// if (!data || typeof data !== 'object') {
// return;
// }
// // 取出所有属性遍历
// var keys= Object.keys(data);
// commonDebug(keys, "keys");
//
// for(var i=0 ;i<keys.length;i++){
// var key = keys[i];
// // for(var key in data){
// // if (initData.watchFunList === undefined) {
// // initData.watchFunList = {};
// // }
// // initData.watchFunList[key] = function ( key,data,initData) {
// // commonDebug("sub", "sub");
// // }
//
// // for(var key in data){
// var modelIdTemp = modelId + "_" + key;
//
// //=====================
// if (data._fieldInfoObject === undefined) {
// data._fieldInfoObject = {};
// }
// data._fieldInfoObject[key] = {
// // _initData:initData,
// fieldToElementId:modelIdTemp,
// formFieldDes:initData.formFieldDes,
// };
//
// //=====================
// // if (initData._fieldToElementIdMap === undefined) {
// // initData._fieldToElementIdMap = {};
// // }
// //
// // // var modelIdTemp = modelId + "_" + key;
// // initData._fieldToElementIdMap[key] = modelIdTemp;
// //=====================
// _elementIdToDataMap[modelIdTemp] = {data:data,field:key};
//
// defineReactive(data, key, data[key],initData,modelIdTemp);
// }
//
//
// // Object.keys(data).forEach(function (key,initData) {
// // if (data.watchFunList === undefined) {
// // data.watchFunList = {};
// // }
// // data.watchFunList[key] = function ( key,data,initData) {
// // commonDebug("sub", "sub");
// // }
// //
// // if (data.fieldToElementIdMap === undefined) {
// // data.fieldToElementIdMap = {};
// // }
// // data.fieldToElementIdMap[key] = initData.modelId + "_" + key;
// //
// // defineReactive(data, key, data[key],initData);
// // });
// };
//
// function defineReactive(data, key, val,initData,modelId) {
// observe(val,initData,modelId); // 监听子属性
// Object.defineProperty(data, key, {
// enumerable : true, // 可枚举
// configurable : false, // 不能再define
// get : function () {
// commonDebug("key = " + key + ",val = " + val, "defineProperty get");
// return val;
// },
// set : function (newVal) {
// commonDebug("key = " + key + ",newVal = " + newVal, "defineProperty set");
// val = newVal;
//
// updateView(key,data);
// }
// });
// }
//
// function updateView(field,data) {
// commonDebug(field, "updateView field");
// commonDebug(data, "updateView data");
//
// var fieldInfoObject = data._fieldInfoObject[field];
// var fieldToElementId = fieldInfoObject.fieldToElementId;
// // var ElementId = fieldToElementIdMap[field];
//
// setElementVal('#' + fieldToElementId, data[field]);
// }
//
// function Dep() {
// this.subs = [];
// }
//
// Dep.prototype = {
// addSub : function (sub) {
// this.subs.push(sub);
// },
// notify : function () {
// this.subs.forEach(function (sub) {
// sub.update();
// });
// }
// };
// commonDebug(data, "data");
// observe(data);
// data.name = 'dmq'; // 哈哈哈,监听到值变化了 kindeng --> dmq
// data.name = 'dmq2'; // 哈哈哈,监听到值变化了 kindeng --> dmq
// data.name = 'dmq3'; // 哈哈哈,监听到值变化了 kindeng --> dmq
// data.name = 'dmq4'; // 哈哈哈,监听到值变化了 kindeng --> dmq
// data.name = 'dmq5'; // 哈哈哈,监听到值变化了 kindeng --> dmq
// var dd = data.name;
// commonDebug(dd, "dd");
//
// data.name = 'aadd'; // 哈哈哈,监听到值变化了 kindeng --> dmq
// var dd = data.name;
// commonDebug(dd, "dd");
// commonDebug(data, "data");
// var obj = {}
// Object.defineProperty(obj, 'txt', {
// get: function () {
// return obj
// },
// set: function (newValue) {
// document.getElementById('txt').value = newValue
// document.getElementById('show-txt').innerHTML = newValue
// }
// })
// document.addEventListener('keyup', function (e) {
// obj.txt = e.target.value
// })
</script>
// var _elementIdToDataMap={};
var commonDebugFlag = true;
//视图数据改变通用处理(更新数据对象里的值)
function commonOnchangeFun(elementId) {
commonDebug(elementId, "commonOnchangeFun elementId");
var value = getElementVal("#" + elementId);
commonDebug(value, "commonOnchangeFun value");
var data = dataViewCommonJs.elementIdToDataMap[elementId].data;
commonDebug(data, "commonOnchangeFun data");
var field = dataViewCommonJs.elementIdToDataMap[elementId].field;
commonDebug(field, "commonOnchangeFun field");
//更新数据对象里的值
data[field]=value;
}
// var initDataPage = {
// defaultFormValue:data,
// formValue:{},
// modelId:"app",
// formFieldDes:{}
// };
// formDataInit(initDataPage);
function commonFormDataInit(initData) {
// var defaultFormValue=deepClone(initData.defaultFormValue);
var formValue=deepClone(initData.defaultFormValue);
initData.formValue=formValue;
observe(initData.formValue,initData,initData.modelId,initData.formFieldDes);
//
//初始值进行一次赋值
// objToObjByField(defaultFormValue,initData.formValue);
commonDebug(dataViewCommonJs.elementIdToDataMap, "formDataInit elementIdToDataMap");
commonDebug(initData.formValue, "formDataInit data");
};
//
function observe(data,initData,modelId,formFieldDes) {
if (!data || typeof data !== 'object') {
return;
}
// 取出所有属性遍历
var keys= Object.keys(data);
commonDebug(keys, "observe keys");
for(var i=0 ;i<keys.length;i++){
var key = keys[i];
var modelIdTemp = modelId + "_" + key;
commonDebug(modelIdTemp, "observe modelIdTemp");
//=====================
if (data._fieldInfoObject === undefined) {
data._fieldInfoObject = {};
}
data._fieldInfoObject[key] = {
// _initData:initData,
fieldToElementId:modelIdTemp,
formFieldDes:initData.formFieldDes,
};
//=====================Watch
if (data._fieldWatchObject === undefined) {
data._fieldWatchObject = {};
}
data._fieldWatchObject[key] = {
// _initData:initData,
// fieldToElementId:modelIdTemp,
// formFieldDes:initData.formFieldDes,
watchFunList:[],
};
//=====================
//=====================
if(dataViewCommonJs.elementIdToDataMap[modelIdTemp]!=undefined){
throw modelIdTemp+"已经存在!"
}
var aa = formFieldDes[key];
var bb = formFieldDes.id;
dataViewCommonJs.elementIdToDataMap[modelIdTemp] = {data:data,field:key,dataFieldDes:formFieldDes[key]};
//=====================
defineReactive(data, key, data[key],initData,modelIdTemp,formFieldDes[key].formFieldDes);
}
};
function defineReactive(data, key, val,initData,modelId,formFieldDes) {
observe(val,initData,modelId,formFieldDes); // 监听子属性
Object.defineProperty(data, key, {
enumerable : true, // 可枚举
configurable : false, // 不能再define
get : function () {
commonDebug("key = " + key + ",val = " + val, "defineReactive get");
return val;
},
set : function (newVal) {
commonDebug("key = " + key + ",newVal = " + newVal, "defineReactive set");
var oldVal =val;
val = newVal;
//============
commonFieldWatchDeal(key,data,newVal,oldVal);
//============
commonUpdateView(key,data);
}
});
}
function commonFieldWatchDeal(key,data,newVal,oldVal) {
// commonDebug(field, "updateView field");
var watchFunList = data._fieldWatchObject[key].watchFunList;
if(watchFunList.length==0){
return;
}
// commonDebug(key, "commonFieldWatchDeal key");
for(var i=0 ;i<watchFunList.length;i++){
commonDebug(key, "commonFieldWatchDeal key");
watchFunList[i](newVal,oldVal);
}
}
function commonUpdateView(field,data) {
commonDebug(field, "updateView field");
commonDebug(data, "updateView data");
// var fieldInfoObject = data._fieldInfoObject[field];
// var fieldToElementId = fieldInfoObject.fieldToElementId;
// // var ElementId = fieldToElementIdMap[field];
// // setElementVal('#' + fieldToElementId, data[field]);
//
// commonUpdateViewDeal(fieldToElementId,field,data);
dataViewCommonJs.viewUpdateFlag=true;
}
function commonUpdateViewDeal(elementId,field,data) {
setElementVal('#' + elementId, data[field]);
}
function commonAddWatch(fieldString,initData,fun) {
var fieldStringTemp = replaceAll(fieldString,"\\.","_");
var key = initData.modelId +"_" + fieldStringTemp;
if(dataViewCommonJs.elementIdToDataMap[key]==undefined){
throw "请先调用commonFormDataInit进行初始化"
}
var data = dataViewCommonJs.elementIdToDataMap[key].data;
commonDebug(data, "commonAddWatch data");
var field = dataViewCommonJs.elementIdToDataMap[key].field;
commonDebug(field, "commonAddWatch field");
if(data._fieldWatchObject[field]==undefined){
throw "请先调用commonFormDataInit进行初始化"
}
var watchFunList = data._fieldWatchObject[field].watchFunList;
commonDebug(watchFunList, "commonAddWatch watchFunList");
if(watchFunList==undefined){
throw "请先调用commonFormDataInit进行初始化"
}
if(fun){
watchFunList.push(fun)
}else{
throw "请先输入正确的回调函数"
}
}
function viewUpdateDealFun() {
var keys = Object.keys(dataViewCommonJs.elementIdToDataMap);
for(var i=0 ;i<keys.length;i++){
var key = keys[i];
var data = dataViewCommonJs.elementIdToDataMap[key].data;
commonDebug(data, "commonAddWatch data");
var field = dataViewCommonJs.elementIdToDataMap[key].field;
commonDebug(field, "commonAddWatch data");
// var field = dataViewCommonJs.elementIdToDataMap[key].field;
// commonDebug(field, "commonAddWatch data");
var fieldToElementId = key;
commonUpdateViewDeal(fieldToElementId,field,data);
}
}
function viewUpdateTimeoutFun() {
// commonDebug("", "viewUpdateTimeoutFun");
if(dataViewCommonJs.viewUpdateFlag==true){
viewUpdateDealFun();
dataViewCommonJs.viewUpdateFlag=false;
}
window.setTimeout(viewUpdateTimeoutFun, 300);
}
var dataViewCommonJs={
viewUpdateFlag:false,//视图更新标志,true时才会进行视图数据更新
viewUpdateTimeout:window.setTimeout(viewUpdateTimeoutFun, 300),
//全部存放id对应的数据对象和字段名,commonOnchangeFun里进行使用
elementIdToDataMap:{},
commonOnchangeFun:commonOnchangeFun,
commonFormDataInit:commonFormDataInit,
commonAddWatch:commonAddWatch,
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../../miniui/scripts/jquery-1.11.1.min.js" type="text/javascript"></script>
<script src="../commonJs.js" type="text/javascript"></script>
<script src="../jqCommonJs.js" type="text/javascript"></script>
<script src="./dataViewCommonJs.js" type="text/javascript"></script>
<!-- dataViewCommonJs-->
<style>
</style>
</head>
<body>
<div id="app">
<input type="text" id="app_name" onchange="dataViewCommonJs.commonOnchangeFun(this.id)">
<input type="text" id="app_test_id" onchange="dataViewCommonJs.commonOnchangeFun(this.id)">
<p id="show-txt"></p>
</div>
</body>
</html>
<script type="text/javascript">
// var modelDataIdMap = {
// app_name : {
// id : "app_name",
// modelDataField : "name",
// type : 'input',
// modelData : data,
// }
//
// }
//全部存放id对应的数据对象和字段名,commonOnchangeFun里进行使用
// var _elementIdToDataMap={};
// //视图数据改变通用处理(更新数据对象里的值)
// function commonOnchangeFun(elementId) {
// commonDebug(elementId, "commonOnchangeFun elementId");
// var value = getElementVal("#" + elementId);
// commonDebug(value, "commonOnchangeFun value");
// var data = _elementIdToDataMap[elementId].data;
// commonDebug(data, "commonOnchangeFun data");
// var field = _elementIdToDataMap[elementId].field;
// commonDebug(field, "commonOnchangeFun field");
//
// //更新数据对象里的值
// data[field]=value;
// }
var ss = [];
commonDebug(ss, "commonAddWatch ss");
ss.push(function () {
})
var data = {
name : 'kindeng',
test : {
id : '22',
trt : 'sdsf'
},
fsize : '4545'
};
var initDataPage = {
defaultFormValue : data,
formValue : data,
modelId : "app",
formFieldDes : {
name : {type : 'input'},
fsize : {type : 'input_num'},
test : {
formFieldDes : {
id : {type : 'tefst'},
trt : {type : 'trt'}
}
},
}
};
dataViewCommonJs.commonFormDataInit(initDataPage);
initDataPage.formValue.name = "shdjfh";
// var applyINfoData = {
// app : {
// modelKey : 'app',
// modelDataDes : {},
// modelData : data,
// }
//
// }
// dataViewCommonJs.commonAddWatch('name',initDataPage,function (newVal,oldVal) {
// commonConsole(newVal, "commonAddWatch newVal");
// commonConsole(oldVal, "commonAddWatch oldVal");
//
// initDataPage.formValue.fsize = 'aadd';
// })
dataViewCommonJs.commonAddWatch('test.id', initDataPage, function (newVal, oldVal) {
commonConsole(newVal, "commonAddWatch newVal");
commonConsole(oldVal, "commonAddWatch oldVal");
initDataPage.formValue.name = 'aadd';
})
// dataViewCommonJs.commonAddWatch('fsize',initDataPage,function (newVal,oldVal) {
// commonConsole(newVal, "commonAddWatch newVal");
// commonConsole(oldVal, "commonAddWatch oldVal");
//
// // initDataPage.formValue.name = 'aaddsdasdas';
// })
</script>
分享到:
相关推荐
基于springboot大学生就业信息管理系统源码数据库文档.zip
基于java的驾校收支管理可视化平台的开题报告
时间序列 原木 间隔5秒钟 20241120
毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip
基于springboot课件通中小学教学课件共享平台源码数据库文档.zip
基于java的网上购物商城的开题报告
Delphi人脸检测与识别Demo1fdef-main.zip
基于java的咖啡在线销售系统的开题报告
基于java的自助医疗服务系统的开题报告.docx
内容概要:本文档全面介绍了Visual Basic(VB)编程语言的基础知识和高级应用。首先概述了VB的基本特性和开发环境,随后详细讲述了VB的数据类型、变量、运算符、控制结构、数组、过程与函数、变量作用域等内容。接着介绍了窗体设计、控件使用、菜单与工具栏的设计,文件操作、数据库访问等关键知识点。最后讨论了VB的学习方法、发展历史及其在桌面应用、Web应用、数据库应用、游戏开发和自动化脚本编写等领域的广泛应用前景。 适合人群:初学者和中级程序员,尤其是希望快速掌握Windows桌面应用开发的人群。 使用场景及目标:①掌握VB的基础语法和开发环境;②学会使用VB创建复杂的用户界面和功能完整的应用程序;③理解数据库操作、文件管理和网络编程等高级主题。 其他说明:Visual Basic是一种简单易学且功能强大的编程语言,尤其适合用于开发Windows桌面应用。文中不仅覆盖了基础知识,还包括了大量的实用案例和技术细节,帮助读者快速提升编程技能。
基于java的疫情期间高校防控系统开题报告.docx
基于springboot+vue社区老年人帮扶系统源码数据库文档.zip
基于java的超市商品管理系统的开题报告.docx
基于SpringBoot房屋买卖平台源码数据库文档.zip
xdu限通院23微处理器系统与应用大作业(两只老虎),适应于汇编语言keil软件,
<项目介绍> - 新闻类网站系统,基于SSM(Spring、Spring MVC、MyBatis)+MySQL开发,高分成品毕业设计,附带往届论文 - 不懂运行,下载完可以私聊问,可远程教学 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
基于java的学生网上请假系统的开题报告.docx
社会经济繁荣发展的今天,电子商务得到了飞速发展,网上交易越来越彰显出其独特的优越性,在人们的日常生活中,出现了各种类型的交易网站。其中一个就是车辆易主交易网站,它是一个服务于用户买卖二手车辆的交易网站,为用户提供了平等互利、方便快捷的网上交易平台,通过这一类型的网站,用户可自由出售和购买车辆。 本课题主要根据车辆本身的特性,充分发挥互联网的特点与优势,构建一个以二手车辆为商品、基于互联网平台的车辆易主业务交易管理系统,并根据车辆易主业务交易管理系统的应用需求,进行需求分析,进而对网站系统作规划设计。采用IDEA为运行平台,以SSH为框架,运用HTML语言、JSP技术、MySql数据库、JSP与后台数据库链接等关键技术建设二手车网上交易系统,构建车辆易主交易系统的会员注册与登录,网站首页展示、用户发布商品车辆,用户求购商品车辆,分页浏览、购物系统、用户后台管理、管理员用户后台管理等功能,并使这些功能得以实现并更好为用户服务。网站整体构建完成且测试成功后,用户可以进入网站进行注册、登录,登录后,用户可以在网站上发布自己的闲置车辆或者寻找想要购买的车辆,还可以收藏车辆,管理发布和收藏的车辆,
SQLite3的向量扩展库,windows dll,版本0.1.5
基于C++实现(控制台)商品库存管理系统