从0到1:企业官网小程序开发笔记(一)

可行性研究

企业公司官网小程序 ,旨在为企业建立一个在线的官方网站,并提供公司的信息、产品、服务和联系方式等。它扩展了传统企业官网的功能,使用户能够通过微信小程序的便利性和互动性,方便用户随时随地获取企业信息,并进行产品购买、咨询和互动。它可以作为企业在移动端展示和推广的重要工具,提升品牌形象、扩大市场影响力,并为用户提供更好的服务体验。

功能设计

  • 公司介绍:提供详细的公司背景、历史、使命和愿景等,让用户了解企业的基本信息。

  • 产品和服务展示:展示公司的产品和服务,包括详细的产品描述、图片、视频和价格等,以便用户获取产品信息并进行购买。

  • 新闻和动态:定期更新公司的新闻、行业动态和活动情况,让用户了解企业的最新进展。

  • 联系方式:提供公司的联系方式,包括电话、地址、电子邮件和在线联系表单等,以方便用户与企业进行沟通和联系。

  • 在线客服:提供在线客服功能,让用户可以直接与客服代表进行实时沟通和问题解答。

  • 搜索功能:提供搜索功能,方便用户快速找到所需的信息。

  • 数据统计和分析:收集用户访问数据,进行数据统计和分析,帮助企业了解用户行为和需求,优化网站体验和服务。

头脑风暴

数据库设计

ProductModel.DB_STRUCTURE = {
	_pid: 'string|true',
	PRODUCT_ID: 'string|true',

	PRODUCT_TITLE: 'string|false|comment=标题',
	PRODUCT_STATUS: 'int|true|default=1|comment=状态 0/1',

	PRODUCT_CATE_ID: 'array|true|comment=分类编号',
	PRODUCT_CATE_NAME: 'array|true|comment=分类冗余',

	PRODUCT_ORDER: 'int|true|default=9999',
	PRODUCT_VOUCH: 'int|true|default=0',

	PRODUCT_COMMENT_CNT: 'int|true|default=0',

	PRODUCT_QR: 'string|false',
	PRODUCT_VIEW_CNT: 'int|true|default=0|comment=访问次数',


	PRODUCT_FORMS: 'array|true|default=[]',
	PRODUCT_OBJ: 'object|true|default={}',

	PRODUCT_ADD_TIME: 'int|true',
	PRODUCT_EDIT_TIME: 'int|true',
	PRODUCT_ADD_IP: 'string|false',
	PRODUCT_EDIT_IP: 'string|false',
};

Cate1Model.DB_STRUCTURE = {
	_pid: 'string|true',
	CATE1_ID: 'string|true',

	CATE1_ORDER: 'int|true|default=9999',

	CATE1_TITLE: 'string|false|comment=标题',
	CATE1_STATUS: 'int|true|default=1|comment=状态 0/1',

	CATE1_CNT: 'int|true|default=0',

	CATE1_FORMS: 'array|true|default=[]',
	CATE1_OBJ: 'object|true|default={}',

	CATE1_ADD_TIME: 'int|true',
	CATE1_EDIT_TIME: 'int|true',
	CATE1_ADD_IP: 'string|false',
	CATE1_EDIT_IP: 'string|false',
};


核心实现

/** 浏览资讯信息 */
	async viewProduct(id) {

		let fields = '*';

		let where = {
			_id: id,
			PRODUCT_STATUS: 1
		}
		let product = await ProductModel.getOne(where, fields);
		if (!product) return null; 

		return product;
	}


	/** 取得分页列表 */
	async getProductList({
		cateId, 
		search, // 搜索条件
		sortType, // 搜索菜单
		sortVal, // 搜索菜单
		orderBy, // 排序 
		page,
		size,
		isTotal = true,
		oldTotal
	}) {
 
		orderBy = orderBy || {
			'PRODUCT_ORDER': 'asc',
			'PRODUCT_ADD_TIME': 'desc'
		};
		let fields = 'PRODUCT_VIEW_CNT,PRODUCT_TITLE,PRODUCT_CATE_ID,PRODUCT_ADD_TIME,PRODUCT_ORDER,PRODUCT_STATUS,PRODUCT_CATE_NAME,PRODUCT_OBJ';

		let where = {};
		where.and = {
			_pid: this.getProjectId() //复杂的查询在此处标注PID
		};
		where.and.PRODUCT_STATUS = 1; // 状态 

		if (cateId && cateId !== '0') where.and.PRODUCT_CATE_ID = cateId;

		if (util.isDefined(search) && search) {
			where.or = [
				{ PRODUCT_TITLE: ['like', search] },
			];
		} else if (sortType && util.isDefined(sortVal)) {
			// 搜索菜单
			switch (sortType) {
				case 'sort': {
					orderBy = this.fmtOrderBySort(sortVal, 'PRODUCT_ADD_TIME');
					break;
				}
				case 'cateId': {
					if (sortVal) where.and.PRODUCT_CATE_ID = String(sortVal);
					break;
				}
			}
		}
 
		return await ProductModel.getList(where, fields, orderBy, page, size, isTotal, oldTotal);
	}  

}

UI设计

后台管理系统

git代码

下载

Linus 亲自动手,阻止内核开发者用空格替换制表符 父亲是少数会写代码的领导人、次子是开源科技部主管、幼子是开源核心贡献者 李彦宏:自然语言将成为新的通用编程语言、开源模型会越来越落后 华为:用 1 年时间将 5000 个常用手机应用全面迁移至鸿蒙 Java 是最容易出现第三方漏洞的语言 富文本编辑器 Quill 2.0 重磅发布,特性、可靠性与开发者体验大幅提升 马化腾周鸿祎握手“泯恩仇” Meta Llama 3 正式发布 虽然老乡鸡开源的不是代码,但背后的原因却让人很暖心 谷歌宣布进行大规模重组
{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/3808186/blog/11048696