0에서 1까지: 사용자 정의 가능한 데이터 열이 포함된 점수 쿼리 미니 프로그램에 대한 개발 노트

배경

점수 공개 및 조회 애플릿은 점수 관리를 위한 도구입니다. 사용자는 애플릿을 사용하여 조건에 따라 언제든지 다양한 과목의 점수를 조회할 수 있습니다(사용자 정의 가능). 또한 점수 쿼리 애플릿은 뉴스 정보도 제공하므로 사용자는 중요한 공지 사항을 놓치지 않고 다양한 학교 활동을 확인할 수 있습니다. 학교나 교사는 백그라운드에서 시스템에 로그인하여 응시자의 점수 정보를 입력하고, 여러 시험 과목을 사용자 정의하고, 쿼리 조건을 사용자 정의하고, 여러 쿼리 조건 조합을 지원할 수 있습니다.

주요 기능 기획

프로젝트에서는 알림 및 공지, 점수 목록, 다중 조건 점수 쿼리, 점수 공유, 백엔드 Excel 일괄 점수 입력, 백엔드 일괄 점수 내보내기, 백엔드 사용자 지정 점수 항목, 백엔드 사용자 지정 쿼리 조건 및 기타 기능을 계획했습니다.

데이터베이스 설계

`SheetModel.DB_STRUCTURE = { _pid: '문자열|true', SHEET_ID: '문자열|true',

SHEET_TITLE: 'string|true|comment=标题',
SHEET_STATUS: 'int|true|default=1|comment=状态 0=未启用,1=使用中',

SHEET_CATE_ID: 'string|true|default=0|comment=分类',
SHEET_CATE_NAME: 'string|false|comment=分类冗余',

SHEET_ORDER: 'int|true|default=9999',
SHEET_VOUCH: 'int|true|default=0',

SHEET_FORMS: 'array|true|default=[]',
SHEET_OBJ: 'object|true|default={}',

SHEET_QR: 'string|false',
SHEET_VIEW_CNT: 'int|true|default=0',
SHEET_DATA_CNT: 'int|true|default=0',

SHEET_ADD_TIME: 'int|true',
SHEET_EDIT_TIME: 'int|true',
SHEET_ADD_IP: 'string|false',
SHEET_EDIT_IP: 'string|false',

}; SheetDataModel.DB_STRUCTURE = { _pid: 'string|true', SHEET_DATA_ID: 'string|true', SHEET_DATA_SHEET_ID: 'string|true|comment=FK', SHEET_DATA_SHEET_TITLE: 'string|false',

SHEET_DATA_FORMS: 'array|true|default=[]', 

SHEET_DATA_ADD_TIME: 'int|true',
SHEET_DATA_EDIT_TIME: 'int|true',
SHEET_DATA_ADD_IP: 'string|false',
SHEET_DATA_EDIT_IP: 'string|false',

}; `

핵심 구현

`/** 정보 찾아보기*/ async viewSheet(id) {

	let fields = '*';

	let where = {
		_id: id,
		SHEET_STATUS: SheetModel.STATUS.COMM
	}
	let sheet = await SheetModel.getOne(where, fields);
	if (!sheet) return null;

	SheetModel.inc(id, 'SHEET_VIEW_CNT', 1);



	return sheet;
}


/** 取得分页列表 */
async getSheetList({
	cateId, //分类查询条件
	search, // 搜索条件
	sortType, // 搜索菜单
	sortVal, // 搜索菜单
	orderBy, // 排序 
	page,
	size,
	isTotal = true,
	oldTotal
}) {

	orderBy = orderBy || {
		'SHEET_ORDER': 'asc',
		'SHEET_ADD_TIME': 'desc'
	};
	let fields = 'SHEET_QR,SHEET_ADD_TIME,SHEET_OBJ,SHEET_VIEW_CNT,SHEET_TITLE,SHEET_ORDER,SHEET_STATUS,SHEET_CATE_NAME';

	let where = {};
	where.and = {
		_pid: this.getProjectId() //复杂的查询在此处标注PID
	}; 
	if (cateId && cateId !== '0') where.and.SHEET_CATE_ID = cateId;

	where.and.SHEET_STATUS = SheetModel.STATUS.COMM; // 状态   

	if (util.isDefined(search) && search) {
		where.or = [{
			SHEET_TITLE: ['like', search]
		},];
	} else if (sortType && util.isDefined(sortVal)) {
		// 搜索菜单
		switch (sortType) {
			case 'cateId': {
				if (sortVal) where.and.SHEET_CATE_ID = String(sortVal);
				break;
			}
			case 'sort': {
				orderBy = this.fmtOrderBySort(sortVal, 'SHEET_ADD_TIME');
				break;
			}

		}
	} 
	return await SheetModel.getList(where, fields, orderBy, page, size, isTotal, oldTotal);
}

`

클라이언트 UI 디자인

관리 UI 디자인

소스 코드

gitee 소스 코드 주소

Linus는 커널 개발자가 탭을 공백으로 대체하는 것을 막기 위해 스스로 노력했습니다. 그의 아버지는 코드를 작성할 수 있는 몇 안되는 리더 중 한 명이고, 둘째 아들은 오픈 소스 기술 부서의 책임자이며, 막내 아들은 오픈 소스 코어입니다. 기고자 Robin Li: 자연 언어 새로운 범용 프로그래밍 언어가 될 것입니다. 오픈 소스 모델은 Huawei에 비해 점점 더 뒤쳐질 것입니다 . 일반적으로 사용되는 5,000개의 모바일 애플리케이션을 Hongmeng으로 완전히 마이그레이션하는 데 1년이 걸릴 것입니다. 타사 취약점. 기능, 안정성 및 개발자의 경험이 크게 개선된 Quill 2.0 출시되었습니다. Ma Huateng과 Zhou Hongyi는 "원한을 제거하기 위해" 공식적으로 출시되었습니다. Laoxiangji의 소스는 코드가 아닙니다. Google이 대규모 구조 조정을 발표한 이유는 매우 훈훈합니다.
{{o.이름}}
{{이름}}

추천

출처my.oschina.net/u/3808186/blog/8702805