taro-react-uilib 1.3.4-15 → 1.3.4-17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/components/LinkMan/index.js +1 -1
- package/dist/components/LinkMan/index.js.map +1 -1
- package/dist/components/Result/index.js +1 -1
- package/dist/components/Result/index.js.map +1 -1
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +6 -6
- package/dist/index.umd.js.map +1 -1
- package/lib/components/LinkMan/index.js +10 -8
- package/lib/components/LinkMan/index.js.map +1 -1
- package/lib/components/Result/index.js +8 -1
- package/lib/components/Result/index.js.map +1 -1
- package/package.json +1 -1
- package/types/components/LinkMan/index.d.ts +1 -0
- package/types/components/Result/index.d.ts +8 -1
- package/dist/components/Result/images/result-empty.png.js +0 -2
- package/dist/components/Result/images/result-empty.png.js.map +0 -1
- package/dist/components/Result/images/result-fail.png.js +0 -2
- package/dist/components/Result/images/result-fail.png.js.map +0 -1
- package/dist/components/Result/images/result-networkErr.png.js +0 -2
- package/dist/components/Result/images/result-networkErr.png.js.map +0 -1
- package/dist/components/Result/images/result-submitted.png.js +0 -2
- package/dist/components/Result/images/result-submitted.png.js.map +0 -1
- package/dist/components/Result/images/result-success.png.js +0 -2
- package/dist/components/Result/images/result-success.png.js.map +0 -1
- package/dist/components/Result/images/result-wait.png.js +0 -2
- package/dist/components/Result/images/result-wait.png.js.map +0 -1
- package/dist/components/Result/statusMap.js +0 -2
- package/dist/components/Result/statusMap.js.map +0 -1
- package/lib/components/Result/statusMap.js +0 -15
- package/lib/components/Result/statusMap.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
## [1.3.4-17](https://code.xhdev.xyz/h5group/taro-uilib/compare/v1.3.4-16...v1.3.4-17) (2023-08-21)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* linkman可以不填写联系人姓名 ([8ba0d8e](https://code.xhdev.xyz/h5group/taro-uilib/commits/8ba0d8e2b34e00f91fe03104bfe02ce8ff6b879a))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## [1.3.4-16](https://code.xhdev.xyz/h5group/taro-uilib/compare/v1.3.4-15...v1.3.4-16) (2023-08-18)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* result ([d8d3dd7](https://code.xhdev.xyz/h5group/taro-uilib/commits/d8d3dd7562a6e3b447e55b10523d1ad028692da4))
|
|
16
|
+
* result 图片放cdn ([5ea1bd2](https://code.xhdev.xyz/h5group/taro-uilib/commits/5ea1bd2cdd0e241cf9b2a9f8adf894cd0574a24e))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
1
20
|
## [1.3.4-15](https://code.xhdev.xyz/h5group/taro-uilib/compare/v1.3.4-14...v1.3.4-15) (2023-08-17)
|
|
2
21
|
|
|
3
22
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__read as n,__spreadArray as e}from"../node_modules/tslib/tslib.es6.js";import{View as a,Input as t}from"@tarojs/components";import l,{forwardRef as i,useState as m,useEffect as r,useCallback as o,useMemo as u,useImperativeHandle as c}from"react";import{inputRange as s}from"../src/utils/index.js";import k from"classnames";import h from"../ActionSheet/index.js";var p=["一","二","三","四","五","六","七","八","九","十"],f={linkmanName:"请输入联系人姓名",linkmanPhone:"请输入正确的手机号",relationType:"请选择与联系人关系"},N=[{value:"FATHER",text:"父亲"},{value:"MOTHER",text:"母亲"},{value:"MATE",text:"配偶"},{value:"CHILDREN",text:"子女"},{value:"SIBLING",text:"兄弟姐妹"},{value:"FRIENDS",text:"朋友"},{value:"COLLEAGUE",text:"同事"},{value:"RELATIVES",text:"亲戚"},{value:"OTHER",text:"其他"}],E="h5"!==process.env.TARO_ENV||window.navigator.userAgent.includes("xhqb"),x=i((function(i,x){var v=i.linkManNum,P=i.relations,T=void 0===P?N:P,d=i.onChange,g=i.onGetContacts,V=i.showImportIcon,y=void 0===V?E:V,A=i.onBlur,R=i.onCheckRelation,b=i.onInputChange,C=n(m([]),2),
|
|
1
|
+
import{__read as n,__spreadArray as e}from"../node_modules/tslib/tslib.es6.js";import{View as a,Input as t}from"@tarojs/components";import l,{forwardRef as i,useState as m,useEffect as r,useCallback as o,useMemo as u,useImperativeHandle as c}from"react";import{inputRange as s}from"../src/utils/index.js";import k from"classnames";import h from"../ActionSheet/index.js";var p=["一","二","三","四","五","六","七","八","九","十"],f={linkmanName:"请输入联系人姓名",linkmanPhone:"请输入正确的手机号",relationType:"请选择与联系人关系"},N=[{value:"FATHER",text:"父亲"},{value:"MOTHER",text:"母亲"},{value:"MATE",text:"配偶"},{value:"CHILDREN",text:"子女"},{value:"SIBLING",text:"兄弟姐妹"},{value:"FRIENDS",text:"朋友"},{value:"COLLEAGUE",text:"同事"},{value:"RELATIVES",text:"亲戚"},{value:"OTHER",text:"其他"}],E="h5"!==process.env.TARO_ENV||window.navigator.userAgent.includes("xhqb"),x=i((function(i,x){var v=i.linkManNum,P=i.relations,T=void 0===P?N:P,d=i.onChange,g=i.onGetContacts,V=i.showImportIcon,y=void 0===V?E:V,A=i.onBlur,R=i.onCheckRelation,b=i.onInputChange,C=i.needName,I=void 0===C||C,O=n(m([]),2),_=O[0],B=O[1],F=n(m([]),2),L=F[0],M=F[1];r((function(){B(Array(v).fill(1).map((function(){return{linkmanName:"",linkmanPhone:"",relationType:"",relationValue:""}}))),M(Array(v).fill(1).map((function(){return{linkmanName:"",linkmanPhone:"",relationType:""}})))}),[v]);var S=o((function(n){return!!/1\d{10}/.test(n)}),[]),j=o((function(n,e){return"linkmanName"===n?!(!e||!e.replace(/^\s+|\s+$/gm,""))&&!(e.length>20):"linkmanPhone"===n?!(!e||!S(e)):"relationType"===n&&!!e}),[]),w=u((function(){for(var n=_,e=n.length,a={linkmanName:[],linkmanPhone:[],relationValue:[]},t=!0,l=0;l<e;l++){if(I)if(!j("linkmanName",n[l].linkmanName)){t=!1;break}if(!j("linkmanPhone",n[l].linkmanPhone)){t=!1;break}if(0!==l&&a.linkmanPhone.includes(n[l].linkmanPhone)){t=!1;break}if(a.linkmanPhone.push(n[l].linkmanPhone),!j("relationType",n[l].relationValue)){t=!1;break}a.relationValue.push(n[l].relationValue)}return a.relationValue.filter((function(n){return"MATE"===n})).length>=2&&(t=!1),t}),[_,I]);r((function(){null==d||d(_,w)}),[_,w]),c(x,(function(){return{canSubmit:w,setContacts:function(a,t){B((function(l){return l[t].linkmanName=a.linkmanName,l[t].linkmanPhone=a.linkmanPhone,e([],n(l),!1)})),q("linkmanName",t),q("linkmanPhone",t)}}}),[w]);var H=function(n,e){for(var a=_[e],t=0,l=_.length;t<l;t++)if(t!==e){var i=_[t];if("linkmanPhone"===n){if(""!==a.linkmanPhone&&""!==i.linkmanPhone&&i.linkmanPhone===a.linkmanPhone)return{pass:!1,message:"手机号与第".concat(t+1,"联系人号码重复,请修改")}}else if("relationValue"===n&&""!==a.relationValue&&"MATE"===i.relationValue&&"MATE"===a.relationValue)return{pass:!1,message:"关系与第".concat(t+1,"联系人关系重复,请修改")}}return{pass:!0,message:""}},G=o((function(a,t){var l="h5"===process.env.TARO_ENV?a.target.value:a.detail.value,i=s(l);B((function(a){return a[t].linkmanName=i,e([],n(a),!1)})),null==b||b("linkmanName",t)}),[]),D=o((function(a,t){var l="h5"===process.env.TARO_ENV?a.target.value:a.detail.value,i=s(l);B((function(a){return a[t].linkmanPhone=i,e([],n(a),!1)})),null==b||b("linkmanPhone",t)}),[]),q=o((function(a,t){if(j(a,_[t][a])){var l=H(a,t),i=l.pass,m=l.message;i||M((function(l){return l[t][a]=m,e([],n(l),!1)})),null==A||A(a,t)}else M((function(l){return l[t][a]=f[a],e([],n(l),!1)}))}),[_]),U=o((function(a,t){M((function(l){return l[t][a]="",e([],n(l),!1)}))}),[]);return l.createElement(a,{className:"xh-linkman"},_.map((function(i,m){return l.createElement(a,{key:m,className:"xh-linkman-item"},l.createElement(a,{className:"xh-linkman-title"},"第",p[m],"联系人"),I&&l.createElement(a,{className:"xh-linkman-main"},l.createElement(a,{className:"xh-linkman-main-input"},l.createElement(a,{className:"xh-linkman-main-input-label"},"姓名"),l.createElement(a,{className:"xh-linkman-main-input-main"},"h5"===process.env.TARO_ENV?l.createElement("input",{className:"xh-linkman-main-input-main-input",type:"text",placeholder:"紧急联系人姓名",onChange:function(n){return G(n,m)},value:i.linkmanName,onBlur:function(){return q("linkmanName",m)},onFocus:function(){return U("linkmanName",m)}}):l.createElement(t,{placeholder:"紧急联系人姓名",className:"xh-linkman-main-input-main-input",onBlur:function(){return q("linkmanName",m)},value:i.linkmanName,type:"text",onInput:function(n){return G(n,m)},onFocus:function(){return U("linkmanName",m)}}),L[m].linkmanName&&l.createElement(a,{className:"xh-linkman-main-input-main-err"},L[m].linkmanName)),y&&l.createElement(a,{className:"xh-linkman-main-input-contacts",onClick:function(){return null==g?void 0:g(m)}}))),l.createElement(a,{className:"xh-linkman-main"},l.createElement(a,{className:"xh-linkman-main-input"},l.createElement(a,{className:"xh-linkman-main-input-label"},"电话"),l.createElement(a,{className:"xh-linkman-main-input-main"},"h5"===process.env.TARO_ENV?l.createElement("input",{className:"xh-linkman-main-input-main-input",type:"tel",placeholder:"紧急联系人手机号",onBlur:function(){return q("linkmanPhone",m)},maxLength:11,onChange:function(n){return D(n,m)},value:i.linkmanPhone,onFocus:function(){return U("linkmanPhone",m)}}):l.createElement(t,{placeholder:"紧急联系人手机号",className:"xh-linkman-main-input-main-input",type:"number",maxlength:11,onBlur:function(){return q("linkmanPhone",m)},value:i.linkmanPhone,onInput:function(n){return D(n,m)},onFocus:function(){return U("linkmanPhone",m)}}),L[m].linkmanPhone&&l.createElement(a,{className:"xh-linkman-main-input-main-err"},L[m].linkmanPhone)))),l.createElement(h,{data:T,title:"选择与联系人的关系",onConfirm:function(a){M((function(a){return a[m].relationType="",e([],n(a),!1)})),B((function(t){return t[m].relationType=a.text,t[m].relationValue=a.value,e([],n(t),!1)})),Promise.resolve().then((function(){var t=H("relationValue",m),l=t.pass,i=t.message;l||M((function(a){return a[m].relationType=i,e([],n(a),!1)})),null==R||R(a,m)}))},onCancel:function(){return q("relationType",m)}},l.createElement(a,{className:"xh-linkman-main"},l.createElement(a,{className:"xh-linkman-main-input"},l.createElement(a,{className:"xh-linkman-main-input-label"},"关系"),l.createElement(a,{className:"xh-linkman-main-input-main"},l.createElement(a,{className:k("xh-linkman-main-input-main-input",{placeholder:!i.relationValue,tt:"tt"===process.env.TARO_ENV})},i.relationType||"选择与联系人关系"),L[m].relationType&&l.createElement(a,{className:"xh-linkman-main-input-main-err"},L[m].relationType)),l.createElement(a,{className:"xh-linkman-main-input-arrow"})))))})))}));export{x as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/LinkMan/index.tsx"],"sourcesContent":["import { View, Input } from \"@tarojs/components\";\nimport React, {\n useCallback,\n useEffect,\n useState,\n forwardRef,\n useImperativeHandle,\n useMemo,\n} from \"react\";\nimport { inputRange } from \"@/utils\";\nimport classNames from \"classnames\";\nimport ActionSheet from \"../ActionSheet\";\n\nimport \"./index.scss\";\n\nexport type AddLinkManProps = {\n linkManNum: number;\n onChange?: (data: LinkManItem[], pass: boolean) => void;\n onGetContacts?: (index: number) => void;\n showImportIcon?: boolean;\n onBlur?: (type: keyof LinkManItem, index: number) => void;\n onCheckRelation?: (\n value: { text: string; value: string },\n index: number\n ) => void;\n onInputChange?: (type: \"linkmanName\" | \"linkmanPhone\", index: number) => void;\n /**\n * 可以选择的关系\n */\n relations?: { text: string; value: string }[];\n};\n\nconst LinkManTitleMap = [\n \"一\",\n \"二\",\n \"三\",\n \"四\",\n \"五\",\n \"六\",\n \"七\",\n \"八\",\n \"九\",\n \"十\",\n];\n\n/**\n * 错误信息提示\n */\nconst errorMessageMap = {\n linkmanName: \"请输入联系人姓名\",\n linkmanPhone: \"请输入正确的手机号\",\n relationType: \"请选择与联系人关系\",\n};\n\nconst defaultActionSheet = [\n {\n value: \"FATHER\",\n text: \"父亲\",\n },\n {\n value: \"MOTHER\",\n text: \"母亲\",\n },\n {\n value: \"MATE\",\n text: \"配偶\",\n },\n {\n value: \"CHILDREN\",\n text: \"子女\",\n },\n {\n value: \"SIBLING\",\n text: \"兄弟姐妹\",\n },\n {\n value: \"FRIENDS\",\n text: \"朋友\",\n },\n {\n value: \"COLLEAGUE\",\n text: \"同事\",\n },\n {\n value: \"RELATIVES\",\n text: \"亲戚\",\n },\n {\n value: \"OTHER\",\n text: \"其他\",\n },\n];\n\nexport type LinkManItem = {\n linkmanName: string;\n linkmanPhone: string;\n relationType: string;\n relationValue: string;\n};\n\nexport type LinkManRef = {\n canSubmit: boolean;\n setContacts: (\n item: Pick<LinkManItem, \"linkmanName\" | \"linkmanPhone\">,\n index: number\n ) => void;\n};\n\nconst defaultShowImportIcon =\n process.env.TARO_ENV === \"h5\"\n ? window.navigator.userAgent.includes(\"xhqb\")\n : true;\n\nconst XHAddLinMan = forwardRef<LinkManRef, AddLinkManProps>(\n (props, fromRef) => {\n const {\n linkManNum,\n relations = defaultActionSheet,\n onChange,\n onGetContacts,\n showImportIcon = defaultShowImportIcon,\n onBlur,\n onCheckRelation,\n onInputChange,\n } = props;\n\n // form信息\n const [formData, setFormData] = useState<LinkManItem[]>([]);\n\n // 错误提示语信息\n const [errMessage, setErrMessage] = useState<\n Omit<LinkManItem, \"relationValue\">[]\n >([]);\n\n useEffect(() => {\n setFormData(\n Array(linkManNum)\n .fill(1)\n .map(() => {\n return {\n linkmanName: \"\",\n linkmanPhone: \"\",\n relationType: \"\",\n relationValue: \"\",\n };\n })\n );\n setErrMessage(\n Array(linkManNum)\n .fill(1)\n .map(() => {\n return {\n linkmanName: \"\",\n linkmanPhone: \"\",\n relationType: \"\",\n };\n })\n );\n }, [linkManNum]);\n\n /**\n * 校验手机号\n */\n const validatePhone = useCallback((phone: string) => {\n if (/1\\d{10}/.test(phone)) {\n return true;\n }\n return false;\n }, []);\n\n /**\n * 非空校验\n */\n const validateForm = useCallback(\n (type: keyof LinkManItem, name: string) => {\n if (type === \"linkmanName\") {\n if (!name || !name.replace(/^\\s+|\\s+$/gm, \"\")) return false;\n if (name.length > 20) return false;\n return true;\n } else if (type === \"linkmanPhone\") {\n if (!name || !validatePhone(name)) return false;\n return true;\n } else if (type === \"relationType\") {\n if (!name) return false;\n return true;\n }\n return false;\n },\n []\n );\n\n /**\n * 校验联系人是否合法,默认找到不合法的就退出循环\n */\n const validateCanSubmit = useMemo(() => {\n const finalData = formData;\n const length = finalData.length;\n const map: Record<string, string[]> = {\n linkmanName: [],\n linkmanPhone: [],\n relationValue: [],\n };\n let flag = true;\n\n /**\n * 每次循环formData,不符合直接break,退出循环\n */\n for (let index = 0; index < length; index++) {\n const isNameValid = validateForm(\n \"linkmanName\",\n finalData[index].linkmanName\n );\n if (!isNameValid) {\n flag = false;\n break;\n }\n const isPhoneValid = validateForm(\n \"linkmanPhone\",\n finalData[index].linkmanPhone\n );\n if (!isPhoneValid) {\n flag = false;\n break;\n }\n if (\n index !== 0 &&\n map.linkmanPhone.includes(finalData[index].linkmanPhone)\n ) {\n flag = false;\n break;\n }\n map.linkmanPhone.push(finalData[index].linkmanPhone);\n const isRelationValid = validateForm(\n \"relationType\",\n finalData[index].relationValue\n );\n if (!isRelationValid) {\n flag = false;\n break;\n }\n map.relationValue.push(finalData[index].relationValue);\n }\n if (map.relationValue.filter(item => item === \"MATE\").length >= 2) {\n flag = false;\n }\n\n return flag;\n }, [formData]);\n\n useEffect(() => {\n onChange?.(formData, validateCanSubmit);\n }, [formData, validateCanSubmit]);\n\n useImperativeHandle(\n fromRef,\n () => ({\n canSubmit: validateCanSubmit,\n setContacts(item, index) {\n setFormData(old => {\n old[index].linkmanName = item.linkmanName;\n old[index].linkmanPhone = item.linkmanPhone;\n return [...old];\n });\n onFormBlur(\"linkmanName\", index);\n onFormBlur(\"linkmanPhone\", index);\n },\n }),\n [validateCanSubmit]\n );\n\n /**\n * 重复校验\n */\n const validateDuplicate = (\n type: keyof LinkManItem,\n currentIndex\n ): { pass: boolean; message: string } => {\n const currentItem = formData[currentIndex];\n // const validStub: Record<\n // Exclude<keyof LinkManItem, \"relationType\">,\n // string[]\n // > = {\n // linkmanName: [],\n // linkmanPhone: [],\n // relationValue: [],\n // };\n\n for (let index = 0, length = formData.length; index < length; index++) {\n if (index === currentIndex) continue; // 不能跟自己比较\n const current = formData[index];\n if (type === \"linkmanPhone\") {\n if (\n currentItem.linkmanPhone !== \"\" &&\n current.linkmanPhone !== \"\" &&\n current.linkmanPhone === currentItem.linkmanPhone\n ) {\n // 如果没有重复需要清空错误信息\n return {\n pass: false,\n message: `手机号与第${index + 1}联系人号码重复,请修改`,\n };\n } else {\n // setErrMessage(old => {\n // old[index].linkmanPhone = \"\";\n // old[currentIndex].linkmanPhone = \"\";\n // return [...old];\n // });\n }\n } else if (type === \"relationValue\") {\n if (\n currentItem.relationValue !== \"\" &&\n current.relationValue === \"MATE\" &&\n currentItem.relationValue === \"MATE\"\n ) {\n return {\n pass: false,\n message: `关系与第${index + 1}联系人关系重复,请修改`,\n };\n } else {\n // setErrMessage(old => {\n // old[index].relationType = \"\";\n // old[currentIndex].relationType = \"\";\n // return [...old];\n // });\n }\n }\n }\n return { pass: true, message: \"\" };\n };\n\n /**\n * 联系人姓名改变\n */\n const onNameChange = useCallback((evt, index) => {\n const value =\n process.env.TARO_ENV === \"h5\" ? evt.target.value : evt.detail.value;\n const name = inputRange(value);\n setFormData(old => {\n old[index].linkmanName = name;\n return [...old];\n });\n onInputChange?.(\"linkmanName\", index);\n }, []);\n\n /**\n * 联系人手机号改变\n */\n const onPhoneChange = useCallback((evt, index) => {\n const value =\n process.env.TARO_ENV === \"h5\" ? evt.target.value : evt.detail.value;\n const phone = inputRange(value);\n setFormData(old => {\n old[index].linkmanPhone = phone;\n return [...old];\n });\n onInputChange?.(\"linkmanPhone\", index);\n }, []);\n\n /**\n * 输入框失去焦点做校验\n */\n const onFormBlur = useCallback(\n (type: keyof LinkManItem, index: number) => {\n const flag = validateForm(type, formData[index][type]); // 先做值的校验,再做重复校验\n if (!flag) {\n setErrMessage(old => {\n old[index][type] = errorMessageMap[type];\n return [...old];\n });\n return;\n }\n const { pass, message } = validateDuplicate(type, index);\n if (!pass) {\n setErrMessage(old => {\n old[index][type] = message;\n return [...old];\n });\n }\n onBlur?.(type, index);\n },\n [formData]\n );\n\n /**\n * 聚焦的时候设置错误信息为空\n */\n const onFormFocus = useCallback(\n (type: keyof LinkManItem, index: number) => {\n setErrMessage(old => {\n old[index][type] = \"\";\n return [...old];\n });\n },\n []\n );\n\n return (\n <View className=\"xh-linkman\">\n {formData.map((item, num) => (\n <View key={num} className=\"xh-linkman-item\">\n <View className=\"xh-linkman-title\">\n 第{LinkManTitleMap[num]}联系人\n </View>\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">姓名</View>\n <View className=\"xh-linkman-main-input-main\">\n {process.env.TARO_ENV === \"h5\" ? (\n <input\n className=\"xh-linkman-main-input-main-input\"\n type=\"text\"\n placeholder=\"紧急联系人姓名\"\n onChange={e => onNameChange(e, num)}\n value={item.linkmanName}\n onBlur={() => onFormBlur(\"linkmanName\", num)}\n onFocus={() => onFormFocus(\"linkmanName\", num)}\n />\n ) : (\n <Input\n placeholder=\"紧急联系人姓名\"\n className=\"xh-linkman-main-input-main-input\"\n onBlur={() => onFormBlur(\"linkmanName\", num)}\n value={item.linkmanName}\n type=\"text\"\n onInput={e => onNameChange(e, num)}\n onFocus={() => onFormFocus(\"linkmanName\", num)}\n />\n )}\n {errMessage[num].linkmanName && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].linkmanName}\n </View>\n )}\n </View>\n {showImportIcon && (\n <View\n className=\"xh-linkman-main-input-contacts\"\n onClick={() => onGetContacts?.(num)}\n ></View>\n )}\n </View>\n </View>\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">电话</View>\n <View className=\"xh-linkman-main-input-main\">\n {process.env.TARO_ENV === \"h5\" ? (\n <input\n className=\"xh-linkman-main-input-main-input\"\n type=\"tel\"\n placeholder=\"紧急联系人手机号\"\n onBlur={() => onFormBlur(\"linkmanPhone\", num)}\n maxLength={11}\n onChange={e => onPhoneChange(e, num)}\n value={item.linkmanPhone}\n onFocus={() => onFormFocus(\"linkmanPhone\", num)}\n />\n ) : (\n <Input\n placeholder=\"紧急联系人手机号\"\n className=\"xh-linkman-main-input-main-input\"\n type=\"number\"\n maxlength={11}\n onBlur={() => onFormBlur(\"linkmanPhone\", num)}\n value={item.linkmanPhone}\n onInput={e => onPhoneChange(e, num)}\n onFocus={() => onFormFocus(\"linkmanPhone\", num)}\n />\n )}\n {errMessage[num].linkmanPhone && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].linkmanPhone}\n </View>\n )}\n </View>\n </View>\n </View>\n <ActionSheet\n data={relations}\n title=\"选择与联系人的关系\"\n onConfirm={value => {\n setErrMessage(old => {\n old[num].relationType = \"\";\n return [...old];\n });\n setFormData(old => {\n old[num].relationType = value.text;\n old[num].relationValue = value.value;\n return [...old];\n });\n Promise.resolve().then(() => {\n const { pass, message } = validateDuplicate(\n \"relationValue\",\n num\n );\n if (!pass)\n setErrMessage(old => {\n old[num].relationType = message;\n return [...old];\n });\n onCheckRelation?.(value, num);\n });\n }}\n onCancel={() => onFormBlur(\"relationType\", num)}\n >\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">关系</View>\n <View className=\"xh-linkman-main-input-main\">\n <View\n className={classNames(\n \"xh-linkman-main-input-main-input\",\n {\n placeholder: !item.relationValue,\n tt: process.env.TARO_ENV === \"tt\",\n }\n )}\n >\n {item.relationType || \"选择与联系人关系\"}\n </View>\n {errMessage[num].relationType && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].relationType}\n </View>\n )}\n </View>\n <View className=\"xh-linkman-main-input-arrow\"></View>\n </View>\n </View>\n </ActionSheet>\n </View>\n ))}\n </View>\n );\n }\n);\n\nexport default XHAddLinMan;\n"],"names":["LinkManTitleMap","errorMessageMap","linkmanName","linkmanPhone","relationType","defaultActionSheet","value","text","defaultShowImportIcon","process","env","TARO_ENV","window","navigator","userAgent","includes","XHAddLinMan","forwardRef","props","fromRef","linkManNum","_a","relations","onChange","onGetContacts","_b","showImportIcon","onBlur","onCheckRelation","onInputChange","_c","__read","useState","formData","setFormData","_d","errMessage","setErrMessage","useEffect","Array","fill","map","relationValue","validatePhone","useCallback","phone","test","validateForm","type","name","replace","length","validateCanSubmit","useMemo","finalData","flag","index","push","filter","item","useImperativeHandle","canSubmit","setContacts","old","__spreadArray","onFormBlur","validateDuplicate","currentIndex","currentItem","length_1","current","pass","message","concat","onNameChange","evt","target","detail","inputRange","onPhoneChange","onFormFocus","React","createElement","View","className","num","key","placeholder","e","onFocus","Input","onInput","onClick","maxLength","maxlength","ActionSheet","data","title","onConfirm","Promise","resolve","then","onCancel","classNames","tt"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/LinkMan/index.tsx"],"sourcesContent":["import { View, Input } from \"@tarojs/components\";\nimport React, {\n useCallback,\n useEffect,\n useState,\n forwardRef,\n useImperativeHandle,\n useMemo,\n} from \"react\";\nimport { inputRange } from \"@/utils\";\nimport classNames from \"classnames\";\nimport ActionSheet from \"../ActionSheet\";\n\nimport \"./index.scss\";\n\nexport type AddLinkManProps = {\n linkManNum: number;\n onChange?: (data: LinkManItem[], pass: boolean) => void;\n onGetContacts?: (index: number) => void;\n showImportIcon?: boolean;\n onBlur?: (type: keyof LinkManItem, index: number) => void;\n onCheckRelation?: (\n value: { text: string; value: string },\n index: number\n ) => void;\n onInputChange?: (type: \"linkmanName\" | \"linkmanPhone\", index: number) => void;\n /**\n * 可以选择的关系\n */\n relations?: { text: string; value: string }[];\n needName?: boolean;\n};\n\nconst LinkManTitleMap = [\n \"一\",\n \"二\",\n \"三\",\n \"四\",\n \"五\",\n \"六\",\n \"七\",\n \"八\",\n \"九\",\n \"十\",\n];\n\n/**\n * 错误信息提示\n */\nconst errorMessageMap = {\n linkmanName: \"请输入联系人姓名\",\n linkmanPhone: \"请输入正确的手机号\",\n relationType: \"请选择与联系人关系\",\n};\n\nconst defaultActionSheet = [\n {\n value: \"FATHER\",\n text: \"父亲\",\n },\n {\n value: \"MOTHER\",\n text: \"母亲\",\n },\n {\n value: \"MATE\",\n text: \"配偶\",\n },\n {\n value: \"CHILDREN\",\n text: \"子女\",\n },\n {\n value: \"SIBLING\",\n text: \"兄弟姐妹\",\n },\n {\n value: \"FRIENDS\",\n text: \"朋友\",\n },\n {\n value: \"COLLEAGUE\",\n text: \"同事\",\n },\n {\n value: \"RELATIVES\",\n text: \"亲戚\",\n },\n {\n value: \"OTHER\",\n text: \"其他\",\n },\n];\n\nexport type LinkManItem = {\n linkmanName: string;\n linkmanPhone: string;\n relationType: string;\n relationValue: string;\n};\n\nexport type LinkManRef = {\n canSubmit: boolean;\n setContacts: (\n item: Pick<LinkManItem, \"linkmanName\" | \"linkmanPhone\">,\n index: number\n ) => void;\n};\n\nconst defaultShowImportIcon =\n process.env.TARO_ENV === \"h5\"\n ? window.navigator.userAgent.includes(\"xhqb\")\n : true;\n\nconst XHAddLinMan = forwardRef<LinkManRef, AddLinkManProps>(\n (props, fromRef) => {\n const {\n linkManNum,\n relations = defaultActionSheet,\n onChange,\n onGetContacts,\n showImportIcon = defaultShowImportIcon,\n onBlur,\n onCheckRelation,\n onInputChange,\n needName = true,\n } = props;\n\n // form信息\n const [formData, setFormData] = useState<LinkManItem[]>([]);\n\n // 错误提示语信息\n const [errMessage, setErrMessage] = useState<\n Omit<LinkManItem, \"relationValue\">[]\n >([]);\n\n useEffect(() => {\n setFormData(\n Array(linkManNum)\n .fill(1)\n .map(() => {\n return {\n linkmanName: \"\",\n linkmanPhone: \"\",\n relationType: \"\",\n relationValue: \"\",\n };\n })\n );\n setErrMessage(\n Array(linkManNum)\n .fill(1)\n .map(() => {\n return {\n linkmanName: \"\",\n linkmanPhone: \"\",\n relationType: \"\",\n };\n })\n );\n }, [linkManNum]);\n\n /**\n * 校验手机号\n */\n const validatePhone = useCallback((phone: string) => {\n if (/1\\d{10}/.test(phone)) {\n return true;\n }\n return false;\n }, []);\n\n /**\n * 非空校验\n */\n const validateForm = useCallback(\n (type: keyof LinkManItem, name: string) => {\n if (type === \"linkmanName\") {\n if (!name || !name.replace(/^\\s+|\\s+$/gm, \"\")) return false;\n if (name.length > 20) return false;\n return true;\n } else if (type === \"linkmanPhone\") {\n if (!name || !validatePhone(name)) return false;\n return true;\n } else if (type === \"relationType\") {\n if (!name) return false;\n return true;\n }\n return false;\n },\n []\n );\n\n /**\n * 校验联系人是否合法,默认找到不合法的就退出循环\n */\n const validateCanSubmit = useMemo(() => {\n const finalData = formData;\n const length = finalData.length;\n const map: Record<string, string[]> = {\n linkmanName: [],\n linkmanPhone: [],\n relationValue: [],\n };\n let flag = true;\n\n /**\n * 每次循环formData,不符合直接break,退出循环\n */\n for (let index = 0; index < length; index++) {\n if (needName) {\n const isNameValid = validateForm(\n \"linkmanName\",\n finalData[index].linkmanName\n );\n if (!isNameValid) {\n flag = false;\n break;\n }\n }\n\n const isPhoneValid = validateForm(\n \"linkmanPhone\",\n finalData[index].linkmanPhone\n );\n if (!isPhoneValid) {\n flag = false;\n break;\n }\n if (\n index !== 0 &&\n map.linkmanPhone.includes(finalData[index].linkmanPhone)\n ) {\n flag = false;\n break;\n }\n map.linkmanPhone.push(finalData[index].linkmanPhone);\n const isRelationValid = validateForm(\n \"relationType\",\n finalData[index].relationValue\n );\n if (!isRelationValid) {\n flag = false;\n break;\n }\n map.relationValue.push(finalData[index].relationValue);\n }\n if (map.relationValue.filter(item => item === \"MATE\").length >= 2) {\n flag = false;\n }\n\n return flag;\n }, [formData, needName]);\n\n useEffect(() => {\n onChange?.(formData, validateCanSubmit);\n }, [formData, validateCanSubmit]);\n\n useImperativeHandle(\n fromRef,\n () => ({\n canSubmit: validateCanSubmit,\n setContacts(item, index) {\n setFormData(old => {\n old[index].linkmanName = item.linkmanName;\n old[index].linkmanPhone = item.linkmanPhone;\n return [...old];\n });\n onFormBlur(\"linkmanName\", index);\n onFormBlur(\"linkmanPhone\", index);\n },\n }),\n [validateCanSubmit]\n );\n\n /**\n * 重复校验\n */\n const validateDuplicate = (\n type: keyof LinkManItem,\n currentIndex\n ): { pass: boolean; message: string } => {\n const currentItem = formData[currentIndex];\n // const validStub: Record<\n // Exclude<keyof LinkManItem, \"relationType\">,\n // string[]\n // > = {\n // linkmanName: [],\n // linkmanPhone: [],\n // relationValue: [],\n // };\n\n for (let index = 0, length = formData.length; index < length; index++) {\n if (index === currentIndex) continue; // 不能跟自己比较\n const current = formData[index];\n if (type === \"linkmanPhone\") {\n if (\n currentItem.linkmanPhone !== \"\" &&\n current.linkmanPhone !== \"\" &&\n current.linkmanPhone === currentItem.linkmanPhone\n ) {\n // 如果没有重复需要清空错误信息\n return {\n pass: false,\n message: `手机号与第${index + 1}联系人号码重复,请修改`,\n };\n } else {\n // setErrMessage(old => {\n // old[index].linkmanPhone = \"\";\n // old[currentIndex].linkmanPhone = \"\";\n // return [...old];\n // });\n }\n } else if (type === \"relationValue\") {\n if (\n currentItem.relationValue !== \"\" &&\n current.relationValue === \"MATE\" &&\n currentItem.relationValue === \"MATE\"\n ) {\n return {\n pass: false,\n message: `关系与第${index + 1}联系人关系重复,请修改`,\n };\n } else {\n // setErrMessage(old => {\n // old[index].relationType = \"\";\n // old[currentIndex].relationType = \"\";\n // return [...old];\n // });\n }\n }\n }\n return { pass: true, message: \"\" };\n };\n\n /**\n * 联系人姓名改变\n */\n const onNameChange = useCallback((evt, index) => {\n const value =\n process.env.TARO_ENV === \"h5\" ? evt.target.value : evt.detail.value;\n const name = inputRange(value);\n setFormData(old => {\n old[index].linkmanName = name;\n return [...old];\n });\n onInputChange?.(\"linkmanName\", index);\n }, []);\n\n /**\n * 联系人手机号改变\n */\n const onPhoneChange = useCallback((evt, index) => {\n const value =\n process.env.TARO_ENV === \"h5\" ? evt.target.value : evt.detail.value;\n const phone = inputRange(value);\n setFormData(old => {\n old[index].linkmanPhone = phone;\n return [...old];\n });\n onInputChange?.(\"linkmanPhone\", index);\n }, []);\n\n /**\n * 输入框失去焦点做校验\n */\n const onFormBlur = useCallback(\n (type: keyof LinkManItem, index: number) => {\n const flag = validateForm(type, formData[index][type]); // 先做值的校验,再做重复校验\n if (!flag) {\n setErrMessage(old => {\n old[index][type] = errorMessageMap[type];\n return [...old];\n });\n return;\n }\n const { pass, message } = validateDuplicate(type, index);\n if (!pass) {\n setErrMessage(old => {\n old[index][type] = message;\n return [...old];\n });\n }\n onBlur?.(type, index);\n },\n [formData]\n );\n\n /**\n * 聚焦的时候设置错误信息为空\n */\n const onFormFocus = useCallback(\n (type: keyof LinkManItem, index: number) => {\n setErrMessage(old => {\n old[index][type] = \"\";\n return [...old];\n });\n },\n []\n );\n\n return (\n <View className=\"xh-linkman\">\n {formData.map((item, num) => (\n <View key={num} className=\"xh-linkman-item\">\n <View className=\"xh-linkman-title\">\n 第{LinkManTitleMap[num]}联系人\n </View>\n {needName && (\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">姓名</View>\n <View className=\"xh-linkman-main-input-main\">\n {process.env.TARO_ENV === \"h5\" ? (\n <input\n className=\"xh-linkman-main-input-main-input\"\n type=\"text\"\n placeholder=\"紧急联系人姓名\"\n onChange={e => onNameChange(e, num)}\n value={item.linkmanName}\n onBlur={() => onFormBlur(\"linkmanName\", num)}\n onFocus={() => onFormFocus(\"linkmanName\", num)}\n />\n ) : (\n <Input\n placeholder=\"紧急联系人姓名\"\n className=\"xh-linkman-main-input-main-input\"\n onBlur={() => onFormBlur(\"linkmanName\", num)}\n value={item.linkmanName}\n type=\"text\"\n onInput={e => onNameChange(e, num)}\n onFocus={() => onFormFocus(\"linkmanName\", num)}\n />\n )}\n {errMessage[num].linkmanName && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].linkmanName}\n </View>\n )}\n </View>\n {showImportIcon && (\n <View\n className=\"xh-linkman-main-input-contacts\"\n onClick={() => onGetContacts?.(num)}\n ></View>\n )}\n </View>\n </View>\n )}\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">电话</View>\n <View className=\"xh-linkman-main-input-main\">\n {process.env.TARO_ENV === \"h5\" ? (\n <input\n className=\"xh-linkman-main-input-main-input\"\n type=\"tel\"\n placeholder=\"紧急联系人手机号\"\n onBlur={() => onFormBlur(\"linkmanPhone\", num)}\n maxLength={11}\n onChange={e => onPhoneChange(e, num)}\n value={item.linkmanPhone}\n onFocus={() => onFormFocus(\"linkmanPhone\", num)}\n />\n ) : (\n <Input\n placeholder=\"紧急联系人手机号\"\n className=\"xh-linkman-main-input-main-input\"\n type=\"number\"\n maxlength={11}\n onBlur={() => onFormBlur(\"linkmanPhone\", num)}\n value={item.linkmanPhone}\n onInput={e => onPhoneChange(e, num)}\n onFocus={() => onFormFocus(\"linkmanPhone\", num)}\n />\n )}\n {errMessage[num].linkmanPhone && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].linkmanPhone}\n </View>\n )}\n </View>\n </View>\n </View>\n <ActionSheet\n data={relations}\n title=\"选择与联系人的关系\"\n onConfirm={value => {\n setErrMessage(old => {\n old[num].relationType = \"\";\n return [...old];\n });\n setFormData(old => {\n old[num].relationType = value.text;\n old[num].relationValue = value.value;\n return [...old];\n });\n Promise.resolve().then(() => {\n const { pass, message } = validateDuplicate(\n \"relationValue\",\n num\n );\n if (!pass)\n setErrMessage(old => {\n old[num].relationType = message;\n return [...old];\n });\n onCheckRelation?.(value, num);\n });\n }}\n onCancel={() => onFormBlur(\"relationType\", num)}\n >\n <View className=\"xh-linkman-main\">\n <View className=\"xh-linkman-main-input\">\n <View className=\"xh-linkman-main-input-label\">关系</View>\n <View className=\"xh-linkman-main-input-main\">\n <View\n className={classNames(\n \"xh-linkman-main-input-main-input\",\n {\n placeholder: !item.relationValue,\n tt: process.env.TARO_ENV === \"tt\",\n }\n )}\n >\n {item.relationType || \"选择与联系人关系\"}\n </View>\n {errMessage[num].relationType && (\n <View className=\"xh-linkman-main-input-main-err\">\n {errMessage[num].relationType}\n </View>\n )}\n </View>\n <View className=\"xh-linkman-main-input-arrow\"></View>\n </View>\n </View>\n </ActionSheet>\n </View>\n ))}\n </View>\n );\n }\n);\n\nexport default XHAddLinMan;\n"],"names":["LinkManTitleMap","errorMessageMap","linkmanName","linkmanPhone","relationType","defaultActionSheet","value","text","defaultShowImportIcon","process","env","TARO_ENV","window","navigator","userAgent","includes","XHAddLinMan","forwardRef","props","fromRef","linkManNum","_a","relations","onChange","onGetContacts","_b","showImportIcon","onBlur","onCheckRelation","onInputChange","_c","needName","_d","__read","useState","formData","setFormData","_e","errMessage","setErrMessage","useEffect","Array","fill","map","relationValue","validatePhone","useCallback","phone","test","validateForm","type","name","replace","length","validateCanSubmit","useMemo","finalData","flag","index","push","filter","item","useImperativeHandle","canSubmit","setContacts","old","__spreadArray","onFormBlur","validateDuplicate","currentIndex","currentItem","length_1","current","pass","message","concat","onNameChange","evt","target","detail","inputRange","onPhoneChange","onFormFocus","React","createElement","View","className","num","key","placeholder","e","onFocus","Input","onInput","onClick","maxLength","maxlength","ActionSheet","data","title","onConfirm","Promise","resolve","then","onCancel","classNames","tt"],"mappings":"kXAiCA,IAAMA,EAAkB,CACtB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAMIC,EAAkB,CACtBC,YAAa,WACbC,aAAc,YACdC,aAAc,aAGVC,EAAqB,CACzB,CACEC,MAAO,SACPC,KAAM,MAER,CACED,MAAO,SACPC,KAAM,MAER,CACED,MAAO,OACPC,KAAM,MAER,CACED,MAAO,WACPC,KAAM,MAER,CACED,MAAO,UACPC,KAAM,QAER,CACED,MAAO,UACPC,KAAM,MAER,CACED,MAAO,YACPC,KAAM,MAER,CACED,MAAO,YACPC,KAAM,MAER,CACED,MAAO,QACPC,KAAM,OAmBJC,EACqB,OAAzBC,QAAQC,IAAIC,UACRC,OAAOC,UAAUC,UAAUC,SAAS,QAGpCC,EAAcC,GAClB,SAACC,EAAOC,GAEJ,IAAAC,EASEF,EATQE,WACVC,EAQEH,EAR4BI,UAA9BA,OAAS,IAAAD,EAAGhB,EAAkBgB,EAC9BE,EAOEL,EAAKK,SANPC,EAMEN,EANWM,cACbC,EAKEP,EALoCQ,eAAtCA,OAAiB,IAAAD,EAAAjB,EAAqBiB,EACtCE,EAIET,EAAKS,OAHPC,EAGEV,EAHaU,gBACfC,EAEEX,EAFWW,cACbC,EACEZ,EADaa,SAAfA,OAAQ,IAAAD,GAAOA,EAIXE,EAAAC,EAA0BC,EAAwB,IAAG,GAApDC,EAAQH,EAAA,GAAEI,OAGXC,EAAAJ,EAA8BC,EAElC,IAAG,GAFEI,EAAUD,EAAA,GAAEE,OAInBC,GAAU,WACRJ,EACEK,MAAMrB,GACHsB,KAAK,GACLC,KAAI,WACH,MAAO,CACLzC,YAAa,GACbC,aAAc,GACdC,aAAc,GACdwC,cAAe,GAElB,KAELL,EACEE,MAAMrB,GACHsB,KAAK,GACLC,KAAI,WACH,MAAO,CACLzC,YAAa,GACbC,aAAc,GACdC,aAAc,GAEjB,IAEP,GAAG,CAACgB,IAKJ,IAAMyB,EAAgBC,GAAY,SAACC,GACjC,QAAI,UAAUC,KAAKD,EAIpB,GAAE,IAKGE,EAAeH,GACnB,SAACI,EAAyBC,GACxB,MAAa,gBAATD,KACGC,IAASA,EAAKC,QAAQ,cAAe,QACtCD,EAAKE,OAAS,IAEA,iBAATH,KACJC,IAASN,EAAcM,IAEV,iBAATD,KACJC,CAIR,GACD,IAMIG,EAAoBC,GAAQ,WAahC,IAZA,IAAMC,EAAYrB,EACZkB,EAASG,EAAUH,OACnBV,EAAgC,CACpCzC,YAAa,GACbC,aAAc,GACdyC,cAAe,IAEba,GAAO,EAKFC,EAAQ,EAAGA,EAAQL,EAAQK,IAAS,CAC3C,GAAI3B,EAKF,IAJoBkB,EAClB,cACAO,EAAUE,GAAOxD,aAED,CAChBuD,GAAO,EACP,KACD,CAOH,IAJqBR,EACnB,eACAO,EAAUE,GAAOvD,cAEA,CACjBsD,GAAO,EACP,KACD,CACD,GACY,IAAVC,GACAf,EAAIxC,aAAaY,SAASyC,EAAUE,GAAOvD,cAC3C,CACAsD,GAAO,EACP,KACD,CAMD,GALAd,EAAIxC,aAAawD,KAAKH,EAAUE,GAAOvD,eACf8C,EACtB,eACAO,EAAUE,GAAOd,eAEG,CACpBa,GAAO,EACP,KACD,CACDd,EAAIC,cAAce,KAAKH,EAAUE,GAAOd,cACzC,CAKD,OAJID,EAAIC,cAAcgB,QAAO,SAAAC,GAAQ,MAAS,SAATA,KAAiBR,QAAU,IAC9DI,GAAO,GAGFA,CACT,GAAG,CAACtB,EAAUJ,IAEdS,GAAU,WACRjB,SAAAA,EAAWY,EAAUmB,EACvB,GAAG,CAACnB,EAAUmB,IAEdQ,EACE3C,GACA,WAAM,MAAC,CACL4C,UAAWT,EACXU,YAAW,SAACH,EAAMH,GAChBtB,GAAY,SAAA6B,GAGV,OAFAA,EAAIP,GAAOxD,YAAc2D,EAAK3D,YAC9B+D,EAAIP,GAAOvD,aAAe0D,EAAK1D,aAC/B+D,EAAA,GAAAjC,EAAWgC,IAAK,EAClB,IACAE,EAAW,cAAeT,GAC1BS,EAAW,eAAgBT,EAC5B,EACD,GACF,CAACJ,IAMH,IAAMc,EAAoB,SACxBlB,EACAmB,GAYA,IAVA,IAAMC,EAAcnC,EAASkC,GAUpBX,EAAQ,EAAGa,EAASpC,EAASkB,OAAQK,EAAQa,EAAQb,IAC5D,GAAIA,IAAUW,EAAd,CACA,IAAMG,EAAUrC,EAASuB,GACzB,GAAa,iBAATR,GACF,GAC+B,KAA7BoB,EAAYnE,cACa,KAAzBqE,EAAQrE,cACRqE,EAAQrE,eAAiBmE,EAAYnE,aAGrC,MAAO,CACLsE,MAAM,EACNC,QAAS,QAAAC,OAAQjB,EAAQ,EAAc,qBAStC,GAAa,kBAATR,GAEuB,KAA9BoB,EAAY1B,eACc,SAA1B4B,EAAQ5B,eACsB,SAA9B0B,EAAY1B,cAEZ,MAAO,CACL6B,MAAM,EACNC,QAAS,OAAAC,OAAOjB,EAAQ,EAAc,eA5BP,CAuCvC,MAAO,CAAEe,MAAM,EAAMC,QAAS,GAChC,EAKME,EAAe9B,GAAY,SAAC+B,EAAKnB,GACrC,IAAMpD,EACqB,OAAzBG,QAAQC,IAAIC,SAAoBkE,EAAIC,OAAOxE,MAAQuE,EAAIE,OAAOzE,MAC1D6C,EAAO6B,EAAW1E,GACxB8B,GAAY,SAAA6B,GAEV,OADAA,EAAIP,GAAOxD,YAAciD,EACzBe,EAAA,GAAAjC,EAAWgC,IAAK,EAClB,IACApC,SAAAA,EAAgB,cAAe6B,EAChC,GAAE,IAKGuB,EAAgBnC,GAAY,SAAC+B,EAAKnB,GACtC,IAAMpD,EACqB,OAAzBG,QAAQC,IAAIC,SAAoBkE,EAAIC,OAAOxE,MAAQuE,EAAIE,OAAOzE,MAC1DyC,EAAQiC,EAAW1E,GACzB8B,GAAY,SAAA6B,GAEV,OADAA,EAAIP,GAAOvD,aAAe4C,EAC1BmB,EAAA,GAAAjC,EAAWgC,IAAK,EAClB,IACApC,SAAAA,EAAgB,eAAgB6B,EACjC,GAAE,IAKGS,EAAarB,GACjB,SAACI,EAAyBQ,GAExB,GADaT,EAAaC,EAAMf,EAASuB,GAAOR,IAChD,CAOM,IAAA7B,EAAoB+C,EAAkBlB,EAAMQ,GAA1Ce,EAAIpD,EAAAoD,KAAEC,YACTD,GACHlC,GAAc,SAAA0B,GAEZ,OADAA,EAAIP,GAAOR,GAAQwB,EACnBR,EAAA,GAAAjC,EAAWgC,IAAK,EAClB,IAEFtC,SAAAA,EAASuB,EAAMQ,EARd,MALCnB,GAAc,SAAA0B,GAEZ,OADAA,EAAIP,GAAOR,GAAQjD,EAAgBiD,GACnCgB,EAAA,GAAAjC,EAAWgC,IAAK,EAClB,GAWJ,GACA,CAAC9B,IAMG+C,EAAcpC,GAClB,SAACI,EAAyBQ,GACxBnB,GAAc,SAAA0B,GAEZ,OADAA,EAAIP,GAAOR,GAAQ,GACnBgB,EAAA,GAAAjC,EAAWgC,IAAK,EAClB,GACD,GACD,IAGF,OACEkB,EAAAC,cAACC,EAAI,CAACC,UAAU,cACbnD,EAASQ,KAAI,SAACkB,EAAM0B,GAAQ,OAC3BJ,EAAAC,cAACC,EAAI,CAACG,IAAKD,EAAKD,UAAU,mBACxBH,EAAAC,cAACC,EAAI,CAACC,UAAU,wBACZtF,EAAgBuF,GACb,OACNxD,GACCoD,EAAAC,cAACC,EAAK,CAAAC,UAAU,mBACdH,EAAAC,cAACC,EAAI,CAACC,UAAU,yBACdH,EAAAC,cAACC,EAAI,CAACC,UAAU,+BAAuC,MACvDH,EAAAC,cAACC,EAAI,CAACC,UAAU,8BACY,OAAzB7E,QAAQC,IAAIC,SACXwE,EACEC,cAAA,QAAA,CAAAE,UAAU,mCACVpC,KAAK,OACLuC,YAAY,UACZlE,SAAU,SAAAmE,GAAK,OAAAd,EAAac,EAAGH,EAAhB,EACfjF,MAAOuD,EAAK3D,YACZyB,OAAQ,WAAM,OAAAwC,EAAW,cAAeoB,IACxCI,QAAS,WAAM,OAAAT,EAAY,cAAeK,EAAI,IAGhDJ,EAAAC,cAACQ,EAAK,CACJH,YAAY,UACZH,UAAU,mCACV3D,OAAQ,WAAM,OAAAwC,EAAW,cAAeoB,EAA1B,EACdjF,MAAOuD,EAAK3D,YACZgD,KAAK,OACL2C,QAAS,SAAAH,GAAK,OAAAd,EAAac,EAAGH,EAAhB,EACdI,QAAS,WAAM,OAAAT,EAAY,cAAeK,EAAI,IAGjDjD,EAAWiD,GAAKrF,aACfiF,EAACC,cAAAC,EAAK,CAAAC,UAAU,kCACbhD,EAAWiD,GAAKrF,cAItBwB,GACCyD,EAAAC,cAACC,EAAI,CACHC,UAAU,iCACVQ,QAAS,WAAM,OAAAtE,aAAa,EAAbA,EAAgB+D,EAAI,MAM7CJ,EAAAC,cAACC,EAAI,CAACC,UAAU,mBACdH,EAAAC,cAACC,EAAI,CAACC,UAAU,yBACdH,EAAAC,cAACC,EAAI,CAACC,UAAU,+BAAuC,MACvDH,EAAAC,cAACC,EAAI,CAACC,UAAU,8BACY,OAAzB7E,QAAQC,IAAIC,SACXwE,EAAAC,cAAA,QAAA,CACEE,UAAU,mCACVpC,KAAK,MACLuC,YAAY,WACZ9D,OAAQ,WAAM,OAAAwC,EAAW,eAAgBoB,EAA3B,EACdQ,UAAW,GACXxE,SAAU,SAAAmE,GAAK,OAAAT,EAAcS,EAAGH,EAAI,EACpCjF,MAAOuD,EAAK1D,aACZwF,QAAS,WAAM,OAAAT,EAAY,eAAgBK,EAAI,IAGjDJ,EAACC,cAAAQ,EACC,CAAAH,YAAY,WACZH,UAAU,mCACVpC,KAAK,SACL8C,UAAW,GACXrE,OAAQ,WAAM,OAAAwC,EAAW,eAAgBoB,EAAI,EAC7CjF,MAAOuD,EAAK1D,aACZ0F,QAAS,SAAAH,GAAK,OAAAT,EAAcS,EAAGH,IAC/BI,QAAS,WAAM,OAAAT,EAAY,eAAgBK,EAAI,IAGlDjD,EAAWiD,GAAKpF,cACfgF,EAAAC,cAACC,EAAI,CAACC,UAAU,kCACbhD,EAAWiD,GAAKpF,iBAM3BgF,EAAAC,cAACa,EAAW,CACVC,KAAM5E,EACN6E,MAAM,YACNC,UAAW,SAAA9F,GACTiC,GAAc,SAAA0B,GAEZ,OADAA,EAAIsB,GAAKnF,aAAe,GACxB8D,EAAA,GAAAjC,EAAWgC,IAAK,EAClB,IACA7B,GAAY,SAAA6B,GAGV,OAFAA,EAAIsB,GAAKnF,aAAeE,EAAMC,KAC9B0D,EAAIsB,GAAK3C,cAAgBtC,EAAMA,MAC/B4D,EAAA,GAAAjC,EAAWgC,IAAK,EAClB,IACAoC,QAAQC,UAAUC,MAAK,WACf,IAAAlF,EAAoB+C,EACxB,gBACAmB,GAFMd,EAAIpD,EAAAoD,KAAEC,YAITD,GACHlC,GAAc,SAAA0B,GAEZ,OADAA,EAAIsB,GAAKnF,aAAesE,EACxBR,EAAA,GAAAjC,EAAWgC,IAAK,EAClB,IACFrC,SAAAA,EAAkBtB,EAAOiF,EAC3B,GACF,EACAiB,SAAU,WAAM,OAAArC,EAAW,eAAgBoB,KAE3CJ,EAAAC,cAACC,EAAI,CAACC,UAAU,mBACdH,EAAAC,cAACC,EAAI,CAACC,UAAU,yBACdH,EAAAC,cAACC,EAAI,CAACC,UAAU,+BAAuC,MACvDH,EAAAC,cAACC,EAAI,CAACC,UAAU,8BACdH,EAAAC,cAACC,EACC,CAAAC,UAAWmB,EACT,mCACA,CACEhB,aAAc5B,EAAKjB,cACnB8D,GAA6B,OAAzBjG,QAAQC,IAAIC,YAInBkD,EAAKzD,cAAgB,YAEvBkC,EAAWiD,GAAKnF,cACf+E,EAACC,cAAAC,EAAK,CAAAC,UAAU,kCACbhD,EAAWiD,GAAKnF,eAIvB+E,EAAAC,cAACC,EAAK,CAAAC,UAAU,mCAKzB,IAGP"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"react";import{View as
|
|
1
|
+
import e from"react";import{View as s,Image as t}from"@tarojs/components";import c from"classnames";import r from"../Button/index.js";var l={success:"https://s.xh1.cn/resources/images/public/success.png",empty:"https://s.xh1.cn/resources/images/public/empty.png",fail:"https://s.xh1.cn/resources/images/public/failure.png",networkErr:"https://s.xh1.cn/resources/images/public/error.png",wait:"https://s.xh1.cn/resources/images/public/ing.png",submitted:"https://s.xh1.cn/resources/images/public/success-info.png"},a=function(a){var n=a.className,m=a.status,o=a.title,u=a.desc,i=a.slot,p=a.action,h=a.onAction,x=a.full,g=c("xh-result",n,{full:void 0===x||x});return e.createElement(s,{className:g},"h5"===process.env.TARO_ENV?e.createElement("img",{src:l[m],alt:"",className:"xh-result-status"}):e.createElement(t,{src:l[m],className:"xh-result-status"}),e.createElement(s,{className:"xh-result-title"},o),e.createElement(s,{className:"xh-result-desc"},u),e.createElement(s,{className:"xh-result-slot"},i),p&&e.createElement(s,{className:c("xh-result-action",{hasSlot:i})},e.createElement(r,{onClick:function(){null==h||h()},hollow:!0,size:"full"},p)))};export{a as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Result/index.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\nimport { Image, View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport Button from \"../Button\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport ImageMap
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Result/index.tsx"],"sourcesContent":["import React, { ReactNode } from \"react\";\nimport { Image, View } from \"@tarojs/components\";\nimport classNames from \"classnames\";\nimport Button from \"../Button\";\nimport { XHComponentCommonProps } from \"../../types\";\nimport \"./index.scss\";\n\nconst ImageMap = {\n success: \"https://s.xh1.cn/resources/images/public/success.png\",\n empty: \"https://s.xh1.cn/resources/images/public/empty.png\",\n fail: \"https://s.xh1.cn/resources/images/public/failure.png\",\n networkErr: \"https://s.xh1.cn/resources/images/public/error.png\",\n wait: \"https://s.xh1.cn/resources/images/public/ing.png\",\n submitted: \"https://s.xh1.cn/resources/images/public/success-info.png\",\n};\n\nexport type ResultStatus = keyof typeof ImageMap;\n\nexport type ResultProps = {\n status: ResultStatus;\n title: ReactNode;\n desc?: ReactNode;\n slot?: ReactNode;\n action?: string;\n full?: boolean;\n onAction?: () => void;\n} & XHComponentCommonProps;\n\nconst Result: React.FC<ResultProps> = props => {\n const {\n className,\n status,\n title,\n desc,\n slot,\n action,\n onAction,\n full = true,\n } = props;\n\n const resultCls = classNames(\"xh-result\", className, { full });\n\n const renderImage = () => {\n if (process.env.TARO_ENV === \"h5\") {\n return <img src={ImageMap[status]} alt=\"\" className=\"xh-result-status\" />;\n } else {\n return <Image src={ImageMap[status]} className=\"xh-result-status\" />;\n }\n };\n\n const handleAction = () => {\n onAction?.();\n };\n\n return (\n <View className={resultCls}>\n {renderImage()}\n <View className=\"xh-result-title\">{title}</View>\n <View className=\"xh-result-desc\">{desc}</View>\n <View className=\"xh-result-slot\">{slot}</View>\n {action && (\n <View className={classNames(\"xh-result-action\", { hasSlot: slot })}>\n <Button onClick={handleAction} hollow size=\"full\">\n {action}\n </Button>\n </View>\n )}\n </View>\n );\n};\n\nexport default Result;\n"],"names":["ImageMap","success","empty","fail","networkErr","wait","submitted","Result","props","className","status","title","desc","slot","action","onAction","_a","full","resultCls","classNames","React","createElement","View","process","env","TARO_ENV","src","alt","Image","hasSlot","Button","onClick","hollow","size"],"mappings":"sIAOA,IAAMA,EAAW,CACfC,QAAS,uDACTC,MAAO,qDACPC,KAAM,uDACNC,WAAY,qDACZC,KAAM,mDACNC,UAAW,6DAePC,EAAgC,SAAAC,GAElC,IAAAC,EAQED,YAPFE,EAOEF,EAAKE,OANPC,EAMEH,EANGG,MACLC,EAKEJ,OAJFK,EAIEL,EAAKK,KAHPC,EAGEN,EAHIM,OACNC,EAEEP,WADFQ,EACER,EADSS,KAGPC,EAAYC,EAAW,YAAaV,EAAW,CAAEQ,UAH9C,IAAAD,OAiBT,OACEI,EAACC,cAAAC,EAAK,CAAAb,UAAWS,GAZY,OAAzBK,QAAQC,IAAIC,SACPL,uBAAKM,IAAK1B,EAASU,GAASiB,IAAI,GAAGlB,UAAU,qBAE7CW,EAACC,cAAAO,EAAM,CAAAF,IAAK1B,EAASU,GAASD,UAAU,qBAW/CW,EAAAC,cAACC,EAAK,CAAAb,UAAU,mBAAmBE,GACnCS,EAAAC,cAACC,EAAK,CAAAb,UAAU,kBAAkBG,GAClCQ,EAAAC,cAACC,EAAK,CAAAb,UAAU,kBAAkBI,GACjCC,GACCM,EAAAC,cAACC,EAAI,CAACb,UAAWU,EAAW,mBAAoB,CAAEU,QAAShB,KACzDO,EAAAC,cAACS,EAAO,CAAAC,QAZK,WACnBhB,SAAAA,GACF,EAUuCiB,QAAO,EAAAC,KAAK,QACxCnB,IAMb"}
|