De 0 à 1 : notes de développement sur le mini programme Score Query avec des colonnes de données personnalisables

arrière-plan

L'applet de publication et de requête des scores est un outil de gestion des scores. Les utilisateurs peuvent utiliser l'applet pour interroger les scores de divers sujets (personnalisable) à tout moment selon des conditions (personnalisables). En outre, l'applet de requête de score fournit également des informations d'actualité, afin que les utilisateurs puissent se tenir au courant des diverses activités scolaires et éviter de manquer des annonces importantes. Les écoles ou les enseignants peuvent se connecter au système en arrière-plan, saisir les informations sur les résultats des candidats et personnaliser plusieurs sujets de test, personnaliser les conditions de requête et prendre en charge plusieurs combinaisons de conditions de requête.

Planification des fonctions principales

Le projet a prévu les fonctions suivantes : notifications et annonces, listes de scores, requête de scores multi-conditions, partage de scores, saisie par lots Excel des scores, exportation par lots des scores, sujets de scores personnalisés, conditions de requête personnalisées et autres fonctions.

Conception de base de données

`SheetModel.DB_STRUCTURE = { _pid : 'string|true', SHEET_ID : 'string|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',

} ; `

mise en œuvre de base

`/** Parcourir les informations*/ 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);
}

`

Conception de l'interface utilisateur client

Conception de l'interface utilisateur de gestion

Code source

adresse du code source du gîte

Linus a pris sur lui d'empêcher les développeurs du noyau de remplacer les tabulations par des espaces. Son père est l'un des rares dirigeants capables d'écrire du code, son deuxième fils est directeur du département de technologie open source et son plus jeune fils est un noyau open source. contributeur. Robin Li : Le langage naturel deviendra un nouveau langage de programmation universel. Le modèle open source prendra de plus en plus de retard sur Huawei : il faudra 1 an pour migrer complètement 5 000 applications mobiles couramment utilisées vers Java, qui est le langage le plus enclin . vulnérabilités tierces. L'éditeur de texte riche Quill 2.0 a été publié avec des fonctionnalités, une fiabilité et des développeurs. L'expérience a été grandement améliorée. Bien que l'ouverture soit terminée, Meta Llama 3 a été officiellement publié. la source de Laoxiangji n'est pas le code, les raisons derrière cela sont très réconfortantes. Google a annoncé une restructuration à grande échelle.
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/u/3808186/blog/8702805
conseillé
Classement