{ "index代码片段": { "prefix": "tplindex", "body": [ "import 'package:flutter/material.dart';", "import 'package:json_annotation/json_annotation.dart';", "import 'package:wisdom_cli/wisdom_cli.dart';", "import 'store.dart';", "import 'view.dart';", "part 'index.g.dart';", "///路由传递的参数", "@JsonSerializable(nullable: false)", "class ${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageArguments {", "final String id;", "${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageArguments({this.id});", "", "///", "///", "///", "///", "///", "///", "///", "//***以下为模板代码谨慎修改***", "factory ${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageArguments.fromJson(Map json) {", "return _\\$${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageArgumentsFromJson(json??{});", "}", "factory ${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageArguments.fromRouteArguments(BuildContext context) {", "return _\\$${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageArgumentsFromJson(", "ModalRoute.of(context).settings?.arguments", ");", "}", "Map toJson() => _\\$${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageArgumentsToJson(this);", "}", "///", "///", "///", "///", "///", "//***以下为模板代码谨慎修改***", "class ${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}Page extends StatelessWidget {", "const ${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}Page({Key key}) : super(key: key);", "@override", "Widget build(BuildContext context) {", "return MultiProvider(", "providers: [", "ChangeNotifierProvider(create: (_) => ${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageStore(context)),", "],", "child: ${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageView(),", ");", "}", "}", ], "description": "index.dart代码片段" }, "store.dart代码片段": { "prefix": "tplstore", "body": [ "import 'package:flutter/material.dart';", "import 'package:mobx/mobx.dart';", "import 'index.dart';", "part 'store.g.dart';", "class ${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageStore = _${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageStore with _$${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageStore, ChangeNotifier;", "abstract class _${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageStore with Store {", "///上下文(请勿修改)", "final BuildContext context;", "///路由参数(请勿修改)", "${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageArguments get arguments =>", "${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageArguments.fromRouteArguments(context);", "", "_${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageStore(this.context){", "///可在此处理进入页面前的操作,比如响应路由的传参进行赋值。", "}", "///", "//@observable", "//int value;", "}", ], "description": "store.dart代码片段" }, "view.dart代码片段": { "prefix": "tplview", "body": [ "import 'package:flutter/material.dart';", "import 'package:wisdom_cli/wisdom_cli.dart';", "import 'store.dart';", "//part 'components/list.dart';", "", "class ${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageView extends StatelessWidget {", "const ${TM_DIRECTORY/.*pages\\/(.)/${1:/upcase}/}PageView({Key key}) : super(key: key);", "@override", "Widget build(BuildContext context) {", "// final store = Provider.of<${TM_DIRECTORY/.*pages\\/([a-z])(.*)/${1:/upcase}${2}/}PageStore>(context, listen: false) ;", "// final style = WTheme.of(context);", "// final colorScheme = style.colorScheme;", "return Scaffold(", "///", ");", "}", "}", ], "description": "view.dart代码片段" }, "component代码片段": { "prefix": "tplcomponent", "body": [ "part of '../view.dart';", "", "class _${TM_FILENAME_BASE/(^.)|_(.{1})/${1:/upcase}${2:/upcase}/g}Component extends StatelessWidget {", "const _${TM_FILENAME_BASE/(^.)|_(.{1})/${1:/upcase}${2:/upcase}/g}Component({Key key}) : super(key: key);", "@override", "Widget build(BuildContext context) {", "// final store = Provider.of<${TM_DIRECTORY/.*pages\\/([a-z])(.*)\\/.*/${1:/upcase}${2}/}PageStore>(context, listen: false) ;", "// final style = WTheme.of(context);", "// final colorScheme = style.colorScheme;", "return Container();", "}", "}", ], "description": "component代码片段" }, "globalcomponent代码片段": { "prefix": "tplglobalcomponent", "body": [ "import 'package:flutter/material.dart';", "class ${TM_FILENAME_BASE/(^.)|_(.{1})/${1:/upcase}${2:/upcase}/g}Component extends StatelessWidget {", "const ${TM_FILENAME_BASE/(^.)|_(.{1})/${1:/upcase}${2:/upcase}/g}Component({Key key}) : super(key: key);", "@override", "Widget build(BuildContext context) {", "// final style = WTheme.of(context);", "// final colorScheme = theme.colorScheme;", "return Container();", "}", "}", ], "description": "全局component代码片段" }, "globalstore代码片段": { "prefix": "tplglobalstore", "body": [ "import 'package:mobx/mobx.dart';", "part '${TM_FILENAME_BASE}.g.dart';", "class ${TM_FILENAME_BASE/(^.)|_(.{1})/${1:/upcase}${2:/upcase}/g}GlobalStore = _${TM_FILENAME_BASE/(^.)|_(.{1})/${1:/upcase}${2:/upcase}/g}GlobalStore with _$${TM_FILENAME_BASE/(^.)|_(.{1})/${1:/upcase}${2:/upcase}/g}GlobalStore;", "abstract class _${TM_FILENAME_BASE/(^.)|_(.{1})/${1:/upcase}${2:/upcase}/g}GlobalStore with Store {", "@observable", "int value;", "}", ], "description": "全局store代码片段" }, "model代码片段": { "prefix": "tplmodel", "body": [ "import 'package:json_annotation/json_annotation.dart';", "part '${TM_FILENAME_BASE}.g.dart';", "@JsonSerializable(nullable: false)", "class ${TM_FILENAME_BASE/(^.)|_(.{1})/${1:/upcase}${2:/upcase}/g} {", "final String value;", "${TM_FILENAME_BASE/(^.)|_(.{1})/${1:/upcase}${2:/upcase}/g}({this.value});", "///", "///", "///", "///", "///", "///", "///", "//***以下为模板代码谨慎修改***", "factory ${TM_FILENAME_BASE/(^.)|_(.{1})/${1:/upcase}${2:/upcase}/g}.fromJson(Map json) =>", "_$${TM_FILENAME_BASE/(^.)|_(.{1})/${1:/upcase}${2:/upcase}/g}FromJson(json);", "Map toJson() => _$${TM_FILENAME_BASE/(^.)|_(.{1})/${1:/upcase}${2:/upcase}/g}ToJson(this);", "}", ], "description": "全局store代码片段" }, "api single代码片段": { "prefix": "tplapisingle", "body": [ "static Future> ${1:apiName}(data) async {", "var res = await HttpUtil.instance.get(", "'$prefix/${2:path}',", "queryParameters: data,", ");", "", "return ResModel<${3:Type}>(", "json: res.data,", "to: (v) => v,", "from: (v) => v,", ");", "}", ], "description": "data只返回了一个单字段" }, "api map代码片段": { "prefix": "tplapimap", "body": [ "static Future> ${1:apiName}(data) async {", "var res = await HttpUtil.instance.get(", "'$prefix/${2:path}',", "queryParameters: data,", ");", "", "return ResModel<${3:DataModel}>(", "json: res.data,", "to: (v) => v.toJson(),", "from: (v) => ${3:DataModel}.fromJson(v),", ");", "}", ], "description": "data返回了一个map" }, "api list代码片段": { "prefix": "tplapilist", "body": [ "static Future>> ${1:apiName}(data) async {", "var res = await HttpUtil.instance.get(", "'$prefix/${2:path}',", "queryParameters: data,", ");", "", "return ResModel>(", "json: res.data,", "to: (v) => (v ?? []).map((f) => f.toJson()).toList(),", "from: (v) => (v ?? []).map<${3:ItemModel}>((f) => ${3:ItemModel}.fromJson(f)).toList(),", ");", "}", ], "description": "data返回了一个list" }, "api paging代码片段": { "prefix": "tplapipaging", "body": [ "static Future>> ${1:apiName}(data) async {", "var res = await HttpUtil.instance.get(", "'$prefix/${2:path}',", "queryParameters: data,", ");", "", "return ResModel>(", "json: res.data,", "to: (v) => v.toJson(),", "from: (v) => PagingModel(", "json: v,", "to: (v) => v.toJson(),", "from: (v) => ${3:ItemModel}.fromJson(v),", "),", ");", "}", ], "description": "data返回了分页数据" }, "getList代码片段": { "prefix": "tplGetList", "body": [ "final scrollViewKey = GlobalKey();", "late Map params = {", "'pageNum': 1,", " 'pageSize': 20,", "};", "List list = [];", "Future getList({bool isLoad = true}) async {", "if (!isLoad) params['pageNum'] = 1;", "var res = await NameApi.getList({", "...params,", "});", "final _data = res?.data;", "final _list = _data?.list ?? [];", "if ((_data?.total ?? 0) == 0) {", "scrollViewKey.currentState.isEmpty();", "} else if ((_data?.pages ?? 0) <= (_data?.pageNum ?? 0)) {", "scrollViewKey.currentState.isLast();", "} else {", "params['pageNum']++;", "}", "isLoad ? list.addAll(_list) : list = _list;", "notifyListeners();", "}", ], "description": "getList代码片段" }, }