You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

283 lines
6.9 KiB

import 'package:flutter/material.dart';
4 years ago
import 'package:aku_community_manager/const/resource.dart';
enum FIX_ENUM {
///待派单
HAND_OUT,
///已派单&&待接单
WAIT_PICKUP,
///处理中
PROCESSING,
///已处理
DONE,
}
class FixModel {
static Map<FIX_ENUM, String> managerRoleMap = {
FIX_ENUM.HAND_OUT: '待派单',
FIX_ENUM.WAIT_PICKUP: '已派单',
FIX_ENUM.PROCESSING: '处理中',
FIX_ENUM.DONE: '已处理',
};
static Map<FIX_ENUM, String> otherRoleMap = {
FIX_ENUM.HAND_OUT: '',
FIX_ENUM.WAIT_PICKUP: '待接单',
FIX_ENUM.PROCESSING: '处理中',
FIX_ENUM.DONE: '已处理',
};
String title;
DateTime dateStart;
FIX_ENUM type;
///dynamic type
///
///当img 的类型为String时渲染asset图片当img 类型为File 时渲染File图片
List imgs;
FixDetailModel detail;
FixModel({
@required this.title,
@required this.dateStart,
@required this.type,
@required this.imgs,
@required this.detail,
});
static List<FixModel> initList() {
return [
4 years ago
FixModel(
title: '小区大道路灯坏了。',
dateStart: DateTime(2020, 10, 25, 14, 28, 56),
type: FIX_ENUM.HAND_OUT,
imgs: [
R.ASSETS_STATIC_FIX_LIGHT1_PNG,
R.ASSETS_STATIC_FIX_LIGHT2_PNG,
R.ASSETS_STATIC_FIX_LIGHT3_PNG,
],
detail: FixDetailModel(
userName: '杨建',
userPhoneNumber: '18882928888',
fixArea: 'C区',
fixStatuses: [
FixStatus(title: '申请保修', date: DateTime(2020, 10, 23, 10, 28, 56)),
],
),
),
4 years ago
FixModel(
title: '小区西大门车栏坏了,请物业尽快修理更换。',
dateStart: DateTime(2020, 10, 21, 7, 28, 56),
type: FIX_ENUM.WAIT_PICKUP,
imgs: [R.ASSETS_STATIC_FIX_AIR1_PNG, R.ASSETS_STATIC_FIX_AIR2_PNG],
detail: FixDetailModel(
userName: '杨建',
userPhoneNumber: '18882928888',
fixArea: 'B区',
type: FIX_PAYMENT_TYPE.FREE,
limit: FIX_DATE_LIMIT.HOUR_24,
subType: FIX_SUB_TYPE.NORMAL,
fixStatuses: [
FixStatus(title: '申请保修', date: DateTime(2020, 10, 23, 10, 28, 56)),
FixStatus(
title: '分派给李保国师傅', date: DateTime(2020, 10, 23, 10, 32, 14)),
FixStatus(title: '师傅已接单', date: DateTime(2020, 10, 23, 10, 38, 26)),
],
result: FixResult(
detail: '电饭煲插头没插',
material: '',
imgs: [R.ASSETS_STATIC_FIX_FOOD_PNG],
),
),
),
FixModel(
title: '家里空调坏了,请师傅抓紧时间尽快维修。',
dateStart: DateTime(2020, 10, 21, 7, 28, 56),
type: FIX_ENUM.PROCESSING,
imgs: [R.ASSETS_STATIC_FIX_AIR1_PNG, R.ASSETS_STATIC_FIX_AIR2_PNG],
detail: FixDetailModel(
userName: '杨建',
userPhoneNumber: '18882929292',
fixArea: 'A区',
type: FIX_PAYMENT_TYPE.FREE,
limit: FIX_DATE_LIMIT.HOUR_24,
subType: FIX_SUB_TYPE.NORMAL,
fixStatuses: [
FixStatus(title: '申请保修', date: DateTime(2020, 10, 23, 10, 28, 56)),
FixStatus(
title: '分派给李保国师傅', date: DateTime(2020, 10, 23, 10, 32, 14)),
FixStatus(title: '师傅已接单', date: DateTime(2020, 10, 23, 10, 38, 26)),
],
),
),
FixModel(
title: '家中电饭煲出问题了,请师傅速来。',
dateStart: DateTime(2020, 10, 22, 9, 28, 56),
type: FIX_ENUM.DONE,
imgs: [R.ASSETS_STATIC_FIX_FOOD2_PNG, R.ASSETS_STATIC_FIX_FOOD_PNG],
detail: FixDetailModel(
userName: '杨建',
userPhoneNumber: '18882929292',
fixArea: 'A区',
4 years ago
type: FIX_PAYMENT_TYPE.PAY,
limit: FIX_DATE_LIMIT.HOUR_24,
subType: FIX_SUB_TYPE.NORMAL,
fixStatuses: [
FixStatus(title: '申请保修', date: DateTime(2020, 10, 23, 10, 28, 56)),
FixStatus(
title: '分派给李保国师傅', date: DateTime(2020, 10, 23, 10, 32, 14)),
FixStatus(title: '师傅已接单', date: DateTime(2020, 10, 23, 10, 38, 26)),
FixStatus(title: '处理完成', date: DateTime(2020, 10, 23, 11, 01, 08)),
],
result: FixResult(
detail: '电饭煲插头没插',
material: '',
imgs: [R.ASSETS_STATIC_FIX_FOOD_PNG],
),
review: UserReviewInfo(
rate: 5,
content: '师傅太用心了',
),
4 years ago
priceDetail: FixPriceDetail(
humanPrice: 10,
materialPrice: 0,
),
),
),
];
}
}
///派单类型
enum FIX_PAYMENT_TYPE {
FREE,
PAY,
}
4 years ago
Map<FIX_PAYMENT_TYPE, String> fixPaymentMap = {
FIX_PAYMENT_TYPE.FREE: '无偿服务',
FIX_PAYMENT_TYPE.PAY: '有偿服务',
};
Map<String, FIX_PAYMENT_TYPE> fixPaymentStringMap = {
'无偿服务': FIX_PAYMENT_TYPE.FREE,
'有偿服务': FIX_PAYMENT_TYPE.PAY,
};
///工单子类
enum FIX_SUB_TYPE {
///一般单
NORMAL,
///加急单
HURRY,
}
4 years ago
Map<FIX_SUB_TYPE, String> fixSubTypeMap = {
FIX_SUB_TYPE.NORMAL: '一般单',
FIX_SUB_TYPE.HURRY: '加急单',
};
Map<String, FIX_SUB_TYPE> fixSubTypeStringMap = {
'一般单': FIX_SUB_TYPE.NORMAL,
'加急单': FIX_SUB_TYPE.HURRY,
};
///工单时限
enum FIX_DATE_LIMIT {
HOUR_24,
HOUR_12,
HOUR_8,
}
4 years ago
Map<FIX_DATE_LIMIT, String> fixDateLimitMap = {
FIX_DATE_LIMIT.HOUR_24: '24小时内处理',
FIX_DATE_LIMIT.HOUR_12: '12小时内处理',
FIX_DATE_LIMIT.HOUR_8: '8小时内处理',
};
Map<String, FIX_DATE_LIMIT> fixDateLimitStringMap = {
'24小时内处理': FIX_DATE_LIMIT.HOUR_24,
'12小时内处理': FIX_DATE_LIMIT.HOUR_12,
'8小时内处理': FIX_DATE_LIMIT.HOUR_8,
};
class FixDetailModel {
///报修人
String userName;
String userPhoneNumber;
String fixArea;
FIX_PAYMENT_TYPE type;
FIX_DATE_LIMIT limit;
FIX_SUB_TYPE subType;
List<FixStatus> fixStatuses;
FixResult result;
UserReviewInfo review;
4 years ago
FixPriceDetail priceDetail;
FixDetailModel({
this.userName,
this.userPhoneNumber,
this.fixArea,
this.type,
this.limit,
this.subType,
this.fixStatuses,
this.result,
this.review,
4 years ago
this.priceDetail,
});
}
class FixStatus {
String title;
DateTime date;
FixStatus({
this.title,
this.date,
});
}
class FixResult {
String detail;
String material;
///dynamic img
List imgs;
FixResult({
this.detail,
this.material,
this.imgs,
});
}
class UserReviewInfo {
double rate;
String content;
UserReviewInfo({
this.rate,
this.content,
});
}
4 years ago
class FixPriceDetail {
double humanPrice;
double materialPrice;
FixPriceDetail({
this.humanPrice,
this.materialPrice,
});
double get allPrice => humanPrice + materialPrice;
}