0.0.25 • Published 3 years ago
订单评价
引入
全局引入,在 miniprogram 根目录下的app.json
中配置,局部引入,在需要引入的页面或组件的index.json
中配置。
// app.json 或 index.json
{
"usingComponents": {
"wr-goods-review": "@retailwe/ui-goods-review-submit/index"
}
}
基本用法
<wr-goods-review review-data="{{reviewData}}" upload-method="{{uploadMethod}}" bind:submit="onSubmit" />
Props
// 评价星星选中状态
// 0 - 未选中
// 1 - 半选中
// 2 - 全选中
type SignalStar = 0 | 1 | 2;
interface ReviewData {
goods: {
squid: string;
skuId: string;
detail: {
image: string;
title: string;
/** 规格描述 */
desc: string;
};
checkItems: [
{
name: "匿名评价";
value: "anonymous";
checked: boolean;
}
];
goodComment: {
/** 商品评价 */
rate: SignalStar;
/** 评价内容 */
label: string;
/** 上传图片 */
images: string[];
};
}[];
storeComment: {
/** 物流评价 */
logisticsRate: SignalStar;
/** 服务评价 */
servicesRate: SignalStar;
};
}
// 上传函数出参
interface Result {
url: string;
}
// 上传函数入参
interface UploadFilesParams {
type: "image" | "video";
name: string;
path: string;
}
// 上传函数
interface UploadMethod {
method: {
/**
* @example
*
* ```typescript
* import { uploadFileRequest } from '@/services/cos';
*
* class examplePage {
* data: { uploadMethod: method: this.uploadMethod },
*
* uploadMethod (file, onProgress) {
* const { name, type, path } = file;
*
* return uploadFileRequest(
* // bizName / buckType 值应根据实际情况调整
* { bizName: 'rights', buckType: 1, type, name, path },
* onProgress,
* ).then(({ key }) => ({ url: key }))
* }
* }
* ```
*/
(params: UploadFilesParams, onProgress: (...arg: any) => void): Promise<
Result
>;
};
}
参数 | 说明 | 类型 | 默认值 | 版本 |
---|
i-class | 自定义根节点 class 类名 | string | - | - |
review-data | 评价数据,非受控 | ReviewData | - | - |
upload-method | 文件上传处理函数,非受控 | UploadMethod | - | - |
loading | 加载中标志,受控 | boolean | false | - |
Event
事件名 | 说明 | 参数 |
---|
submit | 点击 提交 组件时触发 | ReviewData |
validationError | 表单校验错误 | {msg: string} |
外部样式类