commit 2a49a6ce4f87c50034c4df2ba59c39fc5afbfec9 Author: whitechiina <1293616053@qq.com> Date: Thu May 21 14:51:57 2026 +0800 first commit diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..dd4ad0b --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,16 @@ +{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version": "0.0", + "configurations": [{ + "default" : + { + "launchtype" : "local" + }, + "mp-weixin" : + { + "launchtype" : "local" + }, + "type" : "uniCloud" + } + ] +} diff --git a/.svn/entries b/.svn/entries new file mode 100644 index 0000000..48082f7 --- /dev/null +++ b/.svn/entries @@ -0,0 +1 @@ +12 diff --git a/.svn/format b/.svn/format new file mode 100644 index 0000000..48082f7 --- /dev/null +++ b/.svn/format @@ -0,0 +1 @@ +12 diff --git a/.svn/pristine/00/0012e00d64471668e96420f8dd3d8cef70c5b41c.svn-base b/.svn/pristine/00/0012e00d64471668e96420f8dd3d8cef70c5b41c.svn-base new file mode 100644 index 0000000..f1195b1 --- /dev/null +++ b/.svn/pristine/00/0012e00d64471668e96420f8dd3d8cef70c5b41c.svn-base @@ -0,0 +1,90 @@ +{ + "id": "uni-easyinput", + "displayName": "uni-easyinput 增强输入框", + "version": "1.0.2", + "description": "Easyinput 组件是对原生input组件的增强", + "keywords": [ + "uni-ui", + "uniui", + "input", + "uni-easyinput", + "输入框" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/00/0095dcda4b2350edcb8550022202053a36618d03.svn-base b/.svn/pristine/00/0095dcda4b2350edcb8550022202053a36618d03.svn-base new file mode 100644 index 0000000..eae7b5c --- /dev/null +++ b/.svn/pristine/00/0095dcda4b2350edcb8550022202053a36618d03.svn-base @@ -0,0 +1,12 @@ + + +## Rate 评分 +> **组件名:uni-rate** +> 代码块: `uRate` +> 关联组件:`uni-icons` + + +评分组件,多用于购买商品后,对商品进行评价等场景 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-rate) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/00/00dd55855d976caaf4f67d46eb7c7d117ec25099.svn-base b/.svn/pristine/00/00dd55855d976caaf4f67d46eb7c7d117ec25099.svn-base new file mode 100644 index 0000000..4d3f398 --- /dev/null +++ b/.svn/pristine/00/00dd55855d976caaf4f67d46eb7c7d117ec25099.svn-base @@ -0,0 +1,106 @@ + + + diff --git a/.svn/pristine/01/0121f4c9e97f3ee56b0f8a8e3e49df47436da357.svn-base b/.svn/pristine/01/0121f4c9e97f3ee56b0f8a8e3e49df47436da357.svn-base new file mode 100644 index 0000000..27b7db3 --- /dev/null +++ b/.svn/pristine/01/0121f4c9e97f3ee56b0f8a8e3e49df47436da357.svn-base @@ -0,0 +1,4914 @@ +export default [ + { + "name": "北京市", + "city": [ + { + "name": "北京市", + "area": [ + "东城区", + "西城区", + "崇文区", + "宣武区", + "朝阳区", + "丰台区", + "石景山区", + "海淀区", + "门头沟区", + "房山区", + "通州区", + "顺义区", + "昌平区", + "大兴区", + "平谷区", + "怀柔区", + "密云县", + "延庆县" + ] + } + ] + }, + { + "name": "天津市", + "city": [ + { + "name": "天津市", + "area": [ + "和平区", + "河东区", + "河西区", + "南开区", + "河北区", + "红桥区", + "塘沽区", + "汉沽区", + "大港区", + "东丽区", + "西青区", + "津南区", + "北辰区", + "武清区", + "宝坻区", + "宁河县", + "静海县", + "蓟 县" + ] + } + ] + }, + { + "name": "河北省", + "city": [ + { + "name": "石家庄市", + "area": [ + "长安区", + "桥东区", + "桥西区", + "新华区", + "郊 区", + "井陉矿区", + "井陉县", + "正定县", + "栾城县", + "行唐县", + "灵寿县", + "高邑县", + "深泽县", + "赞皇县", + "无极县", + "平山县", + "元氏县", + "赵 县", + "辛集市", + "藁", + "晋州市", + "新乐市", + "鹿泉市" + ] + }, + { + "name": "唐山市", + "area": [ + "路南区", + "路北区", + "古冶区", + "开平区", + "新 区", + "丰润县", + "滦 县", + "滦南县", + "乐亭县", + "迁西县", + "玉田县", + "唐海县", + "遵化市", + "丰南市", + "迁安市" + ] + }, + { + "name": "秦皇岛市", + "area": [ + "海港区", + "山海关区", + "北戴河区", + "青龙满族自治县", + "昌黎县", + "抚宁县", + "卢龙县" + ] + }, + { + "name": "邯郸市", + "area": [ + "邯山区", + "丛台区", + "复兴区", + "峰峰矿区", + "邯郸县", + "临漳县", + "成安县", + "大名县", + "涉 县", + "磁 县", + "肥乡县", + "永年县", + "邱 县", + "鸡泽县", + "广平县", + "馆陶县", + "魏 县", + "曲周县", + "武安市" + ] + }, + { + "name": "邢台市", + "area": [ + "桥东区", + "桥西区", + "邢台县", + "临城县", + "内丘县", + "柏乡县", + "隆尧县", + "任 县", + "南和县", + "宁晋县", + "巨鹿县", + "新河县", + "广宗县", + "平乡县", + "威 县", + "清河县", + "临西县", + "南宫市", + "沙河市" + ] + }, + { + "name": "保定市", + "area": [ + "新市区", + "北市区", + "南市区", + "满城县", + "清苑县", + "涞水县", + "阜平县", + "徐水县", + "定兴县", + "唐 县", + "高阳县", + "容城县", + "涞源县", + "望都县", + "安新县", + "易 县", + "曲阳县", + "蠡 县", + "顺平县", + "博野", + "雄县", + "涿州市", + "定州市", + "安国市", + "高碑店市" + ] + }, + { + "name": "张家口", + "area": [ + "桥东区", + "桥西区", + "宣化区", + "下花园区", + "宣化县", + "张北县", + "康保县", + "沽源县", + "尚义县", + "蔚 县", + "阳原县", + "怀安县", + "万全县", + "怀来县", + "涿鹿县", + "赤城县", + "崇礼县" + ] + }, + { + "name": "承德市", + "area": [ + "双桥区", + "双滦区", + "鹰手营子矿区", + "承德县", + "兴隆县", + "平泉县", + "滦平县", + "隆化县", + "丰宁满族自治县", + "宽城满族自治县", + "围场满族蒙古族自治县" + ] + }, + { + "name": "沧州市", + "area": [ + "新华区", + "运河区", + "沧 县", + "青 县", + "东光县", + "海兴县", + "盐山县", + "肃宁县", + "南皮县", + "吴桥县", + "献 县", + "孟村回族自治县", + "泊头市", + "任丘市", + "黄骅市", + "河间市" + ] + }, + { + "name": "廊坊市", + "area": [ + "安次区", + "固安县", + "永清县", + "香河县", + "大城县", + "文安县", + "大厂回族自治县", + "霸州市", + "三河市" + ] + }, + { + "name": "衡水市", + "area": [ + "桃城区", + "枣强县", + "武邑县", + "武强县", + "饶阳县", + "安平县", + "故城县", + "景 县", + "阜城县", + "冀州市", + "深州市" + ] + } + ] + }, + { + "name": "山西省", + "city": [ + { + "name": "太原市", + "area": [ + "小店区", + "迎泽区", + "杏花岭区", + "尖草坪区", + "万柏林区", + "晋源区", + "清徐县", + "阳曲县", + "娄烦县", + "古交市" + ] + }, + { + "name": "大同市", + "area": [ + "城 区", + "矿 区", + "南郊区", + "新荣区", + "阳高县", + "天镇县", + "广灵县", + "灵丘县", + "浑源县", + "左云县", + "大同县" + ] + }, + { + "name": "阳泉市", + "area": [ + "城 区", + "矿 区", + "郊 区", + "平定县", + "盂 县" + ] + }, + { + "name": "长治市", + "area": [ + "城 区", + "郊 区", + "长治县", + "襄垣县", + "屯留县", + "平顺县", + "黎城县", + "壶关县", + "长子县", + "武乡县", + "沁 县", + "沁源县", + "潞城市" + ] + }, + { + "name": "晋城市", + "area": [ + "城 区", + "沁水县", + "阳城县", + "陵川县", + "泽州县", + "高平市" + ] + }, + { + "name": "朔州市", + "area": [ + "朔城区", + "平鲁区", + "山阴县", + "应 县", + "右玉县", + "怀仁县" + ] + }, + { + "name": "忻州市", + "area": [ + "忻府区", + "原平市", + "定襄县", + "五台县", + "代 县", + "繁峙县", + "宁武县", + "静乐县", + "神池县", + "五寨县", + "岢岚县", + "河曲县", + "保德县", + "偏关县" + ] + }, + { + "name": "吕梁市", + "area": [ + "离石区", + "孝义市", + "汾阳市", + "文水县", + "交城县", + "兴 县", + "临 县", + "柳林县", + "石楼县", + "岚 县", + "方山县", + "中阳县", + "交口县" + ] + }, + { + "name": "晋中市", + "area": [ + "榆次市", + "介休市", + "榆社县", + "左权县", + "和顺县", + "昔阳县", + "寿阳县", + "太谷县", + "祁 县", + "平遥县", + "灵石县" + ] + }, + { + "name": "临汾市", + "area": [ + "临汾市", + "侯马市", + "霍州市", + "曲沃县", + "翼城县", + "襄汾县", + "洪洞县", + "古 县", + "安泽县", + "浮山县", + "吉 县", + "乡宁县", + "蒲 县", + "大宁县", + "永和县", + "隰 县", + "汾西县" + ] + }, + { + "name": "运城市", + "area": [ + "运城市", + "永济市", + "河津市", + "芮城县", + "临猗县", + "万荣县", + "新绛县", + "稷山县", + "闻喜县", + "夏 县", + "绛 县", + "平陆县", + "垣曲县" + ] + } + ] + }, + { + "name": "内蒙古", + "city": [ + { + "name": "呼和浩特市", + "area": [ + "新城区", + "回民区", + "玉泉区", + "郊 区", + "土默特左旗", + "托克托县", + "和林格尔县", + "清水河县", + "武川县" + ] + }, + { + "name": "包头市", + "area": [ + "东河区", + "昆都伦区", + "青山区", + "石拐矿区", + "白云矿区", + "郊 区", + "土默特右旗", + "固阳县", + "达尔罕茂明安联合旗" + ] + }, + { + "name": "乌海市", + "area": [ + "海勃湾区", + "海南区", + "乌达区" + ] + }, + { + "name": "赤峰市", + "area": [ + "红山区", + "元宝山区", + "松山区", + "阿鲁科尔沁旗", + "巴林左旗", + "巴林右旗", + "林西县", + "克什克腾旗", + "翁牛特旗", + "喀喇沁旗", + "宁城县", + "敖汉旗" + ] + }, + { + "name": "呼伦贝尔市", + "area": [ + "海拉尔市", + "满洲里市", + "扎兰屯市", + "牙克石市", + "根河市", + "额尔古纳市", + "阿荣旗", + "莫力达瓦达斡尔族自治旗", + "鄂伦春自治旗", + "鄂温克族自治旗", + "新巴尔虎右旗", + "新巴尔虎左旗", + "陈巴尔虎旗" + ] + }, + { + "name": "兴安盟", + "area": [ + "乌兰浩特市", + "阿尔山市", + "科尔沁右翼前旗", + "科尔沁右翼中旗", + "扎赉特旗", + "突泉县" + ] + }, + { + "name": "通辽市", + "area": [ + "科尔沁区", + "霍林郭勒市", + "科尔沁左翼中旗", + "科尔沁左翼后旗", + "开鲁县", + "库伦旗", + "奈曼旗", + "扎鲁特旗" + ] + }, + { + "name": "锡林郭勒盟", + "area": [ + "二连浩特市", + "锡林浩特市", + "阿巴嘎旗", + "苏尼特左旗", + "苏尼特右旗", + "东乌珠穆沁旗", + "西乌珠穆沁旗", + "太仆寺旗", + "镶黄旗", + "正镶白旗", + "正蓝旗", + "多伦县" + ] + }, + { + "name": "乌兰察布盟", + "area": [ + "集宁市", + "丰镇市", + "卓资县", + "化德县", + "商都县", + "兴和县", + "凉城县", + "察哈尔右翼前旗", + "察哈尔右翼中旗", + "察哈尔右翼后旗", + "四子王旗" + ] + }, + { + "name": "伊克昭盟", + "area": [ + "东胜市", + "达拉特旗", + "准格尔旗", + "鄂托克前旗", + "鄂托克旗", + "杭锦旗", + "乌审旗", + "伊金霍洛旗" + ] + }, + { + "name": "巴彦淖尔盟", + "area": [ + "临河市", + "五原县", + "磴口县", + "乌拉特前旗", + "乌拉特中旗", + "乌拉特后旗", + "杭锦后旗" + ] + }, + { + "name": "阿拉善盟", + "area": [ + "阿拉善左旗", + "阿拉善右旗", + "额济纳旗" + ] + } + ] + }, + { + "name": "辽宁省", + "city": [ + { + "name": "沈阳市", + "area": [ + "沈河区", + "皇姑区", + "和平区", + "大东区", + "铁西区", + "苏家屯区", + "东陵区", + "于洪区", + "新民市", + "法库县", + "辽中县", + "康平县", + "新城子区" + ] + }, + { + "name": "大连市", + "area": [ + "西岗区", + "中山区", + "沙河口区", + "甘井子区", + "旅顺口区", + "金州区", + "瓦房店市", + "普兰店市", + "庄河市", + "长海县" + ] + }, + { + "name": "鞍山市", + "area": [ + "铁东区", + "铁西区", + "立山区", + "千山区", + "海城市", + "台安县", + "岫岩满族自治县" + ] + }, + { + "name": "抚顺市", + "area": [ + "顺城区", + "新抚区", + "东洲区", + "望花区", + "抚顺县", + "清原满族自治县", + "新宾满族自治县" + ] + }, + { + "name": "本溪市", + "area": [ + "平山区", + "明山区", + "溪湖区", + "南芬区", + "本溪满族自治县", + "桓仁满族自治县" + ] + }, + { + "name": "丹东市", + "area": [ + "振兴区", + "元宝区", + "振安区", + "东港市", + "凤城市", + "宽甸满族自治县" + ] + }, + { + "name": "锦州市", + "area": [ + "太和区", + "古塔区", + "凌河区", + "凌海市", + "黑山县", + "义县", + "北宁市" + ] + }, + { + "name": "营口市", + "area": [ + "站前区", + "西市区", + "鲅鱼圈区", + "老边区", + "大石桥市", + "盖州市" + ] + }, + { + "name": "阜新市", + "area": [ + "海州区", + "新邱区", + "太平区", + "清河门区", + "细河区", + "彰武县", + "阜新蒙古族自治县" + ] + }, + { + "name": "辽阳市", + "area": [ + "白塔区", + "文圣区", + "宏伟区", + "太子河区", + "弓长岭区", + "灯塔市", + "辽阳县" + ] + }, + { + "name": "盘锦", + "area": [ + "双台子区", + "兴隆台区", + "盘山县", + "大洼县" + ] + }, + { + "name": "铁岭市", + "area": [ + "银州区", + "清河区", + "调兵山市", + "开原市", + "铁岭县", + "昌图县", + "西丰县" + ] + }, + { + "name": "朝阳市", + "area": [ + "双塔区", + "龙城区", + "凌源市", + "北票市", + "朝阳县", + "建平县", + "喀喇沁左翼蒙古族自治县" + ] + }, + { + "name": "葫芦岛市", + "area": [ + "龙港区", + "南票区", + "连山区", + "兴城市", + "绥中县", + "建昌县" + ] + } + ] + }, + { + "name": "吉林省", + "city": [ + { + "name": "长春市", + "area": [ + "朝阳区", + "宽城区", + "二道区", + "南关区", + "绿园区", + "双阳区", + "九台市", + "榆树市", + "德惠市", + "农安县" + ] + }, + { + "name": "吉林市", + "area": [ + "船营区", + "昌邑区", + "龙潭区", + "丰满区", + "舒兰市", + "桦甸市", + "蛟河市", + "磐石市", + "永吉县" + ] + }, + { + "name": "四平", + "area": [ + "铁西区", + "铁东区", + "公主岭市", + "双辽市", + "梨树县", + "伊通满族自治县" + ] + }, + { + "name": "辽源市", + "area": [ + "龙山区", + "西安区", + "东辽县", + "东丰县" + ] + }, + { + "name": "通化市", + "area": [ + "东昌区", + "二道江区", + "梅河口市", + "集安市", + "通化县", + "辉南县", + "柳河县" + ] + }, + { + "name": "白山市", + "area": [ + "八道江区", + "江源区", + "临江市", + "靖宇县", + "抚松县", + "长白朝鲜族自治县" + ] + }, + { + "name": "松原市", + "area": [ + "宁江区", + "乾安县", + "长岭县", + "扶余县", + "前郭尔罗斯蒙古族自治县" + ] + }, + { + "name": "白城市", + "area": [ + "洮北区", + "大安市", + "洮南市", + "镇赉县", + "通榆县" + ] + }, + { + "name": "延边朝鲜族自治州", + "area": [ + "延吉市", + "图们市", + "敦化市", + "龙井市", + "珲春市", + "和龙市", + "安图县", + "汪清县" + ] + } + ] + }, + { + "name": "黑龙江省", + "city": [ + { + "name": "哈尔滨市", + "area": [ + "松北区", + "道里区", + "南岗区", + "平房区", + "香坊区", + "道外区", + "呼兰区", + "阿城区", + "双城市", + "尚志市", + "五常市", + "宾县", + "方正县", + "通河县", + "巴彦县", + "延寿县", + "木兰县", + "依兰县" + ] + }, + { + "name": "齐齐哈尔市", + "area": [ + "龙沙区", + "昂昂溪区", + "铁锋区", + "建华区", + "富拉尔基区", + "碾子山区", + "梅里斯达斡尔族区", + "讷河市", + "富裕县", + "拜泉县", + "甘南县", + "依安县", + "克山县", + "泰来县", + "克东县", + "龙江县" + ] + }, + { + "name": "鹤岗市", + "area": [ + "兴山区", + "工农区", + "南山区", + "兴安区", + "向阳区", + "东山区", + "萝北县", + "绥滨县" + ] + }, + { + "name": "双鸭山", + "area": [ + "尖山区", + "岭东区", + "四方台区", + "宝山区", + "集贤县", + "宝清县", + "友谊县", + "饶河县" + ] + }, + { + "name": "鸡西市", + "area": [ + "鸡冠区", + "恒山区", + "城子河区", + "滴道区", + "梨树区", + "麻山区", + "密山市", + "虎林市", + "鸡东县" + ] + }, + { + "name": "大庆市", + "area": [ + "萨尔图区", + "红岗区", + "龙凤区", + "让胡路区", + "大同区", + "林甸县", + "肇州县", + "肇源县", + "杜尔伯特蒙古族自治县" + ] + }, + { + "name": "伊春市", + "area": [ + "伊春区", + "带岭区", + "南岔区", + "金山屯区", + "西林区", + "美溪区", + "乌马河区", + "翠峦区", + "友好区", + "上甘岭区", + "五营区", + "红星区", + "新青区", + "汤旺河区", + "乌伊岭区", + "铁力市", + "嘉荫县" + ] + }, + { + "name": "牡丹江市", + "area": [ + "爱民区", + "东安区", + "阳明区", + "西安区", + "绥芬河市", + "宁安市", + "海林市", + "穆棱市", + "林口县", + "东宁县" + ] + }, + { + "name": "佳木斯市", + "area": [ + "向阳区", + "前进区", + "东风区", + "郊区", + "同江市", + "富锦市", + "桦川县", + "抚远县", + "桦南县", + "汤原县" + ] + }, + { + "name": "七台河市", + "area": [ + "桃山区", + "新兴区", + "茄子河区", + "勃利县" + ] + }, + { + "name": "黑河市", + "area": [ + "爱辉区", + "北安市", + "五大连池市", + "逊克县", + "嫩江县", + "孙吴县" + ] + }, + { + "name": "绥化市", + "area": [ + "北林区", + "安达市", + "肇东市", + "海伦市", + "绥棱县", + "兰西县", + "明水县", + "青冈县", + "庆安县", + "望奎县" + ] + }, + { + "name": "大兴安岭地区", + "area": [ + "呼玛县", + "塔河县", + "漠河县", + "大兴安岭辖区" + ] + } + ] + }, + { + "name": "上海市", + "city": [ + { + "name": "上海市", + "area": [ + "黄浦区", + "卢湾区", + "徐汇区", + "长宁区", + "静安区", + "普陀区", + "闸北区", + "虹口区", + "杨浦区", + "宝山区", + "闵行区", + "嘉定区", + "松江区", + "金山区", + "青浦区", + "南汇区", + "奉贤区", + "浦东新区", + "崇明县" + ] + } + ] + }, + { + "name": "江苏省", + "city": [ + { + "name": "南京市", + "area": [ + "玄武区", + "白下区", + "秦淮区", + "建邺区", + "鼓楼区", + "下关区", + "栖霞区", + "雨花台区", + "浦口区", + "江宁区", + "六合区", + "溧水县", + "高淳县" + ] + }, + { + "name": "苏州市", + "area": [ + "金阊区", + "平江区", + "沧浪区", + "虎丘区", + "吴中区", + "相城区", + "常熟市", + "张家港市", + "昆山市", + "吴江市", + "太仓市" + ] + }, + { + "name": "无锡市", + "area": [ + "崇安区", + "南长区", + "北塘区", + "滨湖区", + "锡山区", + "惠山区", + "江阴市", + "宜兴市" + ] + }, + { + "name": "常州市", + "area": [ + "钟楼区", + "天宁区", + "戚墅堰区", + "新北区", + "武进区", + "金坛市", + "溧阳市" + ] + }, + { + "name": "镇江市", + "area": [ + "京口区", + "润州区", + "丹徒区", + "丹阳市", + "扬中市", + "句容市" + ] + }, + { + "name": "南通市", + "area": [ + "崇川区", + "港闸区", + "通州市", + "如皋市", + "海门市", + "启东市", + "海安县", + "如东县" + ] + }, + { + "name": "泰州市", + "area": [ + "海陵区", + "高港区", + "姜堰市", + "泰兴市", + "靖江市", + "兴化市" + ] + }, + { + "name": "扬州市", + "area": [ + "广陵区", + "维扬区", + "邗江区", + "江都市", + "仪征市", + "高邮市", + "宝应县" + ] + }, + { + "name": "盐城市", + "area": [ + "亭湖区", + "盐都区", + "大丰市", + "东台市", + "建湖县", + "射阳县", + "阜宁县", + "滨海县", + "响水县" + ] + }, + { + "name": "连云港市", + "area": [ + "新浦区", + "海州区", + "连云区", + "东海县", + "灌云县", + "赣榆县", + "灌南县" + ] + }, + { + "name": "徐州市", + "area": [ + "云龙区", + "鼓楼区", + "九里区", + "泉山区", + "贾汪区", + "邳州市", + "新沂市", + "铜山县", + "睢宁县", + "沛县", + "丰县" + ] + }, + { + "name": "淮安市", + "area": [ + "清河区", + "清浦区", + "楚州区", + "淮阴区", + "涟水县", + "洪泽县", + "金湖县", + "盱眙县" + ] + }, + { + "name": "宿迁市", + "area": [ + "宿城区", + "宿豫区", + "沭阳县", + "泗阳县", + "泗洪县" + ] + } + ] + }, + { + "name": "浙江省", + "city": [ + { + "name": "杭州市", + "area": [ + "拱墅区", + "西湖区", + "上城区", + "下城区", + "江干区", + "滨江区", + "余杭区", + "萧山区", + "建德市", + "富阳市", + "临安市", + "桐庐县", + "淳安县" + ] + }, + { + "name": "宁波市", + "area": [ + "海曙区", + "江东区", + "江北区", + "镇海区", + "北仑区", + "鄞州区", + "余姚市", + "慈溪市", + "奉化市", + "宁海县", + "象山县" + ] + }, + { + "name": "温州市", + "area": [ + "鹿城区", + "龙湾区", + "瓯海区", + "瑞安市", + "乐清市", + "永嘉县", + "洞头县", + "平阳县", + "苍南县", + "文成县", + "泰顺县" + ] + }, + { + "name": "嘉兴市", + "area": [ + "秀城区", + "秀洲区", + "海宁市", + "平湖市", + "桐乡市", + "嘉善县", + "海盐县" + ] + }, + { + "name": "湖州市", + "area": [ + "吴兴区", + "南浔区", + "长兴县", + "德清县", + "安吉县" + ] + }, + { + "name": "绍兴市", + "area": [ + "越城区", + "诸暨市", + "上虞市", + "嵊州市", + "绍兴县", + "新昌县" + ] + }, + { + "name": "金华市", + "area": [ + "婺城区", + "金东区", + "兰溪市", + "义乌市", + "东阳市", + "永康市", + "武义县", + "浦江县", + "磐安县" + ] + }, + { + "name": "衢州市", + "area": [ + "柯城区", + "衢江区", + "江山市", + "龙游县", + "常山县", + "开化县" + ] + }, + { + "name": "舟山市", + "area": [ + "定海区", + "普陀区", + "岱山县", + "嵊泗县" + ] + }, + { + "name": "台州市", + "area": [ + "椒江区", + "黄岩区", + "路桥区", + "临海市", + "温岭市", + "玉环县", + "天台县", + "仙居县", + "三门县" + ] + }, + { + "name": "丽水市", + "area": [ + "莲都区", + "龙泉市", + "缙云县", + "青田县", + "云和县", + "遂昌县", + "松阳县", + "庆元县", + "景宁畲族自治县" + ] + } + ] + }, + { + "name": "安徽省", + "city": [ + { + "name": "合肥市", + "area": [ + "庐阳区", + "瑶海区", + "蜀山区", + "包河区", + "长丰县", + "肥东县", + "肥西县" + ] + }, + { + "name": "芜湖市", + "area": [ + "镜湖区", + "弋江区", + "鸠江区", + "三山区", + "芜湖县", + "南陵县", + "繁昌县" + ] + }, + { + "name": "蚌埠市", + "area": [ + "蚌山区", + "龙子湖区", + "禹会区", + "淮上区", + "怀远县", + "固镇县", + "五河县" + ] + }, + { + "name": "淮南市", + "area": [ + "田家庵区", + "大通区", + "谢家集区", + "八公山区", + "潘集区", + "凤台县" + ] + }, + { + "name": "马鞍山市", + "area": [ + "雨山区", + "花山区", + "金家庄区", + "当涂县" + ] + }, + { + "name": "淮北市", + "area": [ + "相山区", + "杜集区", + "烈山区", + "濉溪县" + ] + }, + { + "name": "铜陵市", + "area": [ + "铜官山区", + "狮子山区", + "郊区", + "铜陵县" + ] + }, + { + "name": "安庆市", + "area": [ + "迎江区", + "大观区", + "宜秀区", + "桐城市", + "宿松县", + "枞阳县", + "太湖县", + "怀宁县", + "岳西县", + "望江县", + "潜山县" + ] + }, + { + "name": "黄山市", + "area": [ + "屯溪区", + "黄山区", + "徽州区", + "休宁县", + "歙县", + "祁门县", + "黟县" + ] + }, + { + "name": "滁州市", + "area": [ + "琅琊区", + "南谯区", + "天长市", + "明光市", + "全椒县", + "来安县", + "定远县", + "凤阳县" + ] + }, + { + "name": "阜阳市", + "area": [ + "颍州区", + "颍东区", + "颍泉区", + "界首市", + "临泉县", + "颍上县", + "阜南县", + "太和县" + ] + }, + { + "name": "宿州市", + "area": [ + "埇桥区", + "萧县", + "泗县", + "砀山县", + "灵璧县" + ] + }, + { + "name": "巢湖市", + "area": [ + "居巢区", + "含山县", + "无为县", + "庐江县", + "和县" + ] + }, + { + "name": "六安市", + "area": [ + "金安区", + "裕安区", + "寿县", + "霍山县", + "霍邱县", + "舒城县", + "金寨县" + ] + }, + { + "name": "亳州市", + "area": [ + "谯城区", + "利辛县", + "涡阳县", + "蒙城县" + ] + }, + { + "name": "池州市", + "area": [ + "贵池区", + "东至县", + "石台县", + "青阳县" + ] + }, + { + "name": "宣城市", + "area": [ + "宣州区", + "宁国市", + "广德县", + "郎溪县", + "泾县", + "旌德县", + "绩溪县" + ] + } + ] + }, + { + "name": "福建省", + "city": [ + { + "name": "福州市", + "area": [ + "鼓楼区", + "台江区", + "仓山区", + "马尾区", + "晋安区", + "福清市", + "长乐市", + "闽侯县", + "闽清县", + "永泰县", + "连江县", + "罗源县", + "平潭县" + ] + }, + { + "name": "厦门市", + "area": [ + "思明区", + "海沧区", + "湖里区", + "集美区", + "同安区", + "翔安区" + ] + }, + { + "name": "莆田市", + "area": [ + "城厢区", + "涵江区", + "荔城区", + "秀屿区", + "仙游县" + ] + }, + { + "name": "三明市", + "area": [ + "梅列区", + "三元区", + "永安市", + "明溪县", + "将乐县", + "大田县", + "宁化县", + "建宁县", + "沙县", + "尤溪县", + "清流县", + "泰宁县" + ] + }, + { + "name": "泉州市", + "area": [ + "鲤城区", + "丰泽区", + "洛江区", + "泉港区", + "石狮市", + "晋江市", + "南安市", + "惠安县", + "永春县", + "安溪县", + "德化县", + "金门县" + ] + }, + { + "name": "漳州市", + "area": [ + "芗城区", + "龙文区", + "龙海市", + "平和县", + "南靖县", + "诏安县", + "漳浦县", + "华安县", + "东山县", + "长泰县", + "云霄县" + ] + }, + { + "name": "南平市", + "area": [ + "延平区", + "建瓯市", + "邵武市", + "武夷山市", + "建阳市", + "松溪县", + "光泽县", + "顺昌县", + "浦城县", + "政和县" + ] + }, + { + "name": "龙岩市", + "area": [ + "新罗区", + "漳平市", + "长汀县", + "武平县", + "上杭县", + "永定县", + "连城县" + ] + }, + { + "name": "宁德市", + "area": [ + "蕉城区", + "福安市", + "福鼎市", + "寿宁县", + "霞浦县", + "柘荣县", + "屏南县", + "古田县", + "周宁县" + ] + } + ] + }, + { + "name": "江西省", + "city": [ + { + "name": "南昌市", + "area": [ + "东湖区", + "西湖区", + "青云谱区", + "湾里区", + "青山湖区", + "新建县", + "南昌县", + "进贤县", + "安义县" + ] + }, + { + "name": "景德镇市", + "area": [ + "珠山区", + "昌江区", + "乐平市", + "浮梁县" + ] + }, + { + "name": "萍乡市", + "area": [ + "安源区", + "湘东区", + "莲花县", + "上栗县", + "芦溪县" + ] + }, + { + "name": "九江市", + "area": [ + "浔阳区", + "庐山区", + "瑞昌市", + "九江县", + "星子县", + "武宁县", + "彭泽县", + "永修县", + "修水县", + "湖口县", + "德安县", + "都昌县" + ] + }, + { + "name": "新余市", + "area": [ + "渝水区", + "分宜县" + ] + }, + { + "name": "鹰潭市", + "area": [ + "月湖区", + "贵溪市", + "余江县" + ] + }, + { + "name": "赣州市", + "area": [ + "章贡区", + "瑞金市", + "南康市", + "石城县", + "安远县", + "赣县", + "宁都县", + "寻乌县", + "兴国县", + "定南县", + "上犹县", + "于都县", + "龙南县", + "崇义县", + "信丰县", + "全南县", + "大余县", + "会昌县" + ] + }, + { + "name": "吉安市", + "area": [ + "吉州区", + "青原区", + "井冈山市", + "吉安县", + "永丰县", + "永新县", + "新干县", + "泰和县", + "峡江县", + "遂川县", + "安福县", + "吉水县", + "万安县" + ] + }, + { + "name": "宜春市", + "area": [ + "袁州区", + "丰城市", + "樟树市", + "高安市", + "铜鼓县", + "靖安县", + "宜丰县", + "奉新县", + "万载县", + "上高县" + ] + }, + { + "name": "抚州市", + "area": [ + "临川区", + "南丰县", + "乐安县", + "金溪县", + "南城县", + "东乡县", + "资溪县", + "宜黄县", + "广昌县", + "黎川县", + "崇仁县" + ] + }, + { + "name": "上饶市", + "area": [ + "信州区", + "德兴市", + "上饶县", + "广丰县", + "鄱阳县", + "婺源县", + "铅山县", + "余干县", + "横峰县", + "弋阳县", + "玉山县", + "万年县" + ] + } + ] + }, + { + "name": "山东省", + "city": [ + { + "name": "济南市", + "area": [ + "市中区", + "历下区", + "天桥区", + "槐荫区", + "历城区", + "长清区", + "章丘市", + "平阴县", + "济阳县", + "商河县" + ] + }, + { + "name": "青岛市", + "area": [ + "市南区", + "市北区", + "城阳区", + "四方区", + "李沧区", + "黄岛区", + "崂山区", + "胶南市", + "胶州市", + "平度市", + "莱西市", + "即墨市" + ] + }, + { + "name": "淄博市", + "area": [ + "张店区", + "临淄区", + "淄川区", + "博山区", + "周村区", + "桓台县", + "高青县", + "沂源县" + ] + }, + { + "name": "枣庄市", + "area": [ + "市中区", + "山亭区", + "峄城区", + "台儿庄区", + "薛城区", + "滕州市" + ] + }, + { + "name": "东营市", + "area": [ + "东营区", + "河口区", + "垦利县", + "广饶县", + "利津县" + ] + }, + { + "name": "烟台市", + "area": [ + "芝罘区", + "福山区", + "牟平区", + "莱山区", + "龙口市", + "莱阳市", + "莱州市", + "招远市", + "蓬莱市", + "栖霞市", + "海阳市", + "长岛县" + ] + }, + { + "name": "潍坊市", + "area": [ + "潍城区", + "寒亭区", + "坊子区", + "奎文区", + "青州市", + "诸城市", + "寿光市", + "安丘市", + "高密市", + "昌邑市", + "昌乐县", + "临朐县" + ] + }, + { + "name": "济宁市", + "area": [ + "市中区", + "任城区", + "曲阜市", + "兖州市", + "邹城市", + "鱼台县", + "金乡县", + "嘉祥县", + "微山县", + "汶上县", + "泗水县", + "梁山县" + ] + }, + { + "name": "泰安市", + "area": [ + "泰山区", + "岱岳区", + "新泰市", + "肥城市", + "宁阳县", + "东平县" + ] + }, + { + "name": "威海市", + "area": [ + "环翠区", + "乳山市", + "文登市", + "荣成市" + ] + }, + { + "name": "日照市", + "area": [ + "东港区", + "岚山区", + "五莲县", + "莒县" + ] + }, + { + "name": "莱芜市", + "area": [ + "莱城区", + "钢城区" + ] + }, + { + "name": "临沂市", + "area": [ + "兰山区", + "罗庄区", + "河东区", + "沂南县", + "郯城县", + "沂水县", + "苍山县", + "费县", + "平邑县", + "莒南县", + "蒙阴县", + "临沭县" + ] + }, + { + "name": "德州市", + "area": [ + "德城区", + "乐陵市", + "禹城市", + "陵县", + "宁津县", + "齐河县", + "武城县", + "庆云县", + "平原县", + "夏津县", + "临邑县" + ] + }, + { + "name": "聊城市", + "area": [ + "东昌府区", + "临清市", + "高唐县", + "阳谷县", + "茌平县", + "莘县", + "东阿县", + "冠县" + ] + }, + { + "name": "滨州市", + "area": [ + "滨城区", + "邹平县", + "沾化县", + "惠民县", + "博兴县", + "阳信县", + "无棣县" + ] + }, + { + "name": "菏泽市", + "area": [ + "牡丹区", + "鄄城县", + "单县", + "郓城县", + "曹县", + "定陶县", + "巨野县", + "东明县", + "成武县" + ] + } + ] + }, + { + "name": "河南省", + "city": [ + { + "name": "郑州市", + "area": [ + "中原区", + "金水区", + "二七区", + "管城回族区", + "上街区", + "惠济区", + "巩义市", + "新郑市", + "新密市", + "登封市", + "荥阳市", + "中牟县" + ] + }, + { + "name": "开封市", + "area": [ + "鼓楼区", + "龙亭区", + "顺河回族区", + "禹王台区", + "金明区", + "开封县", + "尉氏县", + "兰考县", + "杞县", + "通许县" + ] + }, + { + "name": "洛阳市", + "area": [ + "西工区", + "老城区", + "涧西区", + "瀍河回族区", + "洛龙区", + "吉利区", + "偃师市", + "孟津县", + "汝阳县", + "伊川县", + "洛宁县", + "嵩县", + "宜阳县", + "新安县", + "栾川县" + ] + }, + { + "name": "平顶山市", + "area": [ + "新华区", + "卫东区", + "湛河区", + "石龙区", + "汝州市", + "舞钢市", + "宝丰县", + "叶县", + "郏县", + "鲁山县" + ] + }, + { + "name": "安阳市", + "area": [ + "北关区", + "文峰区", + "殷都区", + "龙安区", + "林州市", + "安阳县", + "滑县", + "内黄县", + "汤阴县" + ] + }, + { + "name": "鹤壁市", + "area": [ + "淇滨区", + "山城区", + "鹤山区", + "浚县", + "淇县" + ] + }, + { + "name": "新乡市", + "area": [ + "卫滨区", + "红旗区", + "凤泉区", + "牧野区", + "卫辉市", + "辉县市", + "新乡县", + "获嘉县", + "原阳县", + "长垣县", + "封丘县", + "延津县" + ] + }, + { + "name": "焦作市", + "area": [ + "解放区", + "中站区", + "马村区", + "山阳区", + "沁阳市", + "孟州市", + "修武县", + "温县", + "武陟县", + "博爱县" + ] + }, + { + "name": "濮阳市", + "area": [ + "华龙区", + "濮阳县", + "南乐县", + "台前县", + "清丰县", + "范县" + ] + }, + { + "name": "许昌市", + "area": [ + "魏都区", + "禹州市", + "长葛市", + "许昌县", + "鄢陵县", + "襄城县" + ] + }, + { + "name": "漯河市", + "area": [ + "源汇区", + "郾城区", + "召陵区", + "临颍县", + "舞阳县" + ] + }, + { + "name": "三门峡市", + "area": [ + "湖滨区", + "义马市", + "灵宝市", + "渑池县", + "卢氏县", + "陕县" + ] + }, + { + "name": "南阳市", + "area": [ + "卧龙区", + "宛城区", + "邓州市", + "桐柏县", + "方城县", + "淅川县", + "镇平县", + "唐河县", + "南召县", + "内乡县", + "新野县", + "社旗县", + "西峡县" + ] + }, + { + "name": "商丘市", + "area": [ + "梁园区", + "睢阳区", + "永城市", + "宁陵县", + "虞城县", + "民权县", + "夏邑县", + "柘城县", + "睢县" + ] + }, + { + "name": "信阳市", + "area": [ + "浉河区", + "平桥区", + "潢川县", + "淮滨县", + "息县", + "新县", + "商城县", + "固始县", + "罗山县", + "光山县" + ] + }, + { + "name": "周口市", + "area": [ + "川汇区", + "项城市", + "商水县", + "淮阳县", + "太康县", + "鹿邑县", + "西华县", + "扶沟县", + "沈丘县", + "郸城县" + ] + }, + { + "name": "驻马店市", + "area": [ + "驿城区", + "确山县", + "新蔡县", + "上蔡县", + "西平县", + "泌阳县", + "平舆县", + "汝南县", + "遂平县", + "正阳县" + ] + }, + { + "name": "焦作市", + "area": [ + "济源市" + ] + } + ] + }, + { + "name": "湖北省", + "city": [ + { + "name": "武汉市", + "area": [ + "江岸区", + "武昌区", + "江汉区", + "硚口区", + "汉阳区", + "青山区", + "洪山区", + "东西湖区", + "汉南区", + "蔡甸区", + "江夏区", + "黄陂区", + "新洲区" + ] + }, + { + "name": "黄石市", + "area": [ + "黄石港区", + "西塞山区", + "下陆区", + "铁山区", + "大冶市", + "阳新县" + ] + }, + { + "name": "十堰市", + "area": [ + "张湾区", + "茅箭区", + "丹江口市", + "郧县", + "竹山县", + "房县", + "郧西县", + "竹溪县" + ] + }, + { + "name": "荆州市", + "area": [ + "沙市区", + "荆州区", + "洪湖市", + "石首市", + "松滋市", + "监利县", + "公安县", + "江陵县" + ] + }, + { + "name": "宜昌市", + "area": [ + "西陵区", + "伍家岗区", + "点军区", + "猇亭区", + "夷陵区", + "宜都市", + "当阳市", + "枝江市", + "秭归县", + "远安县", + "兴山县", + "五峰土家族自治县", + "长阳土家族自治县" + ] + }, + { + "name": "襄樊市", + "area": [ + "襄城区", + "樊城区", + "襄阳区", + "老河口市", + "枣阳市", + "宜城市", + "南漳县", + "谷城县", + "保康县" + ] + }, + { + "name": "鄂州市", + "area": [ + "鄂城区", + "华容区", + "梁子湖区" + ] + }, + { + "name": "荆门市", + "area": [ + "东宝区", + "掇刀区", + "钟祥市", + "京山县", + "沙洋县" + ] + }, + { + "name": "孝感市", + "area": [ + "孝南区", + "应城市", + "安陆市", + "汉川市", + "云梦县", + "大悟县", + "孝昌县" + ] + }, + { + "name": "黄冈市", + "area": [ + "黄州区", + "麻城市", + "武穴市", + "红安县", + "罗田县", + "浠水县", + "蕲春县", + "黄梅县", + "英山县", + "团风县" + ] + }, + { + "name": "咸宁市", + "area": [ + "咸安区", + "赤壁市", + "嘉鱼县", + "通山县", + "崇阳县", + "通城县" + ] + }, + { + "name": "随州市", + "area": [ + "曾都区", + "广水市" + ] + }, + { + "name": "恩施土家族苗族自治州", + "area": [ + "恩施市", + "利川市", + "建始县", + "来凤县", + "巴东县", + "鹤峰县", + "宣恩县", + "咸丰县" + ] + }, + { + "name": "仙桃市", + "area": [ + "仙桃" + ] + }, + { + "name": "天门市", + "area": [ + "天门" + ] + }, + { + "name": "潜江市", + "area": [ + "潜江" + ] + }, + { + "name": "神农架林区", + "area": [ + "神农架林区" + ] + } + ] + }, + { + "name": "湖南省", + "city": [ + { + "name": "长沙市", + "area": [ + "岳麓区", + "芙蓉区", + "天心区", + "开福区", + "雨花区", + "浏阳市", + "长沙县", + "望城县", + "宁乡县" + ] + }, + { + "name": "株洲市", + "area": [ + "天元区", + "荷塘区", + "芦淞区", + "石峰区", + "醴陵市", + "株洲县", + "炎陵县", + "茶陵县", + "攸县" + ] + }, + { + "name": "湘潭市", + "area": [ + "岳塘区", + "雨湖区", + "湘乡市", + "韶山市", + "湘潭县" + ] + }, + { + "name": "衡阳市", + "area": [ + "雁峰区", + "珠晖区", + "石鼓区", + "蒸湘区", + "南岳区", + "耒阳市", + "常宁市", + "衡阳县", + "衡东县", + "衡山县", + "衡南县", + "祁东县" + ] + }, + { + "name": "邵阳市", + "area": [ + "双清区", + "大祥区", + "北塔区", + "武冈市", + "邵东县", + "洞口县", + "新邵县", + "绥宁县", + "新宁县", + "邵阳县", + "隆回县", + "城步苗族自治县" + ] + }, + { + "name": "岳阳市", + "area": [ + "岳阳楼区", + "云溪区", + "君山区", + "临湘市", + "汨罗市", + "岳阳县", + "湘阴县", + "平江县", + "华容县" + ] + }, + { + "name": "常德市", + "area": [ + "武陵区", + "鼎城区", + "津市市", + "澧县", + "临澧县", + "桃源县", + "汉寿县", + "安乡县", + "石门县" + ] + }, + { + "name": "张家界市", + "area": [ + "永定区", + "武陵源区", + "慈利县", + "桑植县" + ] + }, + { + "name": "益阳市", + "area": [ + "赫山区", + "资阳区", + "沅江市", + "桃江县", + "南县", + "安化县" + ] + }, + { + "name": "郴州市", + "area": [ + "北湖区", + "苏仙区", + "资兴市", + "宜章县", + "汝城县", + "安仁县", + "嘉禾县", + "临武县", + "桂东县", + "永兴县", + "桂阳县" + ] + }, + { + "name": "永州市", + "area": [ + "冷水滩区", + "零陵区", + "祁阳县", + "蓝山县", + "宁远县", + "新田县", + "东安县", + "江永县", + "道县", + "双牌县", + "江华瑶族自治县" + ] + }, + { + "name": "怀化市", + "area": [ + "鹤城区", + "洪江市", + "会同县", + "沅陵县", + "辰溪县", + "溆浦县", + "中方县", + "新晃侗族自治县", + "芷江侗族自治县", + "通道侗族自治县", + "靖州苗族侗族自治县", + "麻阳苗族自治县" + ] + }, + { + "name": "娄底市", + "area": [ + "娄星区", + "冷水江市", + "涟源市", + "新化县", + "双峰县" + ] + }, + { + "name": "湘西土家族苗族自治州", + "area": [ + "吉首市", + "古丈县", + "龙山县", + "永顺县", + "凤凰县", + "泸溪县", + "保靖县", + "花垣县" + ] + } + ] + }, + { + "name": "广东省", + "city": [ + { + "name": "广州市", + "area": [ + "越秀区", + "荔湾区", + "海珠区", + "天河区", + "白云区", + "黄埔区", + "番禺区", + "花都区", + "南沙区", + "萝岗区", + "增城市", + "从化市" + ] + }, + { + "name": "深圳市", + "area": [ + "福田区", + "罗湖区", + "南山区", + "宝安区", + "龙岗区", + "盐田区" + ] + }, + { + "name": "东莞市", + "area": [ + "莞城", + "常平", + "塘厦", + "塘厦", + "塘厦" + ] + }, + { + "name": "中山市", + "area": [ + "中山" + ] + }, + { + "name": "潮州市", + "area": [ + "湘桥区", + "潮安县", + "饶平县" + ] + }, + { + "name": "揭阳市", + "area": [ + "榕城区", + "揭东县", + "揭西县", + "惠来县", + "普宁市" + ] + }, + { + "name": "云浮市", + "area": [ + "云城区", + "新兴县", + "郁南县", + "云安县", + "罗定市" + ] + }, + { + "name": "珠海市", + "area": [ + "香洲区", + "斗门区", + "金湾区" + ] + }, + { + "name": "汕头市", + "area": [ + "金平区", + "濠江区", + "龙湖区", + "潮阳区", + "潮南区", + "澄海区", + "南澳县" + ] + }, + { + "name": "韶关市", + "area": [ + "浈江区", + "武江区", + "曲江区", + "乐昌市", + "南雄市", + "始兴县", + "仁化县", + "翁源县", + "新丰县", + "乳源瑶族自治县" + ] + }, + { + "name": "佛山市", + "area": [ + "禅城区", + "南海区", + "顺德区", + "三水区", + "高明区" + ] + }, + { + "name": "江门市", + "area": [ + "蓬江区", + "江海区", + "新会区", + "恩平市", + "台山市", + "开平市", + "鹤山市" + ] + }, + { + "name": "湛江市", + "area": [ + "赤坎区", + "霞山区", + "坡头区", + "麻章区", + "吴川市", + "廉江市", + "雷州市", + "遂溪县", + "徐闻县" + ] + }, + { + "name": "茂名市", + "area": [ + "茂南区", + "茂港区", + "化州市", + "信宜市", + "高州市", + "电白县" + ] + }, + { + "name": "肇庆市", + "area": [ + "端州区", + "鼎湖区", + "高要市", + "四会市", + "广宁县", + "怀集县", + "封开县", + "德庆县" + ] + }, + { + "name": "惠州市", + "area": [ + "惠城区", + "惠阳区", + "博罗县", + "惠东县", + "龙门县" + ] + }, + { + "name": "梅州市", + "area": [ + "梅江区", + "兴宁市", + "梅县", + "大埔县", + "丰顺县", + "五华县", + "平远县", + "蕉岭县" + ] + }, + { + "name": "汕尾市", + "area": [ + "城区", + "陆丰市", + "海丰县", + "陆河县" + ] + }, + { + "name": "河源市", + "area": [ + "源城区", + "紫金县", + "龙川县", + "连平县", + "和平县", + "东源县" + ] + }, + { + "name": "阳江市", + "area": [ + "江城区", + "阳春市", + "阳西县", + "阳东县" + ] + }, + { + "name": "清远市", + "area": [ + "清城区", + "英德市", + "连州市", + "佛冈县", + "阳山县", + "清新县", + "连山壮族瑶族自治县", + "连南瑶族自治县" + ] + } + ] + }, + { + "name": "广西", + "city": [ + { + "name": "南宁市", + "area": [ + "青秀区", + "兴宁区", + "西乡塘区", + "良庆区", + "江南区", + "邕宁区", + "武鸣县", + "隆安县", + "马山县", + "上林县", + "宾阳县", + "横县" + ] + }, + { + "name": "柳州市", + "area": [ + "城中区", + "鱼峰区", + "柳北区", + "柳南区", + "柳江县", + "柳城县", + "鹿寨县", + "融安县", + "融水苗族自治县", + "三江侗族自治县" + ] + }, + { + "name": "桂林市", + "area": [ + "象山区", + "秀峰区", + "叠彩区", + "七星区", + "雁山区", + "阳朔县", + "临桂县", + "灵川县", + "全州县", + "平乐县", + "兴安县", + "灌阳县", + "荔浦县", + "资源县", + "永福县", + "龙胜各族自治县", + "恭城瑶族自治县" + ] + }, + { + "name": "梧州市", + "area": [ + "万秀区", + "蝶山区", + "长洲区", + "岑溪市", + "苍梧县", + "藤县", + "蒙山县" + ] + }, + { + "name": "北海市", + "area": [ + "海城区", + "银海区", + "铁山港区", + "合浦县" + ] + }, + { + "name": "防城港市", + "area": [ + "港口区", + "防城区", + "东兴市", + "上思县" + ] + }, + { + "name": "钦州市", + "area": [ + "钦南区", + "钦北区", + "灵山县", + "浦北县" + ] + }, + { + "name": "贵港市", + "area": [ + "港北区", + "港南区", + "覃塘区", + "桂平市", + "平南县" + ] + }, + { + "name": "玉林市", + "area": [ + "玉州区", + "北流市", + "容县", + "陆川县", + "博白县", + "兴业县" + ] + }, + { + "name": "百色市", + "area": [ + "右江区", + "凌云县", + "平果县", + "西林县", + "乐业县", + "德保县", + "田林县", + "田阳县", + "靖西县", + "田东县", + "那坡县", + "隆林各族自治县" + ] + }, + { + "name": "贺州市", + "area": [ + "八步区", + "钟山县", + "昭平县", + "富川瑶族自治县" + ] + }, + { + "name": "河池市", + "area": [ + "金城江区", + "宜州市", + "天峨县", + "凤山县", + "南丹县", + "东兰县", + "都安瑶族自治县", + "罗城仫佬族自治县", + "巴马瑶族自治县", + "环江毛南族自治县", + "大化瑶族自治县" + ] + }, + { + "name": "来宾市", + "area": [ + "兴宾区", + "合山市", + "象州县", + "武宣县", + "忻城县", + "金秀瑶族自治县" + ] + }, + { + "name": "崇左市", + "area": [ + "江州区", + "凭祥市", + "宁明县", + "扶绥县", + "龙州县", + "大新县", + "天等县" + ] + } + ] + }, + { + "name": "海南省", + "city": [ + { + "name": "海口市", + "area": [ + "龙华区", + "秀英区", + "琼山区", + "美兰区" + ] + }, + { + "name": "三亚市", + "area": [ + "三亚市" + ] + }, + { + "name": "五指山市", + "area": [ + "五指山" + ] + }, + { + "name": "琼海市", + "area": [ + "琼海" + ] + }, + { + "name": "儋州市", + "area": [ + "儋州" + ] + }, + { + "name": "文昌市", + "area": [ + "文昌" + ] + }, + { + "name": "万宁市", + "area": [ + "万宁" + ] + }, + { + "name": "东方市", + "area": [ + "东方" + ] + }, + { + "name": "澄迈县", + "area": [ + "澄迈县" + ] + }, + { + "name": "定安县", + "area": [ + "定安县" + ] + }, + { + "name": "屯昌县", + "area": [ + "屯昌县" + ] + }, + { + "name": "临高县", + "area": [ + "临高县" + ] + }, + { + "name": "白沙黎族自治县", + "area": [ + "白沙黎族自治县" + ] + }, + { + "name": "昌江黎族自治县", + "area": [ + "昌江黎族自治县" + ] + }, + { + "name": "乐东黎族自治县", + "area": [ + "乐东黎族自治县" + ] + }, + { + "name": "陵水黎族自治县", + "area": [ + "陵水黎族自治县" + ] + }, + { + "name": "保亭黎族苗族自治县", + "area": [ + "保亭黎族苗族自治县" + ] + }, + { + "name": "琼中黎族苗族自治县", + "area": [ + "琼中黎族苗族自治县" + ] + } + ] + }, + { + "name": "重庆市", + "city": [ + { + "name": "重庆市", + "area": [ + "渝中区", + "大渡口区", + "江北区", + "南岸区", + "北碚区", + "渝北区", + "巴南区", + "长寿区", + "双桥区", + "沙坪坝区", + "万盛区", + "万州区", + "涪陵区", + "黔江区", + "永川区", + "合川区", + "江津区", + "九龙坡区", + "南川区", + "綦江县", + "潼南县", + "荣昌县", + "璧山县", + "大足县", + "铜梁县", + "梁平县", + "开县", + "忠县", + "城口县", + "垫江县", + "武隆县", + "丰都县", + "奉节县", + "云阳县", + "巫溪县", + "巫山县", + "石柱土家族自治县", + "秀山土家族苗族自治县", + "酉阳土家族苗族自治县", + "彭水苗族土家族自治县" + ] + } + ] + }, + { + "name": "四川省", + "city": [ + { + "name": "成都市", + "area": [ + "青羊区", + "锦江区", + "金牛区", + "武侯区", + "成华区", + "龙泉驿区", + "青白江区", + "新都区", + "温江区", + "都江堰市", + "彭州市", + "邛崃市", + "崇州市", + "金堂县", + "郫县", + "新津县", + "双流县", + "蒲江县", + "大邑县" + ] + }, + { + "name": "自贡市", + "area": [ + "大安区", + "自流井区", + "贡井区", + "沿滩区", + "荣县", + "富顺县" + ] + }, + { + "name": "攀枝花市", + "area": [ + "仁和区", + "米易县", + "盐边县", + "东区", + "西区" + ] + }, + { + "name": "泸州市", + "area": [ + "江阳区", + "纳溪区", + "龙马潭区", + "泸县", + "合江县", + "叙永县", + "古蔺县" + ] + }, + { + "name": "德阳市", + "area": [ + "旌阳区", + "广汉市", + "什邡市", + "绵竹市", + "罗江县", + "中江县" + ] + }, + { + "name": "绵阳市", + "area": [ + "涪城区", + "游仙区", + "江油市", + "盐亭县", + "三台县", + "平武县", + "安县", + "梓潼县", + "北川羌族自治县" + ] + }, + { + "name": "广元市", + "area": [ + "元坝区", + "朝天区", + "青川县", + "旺苍县", + "剑阁县", + "苍溪县", + "市中区" + ] + }, + { + "name": "遂宁市", + "area": [ + "船山区", + "安居区", + "射洪县", + "蓬溪县", + "大英县" + ] + }, + { + "name": "内江市", + "area": [ + "市中区", + "东兴区", + "资中县", + "隆昌县", + "威远县" + ] + }, + { + "name": "乐山市", + "area": [ + "市中区", + "五通桥区", + "沙湾区", + "金口河区", + "峨眉山市", + "夹江县", + "井研县", + "犍为县", + "沐川县", + "马边彝族自治县", + "峨边彝族自治县" + ] + }, + { + "name": "南充", + "area": [ + "顺庆区", + "高坪区", + "嘉陵区", + "阆中市", + "营山县", + "蓬安县", + "仪陇县", + "南部县", + "西充县" + ] + }, + { + "name": "眉山市", + "area": [ + "东坡区", + "仁寿县", + "彭山县", + "洪雅县", + "丹棱县", + "青神县" + ] + }, + { + "name": "宜宾市", + "area": [ + "翠屏区", + "宜宾县", + "兴文县", + "南溪县", + "珙县", + "长宁县", + "高县", + "江安县", + "筠连县", + "屏山县" + ] + }, + { + "name": "广安市", + "area": [ + "广安区", + "华蓥市", + "岳池县", + "邻水县", + "武胜县" + ] + }, + { + "name": "达州市", + "area": [ + "通川区", + "万源市", + "达县", + "渠县", + "宣汉县", + "开江县", + "大竹县" + ] + }, + { + "name": "雅安市", + "area": [ + "雨城区", + "芦山县", + "石棉县", + "名山县", + "天全县", + "荥经县", + "宝兴县", + "汉源县" + ] + }, + { + "name": "巴中市", + "area": [ + "巴州区", + "南江县", + "平昌县", + "通江县" + ] + }, + { + "name": "资阳市", + "area": [ + "雁江区", + "简阳市", + "安岳县", + "乐至县" + ] + }, + { + "name": "阿坝藏族羌族自治州", + "area": [ + "马尔康县", + "九寨沟县", + "红原县", + "汶川县", + "阿坝县", + "理县", + "若尔盖县", + "小金县", + "黑水县", + "金川县", + "松潘县", + "壤塘县", + "茂县" + ] + }, + { + "name": "甘孜藏族自治州", + "area": [ + "康定县", + "丹巴县", + "炉霍县", + "九龙县", + "甘孜县", + "雅江县", + "新龙县", + "道孚县", + "白玉县", + "理塘县", + "德格县", + "乡城县", + "石渠县", + "稻城县", + "色达县", + "巴塘县", + "泸定县", + "得荣县" + ] + }, + { + "name": "凉山彝族自治州", + "area": [ + "西昌市", + "美姑县", + "昭觉县", + "金阳县", + "甘洛县", + "布拖县", + "雷波县", + "普格县", + "宁南县", + "喜德县", + "会东县", + "越西县", + "会理县", + "盐源县", + "德昌县", + "冕宁县", + "木里藏族自治县" + ] + } + ] + }, + { + "name": "贵州省", + "city": [ + { + "name": "贵阳市", + "area": [ + "南明区", + "云岩区", + "花溪区", + "乌当区", + "白云区", + "小河区", + "清镇市", + "开阳县", + "修文县", + "息烽县" + ] + }, + { + "name": "六盘水市", + "area": [ + "钟山区", + "水城县", + "盘县", + "六枝特区" + ] + }, + { + "name": "遵义市", + "area": [ + "红花岗区", + "汇川区", + "赤水市", + "仁怀市", + "遵义县", + "绥阳县", + "桐梓县", + "习水县", + "凤冈县", + "正安县", + "余庆县", + "湄潭县", + "道真仡佬族苗族自治县", + "务川仡佬族苗族自治县" + ] + }, + { + "name": "安顺市", + "area": [ + "西秀区", + "普定县", + "平坝县", + "镇宁布依族苗族自治县", + "紫云苗族布依族自治县", + "关岭布依族苗族自治县" + ] + }, + { + "name": "铜仁地区", + "area": [ + "铜仁市", + "德江县", + "江口县", + "思南县", + "石阡县", + "玉屏侗族自治县", + "松桃苗族自治县", + "印江土家族苗族自治县", + "沿河土家族自治县", + "万山特区" + ] + }, + { + "name": "毕节地区", + "area": [ + "毕节市", + "黔西县", + "大方县", + "织金县", + "金沙县", + "赫章县", + "纳雍县", + "威宁彝族回族苗族自治县" + ] + }, + { + "name": "黔西南布依族苗族自治州", + "area": [ + "兴义市", + "望谟县", + "兴仁县", + "普安县", + "册亨县", + "晴隆县", + "贞丰县", + "安龙县" + ] + }, + { + "name": "黔东南苗族侗族自治州", + "area": [ + "凯里市", + "施秉县", + "从江县", + "锦屏县", + "镇远县", + "麻江县", + "台江县", + "天柱县", + "黄平县", + "榕江县", + "剑河县", + "三穗县", + "雷山县", + "黎平县", + "岑巩县", + "丹寨县" + ] + }, + { + "name": "黔南布依族苗族自治州", + "area": [ + "都匀市", + "福泉市", + "贵定县", + "惠水县", + "罗甸县", + "瓮安县", + "荔波县", + "龙里县", + "平塘县", + "长顺县", + "独山县", + "三都水族自治县" + ] + } + ] + }, + { + "name": "云南省", + "city": [ + { + "name": "昆明市", + "area": [ + "盘龙区", + "五华区", + "官渡区", + "西山区", + "东川区", + "安宁市", + "呈贡县", + "晋宁县", + "富民县", + "宜良县", + "嵩明县", + "石林彝族自治县", + "禄劝彝族苗族自治县", + "寻甸回族彝族自治县" + ] + }, + { + "name": "曲靖市", + "area": [ + "麒麟区", + "宣威市", + "马龙县", + "沾益县", + "富源县", + "罗平县", + "师宗县", + "陆良县", + "会泽县" + ] + }, + { + "name": "玉溪市", + "area": [ + "红塔区", + "江川县", + "澄江县", + "通海县", + "华宁县", + "易门县", + "峨山彝族自治县", + "新平彝族傣族自治县", + "元江哈尼族彝族傣族自治县" + ] + }, + { + "name": "保山市", + "area": [ + "隆阳区", + "施甸县", + "腾冲县", + "龙陵县", + "昌宁县" + ] + }, + { + "name": "昭通市", + "area": [ + "昭阳区", + "鲁甸县", + "巧家县", + "盐津县", + "大关县", + "永善县", + "绥江县", + "镇雄县", + "彝良县", + "威信县", + "水富县" + ] + }, + { + "name": "丽江市", + "area": [ + "古城区", + "永胜县", + "华坪县", + "玉龙纳西族自治县", + "宁蒗彝族自治县" + ] + }, + { + "name": "普洱市", + "area": [ + "思茅区", + "普洱哈尼族彝族自治县", + "墨江哈尼族自治县", + "景东彝族自治县", + "景谷傣族彝族自治县", + "镇沅彝族哈尼族拉祜族自治县", + "江城哈尼族彝族自治县", + "孟连傣族拉祜族佤族自治县", + "澜沧拉祜族自治县", + "西盟佤族自治县" + ] + }, + { + "name": "临沧市", + "area": [ + "临翔区", + "凤庆县", + "云县", + "永德县", + "镇康县", + "双江拉祜族佤族布朗族傣族自治县", + "耿马傣族佤族自治县", + "沧源佤族自治县" + ] + }, + { + "name": "德宏傣族景颇族自治州", + "area": [ + "潞西市", + "瑞丽市", + "梁河县", + "盈江县", + "陇川县" + ] + }, + { + "name": "怒江傈僳族自治州", + "area": [ + "泸水县", + "福贡县", + "贡山独龙族怒族自治县", + "兰坪白族普米族自治县" + ] + }, + { + "name": "迪庆藏族自治州", + "area": [ + "香格里拉县", + "德钦县", + "维西傈僳族自治县" + ] + }, + { + "name": "大理白族自治州", + "area": [ + "大理市", + "祥云县", + "宾川县", + "弥渡县", + "永平县", + "云龙县", + "洱源县", + "剑川县", + "鹤庆县", + "漾濞彝族自治县", + "南涧彝族自治县", + "巍山彝族回族自治县" + ] + }, + { + "name": "楚雄彝族自治州", + "area": [ + "楚雄市", + "双柏县", + "牟定县", + "南华县", + "姚安县", + "大姚县", + "永仁县", + "元谋县", + "武定县", + "禄丰县" + ] + }, + { + "name": "红河哈尼族彝族自治州", + "area": [ + "蒙自县", + "个旧市", + "开远市", + "绿春县", + "建水县", + "石屏县", + "弥勒县", + "泸西县", + "元阳县", + "红河县", + "金平苗族瑶族傣族自治县", + "河口瑶族自治县", + "屏边苗族自治县" + ] + }, + { + "name": "文山壮族苗族自治州", + "area": [ + "文山县", + "砚山县", + "西畴县", + "麻栗坡县", + "马关县", + "丘北县", + "广南县", + "富宁县" + ] + }, + { + "name": "西双版纳傣族自治州", + "area": [ + "景洪市", + "勐海县", + "勐腊县" + ] + } + ] + }, + { + "name": "西藏", + "city": [ + { + "name": "拉萨市", + "area": [ + "城关区", + "林周县", + "当雄县", + "尼木县", + "曲水县", + "堆龙德庆县", + "达孜县", + "墨竹工卡县" + ] + }, + { + "name": "那曲地区", + "area": [ + "那曲县", + "嘉黎县", + "比如县", + "聂荣县", + "安多县", + "申扎县", + "索县", + "班戈县", + "巴青县", + "尼玛县" + ] + }, + { + "name": "昌都地区", + "area": [ + "昌都县", + "江达县", + "贡觉县", + "类乌齐县", + "丁青县", + "察雅县", + "八宿县", + "左贡县", + "芒康县", + "洛隆县", + "边坝县" + ] + }, + { + "name": "林芝地区", + "area": [ + "林芝县", + "工布江达县", + "米林县", + "墨脱县", + "波密县", + "察隅县", + "朗县" + ] + }, + { + "name": "山南地区", + "area": [ + "乃东县", + "扎囊县", + "贡嘎县", + "桑日县", + "琼结县", + "曲松县", + "措美县", + "洛扎县", + "加查县", + "隆子县", + "错那县", + "浪卡子县" + ] + }, + { + "name": "日喀则地区", + "area": [ + "日喀则市", + "南木林县", + "江孜县", + "定日县", + "萨迦县", + "拉孜县", + "昂仁县", + "谢通门县", + "白朗县", + "仁布县", + "康马县", + "定结县", + "仲巴县", + "亚东县", + "吉隆县", + "聂拉木县", + "萨嘎县", + "岗巴县" + ] + }, + { + "name": "阿里地区", + "area": [ + "噶尔县", + "普兰县", + "札达县", + "日土县", + "革吉县", + "改则县", + "措勤县" + ] + } + ] + }, + { + "name": "陕西省", + "city": [ + { + "name": "西安市", + "area": [ + "莲湖区", + "新城区", + "碑林区", + "雁塔区", + "灞桥区", + "未央区", + "阎良区", + "临潼区", + "长安区", + "高陵县", + "蓝田县", + "户县", + "周至县" + ] + }, + { + "name": "铜川市", + "area": [ + "耀州区", + "王益区", + "印台区", + "宜君县" + ] + }, + { + "name": "宝鸡市", + "area": [ + "渭滨区", + "金台区", + "陈仓区", + "岐山县", + "凤翔县", + "陇县", + "太白县", + "麟游县", + "扶风县", + "千阳县", + "眉县", + "凤县" + ] + }, + { + "name": "咸阳市", + "area": [ + "秦都区", + "渭城区", + "杨陵区", + "兴平市", + "礼泉县", + "泾阳县", + "永寿县", + "三原县", + "彬县", + "旬邑县", + "长武县", + "乾县", + "武功县", + "淳化县" + ] + }, + { + "name": "渭南市", + "area": [ + "临渭区", + "韩城市", + "华阴市", + "蒲城县", + "潼关县", + "白水县", + "澄城县", + "华县", + "合阳县", + "富平县", + "大荔县" + ] + }, + { + "name": "延安市", + "area": [ + "宝塔区", + "安塞县", + "洛川县", + "子长县", + "黄陵县", + "延川县", + "富县", + "延长县", + "甘泉县", + "宜川县", + "志丹县", + "黄龙县", + "吴起县" + ] + }, + { + "name": "汉中市", + "area": [ + "汉台区", + "留坝县", + "镇巴县", + "城固县", + "南郑县", + "洋县", + "宁强县", + "佛坪县", + "勉县", + "西乡县", + "略阳县" + ] + }, + { + "name": "榆林市", + "area": [ + "榆阳区", + "清涧县", + "绥德县", + "神木县", + "佳县", + "府谷县", + "子洲县", + "靖边县", + "横山县", + "米脂县", + "吴堡县", + "定边县" + ] + }, + { + "name": "安康市", + "area": [ + "汉滨区", + "紫阳县", + "岚皋县", + "旬阳县", + "镇坪县", + "平利县", + "石泉县", + "宁陕县", + "白河县", + "汉阴县" + ] + }, + { + "name": "商洛市", + "area": [ + "商州区", + "镇安县", + "山阳县", + "洛南县", + "商南县", + "丹凤县", + "柞水县" + ] + } + ] + }, + { + "name": "甘肃省", + "city": [ + { + "name": "兰州市", + "area": [ + "城关区", + "七里河区", + "西固区", + "安宁区", + "红古区", + "永登县", + "皋兰县", + "榆中县" + ] + }, + { + "name": "嘉峪关市", + "area": [ + "嘉峪关市" + ] + }, + { + "name": "金昌市", + "area": [ + "金川区", + "永昌县" + ] + }, + { + "name": "白银市", + "area": [ + "白银区", + "平川区", + "靖远县", + "会宁县", + "景泰县" + ] + }, + { + "name": "天水市", + "area": [ + "清水县", + "秦安县", + "甘谷县", + "武山县", + "张家川回族自治县", + "北道区", + "秦城区" + ] + }, + { + "name": "武威市", + "area": [ + "凉州区", + "民勤县", + "古浪县", + "天祝藏族自治县" + ] + }, + { + "name": "酒泉市", + "area": [ + "肃州区", + "玉门市", + "敦煌市", + "金塔县", + "肃北蒙古族自治县", + "阿克塞哈萨克族自治县", + "安西县" + ] + }, + { + "name": "张掖市", + "area": [ + "甘州区", + "民乐县", + "临泽县", + "高台县", + "山丹县", + "肃南裕固族自治县" + ] + }, + { + "name": "庆阳市", + "area": [ + "西峰区", + "庆城县", + "环县", + "华池县", + "合水县", + "正宁县", + "宁县", + "镇原县" + ] + }, + { + "name": "平凉市", + "area": [ + "崆峒区", + "泾川县", + "灵台县", + "崇信县", + "华亭县", + "庄浪县", + "静宁县" + ] + }, + { + "name": "定西市", + "area": [ + "安定区", + "通渭县", + "临洮县", + "漳县", + "岷县", + "渭源县", + "陇西县" + ] + }, + { + "name": "陇南市", + "area": [ + "武都区", + "成县", + "宕昌县", + "康县", + "文县", + "西和县", + "礼县", + "两当县", + "徽县" + ] + }, + { + "name": "临夏回族自治州", + "area": [ + "临夏市", + "临夏县", + "康乐县", + "永靖县", + "广河县", + "和政县", + "东乡族自治县", + "积石山保安族东乡族撒拉族自治县" + ] + }, + { + "name": "甘南藏族自治州", + "area": [ + "合作市", + "临潭县", + "卓尼县", + "舟曲县", + "迭部县", + "玛曲县", + "碌曲县", + "夏河县" + ] + } + ] + }, + { + "name": "青海省", + "city": [ + { + "name": "西宁市", + "area": [ + "城中区", + "城东区", + "城西区", + "城北区", + "湟源县", + "湟中县", + "大通回族土族自治县" + ] + }, + { + "name": "海东地区", + "area": [ + "平安县", + "乐都县", + "民和回族土族自治县", + "互助土族自治县", + "化隆回族自治县", + "循化撒拉族自治县" + ] + }, + { + "name": "海北藏族自治州", + "area": [ + "海晏县", + "祁连县", + "刚察县", + "门源回族自治县" + ] + }, + { + "name": "海南藏族自治州", + "area": [ + "共和县", + "同德县", + "贵德县", + "兴海县", + "贵南县" + ] + }, + { + "name": "黄南藏族自治州", + "area": [ + "同仁县", + "尖扎县", + "泽库县", + "河南蒙古族自治县" + ] + }, + { + "name": "果洛藏族自治州", + "area": [ + "玛沁县", + "班玛县", + "甘德县", + "达日县", + "久治县", + "玛多县" + ] + }, + { + "name": "玉树藏族自治州", + "area": [ + "玉树县", + "杂多县", + "称多县", + "治多县", + "囊谦县", + "曲麻莱县" + ] + }, + { + "name": "海西蒙古族藏族自治州", + "area": [ + "德令哈市", + "格尔木市", + "乌兰县", + "都兰县", + "天峻县" + ] + } + ] + }, + { + "name": "宁夏", + "city": [ + { + "name": "银川市", + "area": [ + "兴庆区", + "西夏区", + "金凤区", + "灵武市", + "永宁县", + "贺兰县" + ] + }, + { + "name": "石嘴山市", + "area": [ + "大武口区", + "惠农区", + "平罗县" + ] + }, + { + "name": "吴忠市", + "area": [ + "利通区", + "青铜峡市", + "盐池县", + "同心县" + ] + }, + { + "name": "固原市", + "area": [ + "原州区", + "西吉县", + "隆德县", + "泾源县", + "彭阳县" + ] + }, + { + "name": "中卫市", + "area": [ + "沙坡头区", + "中宁县", + "海原县" + ] + } + ] + }, + { + "name": "新疆", + "city": [ + { + "name": "乌鲁木齐市", + "area": [ + "天山区", + "沙依巴克区", + "新市区", + "水磨沟区", + "头屯河区", + "达坂城区", + "东山区", + "乌鲁木齐县" + ] + }, + { + "name": "克拉玛依市", + "area": [ + "克拉玛依区", + "独山子区", + "白碱滩区", + "乌尔禾区" + ] + }, + { + "name": "吐鲁番地区", + "area": [ + "吐鲁番市", + "托克逊县", + "鄯善县" + ] + }, + { + "name": "哈密地区", + "area": [ + "哈密市", + "伊吾县", + "巴里坤哈萨克自治县" + ] + }, + { + "name": "和田地区", + "area": [ + "和田市", + "和田县", + "洛浦县", + "民丰县", + "皮山县", + "策勒县", + "于田县", + "墨玉县" + ] + }, + { + "name": "阿克苏地区", + "area": [ + "阿克苏市", + "温宿县", + "沙雅县", + "拜城县", + "阿瓦提县", + "库车县", + "柯坪县", + "新和县", + "乌什县" + ] + }, + { + "name": "喀什地区", + "area": [ + "喀什市", + "巴楚县", + "泽普县", + "伽师县", + "叶城县", + "岳普湖县", + "疏勒县", + "麦盖提县", + "英吉沙县", + "莎车县", + "疏附县", + "塔什库尔干塔吉克自治县" + ] + }, + { + "name": "克孜勒苏柯尔克孜自治州", + "area": [ + "阿图什市", + "阿合奇县", + "乌恰县", + "阿克陶县" + ] + }, + { + "name": "巴音郭楞蒙古自治州", + "area": [ + "库尔勒市", + "和静县", + "尉犁县", + "和硕县", + "且末县", + "博湖县", + "轮台县", + "若羌县", + "焉耆回族自治县" + ] + }, + { + "name": "昌吉回族自治州", + "area": [ + "昌吉市", + "阜康市", + "奇台县", + "玛纳斯县", + "吉木萨尔县", + "呼图壁县", + "木垒哈萨克自治县", + "米泉市" + ] + }, + { + "name": "博尔塔拉蒙古自治州", + "area": [ + "博乐市", + "精河县", + "温泉县" + ] + }, + { + "name": "石河子", + "area": [ + "石河子" + ] + }, + { + "name": "阿拉尔", + "area": [ + "阿拉尔" + ] + }, + { + "name": "图木舒克", + "area": [ + "图木舒克" + ] + }, + { + "name": "五家渠", + "area": [ + "五家渠" + ] + }, + { + "name": "伊犁哈萨克自治州", + "area": [ + "伊宁市", + "奎屯市", + "伊宁县", + "特克斯县", + "尼勒克县", + "昭苏县", + "新源县", + "霍城县", + "巩留县", + "察布查尔锡伯自治县", + "塔城地区", + "阿勒泰地区" + ] + } + ] + }, + { + "name": "台湾省", + "city": [ + { + "name": "台北市", + "area": [ + "内湖区", + "南港区", + "中正区", + "万华区", + "大同区", + "中山区", + "松山区", + "大安区", + "信义区", + "文山区", + "士林区", + "北投区" + ] + }, + { + "name": "新北市", + "area": [ + "板桥区", + "汐止区", + "新店区" + ] + }, + { + "name": "桃园市", + "area": [ + "其他" + ] + }, + { + "name": "台中市", + "area": [ + "其他" + ] + }, + { + "name": "台南市", + "area": [ + "其他" + ] + }, + { + "name": "高雄市", + "area": [ + "其他" + ] + } + ] + }, + { + "name": "澳门", + "city": [ + { + "name": "澳门", + "area": [ + "花地玛堂区", + "圣安多尼堂区", + "大堂区", + "望德堂区", + "风顺堂区", + "嘉模堂区", + "圣方济各堂区", + "路凼" + ] + } + ] + }, + { + "name": "香港", + "city": [ + { + "name": "香港", + "area": [ + "深水埗区", + "油尖旺区", + "九龙城区", + "黄大仙区", + "观塘区", + "北区", + "大埔区", + "沙田区", + "西贡区", + "元朗区", + "屯门区", + "荃湾区", + "葵青区", + "离岛区", + "中西区", + "湾仔区", + "东区", + "南区" + ] + } + ] + } +] \ No newline at end of file diff --git a/.svn/pristine/01/0127e37367193d20be11b03bd392a7631a8ce74c.svn-base b/.svn/pristine/01/0127e37367193d20be11b03bd392a7631a8ce74c.svn-base new file mode 100644 index 0000000..0c4fba4 Binary files /dev/null and b/.svn/pristine/01/0127e37367193d20be11b03bd392a7631a8ce74c.svn-base differ diff --git a/.svn/pristine/02/02f22a47a4d959b8c2deec868acb743465ebe572.svn-base b/.svn/pristine/02/02f22a47a4d959b8c2deec868acb743465ebe572.svn-base new file mode 100644 index 0000000..cfc1c4c --- /dev/null +++ b/.svn/pristine/02/02f22a47a4d959b8c2deec868acb743465ebe572.svn-base @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/.svn/pristine/03/03b6ac2a2ea9f6252c06d7e10cd489fe665ff94e.svn-base b/.svn/pristine/03/03b6ac2a2ea9f6252c06d7e10cd489fe665ff94e.svn-base new file mode 100644 index 0000000..1878088 --- /dev/null +++ b/.svn/pristine/03/03b6ac2a2ea9f6252c06d7e10cd489fe665ff94e.svn-base @@ -0,0 +1,87 @@ +{ + "id": "uni-tag", + "displayName": "uni-tag 标签", + "version": "2.1.0", + "description": "Tag 组件,用于展示1个或多个文字标签,可点击切换选中、不选中的状态。", + "keywords": [ + "uni-ui", + "uniui", + "", + "tag", + "标签" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/04/040eeb6c3005187486201161f37fc2d8753bf903.svn-base b/.svn/pristine/04/040eeb6c3005187486201161f37fc2d8753bf903.svn-base new file mode 100644 index 0000000..3672e2d --- /dev/null +++ b/.svn/pristine/04/040eeb6c3005187486201161f37fc2d8753bf903.svn-base @@ -0,0 +1,55 @@ +import tools from '@/common/tools.js' + +let token +//页面黑名单 +const blackList = [ + +] +//未登录黑名单 +const tokenList = [ + 'mallDet/mallDet', + 'qushi/pushQuShi', + 'quDet' +] +//回调处理 +function isNext(back,login) { + console.log(back,login) + if (!back) {//如果是黑名单中的路径 + tools.showtt('该功能暂未开放') + } + + if (!login) {//如果是登录名单中的路径,并且没登陆 + uni.showModal({ + content: "请先授权登录再进行此操作", + title: "未登录", + success(res) { + if (res.confirm) { + tools.goNext('/pages/login/login') + } + } + }) + } +} +//拦截器 +// e.url == pagesOne/order/orderlist +uni.addInterceptor('navigateTo', { + invoke(e) { + console.log(e) + token = uni.getStorageSync('token') + //黑名单判断 + let back = blackList.every(val => val !== e.url) + //登录名单判断 + let login = tokenList.every(val => e.url.indexOf(val) == -1 || token) + //白名单 + // let back = !blackList.every(val => val !== e.url) + //拦截回调 + isNext(back,login) + return login && back + }, + success(e) { + console.log(e,'拦截器成功回调') + }, + fail(e) { + console.log(e,'拦截器失败回调') + } +}) diff --git a/.svn/pristine/04/046dd73a6e6aa7a4478c3b6c63699ffce6466b30.svn-base b/.svn/pristine/04/046dd73a6e6aa7a4478c3b6c63699ffce6466b30.svn-base new file mode 100644 index 0000000..a971234 --- /dev/null +++ b/.svn/pristine/04/046dd73a6e6aa7a4478c3b6c63699ffce6466b30.svn-base @@ -0,0 +1,144 @@ + + + + + diff --git a/.svn/pristine/06/0620041dce886a5914aabfa6e5d26206d17c63d7.svn-base b/.svn/pristine/06/0620041dce886a5914aabfa6e5d26206d17c63d7.svn-base new file mode 100644 index 0000000..bdf175d --- /dev/null +++ b/.svn/pristine/06/0620041dce886a5914aabfa6e5d26206d17c63d7.svn-base @@ -0,0 +1,10 @@ +## Badge 数字角标 +> **组件名:uni-badge** +> 代码块: `uBadge` + +数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景, + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-badge) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/.svn/pristine/06/06b87f6e153a2f508846bfde6a1ca34507edf91e.svn-base b/.svn/pristine/06/06b87f6e153a2f508846bfde6a1ca34507edf91e.svn-base new file mode 100644 index 0000000..043078e Binary files /dev/null and b/.svn/pristine/06/06b87f6e153a2f508846bfde6a1ca34507edf91e.svn-base differ diff --git a/.svn/pristine/06/06d23a8f245070f7dccd9c668743ee419c57f0bb.svn-base b/.svn/pristine/06/06d23a8f245070f7dccd9c668743ee419c57f0bb.svn-base new file mode 100644 index 0000000..284233a --- /dev/null +++ b/.svn/pristine/06/06d23a8f245070f7dccd9c668743ee419c57f0bb.svn-base @@ -0,0 +1,269 @@ + + + + + diff --git a/.svn/pristine/07/070fc4b243cc7189a5b2bc642d99d9de07f3779c.svn-base b/.svn/pristine/07/070fc4b243cc7189a5b2bc642d99d9de07f3779c.svn-base new file mode 100644 index 0000000..90097ee Binary files /dev/null and b/.svn/pristine/07/070fc4b243cc7189a5b2bc642d99d9de07f3779c.svn-base differ diff --git a/.svn/pristine/08/08120e3d6f075d133d84e361e74116c45607ef6b.svn-base b/.svn/pristine/08/08120e3d6f075d133d84e361e74116c45607ef6b.svn-base new file mode 100644 index 0000000..c18587c --- /dev/null +++ b/.svn/pristine/08/08120e3d6f075d133d84e361e74116c45607ef6b.svn-base @@ -0,0 +1,6 @@ +{ + "uni-countdown.day": "day", + "uni-countdown.h": "h", + "uni-countdown.m": "m", + "uni-countdown.s": "s" +} diff --git a/.svn/pristine/08/0813144a82c867572d6d1ca79c4d250a8d8a0f79.svn-base b/.svn/pristine/08/0813144a82c867572d6d1ca79c4d250a8d8a0f79.svn-base new file mode 100644 index 0000000..4f3ca0e --- /dev/null +++ b/.svn/pristine/08/0813144a82c867572d6d1ca79c4d250a8d8a0f79.svn-base @@ -0,0 +1,103 @@ + + +## Calendar 日历 +> **组件名:uni-calendar** +> 代码块: `uCalendar` + + +日历组件 + +> **注意事项** +> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。 +> - 本组件农历转换使用的js是 [@1900-2100区间内的公历、农历互转](https://github.com/jjonline/calendar.js) +> - 仅支持自定义组件模式 +> - `date`属性传入的应该是一个 String ,如: 2019-06-27 ,而不是 new Date() +> - 通过 `insert` 属性来确定当前的事件是 @change 还是 @confirm 。理应合并为一个事件,但是为了区分模式,现使用两个事件,这里需要注意 +> - 弹窗模式下无法阻止后面的元素滚动,如有需要阻止,请在弹窗弹出后,手动设置滚动元素为不可滚动 + + +### 安装方式 + +本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。 + +如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55) + +### 基本用法 + +在 ``template`` 中使用组件 + +```html + + + +``` + +### 通过方法打开日历 + +需要设置 `insert` 为 `false` + +```html + + + + +``` + +```javascript + +export default { + data() { + return {}; + }, + methods: { + open(){ + this.$refs.calendar.open(); + }, + confirm(e) { + console.log(e); + } + } +}; + +``` + + +## API + +### Calendar Props + +| 属性名 | 类型 | 默认值| 说明 | +| | | +| date | String |- | 自定义当前时间,默认为今天 | +| lunar | Boolean | false | 显示农历 | +| startDate | String |- | 日期选择范围-开始日期 | +| endDate | String |- | 日期选择范围-结束日期 | +| range | Boolean | false | 范围选择 | +| insert | Boolean | false | 插入模式,可选值,ture:插入模式;false:弹窗模式;默认为插入模式 | +|clearDate |Boolean |true |弹窗模式是否清空上次选择内容 | +| selected | Array |- | 打点,期待格式[{date: '2019-06-27', info: '签到', data: { custom: '自定义信息', name: '自定义消息头',xxx:xxx... }}] | +|showMonth | Boolean | true | 是否显示月份为背景 | + +### Calendar Events + +| 事件名 | 说明 |返回值| +| | | | +| open | 弹出日历组件,`insert :false` 时生效|- | + + + + + +## 组件示例 + +点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/calendar/calendar](https://hellouniapp.dcloud.net.cn/pages/extUI/calendar/calendar) \ No newline at end of file diff --git a/.svn/pristine/08/081887d682a572b8d465d3d55a23dff01bbed5e1.svn-base b/.svn/pristine/08/081887d682a572b8d465d3d55a23dff01bbed5e1.svn-base new file mode 100644 index 0000000..3a14ca0 --- /dev/null +++ b/.svn/pristine/08/081887d682a572b8d465d3d55a23dff01bbed5e1.svn-base @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "上拉显示更多", + "uni-load-more.contentrefresh": "正在加载...", + "uni-load-more.contentnomore": "没有更多数据了" +} diff --git a/.svn/pristine/08/08958bc73e74623fb5099b7ce56c32cb681dd039.svn-base b/.svn/pristine/08/08958bc73e74623fb5099b7ce56c32cb681dd039.svn-base new file mode 100644 index 0000000..c12fd54 --- /dev/null +++ b/.svn/pristine/08/08958bc73e74623fb5099b7ce56c32cb681dd039.svn-base @@ -0,0 +1,563 @@ +export default { + props: { + localdata: { + type: [Array, Object], + default () { + return [] + } + }, + spaceInfo: { + type: Object, + default () { + return {} + } + }, + collection: { + type: String, + default: '' + }, + action: { + type: String, + default: '' + }, + field: { + type: String, + default: '' + }, + orderby: { + type: String, + default: '' + }, + where: { + type: [String, Object], + default: '' + }, + pageData: { + type: String, + default: 'add' + }, + pageCurrent: { + type: Number, + default: 1 + }, + pageSize: { + type: Number, + default: 20 + }, + getcount: { + type: [Boolean, String], + default: false + }, + getone: { + type: [Boolean, String], + default: false + }, + gettree: { + type: [Boolean, String], + default: false + }, + manual: { + type: Boolean, + default: false + }, + value: { + type: [Array, String, Number], + default () { + return [] + } + }, + modelValue: { + type: [Array, String, Number], + default () { + return [] + } + }, + preload: { + type: Boolean, + default: false + }, + stepSearh: { + type: Boolean, + default: true + }, + selfField: { + type: String, + default: '' + }, + parentField: { + type: String, + default: '' + }, + multiple: { + type: Boolean, + default: false + }, + map: { + type: Object, + default() { + return { + text: "text", + value: "value" + } + } + } + }, + data() { + return { + loading: false, + errorMessage: '', + loadMore: { + contentdown: '', + contentrefresh: '', + contentnomore: '' + }, + dataList: [], + selected: [], + selectedIndex: 0, + page: { + current: this.pageCurrent, + size: this.pageSize, + count: 0 + } + } + }, + computed: { + isLocaldata() { + return !this.collection.length + }, + postField() { + let fields = [this.field]; + if (this.parentField) { + fields.push(`${this.parentField} as parent_value`); + } + return fields.join(','); + }, + dataValue() { + let isModelValue = Array.isArray(this.modelValue) ? (this.modelValue.length > 0) : (this.modelValue !== null || this.modelValue !== undefined) + return isModelValue ? this.modelValue : this.value + }, + hasValue() { + if (typeof this.dataValue === 'number') { + return true + } + return (this.dataValue != null) && (this.dataValue.length > 0) + } + }, + created() { + this.$watch(() => { + var al = []; + ['pageCurrent', + 'pageSize', + 'spaceInfo', + 'value', + 'modelValue', + 'localdata', + 'collection', + 'action', + 'field', + 'orderby', + 'where', + 'getont', + 'getcount', + 'gettree' + ].forEach(key => { + al.push(this[key]) + }); + return al + }, (newValue, oldValue) => { + let needReset = false + for (let i = 2; i < newValue.length; i++) { + if (newValue[i] != oldValue[i]) { + needReset = true + break + } + } + if (newValue[0] != oldValue[0]) { + this.page.current = this.pageCurrent + } + this.page.size = this.pageSize + + this.onPropsChange() + }) + this._treeData = [] + }, + methods: { + onPropsChange() { + this._treeData = [] + }, + getCommand(options = {}) { + /* eslint-disable no-undef */ + let db = uniCloud.database(this.spaceInfo) + + const action = options.action || this.action + if (action) { + db = db.action(action) + } + + const collection = options.collection || this.collection + db = db.collection(collection) + + const where = options.where || this.where + if (!(!where || !Object.keys(where).length)) { + db = db.where(where) + } + + const field = options.field || this.field + if (field) { + db = db.field(field) + } + + const orderby = options.orderby || this.orderby + if (orderby) { + db = db.orderBy(orderby) + } + + const current = options.pageCurrent !== undefined ? options.pageCurrent : this.page.current + const size = options.pageSize !== undefined ? options.pageSize : this.page.size + const getCount = options.getcount !== undefined ? options.getcount : this.getcount + const getTree = options.gettree !== undefined ? options.gettree : this.gettree + + const getOptions = { + getCount, + getTree + } + if (options.getTreePath) { + getOptions.getTreePath = options.getTreePath + } + + db = db.skip(size * (current - 1)).limit(size).get(getOptions) + + return db + }, + getNodeData(callback) { + if (this.loading) { + return + } + this.loading = true + this.getCommand({ + field: this.postField, + where: this._pathWhere() + }).then((res) => { + this.loading = false + this.selected = res.result.data + callback && callback() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + getTreePath(callback) { + if (this.loading) { + return + } + this.loading = true + + this.getCommand({ + field: this.postField, + getTreePath: { + startWith: `${this.selfField}=='${this.dataValue}'` + } + }).then((res) => { + this.loading = false + let treePath = [] + this._extractTreePath(res.result.data, treePath) + this.selected = treePath + callback && callback() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + loadData() { + if (this.isLocaldata) { + this._processLocalData() + return + } + + if (this.dataValue != null) { + this._loadNodeData((data) => { + this._treeData = data + this._updateBindData() + this._updateSelected() + }) + return + } + + if (this.stepSearh) { + this._loadNodeData((data) => { + this._treeData = data + this._updateBindData() + }) + } else { + this._loadAllData((data) => { + this._treeData = [] + this._extractTree(data, this._treeData, null) + this._updateBindData() + }) + } + }, + _loadAllData(callback) { + if (this.loading) { + return + } + this.loading = true + + this.getCommand({ + field: this.postField, + gettree: true, + startwith: `${this.selfField}=='${this.dataValue}'` + }).then((res) => { + this.loading = false + callback(res.result.data) + this.onDataChange() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + _loadNodeData(callback, pw) { + if (this.loading) { + return + } + this.loading = true + + this.getCommand({ + field: this.postField, + where: pw || this._postWhere(), + pageSize: 500 + }).then((res) => { + this.loading = false + callback(res.result.data) + this.onDataChange() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + _pathWhere() { + let result = [] + let where_field = this._getParentNameByField(); + if (where_field) { + result.push(`${where_field} == '${this.dataValue}'`) + } + + if (this.where) { + return `(${this.where}) && (${result.join(' || ')})` + } + + return result.join(' || ') + }, + _postWhere() { + let result = [] + let selected = this.selected + let parentField = this.parentField + if (parentField) { + result.push(`${parentField} == null || ${parentField} == ""`) + } + if (selected.length) { + for (var i = 0; i < selected.length - 1; i++) { + result.push(`${parentField} == '${selected[i].value}'`) + } + } + + let where = [] + if (this.where) { + where.push(`(${this.where})`) + } + if (result.length) { + where.push(`(${result.join(' || ')})`) + } + + return where.join(' && ') + }, + _nodeWhere() { + let result = [] + let selected = this.selected + if (selected.length) { + result.push(`${this.parentField} == '${selected[selected.length - 1].value}'`) + } + + if (this.where) { + return `(${this.where}) && (${result.join(' || ')})` + } + + return result.join(' || ') + }, + _getParentNameByField() { + const fields = this.field.split(','); + let where_field = null; + for (let i = 0; i < fields.length; i++) { + const items = fields[i].split('as'); + if (items.length < 2) { + continue; + } + if (items[1].trim() === 'value') { + where_field = items[0].trim(); + break; + } + } + return where_field + }, + _isTreeView() { + return (this.parentField && this.selfField) + }, + _updateSelected() { + var dl = this.dataList + var sl = this.selected + let textField = this.map.text + let valueField = this.map.value + for (var i = 0; i < sl.length; i++) { + var value = sl[i].value + var dl2 = dl[i] + for (var j = 0; j < dl2.length; j++) { + var item2 = dl2[j] + if (item2[valueField] === value) { + sl[i].text = item2[textField] + break + } + } + } + }, + _updateBindData(node) { + const { + dataList, + hasNodes + } = this._filterData(this._treeData, this.selected) + + let isleaf = this._stepSearh === false && !hasNodes + + if (node) { + node.isleaf = isleaf + } + + this.dataList = dataList + this.selectedIndex = dataList.length - 1 + + if (!isleaf && this.selected.length < dataList.length) { + this.selected.push({ + value: null, + text: "请选择" + }) + } + + return { + isleaf, + hasNodes + } + }, + _filterData(data, paths) { + let dataList = [] + let hasNodes = true + + dataList.push(data.filter((item) => { + return (item.parent_value === null || item.parent_value === undefined || item.parent_value === '') + })) + for (let i = 0; i < paths.length; i++) { + var value = paths[i].value + var nodes = data.filter((item) => { + return item.parent_value === value + }) + + if (nodes.length) { + dataList.push(nodes) + } else { + hasNodes = false + } + } + + return { + dataList, + hasNodes + } + }, + _extractTree(nodes, result, parent_value) { + let list = result || [] + let valueField = this.map.value + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i] + + let child = {} + for (let key in node) { + if (key !== 'children') { + child[key] = node[key] + } + } + if (parent_value !== null && parent_value !== undefined && parent_value !== '') { + child.parent_value = parent_value + } + result.push(child) + + let children = node.children + if (children) { + this._extractTree(children, result, node[valueField]) + } + } + }, + _extractTreePath(nodes, result) { + let list = result || [] + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i] + + let child = {} + for (let key in node) { + if (key !== 'children') { + child[key] = node[key] + } + } + result.push(child) + + let children = node.children + if (children) { + this._extractTreePath(children, result) + } + } + }, + _findNodePath(key, nodes, path = []) { + let textField = this.map.text + let valueField = this.map.value + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i] + let children = node.children + let text = node[textField] + let value = node[valueField] + + path.push({ + value, + text + }) + + if (value === key) { + return path + } + + if (children) { + const p = this._findNodePath(key, children, path) + if (p.length) { + return p + } + } + + path.pop() + } + return [] + }, + _processLocalData() { + this._treeData = [] + this._extractTree(this.localdata, this._treeData) + + var inputValue = this.dataValue + if (inputValue === undefined) { + return + } + + if (Array.isArray(inputValue)) { + inputValue = inputValue[inputValue.length - 1] + if (typeof inputValue === 'object' && inputValue[this.map.value]) { + inputValue = inputValue[this.map.value] + } + } + + this.selected = this._findNodePath(inputValue, this.localdata) + } + } +} diff --git a/.svn/pristine/08/08bd4114a37cf003f5baa1dab7bb52c59c8d8b9f.svn-base b/.svn/pristine/08/08bd4114a37cf003f5baa1dab7bb52c59c8d8b9f.svn-base new file mode 100644 index 0000000..6cda224 --- /dev/null +++ b/.svn/pristine/08/08bd4114a37cf003f5baa1dab7bb52c59c8d8b9f.svn-base @@ -0,0 +1,22 @@ +## DataPicker 级联选择 +> **组件名:uni-data-picker** +> 代码块: `uDataPicker` +> 关联组件:`uni-data-pickerview`、`uni-load-more`。 + + +`` 是一个选择类[datacom组件](https://uniapp.dcloud.net.cn/component/datacom)。 + +支持单列、和多列级联选择。列数没有限制,如果屏幕显示不全,顶部tab区域会左右滚动。 + +候选数据支持一次性加载完毕,也支持懒加载,比如示例图中,选择了“北京”后,动态加载北京的区县数据。 + +`` 组件尤其适用于地址选择、分类选择等选择类。 + +`` 支持本地数据、云端静态数据(json),uniCloud云数据库数据。 + +`` 可以通过JQL直连uniCloud云数据库,配套[DB Schema](https://uniapp.dcloud.net.cn/uniCloud/schema),可在schema2code中自动生成前端页面,还支持服务器端校验。 + +在uniCloud数据表中新建表“uni-id-address”和“opendb-city-china”,这2个表的schema自带foreignKey关联。在“uni-id-address”表的表结构页面使用schema2code生成前端页面,会自动生成地址管理的维护页面,自动从“opendb-city-china”表包含的中国所有省市区信息里选择地址。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-picker) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/09/09c937aef50e336f24afc1f33c7c11eeefd82e98.svn-base b/.svn/pristine/09/09c937aef50e336f24afc1f33c7c11eeefd82e98.svn-base new file mode 100644 index 0000000..9afd04b --- /dev/null +++ b/.svn/pristine/09/09c937aef50e336f24afc1f33c7c11eeefd82e98.svn-base @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Reiniciar", + "filter-dropdown.search": "Búsqueda", + "filter-dropdown.submit": "Entregar", + "filter-dropdown.filter": "Filtrar", + "filter-dropdown.gt": "Mayor o igual a", + "filter-dropdown.lt": "Menos que o igual a", + "filter-dropdown.date": "Fecha" +} diff --git a/.svn/pristine/0a/0a5e6b55f1110acce48360417d76ff903ef1a07a.svn-base b/.svn/pristine/0a/0a5e6b55f1110acce48360417d76ff903ef1a07a.svn-base new file mode 100644 index 0000000..ad1b4bf --- /dev/null +++ b/.svn/pristine/0a/0a5e6b55f1110acce48360417d76ff903ef1a07a.svn-base @@ -0,0 +1,14 @@ + + +## Title 章节标题 +> **组件名:uni-title** +> 代码块: `uTitle` + + +章节标题,通常用于记录页面标题,使用当前组件,uni-app 如果开启统计,将会自动统计页面标题 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-title) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + diff --git a/.svn/pristine/0a/0a8dd7b932e8596e5e8212cda5fb4b1e6165e9ae.svn-base b/.svn/pristine/0a/0a8dd7b932e8596e5e8212cda5fb4b1e6165e9ae.svn-base new file mode 100644 index 0000000..3093b95 Binary files /dev/null and b/.svn/pristine/0a/0a8dd7b932e8596e5e8212cda5fb4b1e6165e9ae.svn-base differ diff --git a/.svn/pristine/0a/0add93dea847502a563fa2af040c599600e9a760.svn-base b/.svn/pristine/0a/0add93dea847502a563fa2af040c599600e9a760.svn-base new file mode 100644 index 0000000..28d665d Binary files /dev/null and b/.svn/pristine/0a/0add93dea847502a563fa2af040c599600e9a760.svn-base differ diff --git a/.svn/pristine/0a/0af0b555f036414932b457e8f8adaa9e8f732bdc.svn-base b/.svn/pristine/0a/0af0b555f036414932b457e8f8adaa9e8f732bdc.svn-base new file mode 100644 index 0000000..d68fd78 --- /dev/null +++ b/.svn/pristine/0a/0af0b555f036414932b457e8f8adaa9e8f732bdc.svn-base @@ -0,0 +1,171 @@ + + + + + diff --git a/.svn/pristine/0b/0b927ce7f8c93696a7275daa527338018f3a0461.svn-base b/.svn/pristine/0b/0b927ce7f8c93696a7275daa527338018f3a0461.svn-base new file mode 100644 index 0000000..2469dd0 --- /dev/null +++ b/.svn/pristine/0b/0b927ce7f8c93696a7275daa527338018f3a0461.svn-base @@ -0,0 +1,12 @@ +import en from './en.json' +import es from './es.json' +import fr from './fr.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + es, + fr, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/.svn/pristine/0b/0b9fbe0584931c0c35521ef0f8e7bc4b4e6e9f85.svn-base b/.svn/pristine/0b/0b9fbe0584931c0c35521ef0f8e7bc4b4e6e9f85.svn-base new file mode 100644 index 0000000..bc758eb --- /dev/null +++ b/.svn/pristine/0b/0b9fbe0584931c0c35521ef0f8e7bc4b4e6e9f85.svn-base @@ -0,0 +1,12 @@ + + +## Collapse 折叠面板 +> **组件名:uni-collapse** +> 代码块: `uCollapse` +> 关联组件:`uni-collapse-item`、`uni-icons`。 + + +折叠面板用来折叠/显示过长的内容或者是列表。通常是在多内容分类项使用,折叠不重要的内容,显示重要内容。点击可以展开折叠部分。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-collapse) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/0c/0cba3d49f4cea3549f20aa813d7d233025eff107.svn-base b/.svn/pristine/0c/0cba3d49f4cea3549f20aa813d7d233025eff107.svn-base new file mode 100644 index 0000000..544ecc1 --- /dev/null +++ b/.svn/pristine/0c/0cba3d49f4cea3549f20aa813d7d233025eff107.svn-base @@ -0,0 +1,29 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-badge](https://uniapp.dcloud.io/component/uniui/uni-badge) +## 1.1.7(2021-11-08) +- 优化 升级ui +- 修改 size 属性默认值调整为 small +- 修改 type 属性,默认值调整为 error,info 替换 default +## 1.1.6(2021-09-22) +- 修复 在字节小程序上样式不生效的 bug +## 1.1.5(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.4(2021-07-29) +- 修复 去掉 nvue 不支持css 的 align-self 属性,nvue 下不暂支持 absolute 属性 +## 1.1.3(2021-06-24) +- 优化 示例项目 +## 1.1.1(2021-05-12) +- 新增 组件示例地址 +## 1.1.0(2021-05-12) +- 新增 uni-badge 的 absolute 属性,支持定位 +- 新增 uni-badge 的 offset 属性,支持定位偏移 +- 新增 uni-badge 的 is-dot 属性,支持仅显示有一个小点 +- 新增 uni-badge 的 max-num 属性,支持自定义封顶的数字值,超过 99 显示99+ +- 优化 uni-badge 属性 custom-style, 支持以对象形式自定义样式 +## 1.0.7(2021-05-07) +- 修复 uni-badge 在 App 端,数字小于10时不是圆形的bug +- 修复 uni-badge 在父元素不是 flex 布局时,宽度缩小的bug +- 新增 uni-badge 属性 custom-style, 支持自定义样式 +## 1.0.6(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/0d/0d04ecab3c9e2e722c8b8885ce834c230b11617e.svn-base b/.svn/pristine/0d/0d04ecab3c9e2e722c8b8885ce834c230b11617e.svn-base new file mode 100644 index 0000000..6143a05 --- /dev/null +++ b/.svn/pristine/0d/0d04ecab3c9e2e722c8b8885ce834c230b11617e.svn-base @@ -0,0 +1,475 @@ + + + + + diff --git a/.svn/pristine/10/10578dc3c26d696c2d52ab62623e984d737e8e52.svn-base b/.svn/pristine/10/10578dc3c26d696c2d52ab62623e984d737e8e52.svn-base new file mode 100644 index 0000000..1744a5f --- /dev/null +++ b/.svn/pristine/10/10578dc3c26d696c2d52ab62623e984d737e8e52.svn-base @@ -0,0 +1 @@ +@import './styles/index.scss'; diff --git a/.svn/pristine/10/10ec95b7980a27b233086659590c3447f192da24.svn-base b/.svn/pristine/10/10ec95b7980a27b233086659590c3447f192da24.svn-base new file mode 100644 index 0000000..840a9e6 --- /dev/null +++ b/.svn/pristine/10/10ec95b7980a27b233086659590c3447f192da24.svn-base @@ -0,0 +1,61 @@ +## 1.0.1(2021-11-23) +- 修复 参数为对象的情况下,url在某些情况显示错误的bug +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-file-picker](https://uniapp.dcloud.io/component/uniui/uni-file-picker) +## 0.2.16(2021-11-08) +- 修复 传入空对象 ,显示错误的Bug +## 0.2.15(2021-08-30) +- 修复 return-type="object" 时且存在v-model时,无法删除文件的Bug +## 0.2.14(2021-08-23) +- 新增 参数中返回 fileID 字段 +## 0.2.13(2021-08-23) +- 修复 腾讯云传入fileID 不能回显的bug +- 修复 选择图片后,不能放大的问题 +## 0.2.12(2021-08-17) +- 修复 由于 0.2.11 版本引起的不能回显图片的Bug +## 0.2.11(2021-08-16) +- 新增 clearFiles(index) 方法,可以手动删除指定文件 +- 修复 v-model 值设为 null 报错的Bug +## 0.2.10(2021-08-13) +- 修复 return-type="object" 时,无法删除文件的Bug +## 0.2.9(2021-08-03) +- 修复 auto-upload 属性失效的Bug +## 0.2.8(2021-07-31) +- 修复 fileExtname属性不指定值报错的Bug +## 0.2.7(2021-07-31) +- 修复 在某种场景下图片不回显的Bug +## 0.2.6(2021-07-30) +- 修复 return-type为object下,返回值不正确的Bug +## 0.2.5(2021-07-30) +- 修复(重要) H5 平台下如果和uni-forms组件一同使用导致页面卡死的问题 +## 0.2.3(2021-07-28) +- 优化 调整示例代码 +## 0.2.2(2021-07-27) +- 修复 vue3 下赋值错误的Bug +- 优化 h5平台下上传文件导致页面卡死的问题 +## 0.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.1.1(2021-07-02) +- 修复 sourceType 缺少默认值导致 ios 无法选择文件 +## 0.1.0(2021-06-30) +- 优化 解耦与uniCloud的强绑定关系 ,如不绑定服务空间,默认autoUpload为false且不可更改 +## 0.0.11(2021-06-30) +- 修复 由 0.0.10 版本引发的 returnType 属性失效的问题 +## 0.0.10(2021-06-29) +- 优化 文件上传后进度条消失时机 +## 0.0.9(2021-06-29) +- 修复 在uni-forms 中,删除文件 ,获取的值不对的Bug +## 0.0.8(2021-06-15) +- 修复 删除文件时无法触发 v-model 的Bug +## 0.0.7(2021-05-12) +- 新增 组件示例地址 +## 0.0.6(2021-04-09) +- 修复 选择的文件非 file-extname 字段指定的扩展名报错的Bug +## 0.0.5(2021-04-09) +- 优化 更新组件示例 +## 0.0.4(2021-04-09) +- 优化 file-extname 字段支持字符串写法,多个扩展名需要用逗号分隔 +## 0.0.3(2021-02-05) +- 调整为uni_modules目录规范 +- 修复 微信小程序不指定 fileExtname 属性选择失败的Bug diff --git a/.svn/pristine/11/11749df2c0b98a41dbb51350aeae941d5f1f7de9.svn-base b/.svn/pristine/11/11749df2c0b98a41dbb51350aeae941d5f1f7de9.svn-base new file mode 100644 index 0000000..39c9137 --- /dev/null +++ b/.svn/pristine/11/11749df2c0b98a41dbb51350aeae941d5f1f7de9.svn-base @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "上一頁", + "uni-pagination.nextText": "下一頁" +} diff --git a/.svn/pristine/11/11d48d069b1b1a77842d626e230898a6ede7472b.svn-base b/.svn/pristine/11/11d48d069b1b1a77842d626e230898a6ede7472b.svn-base new file mode 100644 index 0000000..d8f420b --- /dev/null +++ b/.svn/pristine/11/11d48d069b1b1a77842d626e230898a6ede7472b.svn-base @@ -0,0 +1,41 @@ +## 1.0.1(2022-02-07) +- 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-data-checkbox](https://uniapp.dcloud.io/component/uniui/uni-data-checkbox) +## 0.2.5(2021-08-23) +- 修复 在uni-forms中 modelValue 中不存在当前字段,当前字段必填写也不参与校验的问题 +## 0.2.4(2021-08-17) +- 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 +## 0.2.3(2021-08-11) +- 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +## 0.2.2(2021-07-30) +- 优化 在uni-forms组件,与label不对齐的问题 +## 0.2.1(2021-07-27) +- 修复 单选默认值为0不能选中的Bug +## 0.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.1.11(2021-07-06) +- 优化 删除无用日志 +## 0.1.10(2021-07-05) +- 修复 由 0.1.9 引起的非 nvue 端图标不显示的问题 +## 0.1.9(2021-07-05) +- 修复 nvue 黑框样式问题 +## 0.1.8(2021-06-28) +- 修复 selectedTextColor 属性不生效的Bug +## 0.1.7(2021-06-02) +- 新增 map 属性,可以方便映射text/value属性 +## 0.1.6(2021-05-26) +- 修复 不关联服务空间的情况下组件报错的Bug +## 0.1.5(2021-05-12) +- 新增 组件示例地址 +## 0.1.4(2021-04-09) +- 修复 nvue 下无法选中的问题 +## 0.1.3(2021-03-22) +- 新增 disabled属性 +## 0.1.2(2021-02-24) +- 优化 默认颜色显示 +## 0.1.1(2021-02-24) +- 新增 支持nvue +## 0.1.0(2021-02-18) +- “暂无数据”显示居中 diff --git a/.svn/pristine/12/12951ab86f63fa480dcf5a1daa4a1f6a77194a8d.svn-base b/.svn/pristine/12/12951ab86f63fa480dcf5a1daa4a1f6a77194a8d.svn-base new file mode 100644 index 0000000..a93f735 --- /dev/null +++ b/.svn/pristine/12/12951ab86f63fa480dcf5a1daa4a1f6a77194a8d.svn-base @@ -0,0 +1,38 @@ + + + diff --git a/.svn/pristine/12/12ee42179bada23ea55e008d403d2eb9e8a5b052.svn-base b/.svn/pristine/12/12ee42179bada23ea55e008d403d2eb9e8a5b052.svn-base new file mode 100644 index 0000000..229e02b --- /dev/null +++ b/.svn/pristine/12/12ee42179bada23ea55e008d403d2eb9e8a5b052.svn-base @@ -0,0 +1,115 @@ + + + + + diff --git a/.svn/pristine/12/12fb41b0de8ae702f2b49ad7ba789df2cfb462e3.svn-base b/.svn/pristine/12/12fb41b0de8ae702f2b49ad7ba789df2cfb462e3.svn-base new file mode 100644 index 0000000..54dc1fa --- /dev/null +++ b/.svn/pristine/12/12fb41b0de8ae702f2b49ad7ba789df2cfb462e3.svn-base @@ -0,0 +1,14 @@ + + +### LoadMore 加载更多 +> **组件名:uni-load-more** +> 代码块: `uLoadMore` + + +用于列表中,做滚动加载使用,展示 loading 的各种状态。 + + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-load-more) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/.svn/pristine/13/134794dcad601db2b08d7d876e0aa2fe09f73885.svn-base b/.svn/pristine/13/134794dcad601db2b08d7d876e0aa2fe09f73885.svn-base new file mode 100644 index 0000000..adce670 --- /dev/null +++ b/.svn/pristine/13/134794dcad601db2b08d7d876e0aa2fe09f73885.svn-base @@ -0,0 +1,86 @@ +{ + "id": "uni-pagination", + "displayName": "uni-pagination 分页器", + "version": "1.2.1", + "description": "Pagination 分页器组件,用于展示页码、请求数据等。", + "keywords": [ + "uni-ui", + "uniui", + "分页器", + "页码" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-icons"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/13/13f516d867d2e24388c8c7436c3e234340fc263a.svn-base b/.svn/pristine/13/13f516d867d2e24388c8c7436c3e234340fc263a.svn-base new file mode 100644 index 0000000..987bba6 --- /dev/null +++ b/.svn/pristine/13/13f516d867d2e24388c8c7436c3e234340fc263a.svn-base @@ -0,0 +1,997 @@ + + + + diff --git a/.svn/pristine/15/151404f98f44987476e532af43d56efb4623e36e.svn-base b/.svn/pristine/15/151404f98f44987476e532af43d56efb4623e36e.svn-base new file mode 100644 index 0000000..1979c55 --- /dev/null +++ b/.svn/pristine/15/151404f98f44987476e532af43d56efb4623e36e.svn-base @@ -0,0 +1,81 @@ +{ + "name" : "太极", + "appid" : "__UNI__73F0D10", + "description" : "", + "versionName" : "1.0.0", + "versionCode" : "100", + "transformPx" : false, + /* 5+App特有相关 */ + "app-plus" : { + "usingComponents" : true, + "nvueStyleCompiler" : "uni-app", + "compilerVersion" : 3, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + /* 模块配置 */ + "modules" : {}, + /* 应用发布信息 */ + "distribute" : { + /* android打包配置 */ + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + /* ios打包配置 */ + "ios" : {}, + /* SDK配置 */ + "sdkConfigs" : {} + } + }, + /* 快应用特有相关 */ + "quickapp" : {}, + /* 小程序特有相关 */ + "mp-weixin" : { + "appid" : "wxbcce181903c8097f", + "setting" : { + "urlCheck" : false, + "es6" : false, + "minified" : false, + "postcss" : false + }, + "usingComponents" : true, + "requiredPrivateInfos" : [ "getLocation", "chooseLocation" ], + "permission" : { + "scope.userLocation" : { + "desc" : "用于获取您附近的商家" + } + } + }, + "mp-alipay" : { + "usingComponents" : true + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "uniStatistics" : { + "enable" : false + }, + "vueVersion" : "2" +} diff --git a/.svn/pristine/15/1524e32a74efcad7d6c2f967d95ef69d33a3d271.svn-base b/.svn/pristine/15/1524e32a74efcad7d6c2f967d95ef69d33a3d271.svn-base new file mode 100644 index 0000000..9117f19 --- /dev/null +++ b/.svn/pristine/15/1524e32a74efcad7d6c2f967d95ef69d33a3d271.svn-base @@ -0,0 +1,43 @@ + + + + + \ No newline at end of file diff --git a/.svn/pristine/15/15a49b6337fb6bfc053fac0669ffe8c54dc0be07.svn-base b/.svn/pristine/15/15a49b6337fb6bfc053fac0669ffe8c54dc0be07.svn-base new file mode 100644 index 0000000..c4e6b45 --- /dev/null +++ b/.svn/pristine/15/15a49b6337fb6bfc053fac0669ffe8c54dc0be07.svn-base @@ -0,0 +1,169 @@ +## 插件说明 + +> 这是 `v-tabs` 插件的升级版本,参数上有很大变动,支持 `H5` `小程序` `手机端`,如果是在之前的插件上升级的话,请注意参数的变更,触发的事件没有变更。 + +## 使用说明 + +### 1、最基本用法 + +- 视图文件 + +```html + +``` + +- 脚本文件 + +```js +export default { + data() { + return { + current: 0, + tabs: [ + '军事', + '国内', + '新闻新闻', + '军事', + '国内', + '新闻', + '军事', + '国内', + '新闻', + ], + } + }, + methods: { + changeTab(index) { + console.log('当前选中的项:' + index) + }, + }, +} +``` + +### 2、平铺整个屏幕 + +- 视图文件 + +```html + +``` + +- 脚本文件 + +```js +export default { + data() { + return { + activeTab: 0, + } + }, +} +``` + +### 3、胶囊用法 + +- 视图文件 + +```html + +``` + +- 脚本文件 + +```js +data() { + return { + current: 2, + tabs: [ + '军事', + '国内', + '新闻新闻', + '军事', + '国内', + '新闻', + '军事', + '国内', + '新闻', + ], + }, + methods: { + changeTab(index) { + console.log('当前选中索引:' + index) + } + } +} +``` + +## 文档说明 + +### 1、属性说明 + +| 参数 | 类型 | 默认值 | 说明 | +| :---------------: | :-----: | :-------: | :--------------------------------------: | +| value | Number | 0 | 必传(双向绑定的值) | +| color | String | '#333' | 默认文字颜色 | +| activeColor | String | '#2979ff' | 选中文字的颜色 | +| fontSize | String | '28rpx' | 默认文字大小(rpx 或 px) | +| bold | Boolean | true | 是否加粗选中项 | +| scroll | Boolean | true | 是否显示滚动条,平铺设置 false | +| height | String | '70rpx' | tab 高度(rpx 或 px) | +| lineHeight | String | '10rpx' | 滑块高度(rpx 或 px) | +| lineColor | String | '#2979ff' | 滑块的颜色 | +| lineScale | Number | 0.5 | 滑块宽度缩放值 | +| lineRadius | String | '10rpx' | 滑块圆角宽度(rpx 或 px) | +| pills | Boolean | false | 是否开启胶囊 | +| pillsColor | String | '#2979ff' | 胶囊背景颜色(rpx 或 px) | +| pillsBorderRadius | String | '10rpx' | 胶囊圆角宽度(rpx 或 px) | +| field | String | '' | 如果 tabs 子项是对象,输入需要展示的键名 | +| bgColor | String | '#fff' | 背景色,支持 linear-gradient 渐变 | +| padding | String | '0' | 整个 tab padding 属性 | + +### 2、事件说明 + +| 名称 | 参数 | 说明 | +| :----: | :---: | :--------------------------------: | +| change | index | 改变选中项触发, index 选中项的下标 | + +## 更新日志 + +### 2020-08-29 + +1. 优化异步改变 `tabs` 后,下划线不初始化问题 +2. `github` 地址上有图 2 的源码,需要的自行下载,页面路径:`pages/tabs/order.vue` + +### 2020-08-20 + +1. 优化 `节点查询` 和 `选中渲染` +2. 优化支付宝中 `createSelectorQuery()` 的影响 + +### 2020-08-19 + +1. 优化 `change` 事件触发机制 + +### 2020-08-16 + +1. 修改默认高度为 `70rpx` +2. 新增属性 `bgColor`,可设置背景颜色,默认 `#fff` +3. 新增整个 `tab` 的 `padding` 属性,默认 `0` + +### 2020-08-13 + +1. 全新的 `v-tabs 2.0` +2. 支持 `H5` `小程序` `APP` +3. 属性高度可配置 + +## 预览 + +![v-tabs 2.0.1.gif](https://tva1.sinaimg.cn/large/007S8ZIlgy1ghsv40mj76g30ai0i2tsd.gif) +![v-tabs 2.0.2.gif](https://img-cdn-aliyun.dcloud.net.cn/stream/plugin_screens/42f3a920-a674-11ea-8a24-ffee00625e2e_1.png?v=1597912963) diff --git a/.svn/pristine/15/15ea6e3353c783fe697b0c3ae04136b5401e3d7b.svn-base b/.svn/pristine/15/15ea6e3353c783fe697b0c3ae04136b5401e3d7b.svn-base new file mode 100644 index 0000000..24e26b1 --- /dev/null +++ b/.svn/pristine/15/15ea6e3353c783fe697b0c3ae04136b5401e3d7b.svn-base @@ -0,0 +1,17 @@ +## 1.2.2(2021-12-29) +- 更新 组件依赖 +## 1.2.1(2021-11-19) +- 修复 阴影颜色不正确的bug +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fab](https://uniapp.dcloud.io/component/uniui/uni-fab) +## 1.1.1(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-02-05) +- 调整为uni_modules目录规范 +- 优化 按钮背景色调整 +- 优化 兼容pc端 diff --git a/.svn/pristine/17/178db22e76698ba76abc7f2ff66c18bcf0f30840.svn-base b/.svn/pristine/17/178db22e76698ba76abc7f2ff66c18bcf0f30840.svn-base new file mode 100644 index 0000000..d551d7b --- /dev/null +++ b/.svn/pristine/17/178db22e76698ba76abc7f2ff66c18bcf0f30840.svn-base @@ -0,0 +1,10 @@ +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-dateformat](https://uniapp.dcloud.io/component/uniui/uni-dateformat) +## 0.0.5(2021-07-08) +- 调整 默认时间不再是当前时间,而是显示'-'字符 +## 0.0.4(2021-05-12) +- 新增 组件示例地址 +## 0.0.3(2021-02-04) +- 调整为uni_modules目录规范 +- 修复 iOS 平台日期格式化出错的问题 diff --git a/.svn/pristine/18/180fdba499f81d9e959b2948c63ee735a91a0c8d.svn-base b/.svn/pristine/18/180fdba499f81d9e959b2948c63ee735a91a0c8d.svn-base new file mode 100644 index 0000000..2e5d2fb --- /dev/null +++ b/.svn/pristine/18/180fdba499f81d9e959b2948c63ee735a91a0c8d.svn-base @@ -0,0 +1,53 @@ + + + + + diff --git a/.svn/pristine/18/181e56c7b3d56119df6506e7a28ab73dca09b31d.svn-base b/.svn/pristine/18/181e56c7b3d56119df6506e7a28ab73dca09b31d.svn-base new file mode 100644 index 0000000..ed42f1b --- /dev/null +++ b/.svn/pristine/18/181e56c7b3d56119df6506e7a28ab73dca09b31d.svn-base @@ -0,0 +1,270 @@ +const MIN_DISTANCE = 10; +export default { + showWatch(newVal, oldVal, ownerInstance, instance,self) { + var state = self.state + var $el = ownerInstance.$el || ownerInstance.$vm && ownerInstance.$vm.$el + if(!$el) return + this.getDom(instance, ownerInstance,self) + if (newVal && newVal !== 'none') { + this.openState(newVal, instance, ownerInstance,self) + return + } + + if (state.left) { + this.openState('none', instance, ownerInstance,self) + } + this.resetTouchStatus(instance,self) + }, + + /** + * 开始触摸操作 + * @param {Object} e + * @param {Object} ins + */ + touchstart(e, ownerInstance, self) { + let instance = e.instance; + let disabled = instance.getDataset().disabled + let state = self.state; + this.getDom(instance, ownerInstance, self) + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = this.getDisabledType(disabled) + if (disabled) return + // 开始触摸时移除动画类 + instance.requestAnimationFrame(function() { + instance.removeClass('ani'); + ownerInstance.callMethod('closeSwipe'); + }) + + // 记录上次的位置 + state.x = state.left || 0 + // 计算滑动开始位置 + this.stopTouchStart(e, ownerInstance, self) + }, + + /** + * 开始滑动操作 + * @param {Object} e + * @param {Object} ownerInstance + */ + touchmove(e, ownerInstance, self) { + let instance = e.instance; + // 删除之后已经那不到实例了 + if(!instance) return; + let disabled = instance.getDataset().disabled + let state = self.state + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = this.getDisabledType(disabled) + if (disabled) return + // 是否可以滑动页面 + this.stopTouchMove(e, self); + if (state.direction !== 'horizontal') { + return; + } + if (e.preventDefault) { + // 阻止页面滚动 + e.preventDefault() + } + let x = state.x + state.deltaX + this.move(x, instance, ownerInstance, self) + }, + + /** + * 结束触摸操作 + * @param {Object} e + * @param {Object} ownerInstance + */ + touchend(e, ownerInstance, self) { + let instance = e.instance; + let disabled = instance.getDataset().disabled + let state = self.state + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = this.getDisabledType(disabled) + + if (disabled) return + // 滑动过程中触摸结束,通过阙值判断是开启还是关闭 + // fixed by mehaotian 定时器解决点击按钮,touchend 触发比 click 事件时机早的问题 ,主要是 ios13 + this.moveDirection(state.left, instance, ownerInstance, self) + + }, + + /** + * 设置移动距离 + * @param {Object} value + * @param {Object} instance + * @param {Object} ownerInstance + */ + move(value, instance, ownerInstance, self) { + value = value || 0 + let state = self.state + let leftWidth = state.leftWidth + let rightWidth = state.rightWidth + // 获取可滑动范围 + state.left = this.range(value, -rightWidth, leftWidth); + instance.requestAnimationFrame(function() { + instance.setStyle({ + transform: 'translateX(' + state.left + 'px)', + '-webkit-transform': 'translateX(' + state.left + 'px)' + }) + }) + + }, + + /** + * 获取元素信息 + * @param {Object} instance + * @param {Object} ownerInstance + */ + getDom(instance, ownerInstance, self) { + var state = self.state + var $el = ownerInstance.$el || ownerInstance.$vm && ownerInstance.$vm.$el + var leftDom = $el.querySelector('.button-group--left') + var rightDom = $el.querySelector('.button-group--right') + + state.leftWidth = leftDom.offsetWidth || 0 + state.rightWidth = rightDom.offsetWidth || 0 + state.threshold = instance.getDataset().threshold + }, + + getDisabledType(value) { + return (typeof(value) === 'string' ? JSON.parse(value) : value) || false; + }, + + /** + * 获取范围 + * @param {Object} num + * @param {Object} min + * @param {Object} max + */ + range(num, min, max) { + return Math.min(Math.max(num, min), max); + }, + + + /** + * 移动方向判断 + * @param {Object} left + * @param {Object} value + * @param {Object} ownerInstance + * @param {Object} ins + */ + moveDirection(left, ins, ownerInstance, self) { + var state = self.state + var threshold = state.threshold + var position = state.position + var isopen = state.isopen || 'none' + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + if (state.deltaX === 0) { + this.openState('none', ins, ownerInstance, self) + return + } + if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > 0 && + rightWidth + + left < threshold)) { + // right + this.openState('right', ins, ownerInstance, self) + } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > 0 && + leftWidth - left < threshold)) { + // left + this.openState('left', ins, ownerInstance, self) + } else { + // default + this.openState('none', ins, ownerInstance, self) + } + }, + + + /** + * 开启状态 + * @param {Boolean} type + * @param {Object} ins + * @param {Object} ownerInstance + */ + openState(type, ins, ownerInstance, self) { + let state = self.state + let leftWidth = state.leftWidth + let rightWidth = state.rightWidth + let left = '' + state.isopen = state.isopen ? state.isopen : 'none' + switch (type) { + case "left": + left = leftWidth + break + case "right": + left = -rightWidth + break + default: + left = 0 + } + + // && !state.throttle + + if (state.isopen !== type) { + state.throttle = true + ownerInstance.callMethod('change', { + open: type + }) + + } + + state.isopen = type + // 添加动画类 + ins.requestAnimationFrame(()=> { + ins.addClass('ani'); + this.move(left, ins, ownerInstance, self) + }) + }, + + + getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal'; + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical'; + } + return ''; + }, + + /** + * 重置滑动状态 + * @param {Object} event + */ + resetTouchStatus(instance, self) { + let state = self.state; + state.direction = ''; + state.deltaX = 0; + state.deltaY = 0; + state.offsetX = 0; + state.offsetY = 0; + }, + + /** + * 设置滑动开始位置 + * @param {Object} event + */ + stopTouchStart(event, ownerInstance, self) { + let instance = event.instance; + let state = self.state + this.resetTouchStatus(instance, self); + var touch = event.touches[0]; + state.startX = touch.clientX; + state.startY = touch.clientY; + }, + + /** + * 滑动中,是否禁止打开 + * @param {Object} event + */ + stopTouchMove(event, self) { + let instance = event.instance; + let state = self.state; + let touch = event.touches[0]; + + state.deltaX = touch.clientX - state.startX; + state.deltaY = touch.clientY - state.startY; + state.offsetY = Math.abs(state.deltaY); + state.offsetX = Math.abs(state.deltaX); + state.direction = state.direction || this.getDirection(state.offsetX, state.offsetY); + } +} diff --git a/.svn/pristine/18/1870fbf84d279150a88aff7f89e0d6adb1c9d14f.svn-base b/.svn/pristine/18/1870fbf84d279150a88aff7f89e0d6adb1c9d14f.svn-base new file mode 100644 index 0000000..775a3ec --- /dev/null +++ b/.svn/pristine/18/1870fbf84d279150a88aff7f89e0d6adb1c9d14f.svn-base @@ -0,0 +1,145 @@ + + + + + diff --git a/.svn/pristine/19/19f85259cef6b96b70035c912b69f315e0cd79ac.svn-base b/.svn/pristine/19/19f85259cef6b96b70035c912b69f315e0cd79ac.svn-base new file mode 100644 index 0000000..28a5ae7 --- /dev/null +++ b/.svn/pristine/19/19f85259cef6b96b70035c912b69f315e0cd79ac.svn-base @@ -0,0 +1,37 @@ + + + + + diff --git a/.svn/pristine/1a/1af91e6e031bf908a07a09b134d4582102c3155a.svn-base b/.svn/pristine/1a/1af91e6e031bf908a07a09b134d4582102c3155a.svn-base new file mode 100644 index 0000000..c80aad7 Binary files /dev/null and b/.svn/pristine/1a/1af91e6e031bf908a07a09b134d4582102c3155a.svn-base differ diff --git a/.svn/pristine/1b/1b4a1a8ca0e1ece1e518dfc0570c5410ce008332.svn-base b/.svn/pristine/1b/1b4a1a8ca0e1ece1e518dfc0570c5410ce008332.svn-base new file mode 100644 index 0000000..4bcb1aa --- /dev/null +++ b/.svn/pristine/1b/1b4a1a8ca0e1ece1e518dfc0570c5410ce008332.svn-base @@ -0,0 +1,10 @@ + + +## CountDown 倒计时 +> **组件名:uni-countdown** +> 代码块: `uCountDown` + +倒计时组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-countdown) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/1c/1cf7293068b1a957d6c436f212f0f900ae4ad963.svn-base b/.svn/pristine/1c/1cf7293068b1a957d6c436f212f0f900ae4ad963.svn-base new file mode 100644 index 0000000..ebc28df --- /dev/null +++ b/.svn/pristine/1c/1cf7293068b1a957d6c436f212f0f900ae4ad963.svn-base @@ -0,0 +1,73 @@ + + + + + \ No newline at end of file diff --git a/.svn/pristine/1d/1d59bf114549a94854d281319a33af8b1efd2548.svn-base b/.svn/pristine/1d/1d59bf114549a94854d281319a33af8b1efd2548.svn-base new file mode 100644 index 0000000..ad737ce --- /dev/null +++ b/.svn/pristine/1d/1d59bf114549a94854d281319a33af8b1efd2548.svn-base @@ -0,0 +1,193 @@ +export default { + data() { + return { + x: 0, + transition: false, + width: 0, + viewWidth: 0, + swipeShow: 0 + } + }, + watch: { + show(newVal) { + if (this.autoClose) return + if (newVal && newVal !== 'none' ) { + this.transition = true + this.open(newVal) + } else { + this.close() + } + } + }, + created() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.isopen = false + setTimeout(() => { + this.getQuerySelect() + }, 50) + }, + methods: { + appTouchStart(e) { + const { + clientX + } = e.changedTouches[0] + this.clientX = clientX + this.timestamp = new Date().getTime() + }, + appTouchEnd(e, index, item, position) { + const { + clientX + } = e.changedTouches[0] + // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 + let diff = Math.abs(this.clientX - clientX) + let time = (new Date().getTime()) - this.timestamp + if (diff < 40 && time < 300) { + this.$emit('click', { + content: item, + index, + position + }) + } + }, + /** + * 移动触发 + * @param {Object} e + */ + onChange(e) { + this.moveX = e.detail.x + this.isclose = false + }, + touchstart(e) { + this.transition = false + this.isclose = true + this.autoClose && this.swipeaction.closeOther(this) + }, + touchmove(e) {}, + touchend(e) { + // 0的位置什么都不执行 + if (this.isclose && this.isopen === 'none') return + if (this.isclose && this.isopen !== 'none') { + this.transition = true + this.close() + } else { + this.move(this.moveX + this.leftWidth) + } + }, + + /** + * 移动 + * @param {Object} moveX + */ + move(moveX) { + // 打开关闭的处理逻辑不太一样 + this.transition = true + // 未打开状态 + if (!this.isopen || this.isopen === 'none') { + if (moveX > this.threshold) { + this.open('left') + } else if (moveX < -this.threshold) { + this.open('right') + } else { + this.close() + } + } else { + if (moveX < 0 && moveX < this.rightWidth) { + const rightX = this.rightWidth + moveX + if (rightX < this.threshold) { + this.open('right') + } else { + this.close() + } + } else if (moveX > 0 && moveX < this.leftWidth) { + const leftX = this.leftWidth - moveX + if (leftX < this.threshold) { + this.open('left') + } else { + this.close() + } + } + + } + + }, + + /** + * 打开 + */ + open(type) { + this.x = this.moveX + this.animation(type) + }, + + /** + * 关闭 + */ + close() { + this.x = this.moveX + // TODO 解决 x 值不更新的问题,所以会多触发一次 nextTick ,待优化 + this.$nextTick(() => { + this.x = -this.leftWidth + if(this.isopen!=='none'){ + this.$emit('change', 'none') + } + this.isopen = 'none' + }) + }, + + /** + * 执行结束动画 + * @param {Object} type + */ + animation(type) { + this.$nextTick(() => { + if (type === 'left') { + this.x = 0 + } else { + this.x = -this.rightWidth - this.leftWidth + } + + if(this.isopen!==type){ + this.$emit('change', type) + } + this.isopen = type + }) + + }, + getSlide(x) {}, + getQuerySelect() { + const query = uni.createSelectorQuery().in(this); + query.selectAll('.movable-view--hock').boundingClientRect(data => { + this.leftWidth = data[1].width + this.rightWidth = data[2].width + this.width = data[0].width + this.viewWidth = this.width + this.rightWidth + this.leftWidth + if (this.leftWidth === 0) { + // TODO 疑似bug ,初始化的时候如果x 是0,会导致移动位置错误,所以让元素超出一点 + this.x = -0.1 + } else { + this.x = -this.leftWidth + } + this.moveX = this.x + this.$nextTick(() => { + this.swipeShow = 1 + }) + + if (!this.buttonWidth) { + this.disabledView = true + } + + if (this.autoClose) return + if (this.show !== 'none') { + this.transition = true + this.open(this.shows) + } + }).exec(); + + } + } +} diff --git a/.svn/pristine/1d/1dcfb8fa0775749a58d246f6879f6ddc15548b5e.svn-base b/.svn/pristine/1d/1dcfb8fa0775749a58d246f6879f6ddc15548b5e.svn-base new file mode 100644 index 0000000..94ecb6a Binary files /dev/null and b/.svn/pristine/1d/1dcfb8fa0775749a58d246f6879f6ddc15548b5e.svn-base differ diff --git a/.svn/pristine/1d/1dd57f8a50674ab32c1549ffca3ad32e3f016866.svn-base b/.svn/pristine/1d/1dd57f8a50674ab32c1549ffca3ad32e3f016866.svn-base new file mode 100644 index 0000000..77b1986 --- /dev/null +++ b/.svn/pristine/1d/1dd57f8a50674ab32c1549ffca3ad32e3f016866.svn-base @@ -0,0 +1,87 @@ +{ + "id": "uni-link", + "displayName": "uni-link 超链接", + "version": "1.0.0", + "description": "uni-link是一个外部网页超链接组件,在小程序内复制url,在app内打开外部浏览器,在h5端打", + "keywords": [ + "uni-ui", + "uniui", + "link", + "超链接", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/1e/1e2803e436e12dd61e72a42a03ae66f353107826.svn-base b/.svn/pristine/1e/1e2803e436e12dd61e72a42a03ae66f353107826.svn-base new file mode 100644 index 0000000..ededbc2 --- /dev/null +++ b/.svn/pristine/1e/1e2803e436e12dd61e72a42a03ae66f353107826.svn-base @@ -0,0 +1,399 @@ + + + + + diff --git a/.svn/pristine/1e/1e3c87e4e01051010a640c806cdcc045d9172df6.svn-base b/.svn/pristine/1e/1e3c87e4e01051010a640c806cdcc045d9172df6.svn-base new file mode 100644 index 0000000..62dda46 --- /dev/null +++ b/.svn/pristine/1e/1e3c87e4e01051010a640c806cdcc045d9172df6.svn-base @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + // this.$once('hook:beforeDestroy', () => { + // document.removeEventListener('keyup', listener) + // }) + }, + render: () => {} +} +// #endif diff --git a/.svn/pristine/1e/1eae0dfdfb3312aafb46f1444cf4946f56e7f6f7.svn-base b/.svn/pristine/1e/1eae0dfdfb3312aafb46f1444cf4946f56e7f6f7.svn-base new file mode 100644 index 0000000..caa248c Binary files /dev/null and b/.svn/pristine/1e/1eae0dfdfb3312aafb46f1444cf4946f56e7f6f7.svn-base differ diff --git a/.svn/pristine/1e/1ec0e8c2bb1375c8401c599f269f3be09106f45d.svn-base b/.svn/pristine/1e/1ec0e8c2bb1375c8401c599f269f3be09106f45d.svn-base new file mode 100644 index 0000000..93a5cac --- /dev/null +++ b/.svn/pristine/1e/1ec0e8c2bb1375c8401c599f269f3be09106f45d.svn-base @@ -0,0 +1,11 @@ + + +## SwipeAction 滑动操作 +> **组件名:uni-swipe-action** +> 代码块: `uSwipeAction`、`uSwipeActionItem` + + +通过滑动触发选项的容器 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-swipe-action) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/20/209bcb92b241f7554ec2c0927ff9884e7aa0a70e.svn-base b/.svn/pristine/20/209bcb92b241f7554ec2c0927ff9884e7aa0a70e.svn-base new file mode 100644 index 0000000..fbbedbf --- /dev/null +++ b/.svn/pristine/20/209bcb92b241f7554ec2c0927ff9884e7aa0a70e.svn-base @@ -0,0 +1,130 @@ + + + + diff --git a/.svn/pristine/20/20ac5caee570da04b546a8720bb0b91589e01700.svn-base b/.svn/pristine/20/20ac5caee570da04b546a8720bb0b91589e01700.svn-base new file mode 100644 index 0000000..ffa2cc8 --- /dev/null +++ b/.svn/pristine/20/20ac5caee570da04b546a8720bb0b91589e01700.svn-base @@ -0,0 +1,11 @@ + + +## Combox 组合框 +> **组件名:uni-combox** +> 代码块: `uCombox` + + +组合框组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-combox) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/20/20b5609e66d5b1e7d0dcd287ef95ca9e9edade8b.svn-base b/.svn/pristine/20/20b5609e66d5b1e7d0dcd287ef95ca9e9edade8b.svn-base new file mode 100644 index 0000000..9a0428b --- /dev/null +++ b/.svn/pristine/20/20b5609e66d5b1e7d0dcd287ef95ca9e9edade8b.svn-base @@ -0,0 +1,55 @@ +@mixin radius($r,$d:null ,$important: false){ + $radius-value:map-get($uni-radius, $r) if($important, !important, null); + // Key exists within the $uni-radius variable + @if (map-has-key($uni-radius, $r) and $d){ + @if $d == t { + border-top-left-radius:$radius-value; + border-top-right-radius:$radius-value; + }@else if $d == r { + border-top-right-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == b { + border-bottom-left-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == l { + border-top-left-radius:$radius-value; + border-bottom-left-radius:$radius-value; + }@else if $d == tl { + border-top-left-radius:$radius-value; + }@else if $d == tr { + border-top-right-radius:$radius-value; + }@else if $d == br { + border-bottom-right-radius:$radius-value; + }@else if $d == bl { + border-bottom-left-radius:$radius-value; + } + }@else{ + border-radius:$radius-value; + } +} + +@each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $key} { + @include radius($key) + } + }@else{ + .uni-radius { + @include radius($key) + } + } +} + +@each $direction in t, r, b, l,tl, tr, br, bl { + @each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $direction}-#{"" + $key} { + @include radius($key,$direction,false) + } + }@else{ + .uni-radius-#{$direction} { + @include radius($key,$direction,false) + } + } + } +} diff --git a/.svn/pristine/21/21212c35f9d43e67e378fbe439aa07497dfc1509.svn-base b/.svn/pristine/21/21212c35f9d43e67e378fbe439aa07497dfc1509.svn-base new file mode 100644 index 0000000..6eb253d --- /dev/null +++ b/.svn/pristine/21/21212c35f9d43e67e378fbe439aa07497dfc1509.svn-base @@ -0,0 +1,18 @@ + + +## DataCheckbox 数据驱动的单选复选框 +> **组件名:uni-data-checkbox** +> 代码块: `uDataCheckbox` + + +本组件是基于uni-app基础组件checkbox的封装。本组件要解决问题包括: + +1. 数据绑定型组件:给本组件绑定一个data,会自动渲染一组候选内容。再以往,开发者需要编写不少代码实现类似功能 +2. 自动的表单校验:组件绑定了data,且符合[uni-forms](https://ext.dcloud.net.cn/plugin?id=2773)组件的表单校验规范,搭配使用会自动实现表单校验 +3. 本组件合并了单选多选 +4. 本组件有若干风格选择,如普通的单选多选框、并列button风格、tag风格。开发者可以快速选择需要的风格。但作为一个封装组件,样式代码虽然不用自己写了,却会牺牲一定的样式自定义性 + +在uniCloud开发中,`DB Schema`中配置了enum枚举等类型后,在web控制台的[自动生成表单](https://uniapp.dcloud.io/uniCloud/schema?id=autocode)功能中,会自动生成``uni-data-checkbox``组件并绑定好data + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-checkbox) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/21/218e5a4d53079fb08461f06a49f6ea786ce920f7.svn-base b/.svn/pristine/21/218e5a4d53079fb08461f06a49f6ea786ce920f7.svn-base new file mode 100644 index 0000000..e7685c5 --- /dev/null +++ b/.svn/pristine/21/218e5a4d53079fb08461f06a49f6ea786ce920f7.svn-base @@ -0,0 +1,395 @@ + + + + + diff --git a/.svn/pristine/21/2193085d3cbc1aa9ea2658a155e3be4a31f4b861.svn-base b/.svn/pristine/21/2193085d3cbc1aa9ea2658a155e3be4a31f4b861.svn-base new file mode 100644 index 0000000..3be48bc --- /dev/null +++ b/.svn/pristine/21/2193085d3cbc1aa9ea2658a155e3be4a31f4b861.svn-base @@ -0,0 +1,31 @@ +## 1.2.2(2022-05-06) +- 修复 vue3 input 事件不生效的bug +## 1.2.1(2022-05-06) +- 修复 多余代码导致的bug +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-search-bar](https://uniapp.dcloud.io/component/uniui/uni-search-bar) +## 1.1.2(2021-08-30) +- 修复 value 属性与 modelValue 属性不兼容的Bug +## 1.1.1(2021-08-24) +- 新增 支持国际化 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.9(2021-05-12) +- 新增 项目示例地址 +## 1.0.8(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.7(2021-04-15) +- uni-ui 新增 uni-search-bar 的 focus 事件 + +## 1.0.6(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持双向绑定 +- 更改 input 事件的返回值,e={value:Number} --> e=value +- 新增 支持图标插槽 +- 新增 支持 clear、blur 事件 +- 新增 支持 focus 属性 +- 去掉组件背景色 diff --git a/.svn/pristine/21/21cfac9565dcc84e9b8017a902c18752ef50741e.svn-base b/.svn/pristine/21/21cfac9565dcc84e9b8017a902c18752ef50741e.svn-base new file mode 100644 index 0000000..a34d08f --- /dev/null +++ b/.svn/pristine/21/21cfac9565dcc84e9b8017a902c18752ef50741e.svn-base @@ -0,0 +1,24 @@ +@mixin get-styles($k,$c) { + @if $k == size or $k == weight{ + font-#{$k}:#{$c} + }@else{ + #{$k}:#{$c} + } +} + +@each $key, $child in $uni-headings { + /* #ifndef APP-NVUE */ + .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ + /* #ifdef APP-NVUE */ + .container .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ +} diff --git a/.svn/pristine/22/223f9850ba0a902aa9f43c91ae48ef40bd22104c.svn-base b/.svn/pristine/22/223f9850ba0a902aa9f43c91ae48ef40bd22104c.svn-base new file mode 100644 index 0000000..2f56eab --- /dev/null +++ b/.svn/pristine/22/223f9850ba0a902aa9f43c91ae48ef40bd22104c.svn-base @@ -0,0 +1,663 @@ +.uniui-color:before { + content: "\e6cf"; +} + +.uniui-wallet:before { + content: "\e6b1"; +} + +.uniui-settings-filled:before { + content: "\e6ce"; +} + +.uniui-auth-filled:before { + content: "\e6cc"; +} + +.uniui-shop-filled:before { + content: "\e6cd"; +} + +.uniui-staff-filled:before { + content: "\e6cb"; +} + +.uniui-vip-filled:before { + content: "\e6c6"; +} + +.uniui-plus-filled:before { + content: "\e6c7"; +} + +.uniui-folder-add-filled:before { + content: "\e6c8"; +} + +.uniui-color-filled:before { + content: "\e6c9"; +} + +.uniui-tune-filled:before { + content: "\e6ca"; +} + +.uniui-calendar-filled:before { + content: "\e6c0"; +} + +.uniui-notification-filled:before { + content: "\e6c1"; +} + +.uniui-wallet-filled:before { + content: "\e6c2"; +} + +.uniui-medal-filled:before { + content: "\e6c3"; +} + +.uniui-gift-filled:before { + content: "\e6c4"; +} + +.uniui-fire-filled:before { + content: "\e6c5"; +} + +.uniui-refreshempty:before { + content: "\e6bf"; +} + +.uniui-location-filled:before { + content: "\e6af"; +} + +.uniui-person-filled:before { + content: "\e69d"; +} + +.uniui-personadd-filled:before { + content: "\e698"; +} + +.uniui-back:before { + content: "\e6b9"; +} + +.uniui-forward:before { + content: "\e6ba"; +} + +.uniui-arrow-right:before { + content: "\e6bb"; +} + +.uniui-arrowthinright:before { + content: "\e6bb"; +} + +.uniui-arrow-left:before { + content: "\e6bc"; +} + +.uniui-arrowthinleft:before { + content: "\e6bc"; +} + +.uniui-arrow-up:before { + content: "\e6bd"; +} + +.uniui-arrowthinup:before { + content: "\e6bd"; +} + +.uniui-arrow-down:before { + content: "\e6be"; +} + +.uniui-arrowthindown:before { + content: "\e6be"; +} + +.uniui-bottom:before { + content: "\e6b8"; +} + +.uniui-arrowdown:before { + content: "\e6b8"; +} + +.uniui-right:before { + content: "\e6b5"; +} + +.uniui-arrowright:before { + content: "\e6b5"; +} + +.uniui-top:before { + content: "\e6b6"; +} + +.uniui-arrowup:before { + content: "\e6b6"; +} + +.uniui-left:before { + content: "\e6b7"; +} + +.uniui-arrowleft:before { + content: "\e6b7"; +} + +.uniui-eye:before { + content: "\e651"; +} + +.uniui-eye-filled:before { + content: "\e66a"; +} + +.uniui-eye-slash:before { + content: "\e6b3"; +} + +.uniui-eye-slash-filled:before { + content: "\e6b4"; +} + +.uniui-info-filled:before { + content: "\e649"; +} + +.uniui-reload:before { + content: "\e6b2"; +} + +.uniui-micoff-filled:before { + content: "\e6b0"; +} + +.uniui-map-pin-ellipse:before { + content: "\e6ac"; +} + +.uniui-map-pin:before { + content: "\e6ad"; +} + +.uniui-location:before { + content: "\e6ae"; +} + +.uniui-starhalf:before { + content: "\e683"; +} + +.uniui-star:before { + content: "\e688"; +} + +.uniui-star-filled:before { + content: "\e68f"; +} + +.uniui-calendar:before { + content: "\e6a0"; +} + +.uniui-fire:before { + content: "\e6a1"; +} + +.uniui-medal:before { + content: "\e6a2"; +} + +.uniui-font:before { + content: "\e6a3"; +} + +.uniui-gift:before { + content: "\e6a4"; +} + +.uniui-link:before { + content: "\e6a5"; +} + +.uniui-notification:before { + content: "\e6a6"; +} + +.uniui-staff:before { + content: "\e6a7"; +} + +.uniui-vip:before { + content: "\e6a8"; +} + +.uniui-folder-add:before { + content: "\e6a9"; +} + +.uniui-tune:before { + content: "\e6aa"; +} + +.uniui-auth:before { + content: "\e6ab"; +} + +.uniui-person:before { + content: "\e699"; +} + +.uniui-email-filled:before { + content: "\e69a"; +} + +.uniui-phone-filled:before { + content: "\e69b"; +} + +.uniui-phone:before { + content: "\e69c"; +} + +.uniui-email:before { + content: "\e69e"; +} + +.uniui-personadd:before { + content: "\e69f"; +} + +.uniui-chatboxes-filled:before { + content: "\e692"; +} + +.uniui-contact:before { + content: "\e693"; +} + +.uniui-chatbubble-filled:before { + content: "\e694"; +} + +.uniui-contact-filled:before { + content: "\e695"; +} + +.uniui-chatboxes:before { + content: "\e696"; +} + +.uniui-chatbubble:before { + content: "\e697"; +} + +.uniui-upload-filled:before { + content: "\e68e"; +} + +.uniui-upload:before { + content: "\e690"; +} + +.uniui-weixin:before { + content: "\e691"; +} + +.uniui-compose:before { + content: "\e67f"; +} + +.uniui-qq:before { + content: "\e680"; +} + +.uniui-download-filled:before { + content: "\e681"; +} + +.uniui-pyq:before { + content: "\e682"; +} + +.uniui-sound:before { + content: "\e684"; +} + +.uniui-trash-filled:before { + content: "\e685"; +} + +.uniui-sound-filled:before { + content: "\e686"; +} + +.uniui-trash:before { + content: "\e687"; +} + +.uniui-videocam-filled:before { + content: "\e689"; +} + +.uniui-spinner-cycle:before { + content: "\e68a"; +} + +.uniui-weibo:before { + content: "\e68b"; +} + +.uniui-videocam:before { + content: "\e68c"; +} + +.uniui-download:before { + content: "\e68d"; +} + +.uniui-help:before { + content: "\e679"; +} + +.uniui-navigate-filled:before { + content: "\e67a"; +} + +.uniui-plusempty:before { + content: "\e67b"; +} + +.uniui-smallcircle:before { + content: "\e67c"; +} + +.uniui-minus-filled:before { + content: "\e67d"; +} + +.uniui-micoff:before { + content: "\e67e"; +} + +.uniui-closeempty:before { + content: "\e66c"; +} + +.uniui-clear:before { + content: "\e66d"; +} + +.uniui-navigate:before { + content: "\e66e"; +} + +.uniui-minus:before { + content: "\e66f"; +} + +.uniui-image:before { + content: "\e670"; +} + +.uniui-mic:before { + content: "\e671"; +} + +.uniui-paperplane:before { + content: "\e672"; +} + +.uniui-close:before { + content: "\e673"; +} + +.uniui-help-filled:before { + content: "\e674"; +} + +.uniui-paperplane-filled:before { + content: "\e675"; +} + +.uniui-plus:before { + content: "\e676"; +} + +.uniui-mic-filled:before { + content: "\e677"; +} + +.uniui-image-filled:before { + content: "\e678"; +} + +.uniui-locked-filled:before { + content: "\e668"; +} + +.uniui-info:before { + content: "\e669"; +} + +.uniui-locked:before { + content: "\e66b"; +} + +.uniui-camera-filled:before { + content: "\e658"; +} + +.uniui-chat-filled:before { + content: "\e659"; +} + +.uniui-camera:before { + content: "\e65a"; +} + +.uniui-circle:before { + content: "\e65b"; +} + +.uniui-checkmarkempty:before { + content: "\e65c"; +} + +.uniui-chat:before { + content: "\e65d"; +} + +.uniui-circle-filled:before { + content: "\e65e"; +} + +.uniui-flag:before { + content: "\e65f"; +} + +.uniui-flag-filled:before { + content: "\e660"; +} + +.uniui-gear-filled:before { + content: "\e661"; +} + +.uniui-home:before { + content: "\e662"; +} + +.uniui-home-filled:before { + content: "\e663"; +} + +.uniui-gear:before { + content: "\e664"; +} + +.uniui-smallcircle-filled:before { + content: "\e665"; +} + +.uniui-map-filled:before { + content: "\e666"; +} + +.uniui-map:before { + content: "\e667"; +} + +.uniui-refresh-filled:before { + content: "\e656"; +} + +.uniui-refresh:before { + content: "\e657"; +} + +.uniui-cloud-upload:before { + content: "\e645"; +} + +.uniui-cloud-download-filled:before { + content: "\e646"; +} + +.uniui-cloud-download:before { + content: "\e647"; +} + +.uniui-cloud-upload-filled:before { + content: "\e648"; +} + +.uniui-redo:before { + content: "\e64a"; +} + +.uniui-images-filled:before { + content: "\e64b"; +} + +.uniui-undo-filled:before { + content: "\e64c"; +} + +.uniui-more:before { + content: "\e64d"; +} + +.uniui-more-filled:before { + content: "\e64e"; +} + +.uniui-undo:before { + content: "\e64f"; +} + +.uniui-images:before { + content: "\e650"; +} + +.uniui-paperclip:before { + content: "\e652"; +} + +.uniui-settings:before { + content: "\e653"; +} + +.uniui-search:before { + content: "\e654"; +} + +.uniui-redo-filled:before { + content: "\e655"; +} + +.uniui-list:before { + content: "\e644"; +} + +.uniui-mail-open-filled:before { + content: "\e63a"; +} + +.uniui-hand-down-filled:before { + content: "\e63c"; +} + +.uniui-hand-down:before { + content: "\e63d"; +} + +.uniui-hand-up-filled:before { + content: "\e63e"; +} + +.uniui-hand-up:before { + content: "\e63f"; +} + +.uniui-heart-filled:before { + content: "\e641"; +} + +.uniui-mail-open:before { + content: "\e643"; +} + +.uniui-heart:before { + content: "\e639"; +} + +.uniui-loop:before { + content: "\e633"; +} + +.uniui-pulldown:before { + content: "\e632"; +} + +.uniui-scan:before { + content: "\e62a"; +} + +.uniui-bars:before { + content: "\e627"; +} + +.uniui-cart-filled:before { + content: "\e629"; +} + +.uniui-checkbox:before { + content: "\e62b"; +} + +.uniui-checkbox-filled:before { + content: "\e62c"; +} + +.uniui-shop:before { + content: "\e62f"; +} + +.uniui-headphones:before { + content: "\e630"; +} + +.uniui-cart:before { + content: "\e631"; +} diff --git a/.svn/pristine/23/23202b461b734c26671959e91cff0078fd3df488.svn-base b/.svn/pristine/23/23202b461b734c26671959e91cff0078fd3df488.svn-base new file mode 100644 index 0000000..374323a Binary files /dev/null and b/.svn/pristine/23/23202b461b734c26671959e91cff0078fd3df488.svn-base differ diff --git a/.svn/pristine/23/2322c6b4be17e81c8df63fd350bf66b4279b75c9.svn-base b/.svn/pristine/23/2322c6b4be17e81c8df63fd350bf66b4279b75c9.svn-base new file mode 100644 index 0000000..552407e Binary files /dev/null and b/.svn/pristine/23/2322c6b4be17e81c8df63fd350bf66b4279b75c9.svn-base differ diff --git a/.svn/pristine/23/235d3f57fbd78dd9365e5fedd4bc34f2818e1ea5.svn-base b/.svn/pristine/23/235d3f57fbd78dd9365e5fedd4bc34f2818e1ea5.svn-base new file mode 100644 index 0000000..58b7398 --- /dev/null +++ b/.svn/pristine/23/235d3f57fbd78dd9365e5fedd4bc34f2818e1ea5.svn-base @@ -0,0 +1,48 @@ + + + + + \ No newline at end of file diff --git a/.svn/pristine/23/23f258afab249160d232e6c107c15ee28a922b7f.svn-base b/.svn/pristine/23/23f258afab249160d232e6c107c15ee28a922b7f.svn-base new file mode 100644 index 0000000..9bf1a8f Binary files /dev/null and b/.svn/pristine/23/23f258afab249160d232e6c107c15ee28a922b7f.svn-base differ diff --git a/.svn/pristine/24/24cae05a6ceefd927591cf069b07c46c6406e974.svn-base b/.svn/pristine/24/24cae05a6ceefd927591cf069b07c46c6406e974.svn-base new file mode 100644 index 0000000..01986f1 --- /dev/null +++ b/.svn/pristine/24/24cae05a6ceefd927591cf069b07c46c6406e974.svn-base @@ -0,0 +1,12 @@ +import en from './en.json' +import es from './es.json' +import fr from './fr.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + es, + fr, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/.svn/pristine/24/24d0ba3ab9cc2d0beba23fda05dc5fbd05564a70.svn-base b/.svn/pristine/24/24d0ba3ab9cc2d0beba23fda05dc5fbd05564a70.svn-base new file mode 100644 index 0000000..c5ed030 --- /dev/null +++ b/.svn/pristine/24/24d0ba3ab9cc2d0beba23fda05dc5fbd05564a70.svn-base @@ -0,0 +1,88 @@ + + + + + diff --git a/.svn/pristine/26/265ca5e5aaa34d6e1bae3bac9fcd10c074066881.svn-base b/.svn/pristine/26/265ca5e5aaa34d6e1bae3bac9fcd10c074066881.svn-base new file mode 100644 index 0000000..64f8061 --- /dev/null +++ b/.svn/pristine/26/265ca5e5aaa34d6e1bae3bac9fcd10c074066881.svn-base @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "重置", + "filter-dropdown.search": "搜索", + "filter-dropdown.submit": "確定", + "filter-dropdown.filter": "篩選", + "filter-dropdown.gt": "大於等於", + "filter-dropdown.lt": "小於等於", + "filter-dropdown.date": "日期範圍" +} diff --git a/.svn/pristine/26/26f78f778abff80dd39e8206f7dd8f665e3597a1.svn-base b/.svn/pristine/26/26f78f778abff80dd39e8206f7dd8f665e3597a1.svn-base new file mode 100644 index 0000000..1c95c68 --- /dev/null +++ b/.svn/pristine/26/26f78f778abff80dd39e8206f7dd8f665e3597a1.svn-base @@ -0,0 +1,185 @@ + + + + + diff --git a/.svn/pristine/27/27c75335706f4186feb6f99b04d7fdf9c6a783b2.svn-base b/.svn/pristine/27/27c75335706f4186feb6f99b04d7fdf9c6a783b2.svn-base new file mode 100644 index 0000000..d5cdee6 --- /dev/null +++ b/.svn/pristine/27/27c75335706f4186feb6f99b04d7fdf9c6a783b2.svn-base @@ -0,0 +1,171 @@ + + + + + diff --git a/.svn/pristine/2a/2ab141441496b91b7e4b04cf29b3da3b5c7a1409.svn-base b/.svn/pristine/2a/2ab141441496b91b7e4b04cf29b3da3b5c7a1409.svn-base new file mode 100644 index 0000000..22b0f87 Binary files /dev/null and b/.svn/pristine/2a/2ab141441496b91b7e4b04cf29b3da3b5c7a1409.svn-base differ diff --git a/.svn/pristine/2a/2ab1d3cc5b0759f253e2d0bed47d7ea4b9d2f0a1.svn-base b/.svn/pristine/2a/2ab1d3cc5b0759f253e2d0bed47d7ea4b9d2f0a1.svn-base new file mode 100644 index 0000000..02a7352 Binary files /dev/null and b/.svn/pristine/2a/2ab1d3cc5b0759f253e2d0bed47d7ea4b9d2f0a1.svn-base differ diff --git a/.svn/pristine/2b/2be0392f6644ec96f59b75442d3e048678bc4d86.svn-base b/.svn/pristine/2b/2be0392f6644ec96f59b75442d3e048678bc4d86.svn-base new file mode 100644 index 0000000..fa01c76 Binary files /dev/null and b/.svn/pristine/2b/2be0392f6644ec96f59b75442d3e048678bc4d86.svn-base differ diff --git a/.svn/pristine/2c/2c1dfc247bd9694a3a44523be2f5cb28fd39334b.svn-base b/.svn/pristine/2c/2c1dfc247bd9694a3a44523be2f5cb28fd39334b.svn-base new file mode 100644 index 0000000..e298d32 --- /dev/null +++ b/.svn/pristine/2c/2c1dfc247bd9694a3a44523be2f5cb28fd39334b.svn-base @@ -0,0 +1,104 @@ + + + + + diff --git a/.svn/pristine/2c/2c487b3287045adde2de77e9e155b81ed7e4e56f.svn-base b/.svn/pristine/2c/2c487b3287045adde2de77e9e155b81ed7e4e56f.svn-base new file mode 100644 index 0000000..66e8bef --- /dev/null +++ b/.svn/pristine/2c/2c487b3287045adde2de77e9e155b81ed7e4e56f.svn-base @@ -0,0 +1,91 @@ +{ + "id": "uni-list", + "displayName": "uni-list 列表", + "version": "1.2.1", + "description": "List 组件 ,帮助使用者快速构建列表。", + "keywords": [ + "", + "uni-ui", + "uniui", + "列表", + "", + "list" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-badge", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/2c/2cd6a6a7cc0b88e0e6ec85965966bf663e76ae1c.svn-base b/.svn/pristine/2c/2cd6a6a7cc0b88e0e6ec85965966bf663e76ae1c.svn-base new file mode 100644 index 0000000..0c72ffb --- /dev/null +++ b/.svn/pristine/2c/2cd6a6a7cc0b88e0e6ec85965966bf663e76ae1c.svn-base @@ -0,0 +1,4 @@ +{ + "uni-search-bar.cancel": "cancel", + "uni-search-bar.placeholder": "Search enter content" +} \ No newline at end of file diff --git a/.svn/pristine/2e/2e2999f0fe48730b0d95d25fbf2b68fe21a38aeb.svn-base b/.svn/pristine/2e/2e2999f0fe48730b0d95d25fbf2b68fe21a38aeb.svn-base new file mode 100644 index 0000000..ab4029e --- /dev/null +++ b/.svn/pristine/2e/2e2999f0fe48730b0d95d25fbf2b68fe21a38aeb.svn-base @@ -0,0 +1,92 @@ +{ + "id": "uni-data-picker", + "displayName": "uni-data-picker 数据驱动的picker选择器", + "version": "1.0.4", + "description": "单列、多列级联选择器,常用于省市区城市选择、公司部门选择、多级分类等场景", + "keywords": [ + "uni-ui", + "uniui", + "picker", + "级联", + "省市区", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-load-more", + "uni-icons", + "uni-scss" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/2e/2e36226a933d21442815a635e36500ab0fcb3cba.svn-base b/.svn/pristine/2e/2e36226a933d21442815a635e36500ab0fcb3cba.svn-base new file mode 100644 index 0000000..c6cf294 Binary files /dev/null and b/.svn/pristine/2e/2e36226a933d21442815a635e36500ab0fcb3cba.svn-base differ diff --git a/.svn/pristine/2f/2f51ce3ebcccf71c619a6205317a5de4f4e28dc0.svn-base b/.svn/pristine/2f/2f51ce3ebcccf71c619a6205317a5de4f4e28dc0.svn-base new file mode 100644 index 0000000..c9f08cc --- /dev/null +++ b/.svn/pristine/2f/2f51ce3ebcccf71c619a6205317a5de4f4e28dc0.svn-base @@ -0,0 +1,189 @@ + + + + + diff --git a/.svn/pristine/30/303bfba03ff2ccff8eccc224a83aa5618f85b340.svn-base b/.svn/pristine/30/303bfba03ff2ccff8eccc224a83aa5618f85b340.svn-base new file mode 100644 index 0000000..3d6b657 Binary files /dev/null and b/.svn/pristine/30/303bfba03ff2ccff8eccc224a83aa5618f85b340.svn-base differ diff --git a/.svn/pristine/30/304870bfe769a7b3fa12fc7d0a9e5a735ec2d4b3.svn-base b/.svn/pristine/30/304870bfe769a7b3fa12fc7d0a9e5a735ec2d4b3.svn-base new file mode 100644 index 0000000..f8b700c Binary files /dev/null and b/.svn/pristine/30/304870bfe769a7b3fa12fc7d0a9e5a735ec2d4b3.svn-base differ diff --git a/.svn/pristine/31/315fe6c7a559391770ab569d07078dbc88be740d.svn-base b/.svn/pristine/31/315fe6c7a559391770ab569d07078dbc88be740d.svn-base new file mode 100644 index 0000000..99c3c58 Binary files /dev/null and b/.svn/pristine/31/315fe6c7a559391770ab569d07078dbc88be740d.svn-base differ diff --git a/.svn/pristine/31/318cb6de7ececf41491c9b1fe0085af1349088a2.svn-base b/.svn/pristine/31/318cb6de7ececf41491c9b1fe0085af1349088a2.svn-base new file mode 100644 index 0000000..a87f68e --- /dev/null +++ b/.svn/pristine/31/318cb6de7ececf41491c9b1fe0085af1349088a2.svn-base @@ -0,0 +1,96 @@ + + + + + diff --git a/.svn/pristine/32/32c21782f525982cb928f00e814b97330913a728.svn-base b/.svn/pristine/32/32c21782f525982cb928f00e814b97330913a728.svn-base new file mode 100644 index 0000000..a9e2d66 --- /dev/null +++ b/.svn/pristine/32/32c21782f525982cb928f00e814b97330913a728.svn-base @@ -0,0 +1,60 @@ +## 1.7.9(2022-04-02) +- 修复 弹出层内部无法滚动的bug +## 1.7.8(2022-03-28) +- 修复 小程序中高度错误的bug +## 1.7.7(2022-03-17) +- 修复 快速调用open出现问题的Bug +## 1.7.6(2022-02-14) +- 修复 safeArea 属性不能设置为false的bug +## 1.7.5(2022-01-19) +- 修复 isMaskClick 失效的bug +## 1.7.4(2022-01-19) +- 新增 cancelText \ confirmText 属性 ,可自定义文本 +- 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色 +- 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题 +## 1.7.3(2022-01-13) +- 修复 设置 safeArea 属性不生效的bug +## 1.7.2(2021-11-26) +- 优化 组件示例 +## 1.7.1(2021-11-26) +- 修复 vuedoc 文字错误 +## 1.7.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-popup](https://uniapp.dcloud.io/component/uniui/uni-popup) +## 1.6.2(2021-08-24) +- 新增 支持国际化 +## 1.6.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.6.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.5.0(2021-06-23) +- 新增 mask-click 遮罩层点击事件 +## 1.4.5(2021-06-22) +- 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +## 1.4.4(2021-06-18) +- 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +## 1.4.3(2021-06-08) +- 修复 错误的 watch 字段 +- 修复 safeArea 属性不生效的问题 +- 修复 点击内容,再点击遮罩无法关闭的Bug +## 1.4.2(2021-05-12) +- 新增 组件示例地址 +## 1.4.1(2021-04-29) +- 修复 组件内放置 input 、textarea 组件,无法聚焦的问题 +## 1.4.0 (2021-04-29) +- 新增 type 属性的 left\right 值,支持左右弹出 +- 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗 +- 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色 +- 新增 safeArea 属性,是否适配底部安全区 +- 修复 App\h5\微信小程序底部安全区占位不对的Bug +- 修复 App 端弹出等待的Bug +- 优化 提升低配设备性能,优化动画卡顿问题 +- 优化 更简单的组件自定义方式 +## 1.2.9(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.2.8(2021-02-05) +- 调整为uni_modules目录规范 +## 1.2.7(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持 PC 端 +- 新增 uni-popup-message 、uni-popup-dialog扩展组件支持 PC 端 diff --git a/.svn/pristine/32/32d23384072ae277d26e6bb44ae069fa1253519a.svn-base b/.svn/pristine/32/32d23384072ae277d26e6bb44ae069fa1253519a.svn-base new file mode 100644 index 0000000..7f09e94 --- /dev/null +++ b/.svn/pristine/32/32d23384072ae277d26e6bb44ae069fa1253519a.svn-base @@ -0,0 +1,11 @@ + + +## Link 链接 +> **组件名:uni-link** +> 代码块: `uLink` + + +uni-link是一个外部网页超链接组件,在小程序内复制url,在app内打开外部浏览器,在h5端打开新网页。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-link) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/34/3427f3aef8a287142e86a216971de118ebc90936.svn-base b/.svn/pristine/34/3427f3aef8a287142e86a216971de118ebc90936.svn-base new file mode 100644 index 0000000..c3cd8c4 --- /dev/null +++ b/.svn/pristine/34/3427f3aef8a287142e86a216971de118ebc90936.svn-base @@ -0,0 +1,26 @@ +## 1.3.1(2021-12-20) +- 修复 在vue页面下略缩图显示不正常的bug +## 1.3.0(2021-11-19) +- 重构插槽的用法 ,header 替换为 title +- 新增 actions 插槽 +- 新增 cover 封面图属性和插槽 +- 新增 padding 内容默认内边距离 +- 新增 margin 卡片默认外边距离 +- 新增 spacing 卡片默认内边距 +- 新增 shadow 卡片阴影属性 +- 取消 mode 属性,可使用组合插槽代替 +- 取消 note 属性 ,使用actions插槽代替 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-card](https://uniapp.dcloud.io/component/uniui/uni-card) +## 1.2.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.8(2021-07-01) +- 优化 图文卡片无图片加载时,提供占位图标 +- 新增 header 插槽,自定义卡片头部( 图文卡片 mode="style" 时,不支持) +- 修复 thumbnail 不存在仍然占位的 bug +## 1.1.7(2021-05-12) +- 新增 组件示例地址 +## 1.1.6(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/34/342bd81ed56286eefb98cd87b883a61c2f39c805.svn-base b/.svn/pristine/34/342bd81ed56286eefb98cd87b883a61c2f39c805.svn-base new file mode 100644 index 0000000..cb9d367 --- /dev/null +++ b/.svn/pristine/34/342bd81ed56286eefb98cd87b883a61c2f39c805.svn-base @@ -0,0 +1,16 @@ +## 1.1.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.1.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-steps](https://uniapp.dcloud.io/component/uniui/uni-steps) +## 1.0.8(2021-05-12) +- 新增 项目示例地址 +## 1.0.7(2021-05-06) +- 修复 uni-steps 横向布局时,多行文字高度不合理的 bug +## 1.0.6(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.5(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/35/358a4a277a54c2e6166cc9f50bd145a72fe2c4f5.svn-base b/.svn/pristine/35/358a4a277a54c2e6166cc9f50bd145a72fe2c4f5.svn-base new file mode 100644 index 0000000..60bbab0 Binary files /dev/null and b/.svn/pristine/35/358a4a277a54c2e6166cc9f50bd145a72fe2c4f5.svn-base differ diff --git a/.svn/pristine/35/35ac1d8af97ec1b350d48762071dd80068dd96c4.svn-base b/.svn/pristine/35/35ac1d8af97ec1b350d48762071dd80068dd96c4.svn-base new file mode 100644 index 0000000..7940afc --- /dev/null +++ b/.svn/pristine/35/35ac1d8af97ec1b350d48762071dd80068dd96c4.svn-base @@ -0,0 +1,108 @@ + + + + diff --git a/.svn/pristine/35/35fa4ec99a2d317d5a2bad1bf32d7ba1244a9381.svn-base b/.svn/pristine/35/35fa4ec99a2d317d5a2bad1bf32d7ba1244a9381.svn-base new file mode 100644 index 0000000..8b59e4a --- /dev/null +++ b/.svn/pristine/35/35fa4ec99a2d317d5a2bad1bf32d7ba1244a9381.svn-base @@ -0,0 +1,8 @@ +## Badge 数字角标 +> **组件名:uni-data-select** +> 代码块: `uDataSelect` + +数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景, + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-select) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/.svn/pristine/36/362ff5570f551e5d504f300411b3eb8a6dcfaa6b.svn-base b/.svn/pristine/36/362ff5570f551e5d504f300411b3eb8a6dcfaa6b.svn-base new file mode 100644 index 0000000..cb00d1f --- /dev/null +++ b/.svn/pristine/36/362ff5570f551e5d504f300411b3eb8a6dcfaa6b.svn-base @@ -0,0 +1,104 @@ + + + + + diff --git a/.svn/pristine/37/376fcecc68a5ee195ad3277bc0f616ebfb4a5b83.svn-base b/.svn/pristine/37/376fcecc68a5ee195ad3277bc0f616ebfb4a5b83.svn-base new file mode 100644 index 0000000..74f2b65 --- /dev/null +++ b/.svn/pristine/37/376fcecc68a5ee195ad3277bc0f616ebfb4a5b83.svn-base @@ -0,0 +1,1206 @@ +let QRCode = {}; +(function () { + /** + * 获取单个字符的utf8编码 + * unicode BMP平面约65535个字符 + * @param {num} code + * return {array} + */ + function unicodeFormat8(code) { + // 1 byte + var c0, c1, c2; + if (code < 128) { + return [code]; + // 2 bytes + } else if (code < 2048) { + c0 = 192 + (code >> 6); + c1 = 128 + (code & 63); + return [c0, c1]; + // 3 bytes + } else { + c0 = 224 + (code >> 12); + c1 = 128 + (code >> 6 & 63); + c2 = 128 + (code & 63); + return [c0, c1, c2]; + } + } + /** + * 获取字符串的utf8编码字节串 + * @param {string} string + * @return {array} + */ + function getUTF8Bytes(string) { + var utf8codes = []; + for (var i = 0; i < string.length; i++) { + var code = string.charCodeAt(i); + var utf8 = unicodeFormat8(code); + for (var j = 0; j < utf8.length; j++) { + utf8codes.push(utf8[j]); + } + } + return utf8codes; + } + /** + * 二维码算法实现 + * @param {string} data 要编码的信息字符串 + * @param {num} errorCorrectLevel 纠错等级 + */ + function QRCodeAlg(data, errorCorrectLevel) { + this.typeNumber = -1; //版本 + this.errorCorrectLevel = errorCorrectLevel; + this.modules = null; //二维矩阵,存放最终结果 + this.moduleCount = 0; //矩阵大小 + this.dataCache = null; //数据缓存 + this.rsBlocks = null; //版本数据信息 + this.totalDataCount = -1; //可使用的数据量 + this.data = data; + this.utf8bytes = getUTF8Bytes(data); + this.make(); + } + QRCodeAlg.prototype = { + constructor: QRCodeAlg, + /** + * 获取二维码矩阵大小 + * @return {num} 矩阵大小 + */ + getModuleCount: function () { + return this.moduleCount; + }, + /** + * 编码 + */ + make: function () { + this.getRightType(); + this.dataCache = this.createData(); + this.createQrcode(); + }, + /** + * 设置二位矩阵功能图形 + * @param {bool} test 表示是否在寻找最好掩膜阶段 + * @param {num} maskPattern 掩膜的版本 + */ + makeImpl: function (maskPattern) { + this.moduleCount = this.typeNumber * 4 + 17; + this.modules = new Array(this.moduleCount); + for (var row = 0; row < this.moduleCount; row++) { + this.modules[row] = new Array(this.moduleCount); + } + this.setupPositionProbePattern(0, 0); + this.setupPositionProbePattern(this.moduleCount - 7, 0); + this.setupPositionProbePattern(0, this.moduleCount - 7); + this.setupPositionAdjustPattern(); + this.setupTimingPattern(); + this.setupTypeInfo(true, maskPattern); + if (this.typeNumber >= 7) { + this.setupTypeNumber(true); + } + this.mapData(this.dataCache, maskPattern); + }, + /** + * 设置二维码的位置探测图形 + * @param {num} row 探测图形的中心横坐标 + * @param {num} col 探测图形的中心纵坐标 + */ + setupPositionProbePattern: function (row, col) { + for (var r = -1; r <= 7; r++) { + if (row + r <= -1 || this.moduleCount <= row + r) continue; + for (var c = -1; c <= 7; c++) { + if (col + c <= -1 || this.moduleCount <= col + c) continue; + if ((0 <= r && r <= 6 && (c == 0 || c == 6)) || (0 <= c && c <= 6 && (r == 0 || r == 6)) || (2 <= r && r <= 4 && 2 <= c && c <= 4)) { + this.modules[row + r][col + c] = true; + } else { + this.modules[row + r][col + c] = false; + } + } + } + }, + /** + * 创建二维码 + * @return {[type]} [description] + */ + createQrcode: function () { + var minLostPoint = 0; + var pattern = 0; + var bestModules = null; + for (var i = 0; i < 8; i++) { + this.makeImpl(i); + var lostPoint = QRUtil.getLostPoint(this); + if (i == 0 || minLostPoint > lostPoint) { + minLostPoint = lostPoint; + pattern = i; + bestModules = this.modules; + } + } + this.modules = bestModules; + this.setupTypeInfo(false, pattern); + if (this.typeNumber >= 7) { + this.setupTypeNumber(false); + } + }, + /** + * 设置定位图形 + * @return {[type]} [description] + */ + setupTimingPattern: function () { + for (var r = 8; r < this.moduleCount - 8; r++) { + if (this.modules[r][6] != null) { + continue; + } + this.modules[r][6] = (r % 2 == 0); + if (this.modules[6][r] != null) { + continue; + } + this.modules[6][r] = (r % 2 == 0); + } + }, + /** + * 设置矫正图形 + * @return {[type]} [description] + */ + setupPositionAdjustPattern: function () { + var pos = QRUtil.getPatternPosition(this.typeNumber); + for (var i = 0; i < pos.length; i++) { + for (var j = 0; j < pos.length; j++) { + var row = pos[i]; + var col = pos[j]; + if (this.modules[row][col] != null) { + continue; + } + for (var r = -2; r <= 2; r++) { + for (var c = -2; c <= 2; c++) { + if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) { + this.modules[row + r][col + c] = true; + } else { + this.modules[row + r][col + c] = false; + } + } + } + } + } + }, + /** + * 设置版本信息(7以上版本才有) + * @param {bool} test 是否处于判断最佳掩膜阶段 + * @return {[type]} [description] + */ + setupTypeNumber: function (test) { + var bits = QRUtil.getBCHTypeNumber(this.typeNumber); + for (var i = 0; i < 18; i++) { + var mod = (!test && ((bits >> i) & 1) == 1); + this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod; + this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod; + } + }, + /** + * 设置格式信息(纠错等级和掩膜版本) + * @param {bool} test + * @param {num} maskPattern 掩膜版本 + * @return {} + */ + setupTypeInfo: function (test, maskPattern) { + var data = (QRErrorCorrectLevel[this.errorCorrectLevel] << 3) | maskPattern; + var bits = QRUtil.getBCHTypeInfo(data); + // vertical + for (var i = 0; i < 15; i++) { + var mod = (!test && ((bits >> i) & 1) == 1); + if (i < 6) { + this.modules[i][8] = mod; + } else if (i < 8) { + this.modules[i + 1][8] = mod; + } else { + this.modules[this.moduleCount - 15 + i][8] = mod; + } + // horizontal + var mod = (!test && ((bits >> i) & 1) == 1); + if (i < 8) { + this.modules[8][this.moduleCount - i - 1] = mod; + } else if (i < 9) { + this.modules[8][15 - i - 1 + 1] = mod; + } else { + this.modules[8][15 - i - 1] = mod; + } + } + // fixed module + this.modules[this.moduleCount - 8][8] = (!test); + }, + /** + * 数据编码 + * @return {[type]} [description] + */ + createData: function () { + var buffer = new QRBitBuffer(); + var lengthBits = this.typeNumber > 9 ? 16 : 8; + buffer.put(4, 4); //添加模式 + buffer.put(this.utf8bytes.length, lengthBits); + for (var i = 0, l = this.utf8bytes.length; i < l; i++) { + buffer.put(this.utf8bytes[i], 8); + } + if (buffer.length + 4 <= this.totalDataCount * 8) { + buffer.put(0, 4); + } + // padding + while (buffer.length % 8 != 0) { + buffer.putBit(false); + } + // padding + while (true) { + if (buffer.length >= this.totalDataCount * 8) { + break; + } + buffer.put(QRCodeAlg.PAD0, 8); + if (buffer.length >= this.totalDataCount * 8) { + break; + } + buffer.put(QRCodeAlg.PAD1, 8); + } + return this.createBytes(buffer); + }, + /** + * 纠错码编码 + * @param {buffer} buffer 数据编码 + * @return {[type]} + */ + createBytes: function (buffer) { + var offset = 0; + var maxDcCount = 0; + var maxEcCount = 0; + var length = this.rsBlock.length / 3; + var rsBlocks = new Array(); + for (var i = 0; i < length; i++) { + var count = this.rsBlock[i * 3 + 0]; + var totalCount = this.rsBlock[i * 3 + 1]; + var dataCount = this.rsBlock[i * 3 + 2]; + for (var j = 0; j < count; j++) { + rsBlocks.push([dataCount, totalCount]); + } + } + var dcdata = new Array(rsBlocks.length); + var ecdata = new Array(rsBlocks.length); + for (var r = 0; r < rsBlocks.length; r++) { + var dcCount = rsBlocks[r][0]; + var ecCount = rsBlocks[r][1] - dcCount; + maxDcCount = Math.max(maxDcCount, dcCount); + maxEcCount = Math.max(maxEcCount, ecCount); + dcdata[r] = new Array(dcCount); + for (var i = 0; i < dcdata[r].length; i++) { + dcdata[r][i] = 0xff & buffer.buffer[i + offset]; + } + offset += dcCount; + var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount); + var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1); + var modPoly = rawPoly.mod(rsPoly); + ecdata[r] = new Array(rsPoly.getLength() - 1); + for (var i = 0; i < ecdata[r].length; i++) { + var modIndex = i + modPoly.getLength() - ecdata[r].length; + ecdata[r][i] = (modIndex >= 0) ? modPoly.get(modIndex) : 0; + } + } + var data = new Array(this.totalDataCount); + var index = 0; + for (var i = 0; i < maxDcCount; i++) { + for (var r = 0; r < rsBlocks.length; r++) { + if (i < dcdata[r].length) { + data[index++] = dcdata[r][i]; + } + } + } + for (var i = 0; i < maxEcCount; i++) { + for (var r = 0; r < rsBlocks.length; r++) { + if (i < ecdata[r].length) { + data[index++] = ecdata[r][i]; + } + } + } + return data; + + }, + /** + * 布置模块,构建最终信息 + * @param {} data + * @param {} maskPattern + * @return {} + */ + mapData: function (data, maskPattern) { + var inc = -1; + var row = this.moduleCount - 1; + var bitIndex = 7; + var byteIndex = 0; + for (var col = this.moduleCount - 1; col > 0; col -= 2) { + if (col == 6) col--; + while (true) { + for (var c = 0; c < 2; c++) { + if (this.modules[row][col - c] == null) { + var dark = false; + if (byteIndex < data.length) { + dark = (((data[byteIndex] >>> bitIndex) & 1) == 1); + } + var mask = QRUtil.getMask(maskPattern, row, col - c); + if (mask) { + dark = !dark; + } + this.modules[row][col - c] = dark; + bitIndex--; + if (bitIndex == -1) { + byteIndex++; + bitIndex = 7; + } + } + } + row += inc; + if (row < 0 || this.moduleCount <= row) { + row -= inc; + inc = -inc; + break; + } + } + } + } + }; + /** + * 填充字段 + */ + QRCodeAlg.PAD0 = 0xEC; + QRCodeAlg.PAD1 = 0x11; + //--------------------------------------------------------------------- + // 纠错等级对应的编码 + //--------------------------------------------------------------------- + var QRErrorCorrectLevel = [1, 0, 3, 2]; + //--------------------------------------------------------------------- + // 掩膜版本 + //--------------------------------------------------------------------- + var QRMaskPattern = { + PATTERN000: 0, + PATTERN001: 1, + PATTERN010: 2, + PATTERN011: 3, + PATTERN100: 4, + PATTERN101: 5, + PATTERN110: 6, + PATTERN111: 7 + }; + //--------------------------------------------------------------------- + // 工具类 + //--------------------------------------------------------------------- + var QRUtil = { + /* + 每个版本矫正图形的位置 + */ + PATTERN_POSITION_TABLE: [ + [], + [6, 18], + [6, 22], + [6, 26], + [6, 30], + [6, 34], + [6, 22, 38], + [6, 24, 42], + [6, 26, 46], + [6, 28, 50], + [6, 30, 54], + [6, 32, 58], + [6, 34, 62], + [6, 26, 46, 66], + [6, 26, 48, 70], + [6, 26, 50, 74], + [6, 30, 54, 78], + [6, 30, 56, 82], + [6, 30, 58, 86], + [6, 34, 62, 90], + [6, 28, 50, 72, 94], + [6, 26, 50, 74, 98], + [6, 30, 54, 78, 102], + [6, 28, 54, 80, 106], + [6, 32, 58, 84, 110], + [6, 30, 58, 86, 114], + [6, 34, 62, 90, 118], + [6, 26, 50, 74, 98, 122], + [6, 30, 54, 78, 102, 126], + [6, 26, 52, 78, 104, 130], + [6, 30, 56, 82, 108, 134], + [6, 34, 60, 86, 112, 138], + [6, 30, 58, 86, 114, 142], + [6, 34, 62, 90, 118, 146], + [6, 30, 54, 78, 102, 126, 150], + [6, 24, 50, 76, 102, 128, 154], + [6, 28, 54, 80, 106, 132, 158], + [6, 32, 58, 84, 110, 136, 162], + [6, 26, 54, 82, 110, 138, 166], + [6, 30, 58, 86, 114, 142, 170] + ], + G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0), + G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0), + G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1), + /* + BCH编码格式信息 + */ + getBCHTypeInfo: function (data) { + var d = data << 10; + while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) { + d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15))); + } + return ((data << 10) | d) ^ QRUtil.G15_MASK; + }, + /* + BCH编码版本信息 + */ + getBCHTypeNumber: function (data) { + var d = data << 12; + while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) { + d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18))); + } + return (data << 12) | d; + }, + /* + 获取BCH位信息 + */ + getBCHDigit: function (data) { + var digit = 0; + while (data != 0) { + digit++; + data >>>= 1; + } + return digit; + }, + /* + 获取版本对应的矫正图形位置 + */ + getPatternPosition: function (typeNumber) { + return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]; + }, + /* + 掩膜算法 + */ + getMask: function (maskPattern, i, j) { + switch (maskPattern) { + case QRMaskPattern.PATTERN000: + return (i + j) % 2 == 0; + case QRMaskPattern.PATTERN001: + return i % 2 == 0; + case QRMaskPattern.PATTERN010: + return j % 3 == 0; + case QRMaskPattern.PATTERN011: + return (i + j) % 3 == 0; + case QRMaskPattern.PATTERN100: + return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0; + case QRMaskPattern.PATTERN101: + return (i * j) % 2 + (i * j) % 3 == 0; + case QRMaskPattern.PATTERN110: + return ((i * j) % 2 + (i * j) % 3) % 2 == 0; + case QRMaskPattern.PATTERN111: + return ((i * j) % 3 + (i + j) % 2) % 2 == 0; + default: + throw new Error("bad maskPattern:" + maskPattern); + } + }, + /* + 获取RS的纠错多项式 + */ + getErrorCorrectPolynomial: function (errorCorrectLength) { + var a = new QRPolynomial([1], 0); + for (var i = 0; i < errorCorrectLength; i++) { + a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0)); + } + return a; + }, + /* + 获取评价 + */ + getLostPoint: function (qrCode) { + var moduleCount = qrCode.getModuleCount(), + lostPoint = 0, + darkCount = 0; + for (var row = 0; row < moduleCount; row++) { + var sameCount = 0; + var head = qrCode.modules[row][0]; + for (var col = 0; col < moduleCount; col++) { + var current = qrCode.modules[row][col]; + //level 3 评价 + if (col < moduleCount - 6) { + if (current && !qrCode.modules[row][col + 1] && qrCode.modules[row][col + 2] && qrCode.modules[row][col + 3] && qrCode.modules[row][col + 4] && !qrCode.modules[row][col + 5] && qrCode.modules[row][col + 6]) { + if (col < moduleCount - 10) { + if (qrCode.modules[row][col + 7] && qrCode.modules[row][col + 8] && qrCode.modules[row][col + 9] && qrCode.modules[row][col + 10]) { + lostPoint += 40; + } + } else if (col > 3) { + if (qrCode.modules[row][col - 1] && qrCode.modules[row][col - 2] && qrCode.modules[row][col - 3] && qrCode.modules[row][col - 4]) { + lostPoint += 40; + } + } + } + } + //level 2 评价 + if ((row < moduleCount - 1) && (col < moduleCount - 1)) { + var count = 0; + if (current) count++; + if (qrCode.modules[row + 1][col]) count++; + if (qrCode.modules[row][col + 1]) count++; + if (qrCode.modules[row + 1][col + 1]) count++; + if (count == 0 || count == 4) { + lostPoint += 3; + } + } + //level 1 评价 + if (head ^ current) { + sameCount++; + } else { + head = current; + if (sameCount >= 5) { + lostPoint += (3 + sameCount - 5); + } + sameCount = 1; + } + //level 4 评价 + if (current) { + darkCount++; + } + } + } + for (var col = 0; col < moduleCount; col++) { + var sameCount = 0; + var head = qrCode.modules[0][col]; + for (var row = 0; row < moduleCount; row++) { + var current = qrCode.modules[row][col]; + //level 3 评价 + if (row < moduleCount - 6) { + if (current && !qrCode.modules[row + 1][col] && qrCode.modules[row + 2][col] && qrCode.modules[row + 3][col] && qrCode.modules[row + 4][col] && !qrCode.modules[row + 5][col] && qrCode.modules[row + 6][col]) { + if (row < moduleCount - 10) { + if (qrCode.modules[row + 7][col] && qrCode.modules[row + 8][col] && qrCode.modules[row + 9][col] && qrCode.modules[row + 10][col]) { + lostPoint += 40; + } + } else if (row > 3) { + if (qrCode.modules[row - 1][col] && qrCode.modules[row - 2][col] && qrCode.modules[row - 3][col] && qrCode.modules[row - 4][col]) { + lostPoint += 40; + } + } + } + } + //level 1 评价 + if (head ^ current) { + sameCount++; + } else { + head = current; + if (sameCount >= 5) { + lostPoint += (3 + sameCount - 5); + } + sameCount = 1; + } + } + } + // LEVEL4 + var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5; + lostPoint += ratio * 10; + return lostPoint; + } + + }; + //--------------------------------------------------------------------- + // QRMath使用的数学工具 + //--------------------------------------------------------------------- + var QRMath = { + /* + 将n转化为a^m + */ + glog: function (n) { + if (n < 1) { + throw new Error("glog(" + n + ")"); + } + return QRMath.LOG_TABLE[n]; + }, + /* + 将a^m转化为n + */ + gexp: function (n) { + while (n < 0) { + n += 255; + } + while (n >= 256) { + n -= 255; + } + return QRMath.EXP_TABLE[n]; + }, + EXP_TABLE: new Array(256), + LOG_TABLE: new Array(256) + + }; + for (var i = 0; i < 8; i++) { + QRMath.EXP_TABLE[i] = 1 << i; + } + for (var i = 8; i < 256; i++) { + QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8]; + } + for (var i = 0; i < 255; i++) { + QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i; + } + //--------------------------------------------------------------------- + // QRPolynomial 多项式 + //--------------------------------------------------------------------- + /** + * 多项式类 + * @param {Array} num 系数 + * @param {num} shift a^shift + */ + function QRPolynomial(num, shift) { + if (num.length == undefined) { + throw new Error(num.length + "/" + shift); + } + var offset = 0; + while (offset < num.length && num[offset] == 0) { + offset++; + } + this.num = new Array(num.length - offset + shift); + for (var i = 0; i < num.length - offset; i++) { + this.num[i] = num[i + offset]; + } + } + QRPolynomial.prototype = { + get: function (index) { + return this.num[index]; + }, + getLength: function () { + return this.num.length; + }, + /** + * 多项式乘法 + * @param {QRPolynomial} e 被乘多项式 + * @return {[type]} [description] + */ + multiply: function (e) { + var num = new Array(this.getLength() + e.getLength() - 1); + for (var i = 0; i < this.getLength(); i++) { + for (var j = 0; j < e.getLength(); j++) { + num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j))); + } + } + return new QRPolynomial(num, 0); + }, + /** + * 多项式模运算 + * @param {QRPolynomial} e 模多项式 + * @return {} + */ + mod: function (e) { + var tl = this.getLength(), + el = e.getLength(); + if (tl - el < 0) { + return this; + } + var num = new Array(tl); + for (var i = 0; i < tl; i++) { + num[i] = this.get(i); + } + while (num.length >= el) { + var ratio = QRMath.glog(num[0]) - QRMath.glog(e.get(0)); + + for (var i = 0; i < e.getLength(); i++) { + num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio); + } + while (num[0] == 0) { + num.shift(); + } + } + return new QRPolynomial(num, 0); + } + }; + + //--------------------------------------------------------------------- + // RS_BLOCK_TABLE + //--------------------------------------------------------------------- + /* + 二维码各个版本信息[块数, 每块中的数据块数, 每块中的信息块数] + */ + var RS_BLOCK_TABLE = [ + // L + // M + // Q + // H + // 1 + [1, 26, 19], + [1, 26, 16], + [1, 26, 13], + [1, 26, 9], + + // 2 + [1, 44, 34], + [1, 44, 28], + [1, 44, 22], + [1, 44, 16], + + // 3 + [1, 70, 55], + [1, 70, 44], + [2, 35, 17], + [2, 35, 13], + + // 4 + [1, 100, 80], + [2, 50, 32], + [2, 50, 24], + [4, 25, 9], + + // 5 + [1, 134, 108], + [2, 67, 43], + [2, 33, 15, 2, 34, 16], + [2, 33, 11, 2, 34, 12], + + // 6 + [2, 86, 68], + [4, 43, 27], + [4, 43, 19], + [4, 43, 15], + + // 7 + [2, 98, 78], + [4, 49, 31], + [2, 32, 14, 4, 33, 15], + [4, 39, 13, 1, 40, 14], + + // 8 + [2, 121, 97], + [2, 60, 38, 2, 61, 39], + [4, 40, 18, 2, 41, 19], + [4, 40, 14, 2, 41, 15], + + // 9 + [2, 146, 116], + [3, 58, 36, 2, 59, 37], + [4, 36, 16, 4, 37, 17], + [4, 36, 12, 4, 37, 13], + + // 10 + [2, 86, 68, 2, 87, 69], + [4, 69, 43, 1, 70, 44], + [6, 43, 19, 2, 44, 20], + [6, 43, 15, 2, 44, 16], + + // 11 + [4, 101, 81], + [1, 80, 50, 4, 81, 51], + [4, 50, 22, 4, 51, 23], + [3, 36, 12, 8, 37, 13], + + // 12 + [2, 116, 92, 2, 117, 93], + [6, 58, 36, 2, 59, 37], + [4, 46, 20, 6, 47, 21], + [7, 42, 14, 4, 43, 15], + + // 13 + [4, 133, 107], + [8, 59, 37, 1, 60, 38], + [8, 44, 20, 4, 45, 21], + [12, 33, 11, 4, 34, 12], + + // 14 + [3, 145, 115, 1, 146, 116], + [4, 64, 40, 5, 65, 41], + [11, 36, 16, 5, 37, 17], + [11, 36, 12, 5, 37, 13], + + // 15 + [5, 109, 87, 1, 110, 88], + [5, 65, 41, 5, 66, 42], + [5, 54, 24, 7, 55, 25], + [11, 36, 12], + + // 16 + [5, 122, 98, 1, 123, 99], + [7, 73, 45, 3, 74, 46], + [15, 43, 19, 2, 44, 20], + [3, 45, 15, 13, 46, 16], + + // 17 + [1, 135, 107, 5, 136, 108], + [10, 74, 46, 1, 75, 47], + [1, 50, 22, 15, 51, 23], + [2, 42, 14, 17, 43, 15], + + // 18 + [5, 150, 120, 1, 151, 121], + [9, 69, 43, 4, 70, 44], + [17, 50, 22, 1, 51, 23], + [2, 42, 14, 19, 43, 15], + + // 19 + [3, 141, 113, 4, 142, 114], + [3, 70, 44, 11, 71, 45], + [17, 47, 21, 4, 48, 22], + [9, 39, 13, 16, 40, 14], + + // 20 + [3, 135, 107, 5, 136, 108], + [3, 67, 41, 13, 68, 42], + [15, 54, 24, 5, 55, 25], + [15, 43, 15, 10, 44, 16], + + // 21 + [4, 144, 116, 4, 145, 117], + [17, 68, 42], + [17, 50, 22, 6, 51, 23], + [19, 46, 16, 6, 47, 17], + + // 22 + [2, 139, 111, 7, 140, 112], + [17, 74, 46], + [7, 54, 24, 16, 55, 25], + [34, 37, 13], + + // 23 + [4, 151, 121, 5, 152, 122], + [4, 75, 47, 14, 76, 48], + [11, 54, 24, 14, 55, 25], + [16, 45, 15, 14, 46, 16], + + // 24 + [6, 147, 117, 4, 148, 118], + [6, 73, 45, 14, 74, 46], + [11, 54, 24, 16, 55, 25], + [30, 46, 16, 2, 47, 17], + + // 25 + [8, 132, 106, 4, 133, 107], + [8, 75, 47, 13, 76, 48], + [7, 54, 24, 22, 55, 25], + [22, 45, 15, 13, 46, 16], + + // 26 + [10, 142, 114, 2, 143, 115], + [19, 74, 46, 4, 75, 47], + [28, 50, 22, 6, 51, 23], + [33, 46, 16, 4, 47, 17], + + // 27 + [8, 152, 122, 4, 153, 123], + [22, 73, 45, 3, 74, 46], + [8, 53, 23, 26, 54, 24], + [12, 45, 15, 28, 46, 16], + + // 28 + [3, 147, 117, 10, 148, 118], + [3, 73, 45, 23, 74, 46], + [4, 54, 24, 31, 55, 25], + [11, 45, 15, 31, 46, 16], + + // 29 + [7, 146, 116, 7, 147, 117], + [21, 73, 45, 7, 74, 46], + [1, 53, 23, 37, 54, 24], + [19, 45, 15, 26, 46, 16], + + // 30 + [5, 145, 115, 10, 146, 116], + [19, 75, 47, 10, 76, 48], + [15, 54, 24, 25, 55, 25], + [23, 45, 15, 25, 46, 16], + + // 31 + [13, 145, 115, 3, 146, 116], + [2, 74, 46, 29, 75, 47], + [42, 54, 24, 1, 55, 25], + [23, 45, 15, 28, 46, 16], + + // 32 + [17, 145, 115], + [10, 74, 46, 23, 75, 47], + [10, 54, 24, 35, 55, 25], + [19, 45, 15, 35, 46, 16], + + // 33 + [17, 145, 115, 1, 146, 116], + [14, 74, 46, 21, 75, 47], + [29, 54, 24, 19, 55, 25], + [11, 45, 15, 46, 46, 16], + + // 34 + [13, 145, 115, 6, 146, 116], + [14, 74, 46, 23, 75, 47], + [44, 54, 24, 7, 55, 25], + [59, 46, 16, 1, 47, 17], + + // 35 + [12, 151, 121, 7, 152, 122], + [12, 75, 47, 26, 76, 48], + [39, 54, 24, 14, 55, 25], + [22, 45, 15, 41, 46, 16], + + // 36 + [6, 151, 121, 14, 152, 122], + [6, 75, 47, 34, 76, 48], + [46, 54, 24, 10, 55, 25], + [2, 45, 15, 64, 46, 16], + + // 37 + [17, 152, 122, 4, 153, 123], + [29, 74, 46, 14, 75, 47], + [49, 54, 24, 10, 55, 25], + [24, 45, 15, 46, 46, 16], + + // 38 + [4, 152, 122, 18, 153, 123], + [13, 74, 46, 32, 75, 47], + [48, 54, 24, 14, 55, 25], + [42, 45, 15, 32, 46, 16], + + // 39 + [20, 147, 117, 4, 148, 118], + [40, 75, 47, 7, 76, 48], + [43, 54, 24, 22, 55, 25], + [10, 45, 15, 67, 46, 16], + + // 40 + [19, 148, 118, 6, 149, 119], + [18, 75, 47, 31, 76, 48], + [34, 54, 24, 34, 55, 25], + [20, 45, 15, 61, 46, 16] + ]; + + /** + * 根据数据获取对应版本 + * @return {[type]} [description] + */ + QRCodeAlg.prototype.getRightType = function () { + for (var typeNumber = 1; typeNumber < 41; typeNumber++) { + var rsBlock = RS_BLOCK_TABLE[(typeNumber - 1) * 4 + this.errorCorrectLevel]; + if (rsBlock == undefined) { + throw new Error("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + this.errorCorrectLevel); + } + var length = rsBlock.length / 3; + var totalDataCount = 0; + for (var i = 0; i < length; i++) { + var count = rsBlock[i * 3 + 0]; + var dataCount = rsBlock[i * 3 + 2]; + totalDataCount += dataCount * count; + } + var lengthBytes = typeNumber > 9 ? 2 : 1; + if (this.utf8bytes.length + lengthBytes < totalDataCount || typeNumber == 40) { + this.typeNumber = typeNumber; + this.rsBlock = rsBlock; + this.totalDataCount = totalDataCount; + break; + } + } + }; + + //--------------------------------------------------------------------- + // QRBitBuffer + //--------------------------------------------------------------------- + function QRBitBuffer() { + this.buffer = new Array(); + this.length = 0; + } + QRBitBuffer.prototype = { + get: function (index) { + var bufIndex = Math.floor(index / 8); + return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1); + }, + put: function (num, length) { + for (var i = 0; i < length; i++) { + this.putBit(((num >>> (length - i - 1)) & 1)); + } + }, + putBit: function (bit) { + var bufIndex = Math.floor(this.length / 8); + if (this.buffer.length <= bufIndex) { + this.buffer.push(0); + } + if (bit) { + this.buffer[bufIndex] |= (0x80 >>> (this.length % 8)); + } + this.length++; + } + }; + + + + // xzedit + let qrcodeAlgObjCache = []; + /** + * 二维码构造函数,主要用于绘制 + * @param {参数列表} opt 传递参数 + * @return {} + */ + QRCode = function (opt) { + //设置默认参数 + this.options = { + text: '', + size: 256, + correctLevel: 3, + background: '#ffffff', + foreground: '#000000', + pdground: '#000000', + image: '', + imageSize: 30, + canvasId: opt.canvasId, + context: opt.context, + usingComponents: opt.usingComponents, + showLoading: opt.showLoading, + loadingText: opt.loadingText, + }; + if (typeof opt === 'string') { // 只编码ASCII字符串 + opt = { + text: opt + }; + } + if (opt) { + for (var i in opt) { + this.options[i] = opt[i]; + } + } + //使用QRCodeAlg创建二维码结构 + var qrCodeAlg = null; + for (var i = 0, l = qrcodeAlgObjCache.length; i < l; i++) { + if (qrcodeAlgObjCache[i].text == this.options.text && qrcodeAlgObjCache[i].text.correctLevel == this.options.correctLevel) { + qrCodeAlg = qrcodeAlgObjCache[i].obj; + break; + } + } + if (i == l) { + qrCodeAlg = new QRCodeAlg(this.options.text, this.options.correctLevel); + qrcodeAlgObjCache.push({ + text: this.options.text, + correctLevel: this.options.correctLevel, + obj: qrCodeAlg + }); + } + /** + * 计算矩阵点的前景色 + * @param {Obj} config + * @param {Number} config.row 点x坐标 + * @param {Number} config.col 点y坐标 + * @param {Number} config.count 矩阵大小 + * @param {Number} config.options 组件的options + * @return {String} + */ + let getForeGround = function (config) { + var options = config.options; + if (options.pdground && ( + (config.row > 1 && config.row < 5 && config.col > 1 && config.col < 5) || + (config.row > (config.count - 6) && config.row < (config.count - 2) && config.col > 1 && config.col < 5) || + (config.row > 1 && config.row < 5 && config.col > (config.count - 6) && config.col < (config.count - 2)) + )) { + return options.pdground; + } + return options.foreground; + } + // 创建canvas + let createCanvas = function (options) { + if(options.showLoading){ + uni.showLoading({ + title: options.loadingText, + mask: true + }); + } + var ctx = uni.createCanvasContext(options.canvasId, options.context); + var count = qrCodeAlg.getModuleCount(); + var ratioSize = options.size; + var ratioImgSize = options.imageSize; + //计算每个点的长宽 + var tileW = (ratioSize / count).toPrecision(4); + var tileH = (ratioSize / count).toPrecision(4); + //绘制 + for (var row = 0; row < count; row++) { + for (var col = 0; col < count; col++) { + var w = (Math.ceil((col + 1) * tileW) - Math.floor(col * tileW)); + var h = (Math.ceil((row + 1) * tileW) - Math.floor(row * tileW)); + var foreground = getForeGround({ + row: row, + col: col, + count: count, + options: options + }); + ctx.setFillStyle(qrCodeAlg.modules[row][col] ? foreground : options.background); + ctx.fillRect(Math.round(col * tileW), Math.round(row * tileH), w, h); + } + } + if (options.image) { + var x = Number(((ratioSize - ratioImgSize) / 2).toFixed(2)); + var y = Number(((ratioSize - ratioImgSize) / 2).toFixed(2)); + drawRoundedRect(ctx, x, y, ratioImgSize, ratioImgSize, 2, 6, true, true) + ctx.drawImage(options.image, x, y, ratioImgSize, ratioImgSize); + // 画圆角矩形 + function drawRoundedRect(ctxi, x, y, width, height, r, lineWidth, fill, stroke) { + ctxi.setLineWidth(lineWidth); + ctxi.setFillStyle(options.background); + ctxi.setStrokeStyle(options.background); + ctxi.beginPath(); // draw top and top right corner + ctxi.moveTo(x + r, y); + ctxi.arcTo(x + width, y, x + width, y + r, r); // draw right side and bottom right corner + ctxi.arcTo(x + width, y + height, x + width - r, y + height, r); // draw bottom and bottom left corner + ctxi.arcTo(x, y + height, x, y + height - r, r); // draw left and top left corner + ctxi.arcTo(x, y, x + r, y, r); + ctxi.closePath(); + if (fill) { + ctxi.fill(); + } + if (stroke) { + ctxi.stroke(); + } + } + } + setTimeout(() => { + ctx.draw(true, () => { + // 保存到临时区域 + setTimeout(() => { + uni.canvasToTempFilePath({ + width: options.width, + height: options.height, + destWidth: options.width, + destHeight: options.height, + canvasId: options.canvasId, + quality: Number(1), + success: function (res) { + if (options.cbResult) { + // 由于官方还没有统一此接口的输出字段,所以先判定下 支付宝为 res.apFilePath + if (!empty(res.tempFilePath)) { + options.cbResult(res.tempFilePath) + } else if (!empty(res.apFilePath)) { + options.cbResult(res.apFilePath) + } else { + options.cbResult(res.tempFilePath) + } + } + }, + fail: function (res) { + if (options.cbResult) { + options.cbResult(res) + } + }, + complete: function () { + uni.hideLoading(); + }, + }, options.context); + }, options.text.length + 100); + }); + }, options.usingComponents ? 0 : 150); + } + createCanvas(this.options); + // 空判定 + let empty = function (v) { + let tp = typeof v, + rt = false; + if (tp == "number" && String(v) == "") { + rt = true + } else if (tp == "undefined") { + rt = true + } else if (tp == "object") { + if (JSON.stringify(v) == "{}" || JSON.stringify(v) == "[]" || v == null) rt = true + } else if (tp == "string") { + if (v == "" || v == "undefined" || v == "null" || v == "{}" || v == "[]") rt = true + } else if (tp == "function") { + rt = false + } + return rt + } + }; + QRCode.prototype.clear = function (fn) { + var ctx = uni.createCanvasContext(this.options.canvasId, this.options.context) + ctx.clearRect(0, 0, this.options.size, this.options.size) + ctx.draw(false, () => { + if (fn) { + fn() + } + }) + }; +})() + +export default QRCode \ No newline at end of file diff --git a/.svn/pristine/38/386ef0c6958610351679f6b5f929c7421c0dce2c.svn-base b/.svn/pristine/38/386ef0c6958610351679f6b5f929c7421c0dce2c.svn-base new file mode 100644 index 0000000..125c0e7 --- /dev/null +++ b/.svn/pristine/38/386ef0c6958610351679f6b5f929c7421c0dce2c.svn-base @@ -0,0 +1,89 @@ +{ + "id": "uni-indexed-list", + "displayName": "uni-indexed-list 索引列表", + "version": "1.2.1", + "description": "索引列表组件,右侧带索引的列表,方便快速定位到具体内容,通常用于城市/机场选择等场景", + "keywords": [ + "uni-ui", + "索引列表", + "索引", + "列表" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/38/38d70dacc22b7467f74fa8c63b946fc3d244d641.svn-base b/.svn/pristine/38/38d70dacc22b7467f74fa8c63b946fc3d244d641.svn-base new file mode 100644 index 0000000..74db9af --- /dev/null +++ b/.svn/pristine/38/38d70dacc22b7467f74fa8c63b946fc3d244d641.svn-base @@ -0,0 +1,189 @@ + + + + + diff --git a/.svn/pristine/3a/3a3dbb0655040bc47ffbece717d9b5e58b7ce9b9.svn-base b/.svn/pristine/3a/3a3dbb0655040bc47ffbece717d9b5e58b7ce9b9.svn-base new file mode 100644 index 0000000..4b3f8c2 --- /dev/null +++ b/.svn/pristine/3a/3a3dbb0655040bc47ffbece717d9b5e58b7ce9b9.svn-base @@ -0,0 +1,17 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fav](https://uniapp.dcloud.io/component/uniui/uni-fav) +## 1.1.1(2021-08-24) +- 新增 支持国际化 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.6(2021-05-12) +- 新增 组件示例地址 +## 1.0.5(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.4(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.0.3(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.0.2(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/3a/3a514e699f9d976f2328a74921563486dc6748f2.svn-base b/.svn/pristine/3a/3a514e699f9d976f2328a74921563486dc6748f2.svn-base new file mode 100644 index 0000000..718d6ef --- /dev/null +++ b/.svn/pristine/3a/3a514e699f9d976f2328a74921563486dc6748f2.svn-base @@ -0,0 +1,31 @@ +function AMapWX(a){this.key=a.key;this.requestConfig={key:a.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};this.MeRequestConfig={key:a.key,serviceName:"https://restapi.amap.com/rest/me"}} +AMapWX.prototype.getWxLocation=function(a,b){wx.getLocation({type:"gcj02",success:function(c){c=c.longitude+","+c.latitude;wx.setStorage({key:"userLocation",data:c});b(c)},fail:function(c){wx.getStorage({key:"userLocation",success:function(d){d.data&&b(d.data)}});a.fail({errCode:"0",errMsg:c.errMsg||""})}})}; +AMapWX.prototype.getMEKeywordsSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.city&&(d.city=b.city);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&&(d.pageSize=b.pageSize);b.sig&&(d.sig= +b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/local",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})}; +AMapWX.prototype.getMEIdSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.id&&(d.id=b.id);b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/id",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&& +0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})}; +AMapWX.prototype.getMEPolygonSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.polygon&&(d.polygon=b.polygon);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&&(d.pageSize=b.pageSize); +b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/polygon",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})}; +AMapWX.prototype.getMEaroundSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.center&&(d.center=b.center);b.radius&&(d.radius=b.radius);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&& +(d.pageSize=b.pageSize);b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/around",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})}; +AMapWX.prototype.getGeo=function(a){var b=this.requestConfig,c=a.options;b={key:this.key,extensions:"all",s:b.s,platform:b.platform,appname:this.key,sdkversion:b.sdkversion,logversion:b.logversion};c.address&&(b.address=c.address);c.city&&(b.city=c.city);c.batch&&(b.batch=c.batch);c.sig&&(b.sig=c.sig);wx.request({url:"https://restapi.amap.com/v3/geocode/geo",data:b,method:"GET",header:{"content-type":"application/json"},success:function(d){(d=d.data)&&d.status&&"1"===d.status?a.success(d):a.fail({errCode:"0", +errMsg:d})},fail:function(d){a.fail({errCode:"0",errMsg:d.errMsg||""})}})}; +AMapWX.prototype.getRegeo=function(a){function b(d){var e=c.requestConfig;wx.request({url:"https://restapi.amap.com/v3/geocode/regeo",data:{key:c.key,location:d,extensions:"all",s:e.s,platform:e.platform,appname:c.key,sdkversion:e.sdkversion,logversion:e.logversion},method:"GET",header:{"content-type":"application/json"},success:function(g){if(g.data.status&&"1"==g.data.status){g=g.data.regeocode;var h=g.addressComponent,f=[],k=g.roads[0].name+"\u9644\u8fd1",m=d.split(",")[0],n=d.split(",")[1];if(g.pois&& +g.pois[0]){k=g.pois[0].name+"\u9644\u8fd1";var l=g.pois[0].location;l&&(m=parseFloat(l.split(",")[0]),n=parseFloat(l.split(",")[1]))}h.provice&&f.push(h.provice);h.city&&f.push(h.city);h.district&&f.push(h.district);h.streetNumber&&h.streetNumber.street&&h.streetNumber.number?(f.push(h.streetNumber.street),f.push(h.streetNumber.number)):f.push(g.roads[0].name);f=f.join("");a.success([{iconPath:a.iconPath,width:a.iconWidth,height:a.iconHeight,name:f,desc:k,longitude:m,latitude:n,id:0,regeocodeData:g}])}else a.fail({errCode:g.data.infocode, +errMsg:g.data.info})},fail:function(g){a.fail({errCode:"0",errMsg:g.errMsg||""})}})}var c=this;a.location?b(a.location):c.getWxLocation(a,function(d){b(d)})}; +AMapWX.prototype.getWeather=function(a){function b(g){var h="base";a.type&&"forecast"==a.type&&(h="all");wx.request({url:"https://restapi.amap.com/v3/weather/weatherInfo",data:{key:d.key,city:g,extensions:h,s:e.s,platform:e.platform,appname:d.key,sdkversion:e.sdkversion,logversion:e.logversion},method:"GET",header:{"content-type":"application/json"},success:function(f){if(f.data.status&&"1"==f.data.status)if(f.data.lives){if((f=f.data.lives)&&0 + + + {{displayValue}} + + + + + + diff --git a/.svn/pristine/3b/3b650d90e0593ceec6ac0aca276328791d71a29c.svn-base b/.svn/pristine/3b/3b650d90e0593ceec6ac0aca276328791d71a29c.svn-base new file mode 100644 index 0000000..63d5a04 --- /dev/null +++ b/.svn/pristine/3b/3b650d90e0593ceec6ac0aca276328791d71a29c.svn-base @@ -0,0 +1,23 @@ + + +## Forms 表单 + +> **组件名:uni-forms** +> 代码块: `uForms`、`uni-forms-item` +> 关联组件:`uni-forms-item`、`uni-easyinput`、`uni-data-checkbox`、`uni-group`。 + + +uni-app的内置组件已经有了 `
`组件,用于提交表单内容。 + +然而几乎每个表单都需要做表单验证,为了方便做表单验证,减少重复开发,`uni ui` 又基于 ``组件封装了 ``组件,内置了表单验证功能。 + +`` 提供了 `rules`属性来描述校验规则、``子组件来包裹具体的表单项,以及给原生或三方组件提供了 `binddata()` 来设置表单值。 + +每个要校验的表单项,不管input还是checkbox,都必须放在``组件中,且一个``组件只能放置一个表单项。 + +``组件内部预留了显示error message的区域,默认是在表单项的底部。 + +另外,``组件下面的各个表单项,可以通过``包裹为不同的分组。同一``下的不同表单项目将聚拢在一起,同其他group保持垂直间距。``仅影响视觉效果。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-forms) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/3c/3c44a7c006a2ccad64bc700caebc9360c76c3033.svn-base b/.svn/pristine/3c/3c44a7c006a2ccad64bc700caebc9360c76c3033.svn-base new file mode 100644 index 0000000..d301166 --- /dev/null +++ b/.svn/pristine/3c/3c44a7c006a2ccad64bc700caebc9360c76c3033.svn-base @@ -0,0 +1,13 @@ +## 1.4.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-grid](https://uniapp.dcloud.io/component/uniui/uni-grid) +## 1.3.2(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.3.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.3.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.2.4(2021-05-12) +- 新增 组件示例地址 +## 1.2.3(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/3d/3ddc8f70d24b890ab8fbcf87be46dac2a250bb2f.svn-base b/.svn/pristine/3d/3ddc8f70d24b890ab8fbcf87be46dac2a250bb2f.svn-base new file mode 100644 index 0000000..75ce541 --- /dev/null +++ b/.svn/pristine/3d/3ddc8f70d24b890ab8fbcf87be46dac2a250bb2f.svn-base @@ -0,0 +1,27 @@ + + + + + diff --git a/.svn/pristine/3e/3e34410c1446c447a3b4fecc56cac9bb0c1f613d.svn-base b/.svn/pristine/3e/3e34410c1446c447a3b4fecc56cac9bb0c1f613d.svn-base new file mode 100644 index 0000000..48aa6d1 Binary files /dev/null and b/.svn/pristine/3e/3e34410c1446c447a3b4fecc56cac9bb0c1f613d.svn-base differ diff --git a/.svn/pristine/3e/3eaaab0381c04aac8e9f35cd5957b3bb30fc2c03.svn-base b/.svn/pristine/3e/3eaaab0381c04aac8e9f35cd5957b3bb30fc2c03.svn-base new file mode 100644 index 0000000..0970892 --- /dev/null +++ b/.svn/pristine/3e/3eaaab0381c04aac8e9f35cd5957b3bb30fc2c03.svn-base @@ -0,0 +1,7 @@ + + + diff --git a/.svn/pristine/3e/3eae8c0adda21f290a5ece22760775d689acd384.svn-base b/.svn/pristine/3e/3eae8c0adda21f290a5ece22760775d689acd384.svn-base new file mode 100644 index 0000000..6599d8f --- /dev/null +++ b/.svn/pristine/3e/3eae8c0adda21f290a5ece22760775d689acd384.svn-base @@ -0,0 +1,171 @@ + + + + + diff --git a/.svn/pristine/3f/3f593d0486fb21ad3fdeb863d1872ed6f81e8f1a.svn-base b/.svn/pristine/3f/3f593d0486fb21ad3fdeb863d1872ed6f81e8f1a.svn-base new file mode 100644 index 0000000..2d6ea44 Binary files /dev/null and b/.svn/pristine/3f/3f593d0486fb21ad3fdeb863d1872ed6f81e8f1a.svn-base differ diff --git a/.svn/pristine/3f/3f5ed30d003d397e7530592b0654a2a0873372fb.svn-base b/.svn/pristine/3f/3f5ed30d003d397e7530592b0654a2a0873372fb.svn-base new file mode 100644 index 0000000..9601aba --- /dev/null +++ b/.svn/pristine/3f/3f5ed30d003d397e7530592b0654a2a0873372fb.svn-base @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + this.$once('hook:beforeDestroy', () => { + document.removeEventListener('keyup', listener) + }) + }, + render: () => {} +} +// #endif \ No newline at end of file diff --git a/.svn/pristine/3f/3fd16ab4d7a10581a8992efc414b66f271b34a61.svn-base b/.svn/pristine/3f/3fd16ab4d7a10581a8992efc414b66f271b34a61.svn-base new file mode 100644 index 0000000..9a4dd63 Binary files /dev/null and b/.svn/pristine/3f/3fd16ab4d7a10581a8992efc414b66f271b34a61.svn-base differ diff --git a/.svn/pristine/40/401dd2c8977328669a03be613837b4eeeeb59990.svn-base b/.svn/pristine/40/401dd2c8977328669a03be613837b4eeeeb59990.svn-base new file mode 100644 index 0000000..de66c45 --- /dev/null +++ b/.svn/pristine/40/401dd2c8977328669a03be613837b4eeeeb59990.svn-base @@ -0,0 +1,127 @@ + + + + + diff --git a/.svn/pristine/41/4111cf645543b4c5065c2fa6245447d3f6ef95fe.svn-base b/.svn/pristine/41/4111cf645543b4c5065c2fa6245447d3f6ef95fe.svn-base new file mode 100644 index 0000000..fcd8d72 Binary files /dev/null and b/.svn/pristine/41/4111cf645543b4c5065c2fa6245447d3f6ef95fe.svn-base differ diff --git a/.svn/pristine/41/413de8e0d5762f58bcbe4fb095fb229285bb2955.svn-base b/.svn/pristine/41/413de8e0d5762f58bcbe4fb095fb229285bb2955.svn-base new file mode 100644 index 0000000..b3344ff --- /dev/null +++ b/.svn/pristine/41/413de8e0d5762f58bcbe4fb095fb229285bb2955.svn-base @@ -0,0 +1,87 @@ +{ + "id": "uni-data-select", + "displayName": "uni-data-select 下拉框选择器", + "version": "0.1.1", + "description": "通过数据驱动的下拉框选择器", + "keywords": [ + "uni-ui", + "select", + "uni-data-select", + "下拉框", + "下拉选" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.1" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-load-more"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "u", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/41/414355295b8f6030e588cc54b16b1373c98d81e1.svn-base b/.svn/pristine/41/414355295b8f6030e588cc54b16b1373c98d81e1.svn-base new file mode 100644 index 0000000..1479581 --- /dev/null +++ b/.svn/pristine/41/414355295b8f6030e588cc54b16b1373c98d81e1.svn-base @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "prev", + "uni-pagination.nextText": "next" +} diff --git a/.svn/pristine/41/4145cd494f10861df7e48b3b0106855e71529957.svn-base b/.svn/pristine/41/4145cd494f10861df7e48b3b0106855e71529957.svn-base new file mode 100644 index 0000000..7f27a1e --- /dev/null +++ b/.svn/pristine/41/4145cd494f10861df7e48b3b0106855e71529957.svn-base @@ -0,0 +1,143 @@ + + + + diff --git a/.svn/pristine/41/41ed78ab7b263e68b303cc844d86475af8d5f205.svn-base b/.svn/pristine/41/41ed78ab7b263e68b303cc844d86475af8d5f205.svn-base new file mode 100644 index 0000000..0ea3bc4 Binary files /dev/null and b/.svn/pristine/41/41ed78ab7b263e68b303cc844d86475af8d5f205.svn-base differ diff --git a/.svn/pristine/42/42d63c5584bfe03a3aa2af4b3fe6788c31a987ce.svn-base b/.svn/pristine/42/42d63c5584bfe03a3aa2af4b3fe6788c31a987ce.svn-base new file mode 100644 index 0000000..55dcbe6 --- /dev/null +++ b/.svn/pristine/42/42d63c5584bfe03a3aa2af4b3fe6788c31a987ce.svn-base @@ -0,0 +1,409 @@ + + + + + diff --git a/.svn/pristine/44/44f974f98bfcb6ee757de25b73db343eaa7a3e78.svn-base b/.svn/pristine/44/44f974f98bfcb6ee757de25b73db343eaa7a3e78.svn-base new file mode 100644 index 0000000..12a11c3 --- /dev/null +++ b/.svn/pristine/44/44f974f98bfcb6ee757de25b73db343eaa7a3e78.svn-base @@ -0,0 +1,3 @@ +.uni-border { + border: 1px $uni-border-1 solid; +} \ No newline at end of file diff --git a/.svn/pristine/45/456ac02cbcae94e47522d1cb40bea3d4f65d3e4a.svn-base b/.svn/pristine/45/456ac02cbcae94e47522d1cb40bea3d4f65d3e4a.svn-base new file mode 100644 index 0000000..d970649 --- /dev/null +++ b/.svn/pristine/45/456ac02cbcae94e47522d1cb40bea3d4f65d3e4a.svn-base @@ -0,0 +1,16 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-goods-nav](https://uniapp.dcloud.io/component/uniui/uni-goods-nav) +## 1.1.1(2021-08-24) +- 新增 支持国际化 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.5(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/45/45d48f4fd06c69636fefbceb57c92e31bebcb9db.svn-base b/.svn/pristine/45/45d48f4fd06c69636fefbceb57c92e31bebcb9db.svn-base new file mode 100644 index 0000000..abc52dd --- /dev/null +++ b/.svn/pristine/45/45d48f4fd06c69636fefbceb57c92e31bebcb9db.svn-base @@ -0,0 +1,179 @@ + + + + diff --git a/.svn/pristine/46/463f98234ceaa996b8cb2d2bfac9f28e3ff0bed2.svn-base b/.svn/pristine/46/463f98234ceaa996b8cb2d2bfac9f28e3ff0bed2.svn-base new file mode 100644 index 0000000..e1473ca --- /dev/null +++ b/.svn/pristine/46/463f98234ceaa996b8cb2d2bfac9f28e3ff0bed2.svn-base @@ -0,0 +1,89 @@ +{ + "id": "uni-nav-bar", + "displayName": "uni-nav-bar 自定义导航栏", + "version": "1.3.4", + "description": "自定义导航栏组件,主要用于头部导航。", + "keywords": [ + "uni-ui", + "导航", + "导航栏", + "自定义导航栏" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/46/4697cb1c2f127146d06d7a5642ced8947c616e46.svn-base b/.svn/pristine/46/4697cb1c2f127146d06d7a5642ced8947c616e46.svn-base new file mode 100644 index 0000000..fbacca4 --- /dev/null +++ b/.svn/pristine/46/4697cb1c2f127146d06d7a5642ced8947c616e46.svn-base @@ -0,0 +1,37 @@ +## 1.3.4(2022-01-24) +- 更新 组件示例 +## 1.3.3(2022-01-24) +- 新增 left-width/right-width属性 ,可修改左右两侧的宽度 +## 1.3.2(2022-01-18) +- 修复 在vue下,标题不垂直居中的bug +## 1.3.1(2022-01-18) +- 修复 height 属性类型错误 +## 1.3.0(2022-01-18) +- 新增 height 属性,可修改组件高度 +- 新增 dark 属性可可开启暗黑模式 +- 优化 标题字数过多显示省略号 +- 优化 插槽,插入内容可完全覆盖 +## 1.2.1(2022-01-10) +- 修复 color 属性不生效的bug +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-nav-bar](https://uniapp.dcloud.io/component/uniui/uni-nav-bar) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.11(2021-05-12) +- 新增 组件示例地址 +## 1.0.10(2021-04-30) +- 修复 在nvue下fixed为true,宽度不能撑满的Bug +## 1.0.9(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.8(2021-04-14) +- uni-ui 修复 uni-nav-bar 当 fixed 属性为 true 时铺不满屏幕的 bug + +## 1.0.7(2021-02-25) +- 修复 easycom 下,找不到 uni-status-bar 的bug + +## 1.0.6(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/46/46bad4807ef059795726d08114ee2ce0f367b2fc.svn-base b/.svn/pristine/46/46bad4807ef059795726d08114ee2ce0f367b2fc.svn-base new file mode 100644 index 0000000..33f6196 Binary files /dev/null and b/.svn/pristine/46/46bad4807ef059795726d08114ee2ce0f367b2fc.svn-base differ diff --git a/.svn/pristine/48/488796286b0b164d287757dc369aabc99dae6e74.svn-base b/.svn/pristine/48/488796286b0b164d287757dc369aabc99dae6e74.svn-base new file mode 100644 index 0000000..e7fd805 Binary files /dev/null and b/.svn/pristine/48/488796286b0b164d287757dc369aabc99dae6e74.svn-base differ diff --git a/.svn/pristine/48/48eaebd240d25f58d9c686789101fc4743dbe5b9.svn-base b/.svn/pristine/48/48eaebd240d25f58d9c686789101fc4743dbe5b9.svn-base new file mode 100644 index 0000000..b6fc106 --- /dev/null +++ b/.svn/pristine/48/48eaebd240d25f58d9c686789101fc4743dbe5b9.svn-base @@ -0,0 +1,54 @@ + + + + + diff --git a/.svn/pristine/49/494b9767a5da1b5dad1145e22559f9dc9b806ad4.svn-base b/.svn/pristine/49/494b9767a5da1b5dad1145e22559f9dc9b806ad4.svn-base new file mode 100644 index 0000000..9c4af20 --- /dev/null +++ b/.svn/pristine/49/494b9767a5da1b5dad1145e22559f9dc9b806ad4.svn-base @@ -0,0 +1,224 @@ +'use strict'; + +const ERR_MSG_OK = 'chooseAndUploadFile:ok'; +const ERR_MSG_FAIL = 'chooseAndUploadFile:fail'; + +function chooseImage(opts) { + const { + count, + sizeType = ['original', 'compressed'], + sourceType = ['album', 'camera'], + extension + } = opts + return new Promise((resolve, reject) => { + uni.chooseImage({ + count, + sizeType, + sourceType, + extension, + success(res) { + resolve(normalizeChooseAndUploadFileRes(res, 'image')); + }, + fail(res) { + reject({ + errMsg: res.errMsg.replace('chooseImage:fail', ERR_MSG_FAIL), + }); + }, + }); + }); +} + +function chooseVideo(opts) { + const { + camera, + compressed, + maxDuration, + sourceType = ['album', 'camera'], + extension + } = opts; + return new Promise((resolve, reject) => { + uni.chooseVideo({ + camera, + compressed, + maxDuration, + sourceType, + extension, + success(res) { + const { + tempFilePath, + duration, + size, + height, + width + } = res; + resolve(normalizeChooseAndUploadFileRes({ + errMsg: 'chooseVideo:ok', + tempFilePaths: [tempFilePath], + tempFiles: [ + { + name: (res.tempFile && res.tempFile.name) || '', + path: tempFilePath, + size, + type: (res.tempFile && res.tempFile.type) || '', + width, + height, + duration, + fileType: 'video', + cloudPath: '', + }, ], + }, 'video')); + }, + fail(res) { + reject({ + errMsg: res.errMsg.replace('chooseVideo:fail', ERR_MSG_FAIL), + }); + }, + }); + }); +} + +function chooseAll(opts) { + const { + count, + extension + } = opts; + return new Promise((resolve, reject) => { + let chooseFile = uni.chooseFile; + if (typeof wx !== 'undefined' && + typeof wx.chooseMessageFile === 'function') { + chooseFile = wx.chooseMessageFile; + } + if (typeof chooseFile !== 'function') { + return reject({ + errMsg: ERR_MSG_FAIL + ' 请指定 type 类型,该平台仅支持选择 image 或 video。', + }); + } + chooseFile({ + type: 'all', + count, + extension, + success(res) { + resolve(normalizeChooseAndUploadFileRes(res)); + }, + fail(res) { + reject({ + errMsg: res.errMsg.replace('chooseFile:fail', ERR_MSG_FAIL), + }); + }, + }); + }); +} + +function normalizeChooseAndUploadFileRes(res, fileType) { + res.tempFiles.forEach((item, index) => { + if (!item.name) { + item.name = item.path.substring(item.path.lastIndexOf('/') + 1); + } + if (fileType) { + item.fileType = fileType; + } + item.cloudPath = + Date.now() + '_' + index + item.name.substring(item.name.lastIndexOf('.')); + }); + if (!res.tempFilePaths) { + res.tempFilePaths = res.tempFiles.map((file) => file.path); + } + return res; +} + +function uploadCloudFiles(files, max = 5, onUploadProgress) { + files = JSON.parse(JSON.stringify(files)) + const len = files.length + let count = 0 + let self = this + return new Promise(resolve => { + while (count < max) { + next() + } + + function next() { + let cur = count++ + if (cur >= len) { + !files.find(item => !item.url && !item.errMsg) && resolve(files) + return + } + const fileItem = files[cur] + const index = self.files.findIndex(v => v.uuid === fileItem.uuid) + fileItem.url = '' + delete fileItem.errMsg + + uniCloud + .uploadFile({ + filePath: fileItem.path, + cloudPath: fileItem.cloudPath, + fileType: fileItem.fileType, + onUploadProgress: res => { + res.index = index + onUploadProgress && onUploadProgress(res) + } + }) + .then(res => { + fileItem.url = res.fileID + fileItem.index = index + if (cur < len) { + next() + } + }) + .catch(res => { + fileItem.errMsg = res.errMsg || res.message + fileItem.index = index + if (cur < len) { + next() + } + }) + } + }) +} + + + + + +function uploadFiles(choosePromise, { + onChooseFile, + onUploadProgress +}) { + return choosePromise + .then((res) => { + if (onChooseFile) { + const customChooseRes = onChooseFile(res); + if (typeof customChooseRes !== 'undefined') { + return Promise.resolve(customChooseRes).then((chooseRes) => typeof chooseRes === 'undefined' ? + res : chooseRes); + } + } + return res; + }) + .then((res) => { + if (res === false) { + return { + errMsg: ERR_MSG_OK, + tempFilePaths: [], + tempFiles: [], + }; + } + return res + }) +} + +function chooseAndUploadFile(opts = { + type: 'all' +}) { + if (opts.type === 'image') { + return uploadFiles(chooseImage(opts), opts); + } + else if (opts.type === 'video') { + return uploadFiles(chooseVideo(opts), opts); + } + return uploadFiles(chooseAll(opts), opts); +} + +export { + chooseAndUploadFile, + uploadCloudFiles +}; diff --git a/.svn/pristine/49/49c1923da61cb409f8c7b768aab85b9e2ebd33e9.svn-base b/.svn/pristine/49/49c1923da61cb409f8c7b768aab85b9e2ebd33e9.svn-base new file mode 100644 index 0000000..a37fb9f --- /dev/null +++ b/.svn/pristine/49/49c1923da61cb409f8c7b768aab85b9e2ebd33e9.svn-base @@ -0,0 +1,26 @@ + +export default { + data() { + return { + + } + }, + created(){ + this.popup = this.getParent() + }, + methods:{ + /** + * 获取父元素实例 + */ + getParent(name = 'uniPopup') { + let parent = this.$parent; + let parentName = parent.$options.name; + while (parentName !== name) { + parent = parent.$parent; + if (!parent) return false + parentName = parent.$options.name; + } + return parent; + }, + } +} diff --git a/.svn/pristine/4a/4a1d2457fabbd25a966c7de166dcd8d068b3cc81.svn-base b/.svn/pristine/4a/4a1d2457fabbd25a966c7de166dcd8d068b3cc81.svn-base new file mode 100644 index 0000000..9e799a4 --- /dev/null +++ b/.svn/pristine/4a/4a1d2457fabbd25a966c7de166dcd8d068b3cc81.svn-base @@ -0,0 +1,927 @@ + + + + + diff --git a/.svn/pristine/4a/4a81f5deb5778f453849ddcdc36792a0009f896b.svn-base b/.svn/pristine/4a/4a81f5deb5778f453849ddcdc36792a0009f896b.svn-base new file mode 100644 index 0000000..fbf12cf Binary files /dev/null and b/.svn/pristine/4a/4a81f5deb5778f453849ddcdc36792a0009f896b.svn-base differ diff --git a/.svn/pristine/4a/4ac2ddd8bd22efb266d3429d5b5a27f47eb58792.svn-base b/.svn/pristine/4a/4ac2ddd8bd22efb266d3429d5b5a27f47eb58792.svn-base new file mode 100644 index 0000000..8f03f1d --- /dev/null +++ b/.svn/pristine/4a/4ac2ddd8bd22efb266d3429d5b5a27f47eb58792.svn-base @@ -0,0 +1,19 @@ +## 1.3.3(2022-01-20) +- 新增 showText属性 ,是否显示文本 +## 1.3.2(2022-01-19) +- 修复 nvue 平台下不显示文本的bug +## 1.3.1(2022-01-19) +- 修复 微信小程序平台样式选择器报警告的问题 +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-load-more](https://uniapp.dcloud.io/component/uniui/uni-load-more) +## 1.2.1(2021-08-24) +- 新增 支持国际化 +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.8(2021-05-12) +- 新增 组件示例地址 +## 1.1.7(2021-03-30) +- 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug +## 1.1.6(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/4a/4ad93aad9b6772898c5b5901ab6b565bdc93ec96.svn-base b/.svn/pristine/4a/4ad93aad9b6772898c5b5901ab6b565bdc93ec96.svn-base new file mode 100644 index 0000000..5f63365 --- /dev/null +++ b/.svn/pristine/4a/4ad93aad9b6772898c5b5901ab6b565bdc93ec96.svn-base @@ -0,0 +1,271 @@ + + + diff --git a/.svn/pristine/4b/4b68d12b9e5de794acc6fffcb218af6e9a8f1ad5.svn-base b/.svn/pristine/4b/4b68d12b9e5de794acc6fffcb218af6e9a8f1ad5.svn-base new file mode 100644 index 0000000..b006237 --- /dev/null +++ b/.svn/pristine/4b/4b68d12b9e5de794acc6fffcb218af6e9a8f1ad5.svn-base @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Réinitialiser", + "filter-dropdown.search": "Chercher", + "filter-dropdown.submit": "Soumettre", + "filter-dropdown.filter": "Filtre", + "filter-dropdown.gt": "Supérieur ou égal à", + "filter-dropdown.lt": "Inférieur ou égal à", + "filter-dropdown.date": "Date" +} diff --git a/.svn/pristine/4b/4bc1b295f5f648bdfbdbe138970aa72a21bd5ed3.svn-base b/.svn/pristine/4b/4bc1b295f5f648bdfbdbe138970aa72a21bd5ed3.svn-base new file mode 100644 index 0000000..6aa6e4e --- /dev/null +++ b/.svn/pristine/4b/4bc1b295f5f648bdfbdbe138970aa72a21bd5ed3.svn-base @@ -0,0 +1,20 @@ +## 1.2.1(2022-03-30) +- 删除无用文件 +## 1.2.0(2021-11-23) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-list](https://uniapp.dcloud.io/component/uniui/uni-list) +## 1.1.3(2021-08-30) +- 修复 在vue3中to属性在发行应用的时候报错的bug +## 1.1.2(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.1.1(2021-07-21) +- 修复 与其他组件嵌套使用时,点击失效的Bug +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.17(2021-05-12) +- 新增 组件示例地址 +## 1.0.16(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.0.15(2021-02-05) +- 调整为uni_modules目录规范 +- 修复 uni-list-chat 角标显示不正常的问题 diff --git a/.svn/pristine/4c/4c26851e813f929dfbe53700085a66fd3af027e5.svn-base b/.svn/pristine/4c/4c26851e813f929dfbe53700085a66fd3af027e5.svn-base new file mode 100644 index 0000000..176ab28 Binary files /dev/null and b/.svn/pristine/4c/4c26851e813f929dfbe53700085a66fd3af027e5.svn-base differ diff --git a/.svn/pristine/4d/4d2d768309cb90a62ca92c530045160275519f32.svn-base b/.svn/pristine/4d/4d2d768309cb90a62ca92c530045160275519f32.svn-base new file mode 100644 index 0000000..1a8cc5b Binary files /dev/null and b/.svn/pristine/4d/4d2d768309cb90a62ca92c530045160275519f32.svn-base differ diff --git a/.svn/pristine/4d/4d4809718c955f5a1cf03617fb37bddc86f718c5.svn-base b/.svn/pristine/4d/4d4809718c955f5a1cf03617fb37bddc86f718c5.svn-base new file mode 100644 index 0000000..fb2ede2 --- /dev/null +++ b/.svn/pristine/4d/4d4809718c955f5a1cf03617fb37bddc86f718c5.svn-base @@ -0,0 +1,13 @@ + + +## NoticeBar 通告栏 +> **组件名:uni-notice-bar** +> 代码块: `uNoticeBar` + + +通告栏组件 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-notice-bar) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/.svn/pristine/4d/4d9cc39c921706b059c8e66802790c18c03b57d0.svn-base b/.svn/pristine/4d/4d9cc39c921706b059c8e66802790c18c03b57d0.svn-base new file mode 100644 index 0000000..dd4ad0b --- /dev/null +++ b/.svn/pristine/4d/4d9cc39c921706b059c8e66802790c18c03b57d0.svn-base @@ -0,0 +1,16 @@ +{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version": "0.0", + "configurations": [{ + "default" : + { + "launchtype" : "local" + }, + "mp-weixin" : + { + "launchtype" : "local" + }, + "type" : "uniCloud" + } + ] +} diff --git a/.svn/pristine/4d/4dad51ed62b3dfae7d3982d12b5987cba5a5c2a6.svn-base b/.svn/pristine/4d/4dad51ed62b3dfae7d3982d12b5987cba5a5c2a6.svn-base new file mode 100644 index 0000000..c021600 --- /dev/null +++ b/.svn/pristine/4d/4dad51ed62b3dfae7d3982d12b5987cba5a5c2a6.svn-base @@ -0,0 +1,6 @@ +{ + "uni-countdown.day": "天", + "uni-countdown.h": "时", + "uni-countdown.m": "分", + "uni-countdown.s": "秒" +} diff --git a/.svn/pristine/4e/4e61eda60483fc01548f76ca5741ee838486cc96.svn-base b/.svn/pristine/4e/4e61eda60483fc01548f76ca5741ee838486cc96.svn-base new file mode 100644 index 0000000..835f33b Binary files /dev/null and b/.svn/pristine/4e/4e61eda60483fc01548f76ca5741ee838486cc96.svn-base differ diff --git a/.svn/pristine/4e/4efa6d6bd5e716832852fa8255234632962d7d76.svn-base b/.svn/pristine/4e/4efa6d6bd5e716832852fa8255234632962d7d76.svn-base new file mode 100644 index 0000000..7e2708f --- /dev/null +++ b/.svn/pristine/4e/4efa6d6bd5e716832852fa8255234632962d7d76.svn-base @@ -0,0 +1,58 @@ +/** + * 这里是 uni-list 组件内置的常用样式变量 + * 如果需要覆盖样式,这里提供了基本的组件样式变量,您可以尝试修改这里的变量,去完成样式替换,而不用去修改源码 + * + */ + +// 背景色 +$background-color : #fff; +// 分割线颜色 +$divide-line-color : #e5e5e5; + +// 默认头像大小,如需要修改此值,注意同步修改 js 中的值 const avatarWidth = xx ,目前只支持方形头像 +// nvue 页面不支持修改头像大小 +$avatar-width : 45px ; + +// 头像边框 +$avatar-border-radius: 5px; +$avatar-border-color: #eee; +$avatar-border-width: 1px; + +// 标题文字样式 +$title-size : 16px; +$title-color : #3b4144; +$title-weight : normal; + +// 描述文字样式 +$note-size : 12px; +$note-color : #999; +$note-weight : normal; + +// 右侧额外内容默认样式 +$right-text-size : 12px; +$right-text-color : #999; +$right-text-weight : normal; + +// 角标样式 +// nvue 页面不支持修改圆点位置以及大小 +// 角标在左侧时,角标的位置,默认为 0 ,负数左/下移动,正数右/上移动 +$badge-left: 0px; +$badge-top: 0px; + +// 显示圆点时,圆点大小 +$dot-width: 10px; +$dot-height: 10px; + +// 显示角标时,角标大小和字体大小 +$badge-size : 18px; +$badge-font : 12px; +// 显示角标时,角标前景色 +$badge-color : #fff; +// 显示角标时,角标背景色 +$badge-background-color : #ff5a5f; +// 显示角标时,角标左右间距 +$badge-space : 6px; + +// 状态样式 +// 选中颜色 +$hover : #f5f5f5; diff --git a/.svn/pristine/50/50984b5290fb4d5cefd32339fca41b982e6f288f.svn-base b/.svn/pristine/50/50984b5290fb4d5cefd32339fca41b982e6f288f.svn-base new file mode 100644 index 0000000..ad82336 --- /dev/null +++ b/.svn/pristine/50/50984b5290fb4d5cefd32339fca41b982e6f288f.svn-base @@ -0,0 +1,85 @@ +{ + "id": "uni-number-box", + "displayName": "uni-number-box 数字输入框", + "version": "1.2.1", + "description": "NumberBox 带加减按钮的数字输入框组件,用户可以控制每次点击增加的数值,支持小数。", + "keywords": [ + "uni-ui", + "uniui", + "数字输入框" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/50/50d69b06bca5b5770fd8f601f4d9b363653d88f9.svn-base b/.svn/pristine/50/50d69b06bca5b5770fd8f601f4d9b363653d88f9.svn-base new file mode 100644 index 0000000..99e8023 --- /dev/null +++ b/.svn/pristine/50/50d69b06bca5b5770fd8f601f4d9b363653d88f9.svn-base @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "précédente", + "uni-pagination.nextText": "suivante" +} diff --git a/.svn/pristine/51/513625a2b611c7436a2b2a5b74ca6fa23a4b9881.svn-base b/.svn/pristine/51/513625a2b611c7436a2b2a5b74ca6fa23a4b9881.svn-base new file mode 100644 index 0000000..d5f3728 --- /dev/null +++ b/.svn/pristine/51/513625a2b611c7436a2b2a5b74ca6fa23a4b9881.svn-base @@ -0,0 +1,317 @@ + + + + + diff --git a/.svn/pristine/51/51db56ae82b369cf18c0e6c012707419bc828669.svn-base b/.svn/pristine/51/51db56ae82b369cf18c0e6c012707419bc828669.svn-base new file mode 100644 index 0000000..a1598f3 --- /dev/null +++ b/.svn/pristine/51/51db56ae82b369cf18c0e6c012707419bc828669.svn-base @@ -0,0 +1,157 @@ + + + + + diff --git a/.svn/pristine/53/533c99e8d1b123481b06628be68afcdd956b1d89.svn-base b/.svn/pristine/53/533c99e8d1b123481b06628be68afcdd956b1d89.svn-base new file mode 100644 index 0000000..c29ef7f --- /dev/null +++ b/.svn/pristine/53/533c99e8d1b123481b06628be68afcdd956b1d89.svn-base @@ -0,0 +1,486 @@ +var pattern = { + email: /^\S+?@\S+?\.\S+?$/, + idcard: /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, + url: new RegExp( + "^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$", + 'i') +}; + +const FORMAT_MAPPING = { + "int": 'integer', + "bool": 'boolean', + "double": 'number', + "long": 'number', + "password": 'string' + // "fileurls": 'array' +} + +function formatMessage(args, resources = '') { + var defaultMessage = ['label'] + defaultMessage.forEach((item) => { + if (args[item] === undefined) { + args[item] = '' + } + }) + + let str = resources + for (let key in args) { + let reg = new RegExp('{' + key + '}') + str = str.replace(reg, args[key]) + } + return str +} + +function isEmptyValue(value, type) { + if (value === undefined || value === null) { + return true; + } + + if (typeof value === 'string' && !value) { + return true; + } + + if (Array.isArray(value) && !value.length) { + return true; + } + + if (type === 'object' && !Object.keys(value).length) { + return true; + } + + return false; +} + +const types = { + integer(value) { + return types.number(value) && parseInt(value, 10) === value; + }, + string(value) { + return typeof value === 'string'; + }, + number(value) { + if (isNaN(value)) { + return false; + } + return typeof value === 'number'; + }, + "boolean": function(value) { + return typeof value === 'boolean'; + }, + "float": function(value) { + return types.number(value) && !types.integer(value); + }, + array(value) { + return Array.isArray(value); + }, + object(value) { + return typeof value === 'object' && !types.array(value); + }, + date(value) { + return value instanceof Date; + }, + timestamp(value) { + if (!this.integer(value) || Math.abs(value).toString().length > 16) { + return false + } + return true; + }, + file(value) { + return typeof value.url === 'string'; + }, + email(value) { + return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255; + }, + url(value) { + return typeof value === 'string' && !!value.match(pattern.url); + }, + pattern(reg, value) { + try { + return new RegExp(reg).test(value); + } catch (e) { + return false; + } + }, + method(value) { + return typeof value === 'function'; + }, + idcard(value) { + return typeof value === 'string' && !!value.match(pattern.idcard); + }, + 'url-https'(value) { + return this.url(value) && value.startsWith('https://'); + }, + 'url-scheme'(value) { + return value.startsWith('://'); + }, + 'url-web'(value) { + return false; + } +} + +class RuleValidator { + + constructor(message) { + this._message = message + } + + async validateRule(fieldKey, fieldValue, value, data, allData) { + var result = null + + let rules = fieldValue.rules + + let hasRequired = rules.findIndex((item) => { + return item.required + }) + if (hasRequired < 0) { + if (value === null || value === undefined) { + return result + } + if (typeof value === 'string' && !value.length) { + return result + } + } + + var message = this._message + + if (rules === undefined) { + return message['default'] + } + + for (var i = 0; i < rules.length; i++) { + let rule = rules[i] + let vt = this._getValidateType(rule) + + Object.assign(rule, { + label: fieldValue.label || `["${fieldKey}"]` + }) + + if (RuleValidatorHelper[vt]) { + result = RuleValidatorHelper[vt](rule, value, message) + if (result != null) { + break + } + } + + if (rule.validateExpr) { + let now = Date.now() + let resultExpr = rule.validateExpr(value, allData, now) + if (resultExpr === false) { + result = this._getMessage(rule, rule.errorMessage || this._message['default']) + break + } + } + + if (rule.validateFunction) { + result = await this.validateFunction(rule, value, data, allData, vt) + if (result !== null) { + break + } + } + } + + if (result !== null) { + result = message.TAG + result + } + + return result + } + + async validateFunction(rule, value, data, allData, vt) { + let result = null + try { + let callbackMessage = null + const res = await rule.validateFunction(rule, value, allData || data, (message) => { + callbackMessage = message + }) + if (callbackMessage || (typeof res === 'string' && res) || res === false) { + result = this._getMessage(rule, callbackMessage || res, vt) + } + } catch (e) { + result = this._getMessage(rule, e.message, vt) + } + return result + } + + _getMessage(rule, message, vt) { + return formatMessage(rule, message || rule.errorMessage || this._message[vt] || message['default']) + } + + _getValidateType(rule) { + var result = '' + if (rule.required) { + result = 'required' + } else if (rule.format) { + result = 'format' + } else if (rule.arrayType) { + result = 'arrayTypeFormat' + } else if (rule.range) { + result = 'range' + } else if (rule.maximum !== undefined || rule.minimum !== undefined) { + result = 'rangeNumber' + } else if (rule.maxLength !== undefined || rule.minLength !== undefined) { + result = 'rangeLength' + } else if (rule.pattern) { + result = 'pattern' + } else if (rule.validateFunction) { + result = 'validateFunction' + } + return result + } +} + +const RuleValidatorHelper = { + required(rule, value, message) { + if (rule.required && isEmptyValue(value, rule.format || typeof value)) { + return formatMessage(rule, rule.errorMessage || message.required); + } + + return null + }, + + range(rule, value, message) { + const { + range, + errorMessage + } = rule; + + let list = new Array(range.length); + for (let i = 0; i < range.length; i++) { + const item = range[i]; + if (types.object(item) && item.value !== undefined) { + list[i] = item.value; + } else { + list[i] = item; + } + } + + let result = false + if (Array.isArray(value)) { + result = (new Set(value.concat(list)).size === list.length); + } else { + if (list.indexOf(value) > -1) { + result = true; + } + } + + if (!result) { + return formatMessage(rule, errorMessage || message['enum']); + } + + return null + }, + + rangeNumber(rule, value, message) { + if (!types.number(value)) { + return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); + } + + let { + minimum, + maximum, + exclusiveMinimum, + exclusiveMaximum + } = rule; + let min = exclusiveMinimum ? value <= minimum : value < minimum; + let max = exclusiveMaximum ? value >= maximum : value > maximum; + + if (minimum !== undefined && min) { + return formatMessage(rule, rule.errorMessage || message['number'][exclusiveMinimum ? + 'exclusiveMinimum' : 'minimum' + ]) + } else if (maximum !== undefined && max) { + return formatMessage(rule, rule.errorMessage || message['number'][exclusiveMaximum ? + 'exclusiveMaximum' : 'maximum' + ]) + } else if (minimum !== undefined && maximum !== undefined && (min || max)) { + return formatMessage(rule, rule.errorMessage || message['number'].range) + } + + return null + }, + + rangeLength(rule, value, message) { + if (!types.string(value) && !types.array(value)) { + return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); + } + + let min = rule.minLength; + let max = rule.maxLength; + let val = value.length; + + if (min !== undefined && val < min) { + return formatMessage(rule, rule.errorMessage || message['length'].minLength) + } else if (max !== undefined && val > max) { + return formatMessage(rule, rule.errorMessage || message['length'].maxLength) + } else if (min !== undefined && max !== undefined && (val < min || val > max)) { + return formatMessage(rule, rule.errorMessage || message['length'].range) + } + + return null + }, + + pattern(rule, value, message) { + if (!types['pattern'](rule.pattern, value)) { + return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); + } + + return null + }, + + format(rule, value, message) { + var customTypes = Object.keys(types); + var format = FORMAT_MAPPING[rule.format] ? FORMAT_MAPPING[rule.format] : (rule.format || rule.arrayType); + + if (customTypes.indexOf(format) > -1) { + if (!types[format](value)) { + return formatMessage(rule, rule.errorMessage || message.typeError); + } + } + + return null + }, + + arrayTypeFormat(rule, value, message) { + if (!Array.isArray(value)) { + return formatMessage(rule, rule.errorMessage || message.typeError); + } + + for (let i = 0; i < value.length; i++) { + const element = value[i]; + let formatResult = this.format(rule, element, message) + if (formatResult !== null) { + return formatResult + } + } + + return null + } +} + +class SchemaValidator extends RuleValidator { + + constructor(schema, options) { + super(SchemaValidator.message); + + this._schema = schema + this._options = options || null + } + + updateSchema(schema) { + this._schema = schema + } + + async validate(data, allData) { + let result = this._checkFieldInSchema(data) + if (!result) { + result = await this.invokeValidate(data, false, allData) + } + return result.length ? result[0] : null + } + + async validateAll(data, allData) { + let result = this._checkFieldInSchema(data) + if (!result) { + result = await this.invokeValidate(data, true, allData) + } + return result + } + + async validateUpdate(data, allData) { + let result = this._checkFieldInSchema(data) + if (!result) { + result = await this.invokeValidateUpdate(data, false, allData) + } + return result.length ? result[0] : null + } + + async invokeValidate(data, all, allData) { + let result = [] + let schema = this._schema + for (let key in schema) { + let value = schema[key] + let errorMessage = await this.validateRule(key, value, data[key], data, allData) + if (errorMessage != null) { + result.push({ + key, + errorMessage + }) + if (!all) break + } + } + return result + } + + async invokeValidateUpdate(data, all, allData) { + let result = [] + for (let key in data) { + let errorMessage = await this.validateRule(key, this._schema[key], data[key], data, allData) + if (errorMessage != null) { + result.push({ + key, + errorMessage + }) + if (!all) break + } + } + return result + } + + _checkFieldInSchema(data) { + var keys = Object.keys(data) + var keys2 = Object.keys(this._schema) + if (new Set(keys.concat(keys2)).size === keys2.length) { + return '' + } + + var noExistFields = keys.filter((key) => { + return keys2.indexOf(key) < 0; + }) + var errorMessage = formatMessage({ + field: JSON.stringify(noExistFields) + }, SchemaValidator.message.TAG + SchemaValidator.message['defaultInvalid']) + return [{ + key: 'invalid', + errorMessage + }] + } +} + +function Message() { + return { + TAG: "", + default: '验证错误', + defaultInvalid: '提交的字段{field}在数据库中并不存在', + validateFunction: '验证无效', + required: '{label}必填', + 'enum': '{label}超出范围', + timestamp: '{label}格式无效', + whitespace: '{label}不能为空', + typeError: '{label}类型无效', + date: { + format: '{label}日期{value}格式无效', + parse: '{label}日期无法解析,{value}无效', + invalid: '{label}日期{value}无效' + }, + length: { + minLength: '{label}长度不能少于{minLength}', + maxLength: '{label}长度不能超过{maxLength}', + range: '{label}必须介于{minLength}和{maxLength}之间' + }, + number: { + minimum: '{label}不能小于{minimum}', + maximum: '{label}不能大于{maximum}', + exclusiveMinimum: '{label}不能小于等于{minimum}', + exclusiveMaximum: '{label}不能大于等于{maximum}', + range: '{label}必须介于{minimum}and{maximum}之间' + }, + pattern: { + mismatch: '{label}格式不匹配' + } + }; +} + + +SchemaValidator.message = new Message(); + +export default SchemaValidator diff --git a/.svn/pristine/53/539bf9d5ba0bbbe2dac4e1c17359f21e9d1b64e8.svn-base b/.svn/pristine/53/539bf9d5ba0bbbe2dac4e1c17359f21e9d1b64e8.svn-base new file mode 100644 index 0000000..9b0f6a6 Binary files /dev/null and b/.svn/pristine/53/539bf9d5ba0bbbe2dac4e1c17359f21e9d1b64e8.svn-base differ diff --git a/.svn/pristine/55/552dca78369638eb1c8081ad3ffc60d871fbd04b.svn-base b/.svn/pristine/55/552dca78369638eb1c8081ad3ffc60d871fbd04b.svn-base new file mode 100644 index 0000000..7d397e2 --- /dev/null +++ b/.svn/pristine/55/552dca78369638eb1c8081ad3ffc60d871fbd04b.svn-base @@ -0,0 +1,11 @@ + + +## SwiperDot 轮播图指示点 +> **组件名:uni-swiper-dot** +> 代码块: `uSwiperDot` + + +自定义轮播图指示点 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-swiper-dot) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/55/559e29c7de51ba4ed1edaae0ab5ad02aa5db90e6.svn-base b/.svn/pristine/55/559e29c7de51ba4ed1edaae0ab5ad02aa5db90e6.svn-base new file mode 100644 index 0000000..b44894a Binary files /dev/null and b/.svn/pristine/55/559e29c7de51ba4ed1edaae0ab5ad02aa5db90e6.svn-base differ diff --git a/.svn/pristine/55/55d24fd8c1c0cfd63cb338533b1694fc5127df4f.svn-base b/.svn/pristine/55/55d24fd8c1c0cfd63cb338533b1694fc5127df4f.svn-base new file mode 100644 index 0000000..fa8f0f3 --- /dev/null +++ b/.svn/pristine/55/55d24fd8c1c0cfd63cb338533b1694fc5127df4f.svn-base @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/.svn/pristine/55/55e18c7e47fdd3c158986c0600d77e287b8f45c9.svn-base b/.svn/pristine/55/55e18c7e47fdd3c158986c0600d77e287b8f45c9.svn-base new file mode 100644 index 0000000..6f45b0e --- /dev/null +++ b/.svn/pristine/55/55e18c7e47fdd3c158986c0600d77e287b8f45c9.svn-base @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "Pull up to show more", + "uni-load-more.contentrefresh": "loading...", + "uni-load-more.contentnomore": "No more data" +} diff --git a/.svn/pristine/57/57c305b8302a5e20666bd51aee44c013896ddab0.svn-base b/.svn/pristine/57/57c305b8302a5e20666bd51aee44c013896ddab0.svn-base new file mode 100644 index 0000000..5549cc9 --- /dev/null +++ b/.svn/pristine/57/57c305b8302a5e20666bd51aee44c013896ddab0.svn-base @@ -0,0 +1,56 @@ +/** + * @desc 函数防抖 + * @param func 目标函数 + * @param wait 延迟执行毫秒数 + * @param immediate true - 立即执行, false - 延迟执行 + */ +export const debounce = function(func, wait = 1000, immediate = true) { + let timer; + console.log(1); + return function() { + console.log(123); + let context = this, + args = arguments; + if (timer) clearTimeout(timer); + if (immediate) { + let callNow = !timer; + timer = setTimeout(() => { + timer = null; + }, wait); + if (callNow) func.apply(context, args); + } else { + timer = setTimeout(() => { + func.apply(context, args); + }, wait) + } + } +} +/** + * @desc 函数节流 + * @param func 函数 + * @param wait 延迟执行毫秒数 + * @param type 1 使用表时间戳,在时间段开始的时候触发 2 使用表定时器,在时间段结束的时候触发 + */ +export const throttle = (func, wait = 1000, type = 1) => { + let previous = 0; + let timeout; + return function() { + let context = this; + let args = arguments; + if (type === 1) { + let now = Date.now(); + + if (now - previous > wait) { + func.apply(context, args); + previous = now; + } + } else if (type === 2) { + if (!timeout) { + timeout = setTimeout(() => { + timeout = null; + func.apply(context, args) + }, wait) + } + } + } +} diff --git a/.svn/pristine/59/5999b5d291a91e63877f3cd662efebde03203019.svn-base b/.svn/pristine/59/5999b5d291a91e63877f3cd662efebde03203019.svn-base new file mode 100644 index 0000000..5946eae Binary files /dev/null and b/.svn/pristine/59/5999b5d291a91e63877f3cd662efebde03203019.svn-base differ diff --git a/.svn/pristine/59/59b1b9e129e501452d39c5cde3743327a285e98b.svn-base b/.svn/pristine/59/59b1b9e129e501452d39c5cde3743327a285e98b.svn-base new file mode 100644 index 0000000..772e76f --- /dev/null +++ b/.svn/pristine/59/59b1b9e129e501452d39c5cde3743327a285e98b.svn-base @@ -0,0 +1,108 @@ + + + + + diff --git a/.svn/pristine/5b/5bd723a0e784ccf278f85df2ea184f1976d3a864.svn-base b/.svn/pristine/5b/5bd723a0e784ccf278f85df2ea184f1976d3a864.svn-base new file mode 100644 index 0000000..5cf423d --- /dev/null +++ b/.svn/pristine/5b/5bd723a0e784ccf278f85df2ea184f1976d3a864.svn-base @@ -0,0 +1,391 @@ +## 1.4.15(2022-05-07) +- uni-data-picker 修复 字节小程序 本地数据无法选择下一级的Bug +- uni-data-select 新增 记住上次的选项(仅 collection 存在时有效) +- uni-search-bar 修复 vue3 input 事件不生效的bug +- uni-search-bar 修复 多余代码导致的bug +- uni-tooltip 更新 text 属性变更为 content +- uni-tooltip 更新 移除 width 属性 +- uni-tooltip 修复 组件根 text 嵌套组件 warning +## 1.4.14(2022-04-18) +- uni-datetime-picker 修复 Vue3 下动态赋值,单选类型未响应的 bug +- uni-easyinput 修复 默认值不生效的bug +## 1.4.13(2022-04-02) +- uni-calendar 修复 条件编译 nvue 不支持的 css 样式 +- uni-calendar 修复 startDate、 endDate 属性失效的 bug +- uni-data-picker 修复 nvue 不支持的 v-show 的 bug +- uni-data-picker 修复 条件编译 nvue 不支持的 css 样式 +- uni-datetime-picker 修复 Vue3 下动态赋值未响应的 bug +- uni-easyinput 修复 value不能为0的bug +- uni-popup 修复 弹出层内部无法滚动的bug +- uni-popup 修复 小程序中高度错误的bug +- uni-popup 修复 快速调用open出现问题的Bug +- uni-rate 修复 条件判断 `NaN` 错误的 bug +- uni-swipe-action 修复 按钮字体大小不能设置的bug +- uni-swipe-action 修复 h5和app端下报el错误的bug +- uni-swipe-action 修复 HBuilderX 1.4.X 版本中,h5和app端下报错的bug +## 1.4.12(2022-02-19) +- uni-collapse 修复 初始化的时候 ,open 属性失效的bug +- uni-data-checkbox 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug +- uni-icons 优化 size 属性可以传入不带单位的字符串数值 +- uni-icons 优化 size 支持其他单位 +- uni-nav-bar 新增 left-width/right-width属性 ,可修改左右两侧的宽度 +- uni-popup 修复 safeArea 属性不能设置为false的bug +## 1.4.11(2022-01-21) +- uni-collapse 修复 微信小程序resize后组件收起的bug +- uni-countdown 修复 在微信小程序中样式不生效的bug +- uni-countdown 新增 update 方法 ,在动态更新时间后,刷新组件 +- uni-load-more 新增 showText属性 ,是否显示文本 +- uni-load-more 修复 nvue 平台下不显示文本的bug +- uni-load-more 修复 微信小程序平台样式选择器报警告的问题 +- uni-nav-bar 修复 在vue下,标题不垂直居中的bug +- uni-nav-bar 修复 height 属性类型错误 +- uni-nav-bar 新增 height 属性,可修改组件高度 +- uni-nav-bar 新增 dark 属性可可开启暗黑模式 +- uni-nav-bar 优化 标题字数过多显示省略号 +- uni-nav-bar 优化 插槽,插入内容可完全覆盖 +- uni-popup 修复 isMaskClick 失效的bug +- uni-popup 新增 cancelText \ confirmText 属性 ,可自定义文本 +- uni-popup 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色 +- uni-popup 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题 + +## 1.4.10(2022-01-17) +- uni-card 修复 在vue页面下略缩图显示不正常的bug +- uni-datetime-picker 修复 clear-icon 属性在小程序平台不生效的 bug +- uni-datetime-picker 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的 bug +- uni-fab 更新 组件依赖 +- +- uni-icons 修复 nvue 有些图标不显示的bug,兼容老版本图标 +- uni-icons 优化 示例可复制图标名称 +- uni-nav-bar 修复 color 属性不生效的bug +- uni-popup 修复 设置 safeArea 属性不生效的bug +- uni-popup 优化 组件示例 +- uni-popup 修复 vuedoc 文字错误 +## 1.4.9(2021-11-23) +- uni-ui 修复 vue3中某些scss变量无法找到的问题 +- uni-combox 优化 label、label-width 属性 +- uni-data-picker 修复 由上个版本引发的map、v-model等属性不生效的bug +- uni-file-picker 修复 参数为对象的情况下,url在某些情况显示错误的bug +- uni-icons 优化 兼容旧组件 type 值 +- uni-list 修复 在vue3中to属性在发行应用的时候报错的bug +- uni-scss 修复 vue3中scss语法兼容问题 +- uni-transition 修复 init 方法初始化问题 +## 1.4.8(2021-11-19) +- uni-fab 修复 阴影颜色不正确的bug +## 1.4.7(2021-11-19) +- uni-ui 新增 支持国际化 +- uni-ui 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- uni-ui 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-ui](https://uniapp.dcloud.io/component/uniui/uni-ui) +- uni-badge 修改 size 属性默认值调整为 small +- uni-badge 修改 type 属性,默认值调整为 error,info 替换 default +- uni-badge 修复 在字节小程序上样式不生效的 bug +- uni-calendar 修复 弹出层被 tabbar 遮盖 bug +- uni-card 重构插槽的用法 ,header 替换为 title +- uni-card 新增 actions 插槽 +- uni-card 新增 cover 封面图属性和插槽 +- uni-card 新增 padding 内容默认内边距离 +- uni-card 新增 margin 卡片默认外边距离 +- uni-card 新增 spacing 卡片默认内边距 +- uni-card 新增 shadow 卡片阴影属性 +- uni-card 取消 mode 属性,可使用组合插槽代替 +- uni-card 取消 note 属性 ,使用actions插槽代替 +- uni-collapse 优化 show-arrow 属性默认为true +- uni-collapse 新增 show-arrow 属性,控制是否显示右侧箭头 +- uni-countdown 新增 font-size 支持自定义字体大小 +- uni-data-checkbox 修复 在uni-forms中 modelValue 中不存在当前字段,当前字段必填写也不参与校验的问题 +- uni-data-checkbox 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 +- uni-data-checkbox 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-dateformat 优化 默认时间不再是当前时间,而是显示'-'字符 +- uni-datetime-picker 修复 hide-second 在移动端的 bug +- uni-datetime-picker 修复 单选赋默认值时,赋值日期未高亮的 bug +- uni-datetime-picker 修复 赋默认值时,移动端未正确显示时间的 bug +- uni-datetime-picker 新增 hide-second 属性,支持只使用时分,隐藏秒 +- uni-datetime-picker 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次 +- uni-datetime-picker 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法 +- uni-datetime-picker 优化 调整字号大小,美化日历界面 +- uni-datetime-picker 优化 范围选择器在 pc 端过宽的问题 +- uni-datetime-picker 新增 支持作为 uni-forms 子组件相关功能 +- uni-datetime-picker 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug +- uni-datetime-picker 修复 type 属性动态赋值无效的 bug +- uni-datetime-picker 修复 ‘确认’按钮被 tabbar 遮盖 bug +- uni-datetime-picker 修复 组件未赋值时范围选左、右日历相同的 bug +- uni-datetime-picker 修复 范围选未正确显示当前值的 bug +- uni-datetime-picker 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug +- uni-easyinput 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug +- uni-easyinput 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-file-picker 新增 参数中返回 fileID 字段 +- uni-file-picker 修复 腾讯云传入fileID 不能回显的bug +- uni-file-picker 修复 选择图片后,不能放大的问题 +- uni-file-picker 修复 由于 0.2.11 版本引起的不能回显图片的Bug +- uni-file-picker 新增 clearFiles(index) 方法,可以手动删除指定文件 +- uni-file-picker 修复 v-model 值设为 null 报错的Bug +- uni-file-picker 修复 return-type="object" 时,无法删除文件的Bug +- uni-file-picker 修复 auto-upload 属性失效的Bug +- uni-forms 修复 label 插槽不生效的bug +- uni-forms 修复 没有添加校验规则的字段依然报错的Bug +- uni-forms 修复 重置表单错误信息无法清除的问题 +- uni-forms 修复 表单验证只生效一次的问题 +- uni-icons 新增 更多图标 +- uni-icons 优化 自定义图标使用方式 +- uni-link 修复 在 nvue 下不显示的 bug +- uni-pagination 修复 current 、value 属性未监听,导致高亮样式失效的 bug +- uni-rate 优化 默认值修改为 0 颗星 +- uni-search-bar 修复 value 属性与 modelValue 属性不兼容的Bug +- uni-swipe-action 新增 close-all 方法,关闭所有已打开的组件 +- uni-swipe-action 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 +- uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 +- uni-swipe-action 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 +- uni-tag 新增 提供组件设计资源,组件样式调整 +- uni-tag 移除 插槽 +- uni-tag 移除 type 属性的 royal 选项 +- uni-tag type 不是 default 时,size 为 small 字体大小显示不正确 +## 1.4.2(2021-08-20) +- 新增 uni-ui 组件支持国际化 i18n +- uni-collapse 优化 show-arrow 属性默认为true +- uni-collapse 新增 show-arrow 属性,控制是否显示右侧箭头 +- uni-data-checkbox 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 +- uni-easyinput 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug +- uni-file-picker 修复 由于 0.2.11 版本引起的不能回显图片的Bug +- uni-file-picker 新增 clearFiles(index) 方法,可以手动删除指定文件 +- uni-file-picker 修复 v-model 值设为 null 报错的Bug +- uni-swipe-action 新增 close-all 方法,关闭所有已打开的组件 +- uni-swipe-action 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 +- uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 +- uni-swipe-action 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 +## 1.4.0(2021-08-13) +- uni-calendar 修复 弹出层被 tabbar 遮盖 bug +- uni-data-checkbox 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-dateformat 调整 默认时间不再是当前时间,而是显示'-'字符 +- uni-datetime-picker 新增 适配 vue3 +- uni-datetime-picker 新增 支持作为 uni-forms 子组件相关功能 +- uni-datetime-picker 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug +- uni-datetime-picker 修复 type 属性动态赋值无效的 bug +- uni-datetime-picker 修复 ‘确认’按钮被 tabbar 遮盖 bug +- uni-datetime-picker 修复 组件未赋值时范围选左、右日历相同的 bug +- uni-datetime-picker 修复 范围选未正确显示当前值的 bug +- uni-datetime-picker 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug +- uni-easyinput 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-file-picker 修复 return-type="object" 时,无法删除文件的Bug +- uni-file-picker 修复 auto-upload 属性失效的Bug +- uni-forms 修复 没有添加校验规则的字段依然报错的Bug +- uni-forms 修复 重置表单错误信息无法清除的问题 +- uni-forms 优化 组件文档 +- uni-forms 修复 表单验证只生效一次的问题 +- uni-tag type 不是 default 时,size 为 small 字体大小显示不正确 +## 1.3.9(2021-08-02) +- uni-datetime-picker 新增 return-type 属性支持返回 date 日期对象 +- uni-file-picker 修复 fileExtname属性不指定值报错的Bug +- uni-file-picker 修复 在某种场景下图片不回显的Bug +- uni-link 支持自定义插槽 +## 1.3.8(2021-07-31) +- uni-ui 组件兼容 vue3 +- uni-collapse 修复 由1.2.0版本引起的 change 事件返回 undefined 的Bug +- uni-collapse 优化 组件示例 +- uni-collapse 新增 组件折叠动画 +- uni-collapse 新增 value\v-model 属性 ,动态修改面板折叠状态 +- uni-collapse 新增 title 插槽 ,可定义面板标题 +- uni-collapse 新增 border 属性 ,显示隐藏面板内容分隔线 +- uni-collapse 新增 title-border 属性 ,显示隐藏面板标题分隔线 +- uni-collapse 修复 resize 方法失效的Bug +- uni-collapse 修复 change 事件返回参数不正确的Bug +- uni-collapse 优化 H5、App 平台自动更具内容更新高度,无需调用 reszie() 方法 +- uni-data-checkbox 优化 在uni-forms组件,与label不对齐的问题 +- uni-data-checkbox 修复 单选默认值为0不能选中的Bug +- uni-easyinput 优化 errorMessage 属性支持 Boolean 类型 +- uni-file-picker 修复 return-type为object下,返回值不正确的Bug +- uni-file-picker 修复(重要) H5 平台下如果和uni-forms组件一同使用导致页面卡死的问题 +- uni-file-picker 优化 h5平台下上传文件导致页面卡死的问题 +- uni-forms 修复 vue2 下条件编译导致destroyed生命周期失效的Bug +- uni-forms 修复 1.2.1 引起的示例在小程序平台报错的Bug +- uni-forms 修复 动态校验表单,默认值为空的情况下校验失效的Bug +- uni-forms 修复 不指定name属性时,运行报错的Bug +- uni-forms 优化 label默认宽度从65调整至70,使required为true且四字时不换行 +- uni-forms 优化 组件示例,新增动态校验示例代码 +- uni-forms 优化 组件文档,使用方式更清晰 +- uni-list 修复 与其他组件嵌套使用时,点击失效的Bug +- uni-swipe-action 修复 跨页面修改组件数据 ,导致不能滑动的问题 +## 1.3.7(2021-07-16) +- uni-ui 兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +- uni-datetime-picker 修复 单选日期类型,初始赋值后不在当前日历的 bug +- uni-datetime-picker 新增 clearIcon 属性,显示框的清空按钮可配置显示隐藏(仅 pc 有效) +- uni-datetime-picker 优化 移动端移除显示框的清空按钮,无实际用途 +- uni-datetime-picker 修复 组件赋值为空,界面未更新的 bug +- uni-datetime-picker 修复 start 和 end 不能动态赋值的 bug +- uni-datetime-picker 修复 范围选类型,用户选择后再次选择右侧日历(结束日期)显示不正确的 bug +## 1.3.6(2021-07-09) +- uni-data-checkbox 优化 删除无用日志 +- uni-data-checkbox 修复 由 0.1.9 引起的非 nvue 端图标不显示的问题 +- uni-data-checkbox 修复 nvue 黑框样式问题 +- uni-datetime-picker 修复 范围选择不能动态赋值的 bug +- uni-datetime-picker 修复 范围选择的初始时间在一个月内时,造成无法选择的bug +- uni-datetime-picker 优化 弹出层在超出视窗边缘定位不准确的问题 +- uni-datetime-picker 修复 范围起始点样式的背景色与今日样式的字体前景色融合,导致日期字体看不清的 bug +- uni-datetime-picker 优化 弹出层在超出视窗边缘被遮盖的问题 +- uni-datetime-picker 新增 maskClick 事件 +- uni-datetime-picker 修复 特殊情况日历 rpx 布局错误的 bug,rpx -> px +- uni-datetime-picker 修复 范围选择时清空返回值不合理的bug,['', ''] -> [] +- uni-datetime-picker 新增 日期时间显示框支持插槽 +- uni-file-picker 修复 sourceType 缺少默认值导致 ios 无法选择文件 +- uni-file-picker 优化 解耦与uniCloud的强绑定关系 ,如不绑定服务空间,默认autoUpload为false且不可更改 +- uni-table 新增 uni-th 支持 date 日期筛选范围 +- uni-table 新增 uni-th 支持 range 筛选范围 +- uni-table 新增 uni-th 筛选功能 +## 1.3.5(2021-07-02) +- uni-card 优化 图文卡片无图片加载时,提供占位图标 +- uni-card 新增 header 插槽,自定义卡片头部( 图文卡片 mode="style" 时,不支持) +- uni-card 修复 thumbnail 不存在仍然占位的 bug +- uni-data-checkbox 修复 selectedTextColor 属性不生效的Bug +- uni-datetime-picker 优化 添加 uni-icons 依赖 +- uni-easyinput 修复 confirmType 属性(仅 type="text" 生效)导致多行文本框无法换行的 bug +- uni-file-picker 修复 由 0.0.10 版本引发的 returnType 属性失效的问题 +- uni-file-picker 优化 文件上传后进度条消失时机 +- uni-file-picker 修复 在uni-forms 中,删除文件 ,获取的值不对的Bug +- uni-forms 修复 pattern 属性在微信小程序平台无效的问题 +## 1.3.4(2021-06-25) +- uni-badge 优化 示例项目 +- uni-countdown 修复 uni-countdown 重复赋值跳两秒的 bug +- uni-easyinput 修复 passwordIcon 属性拼写错误的 bug +- uni-forms 修复 validate-trigger属性为submit且err-show-type属性为toast时不能弹出的Bug +- uni-forms 修复 只写setRules方法而导致校验不生效的Bug +- uni-forms 修复 由上个办法引发的错误提示文字错位的Bug +- uni-forms 修复 不设置 label 属性 ,无法设置label插槽的问题 +- uni-forms 修复 不设置label属性,label-width属性不生效的bug +- uni-forms 修复 setRules 方法与rules属性冲突的问题 +- uni-link 新增 download 属性,H5平台下载文件名 +- uni-popup 新增 mask-click 遮罩层点击事件 +- uni-popup 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +- uni-tag 修复 uni-tag 在字节跳动小程序上 css 类名编译错误的 bug +## 1.3.3(2021-06-18) +- uni-easyinput 新增 passwordIcon 属性,当type=password时是否显示小眼睛图标 +- uni-easyinput 修复 confirmType 属性不生效的问题 +- uni-easyinput 修复 disabled 状态可清出内容的 bug +- uni-file-picker 修复 删除文件时无法触发 v-model 的Bug +- uni-popup 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +- uni-popup 修复 错误的 watch 字段 +- uni-popup 修复 safeArea 属性不生效的问题 +- uni-popup 修复 点击内容,再点击遮罩无法关闭的Bug +## 1.3.2(2021-06-04) +- uni-data-checkbox 新增 map 属性,可以方便映射text/value属性 +- uni-data-checkbox 修复 不关联服务空间的情况下组件报错的Bug +- uni-data-picker 修复 上个版本引出的本地数据无法选择带有children的2级节点 +- uni-forms 修复 动态删减数据导致报错的问题 +- uni-forms 新增 modelValue 属性 ,value 即将废弃 +- uni-forms 新增 uni-forms-item 可以设置单独的 rules +- uni-forms 新增 validate 事件增加 keepitem 参数,可以选择那些字段不过滤 +- uni-forms 优化 submit 事件重命名为 validate +- uni-data-picker 修复 无法加载云端数据的问题 +- uni-data-picker 修复 v-model无效问题 +- uni-data-picker 修复 loaddata 为空数据组时加载时间过长问题 +- uni-datetime-picker 修复 图标在小程序上不显示的 bug +- uni-datetime-picker 优化 重命名引用组件,避免潜在组件命名冲突 +- uni-datetime-picker 优化 代码目录扁平化 +- uni-tag 修复 未定义 sass 变量 "$uni-color-royal" 的bug +## 1.3.1(2021-05-14) +- uni-badge 新增 uni-badge 的 absolute 属性,支持定位 +- uni-badge 新增 uni-badge 的 offset 属性,支持定位偏移 +- uni-badge 新增 uni-badge 的 is-dot 属性,支持仅显示有一个小点 +- uni-badge 新增 uni-badge 的 max-num 属性,支持自定义封顶的数字值,超过 99 显示99+ +- uni-badge 优化 uni-badge 属性 custom-style, 支持以对象形式自定义样式 +- uni-badge 修复 uni-badge 在 App 端,数字小于10时不是圆形的bug +- uni-badge 修复 uni-badge 在父元素不是 flex 布局时,宽度缩小的bug +- uni-badge 新增 uni-badge 属性 custom-style, 支持自定义样式 +- uni-datetime-picker 修复 ios 下不识别 '-' 日期格式的 bug +- uni-datetime-picker 优化 pc 下弹出层添加边框和阴影 +- uni-datetime-picker 修复 在 admin 中获取弹出层定位错误的bug +- uni-datetime-picker 修复 type 属性向下兼容,默认值从 date 变更为 datetime +- uni-datetime-picker 支持日历形式的日期+时间的范围选择 +- uni-steps 修复 uni-steps 横向布局时,多行文字高度不合理的 bug +- uni-countdown 修复 uni-countdown 不能控制倒计时的 bug +- uni-tag 修复 royal 类型无效的bug +- uni-tag 修复 uni-tag 宽度不自适应的bug +- uni-tag 新增 uni-tag 支持属性 custom-style 自定义样式 +- uni-link 新增 href 属性支持 tel:|mailto: +- uni-popup 修复 组件内放置 input 、textarea 组件,无法聚焦的问题 +- uni-popup 新增 type 属性的 left\right 值,支持左右弹出 +- uni-popup 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗 +- uni-popup 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色 +- uni-popup 新增 safeArea 属性,是否适配底部安全区 +- uni-popup 修复 App\h5\微信小程序底部安全区占位不对的Bug +- uni-popup 修复 App 端弹出等待的Bug +- uni-popup 优化 提升低配设备性能,优化动画卡顿问题 +- uni-popup 优化 更简单的组件自定义方式 +- uni-table 修复 示例项目缺少组件的Bug +- uni-forms 修复 自定义检验器失效的问题 +- uni-title 修复 示例项目缺少组件的Bug +- uni-transition 修复 示例项目缺少组件的Bug +- uni-swiper-dot 修复 示例项目缺少组件的Bug +- uni-ui 新增 组件示例地址 +## 1.3.0(2021-04-23) +- uni-combox 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-data-picker 修复 非树形数据有 where 属性查询报错的问题 +- uni-fav 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-goods-nav 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-nav-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-notice-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-number-box 修复 uni-number-box 浮点数运算不精确的 bug +- uni-number-box 修复 uni-number-box change 事件触发不正确的 bug +- uni-number-box 新增 uni-number-box v-model 双向绑定 +- uni-rate 修复 布局变化后 uni-rate 星星计算不准确的 bug +- uni-rate 优化 添加依赖 uni-icons, 导入 uni-rate 自动下载依赖 +- uni-search-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-steps 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-transition 新增 通过方法自定义动画 +- uni-transition 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式 +- uni-transition 优化 动画触发逻辑,使动画更流畅 +- uni-transition 优化 支持单独的动画类型 +- uni-transition 优化 文档示例 +## 1.2.13(2021-04-16) +- uni-ui 新增 uni-data-picker 支持云端非树形表结构数据 +- uni-ui 修复 uni-data-checkbox nvue 下无法选中的问题 +- uni-ui 修复 uni-data-picker 根节点 parent_field 字段等于null时选择界面错乱问题 +- uni-ui 修复 uni-file-picker 选择的文件非 file-extname 字段指定的扩展名报错的Bug +- uni-ui 修复 uni-swipe-action 报错 nv_navigator is not defined 的bug +- uni-ui 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug +- uni-ui 优化 uni-file-picker file-extname 字段支持字符串写法,多个扩展名需要用逗号分隔 +- uni-ui 优化 uni-pagination PC 和 移动端适配不同的 ui +- uni-ui 更新 uni-file-picker 组件示例 +- uni-ui 修复 uni-nav-bar 当 fixed 属性为 true 时铺不满屏幕的 bug +- uni-ui 新增 uni-search-bar 的 focus 事件 +- uni-ui 修复 uni-rate 属性 margin 值为 string 组件失效的 bug +- uni-data-picker 修复 本地数据概率无法回显时问题 +- uni-table 新增 sortable 属性,是否开启单列排序 +- uni-table 优化 表格多选逻辑 +## 1.2.12(2021-03-23) +- uni-ui 新增 uni-datetime-picker 的 hide-second 属性、border 属性; +- uni-ui 修复 uni-datetime-picker 选择跟显示的日期不一样的 bug, +- uni-ui 修复 uni-datetime-picker change事件触发2次的 bug +- uni-ui 修复 uni-datetime-picker 分、秒 end 范围错误的 bug +- uni-ui 新增 uni-tr selectable 属性,用于 type=selection 时,设置某行是否可由全选按钮控制 +- uni-ui 新增 uni-data-checkbox 新增 disabled属性,支持nvue +- uni-ui 优化 uni-data-checkbox 无选项时提示“暂无数据” +- uni-ui 优化 uni-data-checkbox 默认颜色显示 +- uni-ui 新增 uni-link href 属性支持 tel:|mailto: +- uni-ui 新增 uni-table 示例demo +- uni-ui 修复 uni-data-picker 微信小程序某些情况下无法选择的问题,事件无法触发的问题 +- uni-ui 修复 uni-nav-bar easycom 下,找不到 uni-status-bar 的bug +- uni-ui 修复 uni-easyinput 示例在 qq 小程序上的bug +- uni-ui 修复 uni-forms 动态显示uni-forms-item的情况下,submit 方法获取值错误的Bug +- uni-ui 调整 cli 项目 建议使用 easycom 方式引用组件,如使用按需引用,需手动维护组件内部引用 + +## 1.2.11(2021-02-24) +- 调整为uni_modules目录规范 +- uni-data-picker 新增 数据驱动的picker选择器 +- uni-file-picker 新增 文件选择上传 +- uni-row 新增 栅格系统 +- uni-data-checkbox 优化 支持 nvue +- uni-forms 修复 偶发性获取表单值错误的Bug +- uni-forms 修复 校验 uni-data-picker value 为 0 时,返回值错误的Bug +- uni-forms 修复 uni-forms-item 组件隐藏时依然触发校验的bug +- uni-forms 优化 实时校验 +- uni-forms 优化 兼容nvue页面 +- uni-easyinput 优化 兼容nvue页面 +- uni-group 优化 兼容nvue页面 +- uni-popup 优化 组件适配 PC +- uni-fab 优化 适配 PC +- uni-swiper-dot 优化 适配 PC +- uni-rate 优化 适配 PC +- uni-notice-bar 优化 适配 PC +- uni-indexed-list 优化 适配 PC +- uni-combox 优化 适配 PC +- uni-transition 优化 适配 PC +- uni-nav-bar 优化 适配 PC +- uni-swipe-action 优化 适配 PC diff --git a/.svn/pristine/5c/5ccf6839b5f97959227b1521cbe9f1b02f30db0e.svn-base b/.svn/pristine/5c/5ccf6839b5f97959227b1521cbe9f1b02f30db0e.svn-base new file mode 100644 index 0000000..51fa7ca Binary files /dev/null and b/.svn/pristine/5c/5ccf6839b5f97959227b1521cbe9f1b02f30db0e.svn-base differ diff --git a/.svn/pristine/5d/5d45b770be5a3f4dc761b06e30047c9cfe6f8376.svn-base b/.svn/pristine/5d/5d45b770be5a3f4dc761b06e30047c9cfe6f8376.svn-base new file mode 100644 index 0000000..f0f1d67 --- /dev/null +++ b/.svn/pristine/5d/5d45b770be5a3f4dc761b06e30047c9cfe6f8376.svn-base @@ -0,0 +1,8 @@ +## 1.1.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-title](https://uniapp.dcloud.io/component/uniui/uni-title) +## 1.0.2(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的Bug +## 1.0.1(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/5e/5e77cc1c5b0df2e54dbf28a9601770b803839e99.svn-base b/.svn/pristine/5e/5e77cc1c5b0df2e54dbf28a9601770b803839e99.svn-base new file mode 100644 index 0000000..d2afd08 --- /dev/null +++ b/.svn/pristine/5e/5e77cc1c5b0df2e54dbf28a9601770b803839e99.svn-base @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/.svn/pristine/5e/5e83ad1b1c36a501943b92d4806f32d84d6cab79.svn-base b/.svn/pristine/5e/5e83ad1b1c36a501943b92d4806f32d84d6cab79.svn-base new file mode 100644 index 0000000..0256f84 --- /dev/null +++ b/.svn/pristine/5e/5e83ad1b1c36a501943b92d4806f32d84d6cab79.svn-base @@ -0,0 +1,192 @@ + + + + + \ No newline at end of file diff --git a/.svn/pristine/5f/5f372a4688f9c11ec088754a31630ca8a514114e.svn-base b/.svn/pristine/5f/5f372a4688f9c11ec088754a31630ca8a514114e.svn-base new file mode 100644 index 0000000..24c7eca --- /dev/null +++ b/.svn/pristine/5f/5f372a4688f9c11ec088754a31630ca8a514114e.svn-base @@ -0,0 +1,224 @@ + + + + + diff --git a/.svn/pristine/5f/5f5f63b9f819bd5055260302e4c33c4fe5954386.svn-base b/.svn/pristine/5f/5f5f63b9f819bd5055260302e4c33c4fe5954386.svn-base new file mode 100644 index 0000000..818a6b7 --- /dev/null +++ b/.svn/pristine/5f/5f5f63b9f819bd5055260302e4c33c4fe5954386.svn-base @@ -0,0 +1,87 @@ +var pullDown = { + threshold: 95, + maxHeight: 200, + callRefresh: 'onrefresh', + callPullingDown: 'onpullingdown', + refreshSelector: '.uni-refresh' +}; + +function ready(newValue, oldValue, ownerInstance, instance) { + var state = instance.getState() + state.canPullDown = newValue; + // console.log(newValue); +} + +function touchStart(e, instance) { + var state = instance.getState(); + state.refreshInstance = instance.selectComponent(pullDown.refreshSelector); + state.canPullDown = (state.refreshInstance != null && state.refreshInstance != undefined); + if (!state.canPullDown) { + return + } + + // console.log("touchStart"); + + state.height = 0; + state.touchStartY = e.touches[0].pageY || e.changedTouches[0].pageY; + state.refreshInstance.setStyle({ + 'height': 0 + }); + state.refreshInstance.callMethod("onchange", true); +} + +function touchMove(e, ownerInstance) { + var instance = e.instance; + var state = instance.getState(); + if (!state.canPullDown) { + return + } + + var oldHeight = state.height; + var endY = e.touches[0].pageY || e.changedTouches[0].pageY; + var height = endY - state.touchStartY; + if (height > pullDown.maxHeight) { + return; + } + + var refreshInstance = state.refreshInstance; + refreshInstance.setStyle({ + 'height': height + 'px' + }); + + height = height < pullDown.maxHeight ? height : pullDown.maxHeight; + state.height = height; + refreshInstance.callMethod(pullDown.callPullingDown, { + height: height + }); +} + +function touchEnd(e, ownerInstance) { + var state = e.instance.getState(); + if (!state.canPullDown) { + return + } + + state.refreshInstance.callMethod("onchange", false); + + var refreshInstance = state.refreshInstance; + if (state.height > pullDown.threshold) { + refreshInstance.callMethod(pullDown.callRefresh); + return; + } + + refreshInstance.setStyle({ + 'height': 0 + }); +} + +function propObserver(newValue, oldValue, instance) { + pullDown = newValue; +} + +module.exports = { + touchmove: touchMove, + touchstart: touchStart, + touchend: touchEnd, + propObserver: propObserver +} diff --git a/.svn/pristine/5f/5fb7444ad3a1ad3d040c811ce68396a9ba1d13bd.svn-base b/.svn/pristine/5f/5fb7444ad3a1ad3d040c811ce68396a9ba1d13bd.svn-base new file mode 100644 index 0000000..ea8d145 Binary files /dev/null and b/.svn/pristine/5f/5fb7444ad3a1ad3d040c811ce68396a9ba1d13bd.svn-base differ diff --git a/.svn/pristine/5f/5fd922436637fb6ef2fe5e4d75c622fe391bbde0.svn-base b/.svn/pristine/5f/5fd922436637fb6ef2fe5e4d75c622fe391bbde0.svn-base new file mode 100644 index 0000000..c3d7782 --- /dev/null +++ b/.svn/pristine/5f/5fd922436637fb6ef2fe5e4d75c622fe391bbde0.svn-base @@ -0,0 +1,344 @@ + + + + + + diff --git a/.svn/pristine/60/606bbda7b49a24314ad921e53d47719c3232ab29.svn-base b/.svn/pristine/60/606bbda7b49a24314ad921e53d47719c3232ab29.svn-base new file mode 100644 index 0000000..5677149 Binary files /dev/null and b/.svn/pristine/60/606bbda7b49a24314ad921e53d47719c3232ab29.svn-base differ diff --git a/.svn/pristine/60/606c4fb82a2a6a64f7d41a32ec82c9e23c8d26bb.svn-base b/.svn/pristine/60/606c4fb82a2a6a64f7d41a32ec82c9e23c8d26bb.svn-base new file mode 100644 index 0000000..871c8b3 Binary files /dev/null and b/.svn/pristine/60/606c4fb82a2a6a64f7d41a32ec82c9e23c8d26bb.svn-base differ diff --git a/.svn/pristine/63/631f614eadc66c7dec3750f6a6871fa203b9a10a.svn-base b/.svn/pristine/63/631f614eadc66c7dec3750f6a6871fa203b9a10a.svn-base new file mode 100644 index 0000000..9611a30 --- /dev/null +++ b/.svn/pristine/63/631f614eadc66c7dec3750f6a6871fa203b9a10a.svn-base @@ -0,0 +1,89 @@ +## 2.2.4(2022-03-31) +- 修复 Vue3 下动态赋值,单选类型未响应的 bug +## 2.2.3(2022-03-28) +- 修复 Vue3 下动态赋值未响应的 bug +## 2.2.2(2021-12-10) +- 修复 clear-icon 属性在小程序平台不生效的 bug +## 2.2.1(2021-12-10) +- 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的 bug +## 2.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-datetime-picker](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker) +## 2.1.5(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 2.1.4(2021-09-10) +- 修复 hide-second 在移动端的 bug +- 修复 单选赋默认值时,赋值日期未高亮的 bug +- 修复 赋默认值时,移动端未正确显示时间的 bug +## 2.1.3(2021-09-09) +- 新增 hide-second 属性,支持只使用时分,隐藏秒 +## 2.1.2(2021-09-03) +- 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次 +- 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法 +- 优化 调整字号大小,美化日历界面 +- 修复 因国际化导致的 placeholder 失效的 bug +## 2.1.1(2021-08-24) +- 新增 支持国际化 +- 优化 范围选择器在 pc 端过宽的问题 +## 2.1.0(2021-08-09) +- 新增 适配 vue3 +## 2.0.19(2021-08-09) +- 新增 支持作为 uni-forms 子组件相关功能 +- 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug +## 2.0.18(2021-08-05) +- 修复 type 属性动态赋值无效的 bug +- 修复 ‘确认’按钮被 tabbar 遮盖 bug +- 修复 组件未赋值时范围选左、右日历相同的 bug +## 2.0.17(2021-08-04) +- 修复 范围选未正确显示当前值的 bug +- 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug +## 2.0.16(2021-07-21) +- 新增 return-type 属性支持返回 date 日期对象 +## 2.0.15(2021-07-14) +- 修复 单选日期类型,初始赋值后不在当前日历的 bug +- 新增 clearIcon 属性,显示框的清空按钮可配置显示隐藏(仅 pc 有效) +- 优化 移动端移除显示框的清空按钮,无实际用途 +## 2.0.14(2021-07-14) +- 修复 组件赋值为空,界面未更新的 bug +- 修复 start 和 end 不能动态赋值的 bug +- 修复 范围选类型,用户选择后再次选择右侧日历(结束日期)显示不正确的 bug +## 2.0.13(2021-07-08) +- 修复 范围选择不能动态赋值的 bug +## 2.0.12(2021-07-08) +- 修复 范围选择的初始时间在一个月内时,造成无法选择的bug +## 2.0.11(2021-07-08) +- 优化 弹出层在超出视窗边缘定位不准确的问题 +## 2.0.10(2021-07-08) +- 修复 范围起始点样式的背景色与今日样式的字体前景色融合,导致日期字体看不清的 bug +- 优化 弹出层在超出视窗边缘被遮盖的问题 +## 2.0.9(2021-07-07) +- 新增 maskClick 事件 +- 修复 特殊情况日历 rpx 布局错误的 bug,rpx -> px +- 修复 范围选择时清空返回值不合理的bug,['', ''] -> [] +## 2.0.8(2021-07-07) +- 新增 日期时间显示框支持插槽 +## 2.0.7(2021-07-01) +- 优化 添加 uni-icons 依赖 +## 2.0.6(2021-05-22) +- 修复 图标在小程序上不显示的 bug +- 优化 重命名引用组件,避免潜在组件命名冲突 +## 2.0.5(2021-05-20) +- 优化 代码目录扁平化 +## 2.0.4(2021-05-12) +- 新增 组件示例地址 +## 2.0.3(2021-05-10) +- 修复 ios 下不识别 '-' 日期格式的 bug +- 优化 pc 下弹出层添加边框和阴影 +## 2.0.2(2021-05-08) +- 修复 在 admin 中获取弹出层定位错误的bug +## 2.0.1(2021-05-08) +- 修复 type 属性向下兼容,默认值从 date 变更为 datetime +## 2.0.0(2021-04-30) +- 支持日历形式的日期+时间的范围选择 + > 注意:此版本不向后兼容,不再支持单独时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker) +## 1.0.6(2021-03-18) +- 新增 hide-second 属性,时间支持仅选择时、分 +- 修复 选择跟显示的日期不一样的 bug +- 修复 chang事件触发2次的 bug +- 修复 分、秒 end 范围错误的 bug +- 优化 更好的 nvue 适配 diff --git a/.svn/pristine/63/637dd75536c1c91a64c961988c01644a9518291f.svn-base b/.svn/pristine/63/637dd75536c1c91a64c961988c01644a9518291f.svn-base new file mode 100644 index 0000000..1e0ca85 --- /dev/null +++ b/.svn/pristine/63/637dd75536c1c91a64c961988c01644a9518291f.svn-base @@ -0,0 +1,8 @@ +## 0.2.0(2022-05-07) +**注意:破坏性更新** +- 更新 text 属性变更为 content +- 更新 移除 width 属性 +## 0.1.1(2022-04-27) +- 修复 组件根 text 嵌套组件 warning +## 0.1.0(2022-04-21) +- 初始化 diff --git a/.svn/pristine/63/63e3b9f7fbff995d0b2baa05f4957b7f5cb6613e.svn-base b/.svn/pristine/63/63e3b9f7fbff995d0b2baa05f4957b7f5cb6613e.svn-base new file mode 100644 index 0000000..a3ced3d --- /dev/null +++ b/.svn/pristine/63/63e3b9f7fbff995d0b2baa05f4957b7f5cb6613e.svn-base @@ -0,0 +1,474 @@ + + + + diff --git a/.svn/pristine/65/659272ff3da6ea7cd5f4941aaac881e1ac13baab.svn-base b/.svn/pristine/65/659272ff3da6ea7cd5f4941aaac881e1ac13baab.svn-base new file mode 100644 index 0000000..fe3df34 --- /dev/null +++ b/.svn/pristine/65/659272ff3da6ea7cd5f4941aaac881e1ac13baab.svn-base @@ -0,0 +1,214 @@ + + + + + diff --git a/.svn/pristine/66/6650830ee8ea23e28bc2a7a329f0125b2d060407.svn-base b/.svn/pristine/66/6650830ee8ea23e28bc2a7a329f0125b2d060407.svn-base new file mode 100644 index 0000000..d59ec08 --- /dev/null +++ b/.svn/pristine/66/6650830ee8ea23e28bc2a7a329f0125b2d060407.svn-base @@ -0,0 +1,43 @@ + + + + + diff --git a/.svn/pristine/66/6654c90f7809d8df3010046d908e81574eba3817.svn-base b/.svn/pristine/66/6654c90f7809d8df3010046d908e81574eba3817.svn-base new file mode 100644 index 0000000..df2a7fe --- /dev/null +++ b/.svn/pristine/66/6654c90f7809d8df3010046d908e81574eba3817.svn-base @@ -0,0 +1,274 @@ + + + + + diff --git a/.svn/pristine/67/678298cedb43e2cf81275bb24f6226c966765b69.svn-base b/.svn/pristine/67/678298cedb43e2cf81275bb24f6226c966765b69.svn-base new file mode 100644 index 0000000..b2aad1f --- /dev/null +++ b/.svn/pristine/67/678298cedb43e2cf81275bb24f6226c966765b69.svn-base @@ -0,0 +1,402 @@ + + + + + diff --git a/.svn/pristine/67/6787b6d0879f58c1f950a0a59ed2bcdeab4e623e.svn-base b/.svn/pristine/67/6787b6d0879f58c1f950a0a59ed2bcdeab4e623e.svn-base new file mode 100644 index 0000000..dfa7af4 --- /dev/null +++ b/.svn/pristine/67/6787b6d0879f58c1f950a0a59ed2bcdeab4e623e.svn-base @@ -0,0 +1,90 @@ +{ + "id": "uni-forms", + "displayName": "uni-forms 表单", + "version": "1.3.2", + "description": "由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据", + "keywords": [ + "uni-ui", + "表单", + "校验", + "表单校验", + "表单验证" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/68/680b0b392403481fe3bdfba6147e9a73c50d5579.svn-base b/.svn/pristine/68/680b0b392403481fe3bdfba6147e9a73c50d5579.svn-base new file mode 100644 index 0000000..6df4493 --- /dev/null +++ b/.svn/pristine/68/680b0b392403481fe3bdfba6147e9a73c50d5579.svn-base @@ -0,0 +1,16 @@ +## 1.4.5(2022-02-25) +- 修复 条件编译 nvue 不支持的 css 样式 +## 1.4.4(2022-02-25) +- 修复 条件编译 nvue 不支持的 css 样式 +## 1.4.3(2021-09-22) +- 修复 startDate、 endDate 属性失效的 bug +## 1.4.2(2021-08-24) +- 新增 支持国际化 +## 1.4.1(2021-08-05) +- 修复 弹出层被 tabbar 遮盖 bug +## 1.4.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.3.16(2021-05-12) +- 新增 组件示例地址 +## 1.3.15(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/68/68cef20ce84bda390d2f0faf69c84fe3af05c5cc.svn-base b/.svn/pristine/68/68cef20ce84bda390d2f0faf69c84fe3af05c5cc.svn-base new file mode 100644 index 0000000..85cf54d --- /dev/null +++ b/.svn/pristine/68/68cef20ce84bda390d2f0faf69c84fe3af05c5cc.svn-base @@ -0,0 +1,12 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-swiper-dot](https://uniapp.dcloud.io/component/uniui/uni-swiper-dot) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.6(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的Bug +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 clickItem 事件,支持指示点控制轮播 +- 新增 支持 pc 可用 diff --git a/.svn/pristine/69/694accb19a54c7ca73208536fd86bcf7448061ef.svn-base b/.svn/pristine/69/694accb19a54c7ca73208536fd86bcf7448061ef.svn-base new file mode 100644 index 0000000..ffac4fe --- /dev/null +++ b/.svn/pristine/69/694accb19a54c7ca73208536fd86bcf7448061ef.svn-base @@ -0,0 +1,7 @@ +@import './setting/_variables.scss'; +@import './setting/_border.scss'; +@import './setting/_color.scss'; +@import './setting/_space.scss'; +@import './setting/_radius.scss'; +@import './setting/_text.scss'; +@import './setting/_styles.scss'; diff --git a/.svn/pristine/6a/6a1b2e165ee459c857b31faf14923638f23a5bf5.svn-base b/.svn/pristine/6a/6a1b2e165ee459c857b31faf14923638f23a5bf5.svn-base new file mode 100644 index 0000000..40455c8 --- /dev/null +++ b/.svn/pristine/6a/6a1b2e165ee459c857b31faf14923638f23a5bf5.svn-base @@ -0,0 +1,88 @@ +{ + "id": "uni-calendar", + "displayName": "uni-calendar 日历", + "version": "1.4.5", + "description": "日历组件", + "keywords": [ + "uni-ui", + "uniui", + "日历", + "", + "打卡", + "日历选择" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/6b/6b0e9d6226a17fc480d0620f89099a39f6928e49.svn-base b/.svn/pristine/6b/6b0e9d6226a17fc480d0620f89099a39f6928e49.svn-base new file mode 100644 index 0000000..e1780da Binary files /dev/null and b/.svn/pristine/6b/6b0e9d6226a17fc480d0620f89099a39f6928e49.svn-base differ diff --git a/.svn/pristine/6b/6bad36dc035ba01f6cd13c5c127e8043d4272db6.svn-base b/.svn/pristine/6b/6bad36dc035ba01f6cd13c5c127e8043d4272db6.svn-base new file mode 100644 index 0000000..dff823b --- /dev/null +++ b/.svn/pristine/6b/6bad36dc035ba01f6cd13c5c127e8043d4272db6.svn-base @@ -0,0 +1,472 @@ + + + + + diff --git a/.svn/pristine/6b/6bcb1ea3038705cec9ddae3e92437ac4010b9b46.svn-base b/.svn/pristine/6b/6bcb1ea3038705cec9ddae3e92437ac4010b9b46.svn-base new file mode 100644 index 0000000..500b6f8 --- /dev/null +++ b/.svn/pristine/6b/6bcb1ea3038705cec9ddae3e92437ac4010b9b46.svn-base @@ -0,0 +1,275 @@ + + + + + diff --git a/.svn/pristine/6c/6c4a52da8b0fe8fdfacbfa521a13819c18837ee1.svn-base b/.svn/pristine/6c/6c4a52da8b0fe8fdfacbfa521a13819c18837ee1.svn-base new file mode 100644 index 0000000..774f135 Binary files /dev/null and b/.svn/pristine/6c/6c4a52da8b0fe8fdfacbfa521a13819c18837ee1.svn-base differ diff --git a/.svn/pristine/6c/6ce2fa988b8e03a2544d39b086740a8e16d8fdd9.svn-base b/.svn/pristine/6c/6ce2fa988b8e03a2544d39b086740a8e16d8fdd9.svn-base new file mode 100644 index 0000000..b863bb0 --- /dev/null +++ b/.svn/pristine/6c/6ce2fa988b8e03a2544d39b086740a8e16d8fdd9.svn-base @@ -0,0 +1,8 @@ +## 1.0.3(2022-01-21) +- 优化 组件示例 +## 1.0.2(2021-11-22) +- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题 +## 1.0.1(2021-11-22) +- 修复 vue3中scss语法兼容问题 +## 1.0.0(2021-11-18) +- init diff --git a/.svn/pristine/6e/6e036a783c27e96262a07bb639a5c2840b32695b.svn-base b/.svn/pristine/6e/6e036a783c27e96262a07bb639a5c2840b32695b.svn-base new file mode 100644 index 0000000..af5ca11 Binary files /dev/null and b/.svn/pristine/6e/6e036a783c27e96262a07bb639a5c2840b32695b.svn-base differ diff --git a/.svn/pristine/6e/6e8a181e96eb597f9189323d405e6f8e92bcf551.svn-base b/.svn/pristine/6e/6e8a181e96eb597f9189323d405e6f8e92bcf551.svn-base new file mode 100644 index 0000000..06ce162 --- /dev/null +++ b/.svn/pristine/6e/6e8a181e96eb597f9189323d405e6f8e92bcf551.svn-base @@ -0,0 +1,7 @@ +{ + "uni-popup.cancel": "取消", + "uni-popup.ok": "確定", + "uni-popup.placeholder": "請輸入", + "uni-popup.title": "提示", + "uni-popup.shareTitle": "分享到" +} diff --git a/.svn/pristine/6e/6ef6911e4cf4065f62271079d03c256aecfde27f.svn-base b/.svn/pristine/6e/6ef6911e4cf4065f62271079d03c256aecfde27f.svn-base new file mode 100644 index 0000000..ddf96e7 Binary files /dev/null and b/.svn/pristine/6e/6ef6911e4cf4065f62271079d03c256aecfde27f.svn-base differ diff --git a/.svn/pristine/6f/6f7b2f7be137eb674f02488b9760cd208d306e2e.svn-base b/.svn/pristine/6f/6f7b2f7be137eb674f02488b9760cd208d306e2e.svn-base new file mode 100644 index 0000000..34848fb Binary files /dev/null and b/.svn/pristine/6f/6f7b2f7be137eb674f02488b9760cd208d306e2e.svn-base differ diff --git a/.svn/pristine/70/703f1c0767847586b04273619172f9021213fddb.svn-base b/.svn/pristine/70/703f1c0767847586b04273619172f9021213fddb.svn-base new file mode 100644 index 0000000..0c45f8f --- /dev/null +++ b/.svn/pristine/70/703f1c0767847586b04273619172f9021213fddb.svn-base @@ -0,0 +1,58 @@ +## 1.0.4(2022-04-19) +- 修复 字节小程序 本地数据无法选择下一级的Bug +## 1.0.3(2022-02-25) +- 修复 nvue 不支持的 v-show 的 bug +## 1.0.2(2022-02-25) +- 修复 条件编译 nvue 不支持的 css 样式 +## 1.0.1(2021-11-23) +- 修复 由上个版本引发的map、v-model等属性不生效的bug +## 1.0.0(2021-11-19) +- 优化 组件 UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-data-picker](https://uniapp.dcloud.io/component/uniui/uni-data-picker) +## 0.4.9(2021-10-28) +- 修复 VUE2 v-model 概率无效的 bug +## 0.4.8(2021-10-27) +- 修复 v-model 概率无效的 bug +## 0.4.7(2021-10-25) +- 新增 属性 spaceInfo 服务空间配置 HBuilderX 3.2.11+ +- 修复 树型 uniCloud 数据类型为 int 时报错的 bug +## 0.4.6(2021-10-19) +- 修复 非 VUE3 v-model 为 0 时无法选中的 bug +## 0.4.5(2021-09-26) +- 新增 清除已选项的功能(通过 clearIcon 属性配置是否显示按钮),同时提供 clear 方法以供调用,二者等效 +- 修复 readonly 为 true 时报错的 bug +## 0.4.4(2021-09-26) +- 修复 上一版本造成的 map 属性失效的 bug +- 新增 ellipsis 属性,支持配置 tab 选项长度过长时是否自动省略 +## 0.4.3(2021-09-24) +- 修复 某些情况下级联未触发的 bug +## 0.4.2(2021-09-23) +- 新增 提供 show 和 hide 方法,开发者可以通过 ref 调用 +- 新增 选项内容过长自动添加省略号 +## 0.4.1(2021-09-15) +- 新增 map 属性 字段映射,将 text/value 映射到数据中的其他字段 +## 0.4.0(2021-07-13) +- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.3.5(2021-06-04) +- 修复 无法加载云端数据的问题 +## 0.3.4(2021-05-28) +- 修复 v-model 无效问题 +- 修复 loaddata 为空数据组时加载时间过长问题 +- 修复 上个版本引出的本地数据无法选择带有 children 的 2 级节点 +## 0.3.3(2021-05-12) +- 新增 组件示例地址 +## 0.3.2(2021-04-22) +- 修复 非树形数据有 where 属性查询报错的问题 +## 0.3.1(2021-04-15) +- 修复 本地数据概率无法回显时问题 +## 0.3.0(2021-04-07) +- 新增 支持云端非树形表结构数据 +- 修复 根节点 parent_field 字段等于 null 时选择界面错乱问题 +## 0.2.0(2021-03-15) +- 修复 nodeclick、popupopened、popupclosed 事件无法触发的问题 +## 0.1.9(2021-03-09) +- 修复 微信小程序某些情况下无法选择的问题 +## 0.1.8(2021-02-05) +- 优化 部分样式在 nvue 上的兼容表现 +## 0.1.7(2021-02-05) +- 调整为 uni_modules 目录规范 diff --git a/.svn/pristine/70/70aae186773086ad39713e7c00abb4859834815c.svn-base b/.svn/pristine/70/70aae186773086ad39713e7c00abb4859834815c.svn-base new file mode 100644 index 0000000..a03df2e Binary files /dev/null and b/.svn/pristine/70/70aae186773086ad39713e7c00abb4859834815c.svn-base differ diff --git a/.svn/pristine/73/736a2565d4bd581f39584fd4ce4232e5dbbb3347.svn-base b/.svn/pristine/73/736a2565d4bd581f39584fd4ce4232e5dbbb3347.svn-base new file mode 100644 index 0000000..86234ba --- /dev/null +++ b/.svn/pristine/73/736a2565d4bd581f39584fd4ce4232e5dbbb3347.svn-base @@ -0,0 +1,8 @@ +## Icons 图标 +> **组件名:uni-icons** +> 代码块: `uIcons` + +用于展示 icons 图标 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/.svn/pristine/75/751c895f348da14039c50b24be1e575a9509a833.svn-base b/.svn/pristine/75/751c895f348da14039c50b24be1e575a9509a833.svn-base new file mode 100644 index 0000000..8183fd0 --- /dev/null +++ b/.svn/pristine/75/751c895f348da14039c50b24be1e575a9509a833.svn-base @@ -0,0 +1,22 @@ + + + + + diff --git a/.svn/pristine/75/75ac813e61c65180f6fb9c3c89c3c98cee51460d.svn-base b/.svn/pristine/75/75ac813e61c65180f6fb9c3c89c3c98cee51460d.svn-base new file mode 100644 index 0000000..532dd15 --- /dev/null +++ b/.svn/pristine/75/75ac813e61c65180f6fb9c3c89c3c98cee51460d.svn-base @@ -0,0 +1,87 @@ +{ + "id": "uni-group", + "displayName": "uni-group 分组", + "version": "1.2.1", + "description": "分组组件可用于将组件用于分组,添加间隔,以产生明显的区块", + "keywords": [ + "uni-ui", + "uniui", + "group", + "分组", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/75/75d854b155e00ada1514fa99b0627aa3d27aabb9.svn-base b/.svn/pristine/75/75d854b155e00ada1514fa99b0627aa3d27aabb9.svn-base new file mode 100644 index 0000000..d0c6a5b --- /dev/null +++ b/.svn/pristine/75/75d854b155e00ada1514fa99b0627aa3d27aabb9.svn-base @@ -0,0 +1,18 @@ +import Vue from 'vue' +import App from './App' +import mixin from 'common/global.js' +import tools from 'common/tools.js' +import amapwx from './common/AMapWX_SDK_V1.3.0/amap-wx.130.js' +import interceptor from '@/common/interceptor.js' +Vue.prototype.$tools = tools ;//工具类 +Vue.prototype.$amapwx = amapwx;//高德地图类 +// 混入代码 +Vue.mixin(mixin) + + +// 工具类 +App.mpType = 'app' +const app = new Vue({ + ...App, +}) +app.$mount() diff --git a/.svn/pristine/75/75f348fd32d00f8b23f4323aeedadf9ad21779e5.svn-base b/.svn/pristine/75/75f348fd32d00f8b23f4323aeedadf9ad21779e5.svn-base new file mode 100644 index 0000000..70e99ee --- /dev/null +++ b/.svn/pristine/75/75f348fd32d00f8b23f4323aeedadf9ad21779e5.svn-base @@ -0,0 +1,86 @@ +{ + "id": "uni-countdown", + "displayName": "uni-countdown 倒计时", + "version": "1.2.2", + "description": "CountDown 倒计时组件", + "keywords": [ + "uni-ui", + "uniui", + "countdown", + "倒计时" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/76/76ac42537e5f90365d4d5004b5c72e3c1cefc8f3.svn-base b/.svn/pristine/76/76ac42537e5f90365d4d5004b5c72e3c1cefc8f3.svn-base new file mode 100644 index 0000000..0fba2bf --- /dev/null +++ b/.svn/pristine/76/76ac42537e5f90365d4d5004b5c72e3c1cefc8f3.svn-base @@ -0,0 +1,128 @@ +{ + "id": "uni-ui", + "displayName": "uni-ui", + "version": "1.4.15", + "description": "uni-ui 是基于uni-app的、全端兼容的、高性能UI框架", + "keywords": [ + "uni-ui", + "uniui", + "UI组件库", + "ui框架", + "ui库" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.10" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-badge", + "uni-calendar", + "uni-card", + "uni-collapse", + "uni-combox", + "uni-countdown", + "uni-data-checkbox", + "uni-data-picker", + "uni-dateformat", + "uni-datetime-picker", + "uni-drawer", + "uni-easyinput", + "uni-fab", + "uni-fav", + "uni-file-picker", + "uni-forms", + "uni-goods-nav", + "uni-grid", + "uni-group", + "uni-icons", + "uni-indexed-list", + "uni-link", + "uni-list", + "uni-load-more", + "uni-nav-bar", + "uni-notice-bar", + "uni-number-box", + "uni-pagination", + "uni-popup", + "uni-rate", + "uni-row", + "uni-search-bar", + "uni-segmented-control", + "uni-steps", + "uni-swipe-action", + "uni-swiper-dot", + "uni-table", + "uni-tag", + "uni-title", + "uni-transition" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/76/76b4d72cfe7ea0b671e6a65ef89934efc7d63db6.svn-base b/.svn/pristine/76/76b4d72cfe7ea0b671e6a65ef89934efc7d63db6.svn-base new file mode 100644 index 0000000..8dabf81 --- /dev/null +++ b/.svn/pristine/76/76b4d72cfe7ea0b671e6a65ef89934efc7d63db6.svn-base @@ -0,0 +1,12 @@ +{ + "uni-calender.ok": "確定", + "uni-calender.cancel": "取消", + "uni-calender.today": "今日", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六" +} diff --git a/.svn/pristine/76/76bf8d66f24294fc564f1bf5926567788695ef73.svn-base b/.svn/pristine/76/76bf8d66f24294fc564f1bf5926567788695ef73.svn-base new file mode 100644 index 0000000..65349cf --- /dev/null +++ b/.svn/pristine/76/76bf8d66f24294fc564f1bf5926567788695ef73.svn-base @@ -0,0 +1,89 @@ +{ + "id": "uni-collapse", + "displayName": "uni-collapse 折叠面板", + "version": "1.4.3", + "description": "Collapse 组件,可以折叠 / 展开的内容区域。", + "keywords": [ + "uni-ui", + "折叠", + "折叠面板", + "手风琴" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/77/7786cc0465f73688486dc7f8fc93a4653c522016.svn-base b/.svn/pristine/77/7786cc0465f73688486dc7f8fc93a4653c522016.svn-base new file mode 100644 index 0000000..9ea8aaf --- /dev/null +++ b/.svn/pristine/77/7786cc0465f73688486dc7f8fc93a4653c522016.svn-base @@ -0,0 +1,26 @@ + + + + + diff --git a/.svn/pristine/77/77fd1d67a21bc5d7fd0e744ba834a2c5b634c58b.svn-base b/.svn/pristine/77/77fd1d67a21bc5d7fd0e744ba834a2c5b634c58b.svn-base new file mode 100644 index 0000000..19db1ff Binary files /dev/null and b/.svn/pristine/77/77fd1d67a21bc5d7fd0e744ba834a2c5b634c58b.svn-base differ diff --git a/.svn/pristine/78/7838397a909979042db60327a14dc7c80f5348e1.svn-base b/.svn/pristine/78/7838397a909979042db60327a14dc7c80f5348e1.svn-base new file mode 100644 index 0000000..569fd32 Binary files /dev/null and b/.svn/pristine/78/7838397a909979042db60327a14dc7c80f5348e1.svn-base differ diff --git a/.svn/pristine/78/786ead2bd65214c5d458af45fe41fa5dd477a555.svn-base b/.svn/pristine/78/786ead2bd65214c5d458af45fe41fa5dd477a555.svn-base new file mode 100644 index 0000000..dd056e4 --- /dev/null +++ b/.svn/pristine/78/786ead2bd65214c5d458af45fe41fa5dd477a555.svn-base @@ -0,0 +1,87 @@ +{ + "id": "uni-drawer", + "displayName": "uni-drawer 抽屉", + "version": "1.2.1", + "description": "抽屉式导航,用于展示侧滑菜单,侧滑导航。", + "keywords": [ + "uni-ui", + "uniui", + "drawer", + "抽屉", + "侧滑导航" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/78/788455ec2c4e2ad27f80c47e8c03217147c521e0.svn-base b/.svn/pristine/78/788455ec2c4e2ad27f80c47e8c03217147c521e0.svn-base new file mode 100644 index 0000000..5bb3559 --- /dev/null +++ b/.svn/pristine/78/788455ec2c4e2ad27f80c47e8c03217147c521e0.svn-base @@ -0,0 +1,14 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-group](https://uniapp.dcloud.io/component/uniui/uni-group) +## 1.1.7(2021-11-08) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +- 优化 组件文档 +## 1.0.3(2021-05-12) +- 新增 组件示例地址 +## 1.0.2(2021-02-05) +- 调整为uni_modules目录规范 +- 优化 兼容 nvue 页面 diff --git a/.svn/pristine/78/78e8997996555c9fdda5360c3720d44a9f6720e2.svn-base b/.svn/pristine/78/78e8997996555c9fdda5360c3720d44a9f6720e2.svn-base new file mode 100644 index 0000000..a12078a --- /dev/null +++ b/.svn/pristine/78/78e8997996555c9fdda5360c3720d44a9f6720e2.svn-base @@ -0,0 +1,129 @@ + + + + + diff --git a/.svn/pristine/79/799fada98f108a4b66e0caf23037f4321a8ce9a2.svn-base b/.svn/pristine/79/799fada98f108a4b66e0caf23037f4321a8ce9a2.svn-base new file mode 100644 index 0000000..d8d49db --- /dev/null +++ b/.svn/pristine/79/799fada98f108a4b66e0caf23037f4321a8ce9a2.svn-base @@ -0,0 +1,455 @@ + + + + + diff --git a/.svn/pristine/7a/7a762f64a04aea48503f183d635851f002509ee1.svn-base b/.svn/pristine/7a/7a762f64a04aea48503f183d635851f002509ee1.svn-base new file mode 100644 index 0000000..f25beef --- /dev/null +++ b/.svn/pristine/7a/7a762f64a04aea48503f183d635851f002509ee1.svn-base @@ -0,0 +1,24 @@ +## 1.2.2(2022-01-19) +- 修复 在微信小程序中样式不生效的bug +## 1.2.1(2022-01-18) +- 新增 update 方法 ,在动态更新时间后,刷新组件 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-countdown](https://uniapp.dcloud.io/component/uniui/uni-countdown) +## 1.1.3(2021-10-18) +- 重构 +- 新增 font-size 支持自定义字体大小 +## 1.1.2(2021-08-24) +- 新增 支持国际化 +## 1.1.1(2021-07-30) +- 优化 vue3下小程序事件警告的问题 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.5(2021-06-18) +- 修复 uni-countdown 重复赋值跳两秒的 bug +## 1.0.4(2021-05-12) +- 新增 组件示例地址 +## 1.0.3(2021-05-08) +- 修复 uni-countdown 不能控制倒计时的 bug +## 1.0.2(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/7a/7a7fa80ffabcfc57bab29688919a9616a4500fe4.svn-base b/.svn/pristine/7a/7a7fa80ffabcfc57bab29688919a9616a4500fe4.svn-base new file mode 100644 index 0000000..0ab2085 --- /dev/null +++ b/.svn/pristine/7a/7a7fa80ffabcfc57bab29688919a9616a4500fe4.svn-base @@ -0,0 +1,33 @@ +## 1.3.3(2022-03-31) +- 修复 按钮字体大小不能设置的bug +## 1.3.2(2022-03-16) +- 修复 h5和app端下报el错误的bug +## 1.3.1(2022-03-07) +- 修复 HBuilderX 1.4.X 版本中,h5和app端下报错的bug +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-swipe-action](https://uniapp.dcloud.io/component/uniui/uni-swipe-action) +## 1.2.4(2021-08-20) +- 优化 close-all 方法 +## 1.2.3(2021-08-20) +- 新增 close-all 方法,关闭所有已打开的组件 +## 1.2.2(2021-08-17) +- 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 +- 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 +- 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 +## 1.2.1(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +- 修复 跨页面修改组件数据 ,导致不能滑动的问题 +## 1.1.10(2021-06-17) +- 修复 按钮点击执行两次的bug +## 1.1.9(2021-05-12) +- 新增 项目示例地址 +## 1.1.8(2021-03-26) +- 修复 微信小程序 nv_navigator is not defined 报错的bug +## 1.1.7(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 左侧滑动 +- 新增 插槽使用方式 +- 新增 threshold 属性,可以控制滑动缺省值 +- 优化 长列表滚动性能 +- 修复 滚动页面时触发组件滑动的Bug diff --git a/.svn/pristine/7a/7afbf52873f3700db6364aa6683a65bab9de496e.svn-base b/.svn/pristine/7a/7afbf52873f3700db6364aa6683a65bab9de496e.svn-base new file mode 100644 index 0000000..548849d --- /dev/null +++ b/.svn/pristine/7a/7afbf52873f3700db6364aa6683a65bab9de496e.svn-base @@ -0,0 +1,898 @@ + + + + + diff --git a/.svn/pristine/7b/7b66d83df7bbd9e17bd511325823d6f5b736a043.svn-base b/.svn/pristine/7b/7b66d83df7bbd9e17bd511325823d6f5b736a043.svn-base new file mode 100644 index 0000000..c20df4a --- /dev/null +++ b/.svn/pristine/7b/7b66d83df7bbd9e17bd511325823d6f5b736a043.svn-base @@ -0,0 +1,271 @@ + + + + + diff --git a/.svn/pristine/7b/7bf131e213667a3541b4cb4456d18df8c6deed10.svn-base b/.svn/pristine/7b/7bf131e213667a3541b4cb4456d18df8c6deed10.svn-base new file mode 100644 index 0000000..0e44103 --- /dev/null +++ b/.svn/pristine/7b/7bf131e213667a3541b4cb4456d18df8c6deed10.svn-base @@ -0,0 +1,90 @@ +{ + "id": "uni-datetime-picker", + "displayName": "uni-datetime-picker 日期选择器", + "version": "2.2.4", + "description": "uni-datetime-picker 日期时间选择器,支持日历,支持范围选择", + "keywords": [ + "uni-datetime-picker", + "uni-ui", + "uniui", + "日期时间选择器", + "日期时间" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/7d/7d0560ba4dafb75a7b41f0541bf5c937bb21b31f.svn-base b/.svn/pristine/7d/7d0560ba4dafb75a7b41f0541bf5c937bb21b31f.svn-base new file mode 100644 index 0000000..8f4d1a0 --- /dev/null +++ b/.svn/pristine/7d/7d0560ba4dafb75a7b41f0541bf5c937bb21b31f.svn-base @@ -0,0 +1,343 @@ + + + + + diff --git a/.svn/pristine/7e/7e575740d6246c098c6c2a1f93f89a6aa2c8bd00.svn-base b/.svn/pristine/7e/7e575740d6246c098c6c2a1f93f89a6aa2c8bd00.svn-base new file mode 100644 index 0000000..9a3c4c4 --- /dev/null +++ b/.svn/pristine/7e/7e575740d6246c098c6c2a1f93f89a6aa2c8bd00.svn-base @@ -0,0 +1,83 @@ +{ + "id": "uni-test", + "displayName": "Test 测试插件", + "version": "2.0.13", + "description": "测试插件 ", + "keywords": [ + "test" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.3" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/7f/7f17a0750c4a7c4a0927f6efdadad60124ae7cb0.svn-base b/.svn/pristine/7f/7f17a0750c4a7c4a0927f6efdadad60124ae7cb0.svn-base new file mode 100644 index 0000000..ee6d528 Binary files /dev/null and b/.svn/pristine/7f/7f17a0750c4a7c4a0927f6efdadad60124ae7cb0.svn-base differ diff --git a/.svn/pristine/7f/7f8ab2a2df15fd72573e3312f4c94958eafac2fd.svn-base b/.svn/pristine/7f/7f8ab2a2df15fd72573e3312f4c94958eafac2fd.svn-base new file mode 100644 index 0000000..b7d1c25 --- /dev/null +++ b/.svn/pristine/7f/7f8ab2a2df15fd72573e3312f4c94958eafac2fd.svn-base @@ -0,0 +1,4 @@ +`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/80/8086a1df7724d0c79e780a0d9f1f3db03e1edf5a.svn-base b/.svn/pristine/80/8086a1df7724d0c79e780a0d9f1f3db03e1edf5a.svn-base new file mode 100644 index 0000000..1705b68 Binary files /dev/null and b/.svn/pristine/80/8086a1df7724d0c79e780a0d9f1f3db03e1edf5a.svn-base differ diff --git a/.svn/pristine/80/809e31e240cd8faee0f4b46022ea3cdb3e98f4a8.svn-base b/.svn/pristine/80/809e31e240cd8faee0f4b46022ea3cdb3e98f4a8.svn-base new file mode 100644 index 0000000..e89cb19 --- /dev/null +++ b/.svn/pristine/80/809e31e240cd8faee0f4b46022ea3cdb3e98f4a8.svn-base @@ -0,0 +1,125 @@ + + + + + diff --git a/.svn/pristine/81/8133eeb94e1e645118dd5a0b872188faa29471f6.svn-base b/.svn/pristine/81/8133eeb94e1e645118dd5a0b872188faa29471f6.svn-base new file mode 100644 index 0000000..bc88ff5 --- /dev/null +++ b/.svn/pristine/81/8133eeb94e1e645118dd5a0b872188faa29471f6.svn-base @@ -0,0 +1,271 @@ +{ + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + { + "path": "pages/login/login/login", + "style": { + "navigationBarTitleText": "登录", + "navigationStyle": "custom" + } + },{ + "path": "pages/login/forget/forget", + "style": { + "navigationBarTitleText": "忘记密码", + "navigationBarBackgroundColor": "#fff" + } + },{ + "path": "pages/login/reg/reg", + "style": { + "navigationBarTitleText": "注册账户", + "navigationBarBackgroundColor": "#fff" + } + },{ + "path": "pages/index/index", + "style": { + // "navigationBarTitleText": "uni-app" + "navigationStyle": "custom" + } + },{ + "path" : "pages/me/me", + "style" : + { + "navigationBarTitleText": "我的", + "navigationStyle": "custom", + "enablePullDownRefresh": false + } + + } + ,{ + "path" : "pages/index/pagesOne/vipActive/vipActive", + "style" : + { + "navigationBarTitleText": "会员活动", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + + },{ + "path" : "pages/index/pagesOne/vipActive/activeDet", + "style" : + { + "navigationBarTitleText": "活动详情", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + + } + ,{ + "path" : "pages/index/pagesOne/vipMall/vipMall", + "style" : + { + "navigationBarTitleText": "会员商城", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + },{ + "path" : "pages/index/pagesOne/vipMall/goodsDet", + "style" : + { + "navigationBarTitleText": "商品详情", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + },{ + "path" : "pages/index/pagesOne/vipMall/confirmOrder", + "style" : + { + "navigationBarTitleText": "确认订单", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + },{ + "path" : "pages/index/pagesOne/vipMall/confirmOrderCart", + "style" : + { + "navigationBarTitleText": "确认订单", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + },{ + "path" : "pages/index/pagesOne/vipMall/pay", + "style" : + { + "navigationBarTitleText": "立即支付", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + },{ + "path" : "pages/index/pagesOne/scoreMall/scoreMall", + "style" : + { + "navigationBarTitleText": "积分商城", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + },{ + "path" : "pages/index/pagesOne/scoreMall/goodsDet", + "style" : + { + "navigationBarTitleText": "商品详情", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + },{ + "path" : "pages/index/pagesOne/scoreMall/confirmOrder", + "style" : + { + "navigationBarTitleText": "提交订单", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + } + ,{ + "path" : "pages/zhuli/zhuli", + "style" : + { + "navigationBarTitleText": "助力", + "enablePullDownRefresh": false + } + + },{ + "path" : "pages/cart/cart", + "style" : + { + "navigationBarBackgroundColor": "#fff", + "navigationBarTitleText": "购物车", + "enablePullDownRefresh": false + } + + } + ,{ + "path" : "pages/me/myGongFen/myGongFen", + "style" : + { + "navigationBarTitleText": "我的工分", + "navigationStyle": "custom", + "enablePullDownRefresh": false + } + + },{ + "path" : "pages/me/myGongFen/newMoney", + "style" : + { + "navigationBarTitleText": "提现", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + + } + ,{ + "path" : "pages/me/myTeam/myTeam", + "style" : + { + "navigationBarTitleText": "我的团队", + "navigationStyle": "custom", + "enablePullDownRefresh": false + } + },{ + "path" : "pages/me/feedBack/feedBack", + "style" : + { + "navigationBarTitleText": "意见反馈", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + } + ,{ + "path" : "pages/me/applyFor/applyFor", + "style" : + { + "navigationBarTitleText": "申请", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + + },{ + "path" : "pages/me/address/addressEdit/addressEdit", + "style" : + { + "navigationBarTitleText": "收货地址", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + },{ + "path" : "pages/me/address/newAddress/newAddress", + "style" : + { + "navigationBarTitleText": "新增地址", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + } + ,{ + "path" : "pages/me/collect/collect", + "style" : + { + "navigationBarTitleText": "我的收藏", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + + } ,{ + "path" : "pages/me/set/set", + "style" : + { + "navigationBarTitleText": "设置", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + } ,{ + "path" : "pages/me/set/xieYi", + "style" : + { + "navigationBarTitleText": "协议", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + } ,{ + "path" : "pages/me/set/deleteUser", + "style" : + { + "navigationBarTitleText": "注销", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false + } + } + ], + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "uni-app", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#FFFFFF" + }, + "tabBar": { + "color": "#9AA2B5", + "selectedColor":"#ee4237", + "backgroundColor": "#FFFFFF", + "list": [ + { + "pagePath":"pages/index/index", + "iconPath":"static/shouye.png", + "selectedIconPath":"static/shouye_fill.png", + "text":"首页" + },{ + "pagePath":"pages/zhuli/zhuli", + "iconPath":"static/zhuli.png", + "selectedIconPath":"static/zhilifill.png", + "text":"助力专区" + },{ + "pagePath":"pages/cart/cart", + "iconPath":"static/gouwuche.png", + "selectedIconPath":"static/gowuudufill.png", + "text":"购物车" + },{ + "pagePath":"pages/me/me", + "iconPath":"static/wodef.png", + "selectedIconPath":"static/wodefull.png", + "text":"我的" + } + ] + + } +} diff --git a/.svn/pristine/81/8140247fb38d415ba9fd98beab07528660d87fd1.svn-base b/.svn/pristine/81/8140247fb38d415ba9fd98beab07528660d87fd1.svn-base new file mode 100644 index 0000000..e4da351 Binary files /dev/null and b/.svn/pristine/81/8140247fb38d415ba9fd98beab07528660d87fd1.svn-base differ diff --git a/.svn/pristine/81/81728a2459452bfc1e3233d3e7ebe1d4861d3a2e.svn-base b/.svn/pristine/81/81728a2459452bfc1e3233d3e7ebe1d4861d3a2e.svn-base new file mode 100644 index 0000000..0d3a139 --- /dev/null +++ b/.svn/pristine/81/81728a2459452bfc1e3233d3e7ebe1d4861d3a2e.svn-base @@ -0,0 +1,541 @@ + + + + + diff --git a/.svn/pristine/81/818179d53cbd3080c26a60aeb35626c587d5efc4.svn-base b/.svn/pristine/81/818179d53cbd3080c26a60aeb35626c587d5efc4.svn-base new file mode 100644 index 0000000..2fa6f04 --- /dev/null +++ b/.svn/pristine/81/818179d53cbd3080c26a60aeb35626c587d5efc4.svn-base @@ -0,0 +1,86 @@ +{ + "id": "uni-load-more", + "displayName": "uni-load-more 加载更多", + "version": "1.3.3", + "description": "LoadMore 组件,常用在列表里面,做滚动加载使用。", + "keywords": [ + "uni-ui", + "uniui", + "加载更多", + "load-more" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/82/8217c37ffe23767155213ebce1d7076c78035946.svn-base b/.svn/pristine/82/8217c37ffe23767155213ebce1d7076c78035946.svn-base new file mode 100644 index 0000000..bb08c79 --- /dev/null +++ b/.svn/pristine/82/8217c37ffe23767155213ebce1d7076c78035946.svn-base @@ -0,0 +1,13 @@ + + +## Table 表单 +> 组件名:``uni-table``,代码块: `uTable`。 + +用于展示多条结构类似的数据 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-table) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + + diff --git a/.svn/pristine/82/8264db006f20a86103caf2d246cb08dc5b068827.svn-base b/.svn/pristine/82/8264db006f20a86103caf2d246cb08dc5b068827.svn-base new file mode 100644 index 0000000..1a885e4 --- /dev/null +++ b/.svn/pristine/82/8264db006f20a86103caf2d246cb08dc5b068827.svn-base @@ -0,0 +1,19 @@ +{ + "uni-datetime-picker.selectDate": "选择日期", + "uni-datetime-picker.selectTime": "选择时间", + "uni-datetime-picker.selectDateTime": "选择日期时间", + "uni-datetime-picker.startDate": "开始日期", + "uni-datetime-picker.endDate": "结束日期", + "uni-datetime-picker.startTime": "开始时间", + "uni-datetime-picker.endTime": "结束时间", + "uni-datetime-picker.ok": "确定", + "uni-datetime-picker.clear": "清除", + "uni-datetime-picker.cancel": "取消", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六" +} diff --git a/.svn/pristine/82/8280bf6026cfe201cd40907937f8b467fdd615ab.svn-base b/.svn/pristine/82/8280bf6026cfe201cd40907937f8b467fdd615ab.svn-base new file mode 100644 index 0000000..860c417 --- /dev/null +++ b/.svn/pristine/82/8280bf6026cfe201cd40907937f8b467fdd615ab.svn-base @@ -0,0 +1,103 @@ + + + + + diff --git a/.svn/pristine/82/82a5cf0e21fa61dff69e79f6b271d7397594c24e.svn-base b/.svn/pristine/82/82a5cf0e21fa61dff69e79f6b271d7397594c24e.svn-base new file mode 100644 index 0000000..75b3754 --- /dev/null +++ b/.svn/pristine/82/82a5cf0e21fa61dff69e79f6b271d7397594c24e.svn-base @@ -0,0 +1,19 @@ +{ + "uni-datetime-picker.selectDate": "select date", + "uni-datetime-picker.selectTime": "select time", + "uni-datetime-picker.selectDateTime": "select datetime", + "uni-datetime-picker.startDate": "start date", + "uni-datetime-picker.endDate": "end date", + "uni-datetime-picker.startTime": "start time", + "uni-datetime-picker.endTime": "end time", + "uni-datetime-picker.ok": "ok", + "uni-datetime-picker.clear": "clear", + "uni-datetime-picker.cancel": "cancel", + "uni-calender.MON": "MON", + "uni-calender.TUE": "TUE", + "uni-calender.WED": "WED", + "uni-calender.THU": "THU", + "uni-calender.FRI": "FRI", + "uni-calender.SAT": "SAT", + "uni-calender.SUN": "SUN" +} diff --git a/.svn/pristine/83/8338dba47488a992df673ffa3d1d4c2ff552249c.svn-base b/.svn/pristine/83/8338dba47488a992df673ffa3d1d4c2ff552249c.svn-base new file mode 100644 index 0000000..32c2865 --- /dev/null +++ b/.svn/pristine/83/8338dba47488a992df673ffa3d1d4c2ff552249c.svn-base @@ -0,0 +1,346 @@ +## List 列表 +> **组件名:uni-list** +> 代码块: `uList`、`uListItem` +> 关联组件:`uni-list-item`、`uni-badge`、`uni-icons`、`uni-list-chat`、`uni-list-ad` + + +List 列表组件,包含基本列表样式、可扩展插槽机制、长列表性能优化、多端兼容。 + +在vue页面里,它默认使用页面级滚动。在app-nvue页面里,它默认使用原生list组件滚动。这样的长列表,在滚动出屏幕外后,系统会回收不可见区域的渲染内存资源,不会造成滚动越长手机越卡的问题。 + +uni-list组件是父容器,里面的核心是uni-list-item子组件,它代表列表中的一个可重复行,子组件可以无限循环。 + +uni-list-item有很多风格,uni-list-item组件通过内置的属性,满足一些常用的场景。当内置属性不满足需求时,可以通过扩展插槽来自定义列表内容。 + +内置属性可以覆盖的场景包括:导航列表、设置列表、小图标列表、通信录列表、聊天记录列表。 + +涉及很多大图或丰富内容的列表,比如类今日头条的新闻列表、类淘宝的电商列表,需要通过扩展插槽实现。 + +下文均有样例给出。 + +uni-list不包含下拉刷新和上拉翻页。上拉翻页另见组件:[uni-load-more](https://ext.dcloud.net.cn/plugin?id=29) + + +### 安装方式 + +本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。 + +如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55) + +> **注意事项** +> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。 +> - 组件需要依赖 `sass` 插件 ,请自行手动安装 +> - 组件内部依赖 `'uni-icons'` 、`uni-badge` 组件 +> - `uni-list` 和 `uni-list-item` 需要配套使用,暂不支持单独使用 `uni-list-item` +> - 只有开启点击反馈后,会有点击选中效果 +> - 使用插槽时,可以完全自定义内容 +> - note 、rightText 属性暂时没做限制,不支持文字溢出隐藏,使用时应该控制长度显示或通过默认插槽自行扩展 +> - 支付宝小程序平台需要在支付宝小程序开发者工具里开启 component2 编译模式,开启方式: 详情 --> 项目配置 --> 启用 component2 编译 +> - 如果需要修改 `switch`、`badge` 样式,请使用插槽自定义 +> - 在 `HBuilderX` 低版本中,可能会出现组件显示 `undefined` 的问题,请升级最新的 `HBuilderX` 或者 `cli` +> - 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + +### 基本用法 + +- 设置 `title` 属性,可以显示列表标题 +- 设置 `disabled` 属性,可以禁用当前项 + +```html + + + + + +``` + +### 多行内容显示 + +- 设置 `note` 属性 ,可以在第二行显示描述文本信息 + +```html + + + + + +``` + +### 右侧显示角标、switch + +- 设置 `show-badge` 属性 ,可以显示角标内容 +- 设置 `show-switch` 属性,可以显示 switch 开关 + +```html + + + + + +``` + +### 左侧显示略缩图、图标 + +- 设置 `thumb` 属性 ,可以在列表左侧显示略缩图 +- 设置 `show-extra-icon` 属性,并指定 `extra-icon` 可以在左侧显示图标 + +```html + + + + +``` + +### 开启点击反馈和右侧箭头 +- 设置 `clickable` 为 `true` ,则表示这是一个可点击的列表,会默认给一个点击效果,并可以监听 `click` 事件 +- 设置 `link` 属性,会自动开启点击反馈,并给列表右侧添加一个箭头 +- 设置 `to` 属性,可以跳转页面,`link` 的值表示跳转方式,如果不指定,默认为 `navigateTo` + +```html + + + + + + + +``` + + +### 聊天列表示例 +- 设置 `clickable` 为 `true` ,则表示这是一个可点击的列表,会默认给一个点击效果,并可以监听 `click` 事件 +- 设置 `link` 属性,会自动开启点击反馈,`link` 的值表示跳转方式,如果不指定,默认为 `navigateTo` +- 设置 `to` 属性,可以跳转页面 +- `time` 属性,通常会设置成时间显示,但是这个属性不仅仅可以设置时间,你可以传入任何文本,注意文本长度可能会影响显示 +- `avatar` 和 `avatarList` 属性同时只会有一个生效,同时设置的话,`avatarList` 属性的长度大于1 ,`avatar` 属性将失效 +- 可以通过默认插槽自定义列表右侧内容 + +```html + + + + + + + + + + + + + + + + + 刚刚 + + + + + + + +``` + +```javascript + +export default { + components: {}, + data() { + return { + avatarList: [{ + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }, { + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }, { + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }] + } + } +} + +``` + + +```css + +.chat-custom-right { + flex: 1; + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + flex-direction: column; + justify-content: space-between; + align-items: flex-end; +} + +.chat-custom-text { + font-size: 12px; + color: #999; +} + +``` + +## API + +### List Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +border |Boolean |true | 是否显示边框 + + +### ListItem Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +title |String |- | 标题 +note |String |- | 描述 +ellipsis |Number |0 | title 是否溢出隐藏,可选值,0:默认; 1:显示一行; 2:显示两行;【nvue 暂不支持】 +thumb |String |- | 左侧缩略图,若thumb有值,则不会显示扩展图标 +thumbSize |String |medium | 略缩图尺寸,可选值,lg:大图; medium:一般; sm:小图; +showBadge |Boolean |false | 是否显示数字角标 +badgeText |String |- | 数字角标内容 +badgeType |String |- | 数字角标类型,参考[uni-icons](https://ext.dcloud.net.cn/plugin?id=21) +badgeStyle |Object |- | 数字角标样式,使用uni-badge的custom-style参数 +rightText |String |- | 右侧文字内容 +disabled |Boolean |false | 是否禁用 +showArrow |Boolean |true | 是否显示箭头图标 +link |String |navigateTo | 新页面跳转方式,可选值见下表 +to |String |- | 新页面跳转地址,如填写此属性,click 会返回页面是否跳转成功 +clickable |Boolean |false | 是否开启点击反馈 +showSwitch |Boolean |false | 是否显示Switch +switchChecked |Boolean |false | Switch是否被选中 +showExtraIcon |Boolean |false | 左侧是否显示扩展图标 +extraIcon |Object |- | 扩展图标参数,格式为 ``{color: '#4cd964',size: '22',type: 'spinner'}``,参考 [uni-icons](https://ext.dcloud.net.cn/plugin?id=28) +direction | String |row | 排版方向,可选值,row:水平排列; column:垂直排列; 3个插槽是水平排还是垂直排,也受此属性控制 + + +#### Link Options + +属性名 | 说明 +:-: | :-: +navigateTo | 同 uni.navigateTo() +redirectTo | 同 uni.reLaunch() +reLaunch | 同 uni.reLaunch() +switchTab | 同 uni.switchTab() + +### ListItem Events + +事件称名 |说明 |返回参数 +:-: |:-: |:-: +click |点击 uniListItem 触发事件,需开启点击反馈 |- +switchChange |点击切换 Switch 时触发,需显示 switch |e={value:checked} + + + +### ListItem Slots + +名称 | 说明 +:-: | :-: +header | 左/上内容插槽,可完全自定义默认显示 +body | 中间内容插槽,可完全自定义中间内容 +footer | 右/下内容插槽,可完全自定义右侧内容 + + +> **通过插槽扩展** +> 需要注意的是当使用插槽时,内置样式将会失效,只保留排版样式,此时的样式需要开发者自己实现 +> 如果 `uni-list-item` 组件内置属性样式无法满足需求,可以使用插槽来自定义uni-list-item里的内容。 +> uni-list-item提供了3个可扩展的插槽:`header`、`body`、`footer` +> - 当 `direction` 属性为 `row` 时表示水平排列,此时 `header` 表示列表的左边部分,`body` 表示列表的中间部分,`footer` 表示列表的右边部分 +> - 当 `direction` 属性为 `column` 时表示垂直排列,此时 `header` 表示列表的上边部分,`body` 表示列表的中间部分,`footer` 表示列表的下边部分 +> 开发者可以只用1个插槽,也可以3个一起使用。在插槽中可自主编写view标签,实现自己所需的效果。 + + +**示例** + +```html + + + + + + + + + 自定义插槽 + + + + +``` + + + + + +### ListItemChat Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +title |String |- | 标题 +note |String |- | 描述 +clickable |Boolean |false | 是否开启点击反馈 +badgeText |String |- | 数字角标内容,设置为 `dot` 将显示圆点 +badgePositon |String |right | 角标位置 +link |String |navigateTo | 是否展示右侧箭头并开启点击反馈,可选值见下表 +clickable |Boolean |false | 是否开启点击反馈 +to |String |- | 跳转页面地址,如填写此属性,click 会返回页面是否跳转成功 +time |String |- | 右侧时间显示 +avatarCircle |Boolean |false | 是否显示圆形头像 +avatar |String |- | 头像地址,avatarCircle 不填时生效 +avatarList |Array |- | 头像组,格式为 [{url:''}] + +#### Link Options + +属性名 | 说明 +:-: | :-: +navigateTo | 同 uni.navigateTo() +redirectTo | 同 uni.reLaunch() +reLaunch | 同 uni.reLaunch() +switchTab | 同 uni.switchTab() + +### ListItemChat Slots + +名称 | 说明 +:- | :- +default | 自定义列表右侧内容(包括时间和角标显示) + +### ListItemChat Events +事件称名 | 说明 | 返回参数 +:-: | :-: | :-: +@click | 点击 uniListChat 触发事件 | {data:{}} ,如有 to 属性,会返回页面跳转信息 + + + + + + +## 基于uni-list扩展的页面模板 + +通过扩展插槽,可实现多种常见样式的列表 + +**新闻列表类** + +1. 云端一体混合布局:[https://ext.dcloud.net.cn/plugin?id=2546](https://ext.dcloud.net.cn/plugin?id=2546) +2. 云端一体垂直布局,大图模式:[https://ext.dcloud.net.cn/plugin?id=2583](https://ext.dcloud.net.cn/plugin?id=2583) +3. 云端一体垂直布局,多行图文混排:[https://ext.dcloud.net.cn/plugin?id=2584](https://ext.dcloud.net.cn/plugin?id=2584) +4. 云端一体垂直布局,多图模式:[https://ext.dcloud.net.cn/plugin?id=2585](https://ext.dcloud.net.cn/plugin?id=2585) +5. 云端一体水平布局,左图右文:[https://ext.dcloud.net.cn/plugin?id=2586](https://ext.dcloud.net.cn/plugin?id=2586) +6. 云端一体水平布局,左文右图:[https://ext.dcloud.net.cn/plugin?id=2587](https://ext.dcloud.net.cn/plugin?id=2587) +7. 云端一体垂直布局,无图模式,主标题+副标题:[https://ext.dcloud.net.cn/plugin?id=2588](https://ext.dcloud.net.cn/plugin?id=2588) + +**商品列表类** + +1. 云端一体列表/宫格视图互切:[https://ext.dcloud.net.cn/plugin?id=2651](https://ext.dcloud.net.cn/plugin?id=2651) +2. 云端一体列表(宫格模式):[https://ext.dcloud.net.cn/plugin?id=2671](https://ext.dcloud.net.cn/plugin?id=2671) +3. 云端一体列表(列表模式):[https://ext.dcloud.net.cn/plugin?id=2672](https://ext.dcloud.net.cn/plugin?id=2672) + +## 组件示例 + +点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/list/list](https://hellouniapp.dcloud.net.cn/pages/extUI/list/list) \ No newline at end of file diff --git a/.svn/pristine/84/8482311062b8c792a300a9aab69f909114a113db.svn-base b/.svn/pristine/84/8482311062b8c792a300a9aab69f909114a113db.svn-base new file mode 100644 index 0000000..c8399a5 --- /dev/null +++ b/.svn/pristine/84/8482311062b8c792a300a9aab69f909114a113db.svn-base @@ -0,0 +1,11 @@ + +## FilePicker 文件选择上传 + +> **组件名:uni-file-picker** +> 代码块: `uFilePicker` + + +文件选择上传组件,可以选择图片、视频等任意文件并上传到当前绑定的服务空间 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-file-picker) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/85/8585fb2940953165b0f28d1a9864f7bdb0fe58b2.svn-base b/.svn/pristine/85/8585fb2940953165b0f28d1a9864f7bdb0fe58b2.svn-base new file mode 100644 index 0000000..37ddb6e --- /dev/null +++ b/.svn/pristine/85/8585fb2940953165b0f28d1a9864f7bdb0fe58b2.svn-base @@ -0,0 +1,11 @@ + + +### DateFormat 日期格式化 +> **组件名:uni-dateformat** +> 代码块: `uDateformat` + + +日期格式化组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-dateformat) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/85/85a86557956867dc3fa62576daf25f079c9365d8.svn-base b/.svn/pristine/85/85a86557956867dc3fa62576daf25f079c9365d8.svn-base new file mode 100644 index 0000000..0127850 --- /dev/null +++ b/.svn/pristine/85/85a86557956867dc3fa62576daf25f079c9365d8.svn-base @@ -0,0 +1,166 @@ + + + + + diff --git a/.svn/pristine/88/88344c7d711c28656e29fe6eec673b6906274096.svn-base b/.svn/pristine/88/88344c7d711c28656e29fe6eec673b6906274096.svn-base new file mode 100644 index 0000000..f1faf8f --- /dev/null +++ b/.svn/pristine/88/88344c7d711c28656e29fe6eec673b6906274096.svn-base @@ -0,0 +1,11 @@ + + +### Easyinput 增强输入框 +> **组件名:uni-easyinput** +> 代码块: `uEasyinput` + + +easyinput 组件是对原生input组件的增强 ,是专门为配合表单组件[uni-forms](https://ext.dcloud.net.cn/plugin?id=2773)而设计的,easyinput 内置了边框,图标等,同时包含 input 所有功能 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-easyinput) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/88/88bb7f496246501aefec3ea3b9b6ddcab49faf0a.svn-base b/.svn/pristine/88/88bb7f496246501aefec3ea3b9b6ddcab49faf0a.svn-base new file mode 100644 index 0000000..ccb2c91 --- /dev/null +++ b/.svn/pristine/88/88bb7f496246501aefec3ea3b9b6ddcab49faf0a.svn-base @@ -0,0 +1,86 @@ +{ + "id": "uni-grid", + "displayName": "uni-grid 宫格", + "version": "1.4.0", + "description": "Grid 宫格组件,提供移动端常见的宫格布局,如九宫格。", + "keywords": [ + "uni-ui", + "uniui", + "九宫格", + "表格" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-icons"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/89/8911004d59f42d4af486100837a65b9b67ef96bb.svn-base b/.svn/pristine/89/8911004d59f42d4af486100837a65b9b67ef96bb.svn-base new file mode 100644 index 0000000..60aaa3e --- /dev/null +++ b/.svn/pristine/89/8911004d59f42d4af486100837a65b9b67ef96bb.svn-base @@ -0,0 +1,109 @@ +/** + * 获取文件名和后缀 + * @param {String} name + */ +export const get_file_ext = (name) => { + const last_len = name.lastIndexOf('.') + const len = name.length + return { + name: name.substring(0, last_len), + ext: name.substring(last_len + 1, len) + } +} + +/** + * 获取扩展名 + * @param {Array} fileExtname + */ +export const get_extname = (fileExtname) => { + if (!Array.isArray(fileExtname)) { + let extname = fileExtname.replace(/(\[|\])/g, '') + return extname.split(',') + } else { + return fileExtname + } + return [] +} + +/** + * 获取文件和检测是否可选 + */ +export const get_files_and_is_max = (res, _extname) => { + let filePaths = [] + let files = [] + if(!_extname || _extname.length === 0){ + return { + filePaths, + files + } + } + res.tempFiles.forEach(v => { + let fileFullName = get_file_ext(v.name) + const extname = fileFullName.ext.toLowerCase() + if (_extname.indexOf(extname) !== -1) { + files.push(v) + filePaths.push(v.path) + } + }) + if (files.length !== res.tempFiles.length) { + uni.showToast({ + title: `当前选择了${res.tempFiles.length}个文件 ,${res.tempFiles.length - files.length} 个文件格式不正确`, + icon: 'none', + duration: 5000 + }) + } + + return { + filePaths, + files + } +} + + +/** + * 获取图片信息 + * @param {Object} filepath + */ +export const get_file_info = (filepath) => { + return new Promise((resolve, reject) => { + uni.getImageInfo({ + src: filepath, + success(res) { + resolve(res) + }, + fail(err) { + reject(err) + } + }) + }) +} +/** + * 获取封装数据 + */ +export const get_file_data = async (files, type = 'image') => { + // 最终需要上传数据库的数据 + let fileFullName = get_file_ext(files.name) + const extname = fileFullName.ext.toLowerCase() + let filedata = { + name: files.name, + uuid: files.uuid, + extname: extname || '', + cloudPath: files.cloudPath, + fileType: files.fileType, + url: files.path || files.path, + size: files.size, //单位是字节 + image: {}, + path: files.path, + video: {} + } + if (type === 'image') { + const imageinfo = await get_file_info(files.path) + delete filedata.video + filedata.image.width = imageinfo.width + filedata.image.height = imageinfo.height + filedata.image.location = imageinfo.path + } else { + delete filedata.image + } + return filedata +} diff --git a/.svn/pristine/89/89deeef1aebeb17f6662d68a0244932305bf6fe8.svn-base b/.svn/pristine/89/89deeef1aebeb17f6662d68a0244932305bf6fe8.svn-base new file mode 100644 index 0000000..b394244 --- /dev/null +++ b/.svn/pristine/89/89deeef1aebeb17f6662d68a0244932305bf6fe8.svn-base @@ -0,0 +1,341 @@ +var MIN_DISTANCE = 10; + +/** + * 判断当前是否为H5、app-vue + */ +var IS_HTML5 = false +if (typeof window === 'object') IS_HTML5 = true + +/** + * 监听页面内值的变化,主要用于动态开关swipe-action + * @param {Object} newValue + * @param {Object} oldValue + * @param {Object} ownerInstance + * @param {Object} instance + */ +function showWatch(newVal, oldVal, ownerInstance, instance) { + var state = instance.getState() + getDom(instance, ownerInstance) + if (newVal && newVal !== 'none') { + openState(newVal, instance, ownerInstance) + return + } + + if (state.left) { + openState('none', instance, ownerInstance) + } + resetTouchStatus(instance) +} + +/** + * 开始触摸操作 + * @param {Object} e + * @param {Object} ins + */ +function touchstart(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState(); + getDom(instance, ownerInstance) + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + if (disabled) return + // 开始触摸时移除动画类 + instance.requestAnimationFrame(function() { + instance.removeClass('ani'); + ownerInstance.callMethod('closeSwipe'); + }) + + // 记录上次的位置 + state.x = state.left || 0 + // 计算滑动开始位置 + stopTouchStart(e, ownerInstance) +} + +/** + * 开始滑动操作 + * @param {Object} e + * @param {Object} ownerInstance + */ +function touchmove(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState() + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + if (disabled) return + // 是否可以滑动页面 + stopTouchMove(e); + if (state.direction !== 'horizontal') { + return; + } + + if (e.preventDefault) { + // 阻止页面滚动 + e.preventDefault() + } + + move(state.x + state.deltaX, instance, ownerInstance) +} + +/** + * 结束触摸操作 + * @param {Object} e + * @param {Object} ownerInstance + */ +function touchend(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState() + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + + if (disabled) return + // 滑动过程中触摸结束,通过阙值判断是开启还是关闭 + // fixed by mehaotian 定时器解决点击按钮,touchend 触发比 click 事件时机早的问题 ,主要是 ios13 + moveDirection(state.left, instance, ownerInstance) + +} + +/** + * 设置移动距离 + * @param {Object} value + * @param {Object} instance + * @param {Object} ownerInstance + */ +function move(value, instance, ownerInstance) { + value = value || 0 + var state = instance.getState() + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + // 获取可滑动范围 + state.left = range(value, -rightWidth, leftWidth); + instance.requestAnimationFrame(function() { + instance.setStyle({ + transform: 'translateX(' + state.left + 'px)', + '-webkit-transform': 'translateX(' + state.left + 'px)' + }) + }) + +} + +/** + * 获取元素信息 + * @param {Object} instance + * @param {Object} ownerInstance + */ +function getDom(instance, ownerInstance) { + var state = instance.getState() + var leftDom = ownerInstance.selectComponent('.button-group--left') + var rightDom = ownerInstance.selectComponent('.button-group--right') + var leftStyles = { + width: 0 + } + var rightStyles = { + width: 0 + } + leftStyles = leftDom.getBoundingClientRect() + rightStyles = rightDom.getBoundingClientRect() + + state.leftWidth = leftStyles.width || 0 + state.rightWidth = rightStyles.width || 0 + state.threshold = instance.getDataset().threshold +} + +/** + * 获取范围 + * @param {Object} num + * @param {Object} min + * @param {Object} max + */ +function range(num, min, max) { + return Math.min(Math.max(num, min), max); +} + + +/** + * 移动方向判断 + * @param {Object} left + * @param {Object} value + * @param {Object} ownerInstance + * @param {Object} ins + */ +function moveDirection(left, ins, ownerInstance) { + var state = ins.getState() + var threshold = state.threshold + var position = state.position + var isopen = state.isopen || 'none' + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + if (state.deltaX === 0) { + openState('none', ins, ownerInstance) + return + } + if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > 0 && + rightWidth + + left < threshold)) { + // right + openState('right', ins, ownerInstance) + } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > 0 && + leftWidth - left < threshold)) { + // left + openState('left', ins, ownerInstance) + } else { + // default + openState('none', ins, ownerInstance) + } +} + + +/** + * 开启状态 + * @param {Boolean} type + * @param {Object} ins + * @param {Object} ownerInstance + */ +function openState(type, ins, ownerInstance) { + var state = ins.getState() + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + var left = '' + state.isopen = state.isopen ? state.isopen : 'none' + switch (type) { + case "left": + left = leftWidth + break + case "right": + left = -rightWidth + break + default: + left = 0 + } + + // && !state.throttle + + if (state.isopen !== type) { + state.throttle = true + ownerInstance.callMethod('change', { + open: type + }) + + } + + state.isopen = type + // 添加动画类 + ins.requestAnimationFrame(function() { + ins.addClass('ani'); + move(left, ins, ownerInstance) + }) + // 设置最终移动位置,理论上只要进入到这个函数,肯定是要打开的 +} + + +function getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal'; + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical'; + } + return ''; +} + +/** + * 重置滑动状态 + * @param {Object} event + */ +function resetTouchStatus(instance) { + var state = instance.getState(); + state.direction = ''; + state.deltaX = 0; + state.deltaY = 0; + state.offsetX = 0; + state.offsetY = 0; +} + +/** + * 设置滑动开始位置 + * @param {Object} event + */ +function stopTouchStart(event) { + var instance = event.instance; + var state = instance.getState(); + resetTouchStatus(instance); + var touch = event.touches[0]; + if (IS_HTML5 && isPC()) { + touch = event; + } + state.startX = touch.clientX; + state.startY = touch.clientY; +} + +/** + * 滑动中,是否禁止打开 + * @param {Object} event + */ +function stopTouchMove(event) { + var instance = event.instance; + var state = instance.getState(); + var touch = event.touches[0]; + if (IS_HTML5 && isPC()) { + touch = event; + } + state.deltaX = touch.clientX - state.startX; + state.deltaY = touch.clientY - state.startY; + state.offsetY = Math.abs(state.deltaY); + state.offsetX = Math.abs(state.deltaX); + state.direction = state.direction || getDirection(state.offsetX, state.offsetY); +} + +function isPC() { + var userAgentInfo = navigator.userAgent; + var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; + var flag = true; + for (var v = 0; v < Agents.length - 1; v++) { + if (userAgentInfo.indexOf(Agents[v]) > 0) { + flag = false; + break; + } + } + return flag; +} + +var movable = false + +function mousedown(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + touchstart(e, ins) + movable = true +} + +function mousemove(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + if (!movable) return + touchmove(e, ins) +} + +function mouseup(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + touchend(e, ins) + movable = false +} + +function mouseleave(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + movable = false +} + +module.exports = { + showWatch: showWatch, + touchstart: touchstart, + touchmove: touchmove, + touchend: touchend, + mousedown: mousedown, + mousemove: mousemove, + mouseup: mouseup, + mouseleave: mouseleave +} diff --git a/.svn/pristine/8a/8a2bffdbdeb51be10de7c4ae5c344aac990dfee6.svn-base b/.svn/pristine/8a/8a2bffdbdeb51be10de7c4ae5c344aac990dfee6.svn-base new file mode 100644 index 0000000..f0e6460 --- /dev/null +++ b/.svn/pristine/8a/8a2bffdbdeb51be10de7c4ae5c344aac990dfee6.svn-base @@ -0,0 +1,203 @@ + + + diff --git a/.svn/pristine/8a/8a575a1c56b4030836f9e0bb2b55de3e36969a1a.svn-base b/.svn/pristine/8a/8a575a1c56b4030836f9e0bb2b55de3e36969a1a.svn-base new file mode 100644 index 0000000..e180301 --- /dev/null +++ b/.svn/pristine/8a/8a575a1c56b4030836f9e0bb2b55de3e36969a1a.svn-base @@ -0,0 +1,333 @@ + + + + diff --git a/.svn/pristine/8a/8ac1eb7bdf2003acb5f2dd8ba2c86c002c40e1bb.svn-base b/.svn/pristine/8a/8ac1eb7bdf2003acb5f2dd8ba2c86c002c40e1bb.svn-base new file mode 100644 index 0000000..cd5863d --- /dev/null +++ b/.svn/pristine/8a/8ac1eb7bdf2003acb5f2dd8ba2c86c002c40e1bb.svn-base @@ -0,0 +1,181 @@ + + + + + diff --git a/.svn/pristine/8b/8b9e28fe437ed78af99e5afa7a5f9814e49778af.svn-base b/.svn/pristine/8b/8b9e28fe437ed78af99e5afa7a5f9814e49778af.svn-base new file mode 100644 index 0000000..ab08656 --- /dev/null +++ b/.svn/pristine/8b/8b9e28fe437ed78af99e5afa7a5f9814e49778af.svn-base @@ -0,0 +1,187 @@ + + + + diff --git a/.svn/pristine/8b/8bb2e0326ddb9d5e9c3e1fc84f64804573d863d1.svn-base b/.svn/pristine/8b/8bb2e0326ddb9d5e9c3e1fc84f64804573d863d1.svn-base new file mode 100644 index 0000000..7cc0ccb --- /dev/null +++ b/.svn/pristine/8b/8bb2e0326ddb9d5e9c3e1fc84f64804573d863d1.svn-base @@ -0,0 +1,82 @@ +{ + "id": "uni-scss", + "displayName": "uni-scss 辅助样式", + "version": "1.0.3", + "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。", + "keywords": [ + "uni-scss", + "uni-ui", + "辅助样式" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "JS SDK", + "通用 SDK" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/8c/8c20dca8ecbf3300e92c544a0fb00dbf700fc314.svn-base b/.svn/pristine/8c/8c20dca8ecbf3300e92c544a0fb00dbf700fc314.svn-base new file mode 100644 index 0000000..99cd567 --- /dev/null +++ b/.svn/pristine/8c/8c20dca8ecbf3300e92c544a0fb00dbf700fc314.svn-base @@ -0,0 +1,88 @@ +{ + "id": "uni-goods-nav", + "displayName": "uni-goods-nav 商品导航", + "version": "1.2.0", + "description": "商品导航组件主要用于电商类应用底部导航,可自定义加入购物车,购买等操作", + "keywords": [ + "uni-ui", + "uniui", + "商品导航" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/8c/8cb53b106085e123f4ba81bea030287030521e17.svn-base b/.svn/pristine/8c/8cb53b106085e123f4ba81bea030287030521e17.svn-base new file mode 100644 index 0000000..e535406 --- /dev/null +++ b/.svn/pristine/8c/8cb53b106085e123f4ba81bea030287030521e17.svn-base @@ -0,0 +1,361 @@ + + + + + diff --git a/.svn/pristine/8c/8cdd98c1193576ece2de0af57439266fa988dfc1.svn-base b/.svn/pristine/8c/8cdd98c1193576ece2de0af57439266fa988dfc1.svn-base new file mode 100644 index 0000000..2f3b102 --- /dev/null +++ b/.svn/pristine/8c/8cdd98c1193576ece2de0af57439266fa988dfc1.svn-base @@ -0,0 +1,39 @@ +## 2.0.13(2021-11-18) +邱 +## 2.0.12(2021-11-18) +123123 +## 2.0.11(2021-11-18) +0000 +## 2.0.10(2021-11-18) +111234 +## 2.0.9(2021-11-18) +3333 +## 2.0.8(2021-11-18) +=== +## 2.0.7(2021-11-18) +111 +## 2.0.6(2021-05-26) +- test +## 0.0.37(2021-03-23) +- uni-forms 更新 校验器 +- uni-forms 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug + + +## 0.0.36(2021-03-23) +- uni-forms 更新 校验器 +- uni-forms 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug + + +## 0.0.35(2021-03-23) +- uni-forms 更新 校验器 +- uni-forms 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug + + +## 0.0.34(2021-03-23) +- 测试新同步插件 +## 0.0.33(2021-03-09) +- test +## 0.0.32(2021-02-24) +- 更新 read 2 +## 0.0.31(2021-02-24) +- 同步 readme.md diff --git a/.svn/pristine/8d/8d5cfc5ed5641ba75940a52e9a3ae9b5c796d53c.svn-base b/.svn/pristine/8d/8d5cfc5ed5641ba75940a52e9a3ae9b5c796d53c.svn-base new file mode 100644 index 0000000..7434e71 --- /dev/null +++ b/.svn/pristine/8d/8d5cfc5ed5641ba75940a52e9a3ae9b5c796d53c.svn-base @@ -0,0 +1,12 @@ + + +## Card 卡片 +> **组件名:uni-card** +> 代码块: `uCard` + +卡片视图组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-card) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/.svn/pristine/8d/8de30ae1d2e266d679edce2243013453bfb582e4.svn-base b/.svn/pristine/8d/8de30ae1d2e266d679edce2243013453bfb582e4.svn-base new file mode 100644 index 0000000..e61d294 Binary files /dev/null and b/.svn/pristine/8d/8de30ae1d2e266d679edce2243013453bfb582e4.svn-base differ diff --git a/.svn/pristine/8e/8eaac23173c6b71b1cf3845831df96a655627ece.svn-base b/.svn/pristine/8e/8eaac23173c6b71b1cf3845831df96a655627ece.svn-base new file mode 100644 index 0000000..e824350 --- /dev/null +++ b/.svn/pristine/8e/8eaac23173c6b71b1cf3845831df96a655627ece.svn-base @@ -0,0 +1,293 @@ + + + + + diff --git a/.svn/pristine/8e/8ec4a618fad02f791be0bd4f7acd5e2e7d70d79b.svn-base b/.svn/pristine/8e/8ec4a618fad02f791be0bd4f7acd5e2e7d70d79b.svn-base new file mode 100644 index 0000000..3b4c5a2 --- /dev/null +++ b/.svn/pristine/8e/8ec4a618fad02f791be0bd4f7acd5e2e7d70d79b.svn-base @@ -0,0 +1,65 @@ + + + + + diff --git a/.svn/pristine/90/901e570b9643dcd2eee31fa210463969d5e44a31.svn-base b/.svn/pristine/90/901e570b9643dcd2eee31fa210463969d5e44a31.svn-base new file mode 100644 index 0000000..9a2f732 --- /dev/null +++ b/.svn/pristine/90/901e570b9643dcd2eee31fa210463969d5e44a31.svn-base @@ -0,0 +1,28 @@ + + + + + diff --git a/.svn/pristine/90/90a3d543782e9516495a528c2665ca832d60699e.svn-base b/.svn/pristine/90/90a3d543782e9516495a528c2665ca832d60699e.svn-base new file mode 100644 index 0000000..862af17 --- /dev/null +++ b/.svn/pristine/90/90a3d543782e9516495a528c2665ca832d60699e.svn-base @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "重置", + "filter-dropdown.search": "搜索", + "filter-dropdown.submit": "确定", + "filter-dropdown.filter": "筛选", + "filter-dropdown.gt": "大于等于", + "filter-dropdown.lt": "小于等于", + "filter-dropdown.date": "日期范围" +} diff --git a/.svn/pristine/90/90b1409c39d518a4459925777da31cfba639fb50.svn-base b/.svn/pristine/90/90b1409c39d518a4459925777da31cfba639fb50.svn-base new file mode 100644 index 0000000..045c082 --- /dev/null +++ b/.svn/pristine/90/90b1409c39d518a4459925777da31cfba639fb50.svn-base @@ -0,0 +1,270 @@ + + + + + diff --git a/.svn/pristine/90/90da480e4904d153e568b9a1f864b276190c7bfb.svn-base b/.svn/pristine/90/90da480e4904d153e568b9a1f864b276190c7bfb.svn-base new file mode 100644 index 0000000..d320db4 Binary files /dev/null and b/.svn/pristine/90/90da480e4904d153e568b9a1f864b276190c7bfb.svn-base differ diff --git a/.svn/pristine/90/90fe9405c2e3cab13001fa1da227bbdc09c5e9e5.svn-base b/.svn/pristine/90/90fe9405c2e3cab13001fa1da227bbdc09c5e9e5.svn-base new file mode 100644 index 0000000..cf29a6c --- /dev/null +++ b/.svn/pristine/90/90fe9405c2e3cab13001fa1da227bbdc09c5e9e5.svn-base @@ -0,0 +1,392 @@ +/* 颜色 */ +.col_E81B27 { color: #E81B27; } +.col_E60012 { color: #E60012; } +.col_FE1515 { color: #FE1515; } +.col_25BFA7 { color: #25BFA7; } +.col_FF590F { color: #FF590F; } +.col_B3B3B3 { color: #B3B3B3; } +.col_2EA5E2 { color: #2EA5E2; } +.col_01B6B8 { color: #01B6B8; } +.col_FF3F45 { color: #FF3F45; } +.col_03C6BF { color: #03C6BF; } +.col_E42419 { color: #E42419; } +.col_FF0101 { color: #FF0101; } +.col_FF0000 { color: #FF0000; } +.col_FF5E00 { color: #FF5E00; } +.col_3DBF7F { color: #3DBF7F; } +.col_ABABB3 { color: #ABABB3;} +.col_0ECE93 { color: #0ECE93; } +.col_EB1513 { color: #EB1513; } +.col_c5c6Cc {color: #C5C6CA;} +.col_a6a5a5 {color: #A6A5A5;} +.col_EA3F49 { color: #EA3F49; } +.col_108EE9 { color: #108EE9; } +.col_FE9600 { color: #FE9600; } +.col_63A35C { color: #63A35C; } +.col_04A4FC { color: #04A4FC; } +.col_FFC9EE { color: #FFC9EE; } +.col_FF3EC9 { color: #FF3EC9; } +.col_FA5211 { color: #FA5211; } +.col_02C7D2 { color: #02C7D2; } +.col_828281 { color: #828281;} +.col_ecebf0 { color: #ecebf0;} +.col_fec85e { color: #FEC85E;} +.col_ff7f69 { color: #FF7F69;} +.col_e9caa9 { color: #E9CAA9;} +.col_b7bed8 { color: #B7BED8;} +.col_fd4449 {color: #FD4449;} +.col_2cc778 {color: #2cc778;} +.col_214f37 {color: #214f37;} +.col_b1b1b1 {color: #b1b1b1} +.col_c0c5cc {color: #c0c5cc;} +.col_bcbcbc {color: #bcbcbc;} +.col_070707 {color: #070707;} +.col_707070 {color: #707070;} +.col_b5b5b5 {color: #b5b5b5;} +.col_b9b9b9 {color: #b9b9b9;} +.col_a5a4a4 {color: #A5A4A4;} +.col_d2d2d2 {color: #d2d2d2;} +.col_534435 {color: #534435} +.col_1d2e89 {color: #1D2E89;} +.col_3d444d {color: #3d444d;} +.col_d12324 {color: #d12324;} +.col_002fa7 {color: #002fa7;} +.col_868686 {color: #868686;} +.col_808080 {color: #808080;} +.col_e81700 {color: #e81700;} +.col_fd5f07 {color: #FD5F07;} +.col_e51f38 {color: #E51F38;} +.col_e7cb90 {color: #e7cb90;} +.bge51f38 {background: #E51F38;} +.bgfd5f07 {background: #FD5F07;} +.bgf28f9c {background: #f28f9c;} +.bg1d2e89 {background: #1d2e89;} +.bgf2f2f2 {background: #f2f2f2;} +.bg002fa7 {background: #002fa7;} +.bgf5f5f5 {background: #f5f5f5;} +.bgf6f6f6 { background: #f6f6f6;} +.bgd4f4e4 {background: #d4f4e4;} +.bg9fe6c2 {background: #9fe6c2;} +.bgf5f7ff {background: #f5f7ff;} +.bgf45349 {background: #f45349;} +.bgea2466 {background: #ea2466;} +.bge7f9f0 {background-color: #e7f9f0;} +.bg2cc778 {background-color: #2cc778;} +.bgf83d47 {background-color: #f83d47;} +.bgfbfabc {background-color: #fbfafc;} +.bgFD4449 {background-color: #FD4449;} +.bgEB1513 {background-color: #EB1513;} +.bgFE9600 {background-color: #FE9600;} +.bg63A35C {background-color: #63A35C;} +.bg108EE9 {background-color: #108EE9;} +.bgFF0000 {background-color: #FF0000;} +.bg3DBF7F { background-color: #3DBF7F; } +.bgFFC9EE { background-color: #FFC9EE; } +.bg04CAFC { background-color: #04CAFC; } +.bgFF60E8 { background-color: #FF60E8; } +.bgFF3EC9 { background-color: #FF3EC9; } +.bg04A4FC { background-color: #04A4FC; } +.bgFF9000 { background-color: #FF9000; } +.bg02C7D2 { background-color: #02C7D2; } +.bgf7f6fa { background-color: #F7F6FA; } +.bg35d2db { background-color: #35D2DB; } +.bgedf0f5 { background-color: #EDF0F5;} +.bgfec85e { background-color: #FEC85E;} +.bgb7bed8 { background-color: #B7BED8;} +.bgdfc189 { background: #dfc189;} +.bge6e6e6 { background-color: #e6e6e6;} +.bg534e64 { background-color: #534E64;} +.bgf7f6fa { background-color: #f7f6fa;} +.bge9caa9 { background-color: #E9CAA9;} +.bgf7f7f7 { background: #F7F7F7;} +.bgf8f8f8 { background-color: #f8f8f8;} +view, +scroll-view, +swiper, +button, +input, +textarea, +label, +navigator, +image { + box-sizing: border-box; + z-index: 1; +} +//设置padding和border 不会改变盒子原有的大小//设置padding和border 不会改变盒子原有的大小 + +// // 定义flex等分 +@for $i from 0 through 12 { + .f-#{$i} { + flex: $i; + } + +} +/* +编译后的css代码 +.f-1{ + flex: 1; +} +.f-2{ + flex: 2; +} +.f-3{ + flex: 3; +} + .f-4{ + flex: 4; + } + .f-5{ + flex: 5; + } + .f-6{ + flex: 6; + } + .f-7{ + flex: 7; + } + .f-8{ + flex: 8; + } + .f-9{ + flex: 9; + } + .f-10{ + flex: 10; + } + .f-11{ + flex: 11; + } + .f-12{ + flex: 12; + } + */ +//定义zindex层级 +@for $i from 0 through 1000 { + .zi-#{$i} { + z-index: $i; + } + +} +// 定义字体(rpx)单位,10~100rpx fs-10 ~ fs-100 +@for $i from 10 through 100 { + .fs-#{$i} { + font-size: $i + rpx; + } +} +// 定义内外边距,历遍0-500 +@for $i from 0 through 500 { + //m-all-30 + .m-all-#{$i} { + margin: $i + rpx; + } + //p-all-30 + .p-all-#{$i} { + padding: $i + rpx; + } + @each $short, $long in l left, t top, r right, b bottom { + // 缩写版,结果如: ml-1 mr-10 mb-100 mt-135 + // 定义外边距 + .m#{$short}-#{$i} { + margin-#{$long}: $i + rpx; + } + // 定义内边距,结果如:pl-30 pr-30 pb-30 pt-30 + .p#{$short}-#{$i} { + padding-#{$long}: $i + rpx; + } + } +} +//全局宽高 +.h100vh {//100 vh + height: 100vh; + max-height: 100vh; + min-height: 100vh; +} +.h100 {//100% + height: 100%; + max-height: 100%; + min-height: 100%; +} + +// 嵌入字体 + +// @font-face { +// font-family: test; +// font-weight: normal; +// font-style: normal; +// src: url("~@/SourceHanSansK-Normal/SourceHanSansK-Normal.ttf") format("truetype"); +// } +//字体 +.fn-kt {//楷体 + font-family: KaiTi; +} +.fn-st {// + font-family: serif; +} +.fn-ft { + font-family: fantasy; +} +@for $i from 0 through 750 { + // w-0 ~ w-750 + .w-#{$i} { + width: $i + rpx; + max-width: $i + rpx; + min-width: $i + rpx; + } + // h-0 ~ h-750 + .h-#{$i} { + height: $i + rpx; + max-height: $i + rpx; + min-height: $i + rpx; + } + // lh-0 ~ lh-750 + .lh-#{$i} { + line-height: $i + rpx; + } +} + +//全局圆角 行高 br-0 ~ br-100 +@for $i from 0 through 100 { + // w-0 ~ w-750 + .br-#{$i} { + border-radius: $i + rpx; + } + // h-0 ~ h-750 +} +/* 对齐方式 */ +.tct{text-align: center;} +.trt{text-align: right;} +.tlt{text-align: left;} +.w100{width: 100%;} +.box{box-sizing: border-box;} +.con{box-sizing: content-box;} +.relative{position: relative;} +.absolute{position: absolute;} +.fixed{position: fixed;} +.d-none{display: none;} +.d-block{display: inline-block;} +.blb_f1{border-bottom: 3rpx solid #F1F1F1;} +.blb_ff{border-bottom: 3rpx solid #FFFFFF;} +.bltb_e1dede{border-bottom: 3rpx solid #e1dede; border-top: 3rpx solid #e1dede;} +/* 粗体 */ +.fw-b { + font-weight: bold; +} + +.fw-l { + font-weight: lighter; +} + +.fw-n { + font-weight: normal; +} +.fw-600 { + font-weight: 600; +} +.fw-700 { + font-weight: 700; +} +.fw-800 { + font-weight: 800; +} + +//字间距 +@for $i from 0 through 20 { + // w-0 ~ w-750 + .ls-#{$i} { + letter-spacing: $i + rpx; + } +} +/*苹果底部选项栏适配*/ +.nav_bottom { + box-sizing: content-box; + padding-bottom: constant(safe-area-inset-bottom);//兼容 IOS<11.2 + padding-bottom: env(safe-area-inset-bottom);//兼容 IOS>11.2 +} + +/* 特殊处理 */ +.tline { + text-decoration: line-through; + /* 加删除线 */ +} +/* 多少行(3~15) */ +.one_overflow{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} /* 一行隐藏 */ +.two_overflow{ + overflow:hidden; + display:-webkit-box; + -webkit-box-orient:vertical; + -webkit-line-clamp:2; +} /* 二行隐藏 */ +.three_overflow{ + overflow:hidden; + display:-webkit-box; + -webkit-box-orient:vertical; + -webkit-line-clamp:3; +} /* 三行隐藏 */ +/*========== flex布局相关 ==========*/ +/* http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html */ +.rows {display: flex;display: -webkit-flex;flex-direction: row;} /* 盒子内容横向布局 */ +.rowsa {display: flex;display: -webkit-flex;flex-direction: row;justify-content: space-around;} /* 盒子内容居中间间隙布局 */ +.rowsb {display: flex;display: -webkit-flex;flex-direction: row;justify-content: space-between;} /* 盒子内容两端间隙布局 */ +.rowsc {display: flex;display: -webkit-flex;flex-direction: row;justify-content: center;} /* 盒子内容居中布局 */ +.rowse {display: flex;display: -webkit-flex;flex-direction: row;justify-content: flex-end;} /* 盒子内容结尾布局 */ +.rowsm {align-items: center;} +.rowsw {flex-wrap: wrap;} +.rowsl {display: flex;display: -webkit-flex;flex-direction: column;} /* 盒子内容竖向中间间隙布局 */ +.rowsal {display: flex;display: -webkit-flex;justify-content: space-around;flex-direction: column;} /* 盒子内容竖向中间间隙布局 */ +.rowsbl {display: flex;display: -webkit-flex;justify-content: space-between;flex-direction: column;} /* 盒子内容竖向两端间隙布局 */ +.rowscl {display: flex;display: -webkit-flex;justify-content: center;flex-direction: column;} /* 盒子内容竖向中间居中布局 */ +.rowsce {display: flex;display: -webkit-flex;flex-direction: column;justify-content: flex-end;} /* 盒子内容竖向结尾布局 */ +.notYet {text-align: center;font-size: 30rpx;color: #999999;padding: 30rpx 0rpx;} /* 页面无数据 */ +.arrow{width: 7px;height: 7px;border-top: 1px solid #333333;border-right: 1px solid #333333;transform: rotate(45deg);}/* 右箭头 */ +.shadow_total{box-shadow: 0px 0px 5rpx 6rpx rgba(136,136,136,0.1);} +.shadow{box-shadow: 0px 0px 12rpx 12rpx rgba(136,136,136,0.1);} +.shadow_bottom{box-shadow: 2px 2px 6rpx 2rpx rgba(136,136,136,0.24);} +image{height: auto;} +/deep/::-webkit-scrollbar { /* 隐藏滚动条,但依旧具备可以滚动的功能 */ + display: none; + width: 0; + height: 0; + color: transparent; + background: transparent; +} + +/* 根据设计图的主题色自行扩展颜色包*/ +.col000{color: #000000;} +.col111{color: #111111;} +.col222{color: #222222;} +.col333{color: #333333;} +.col444{color: #444444;} +.col555{color: #555555;} +.col666{color: #666666;} +.col777{color: #777777;} +.col888{color: #888888;} +.col999{color: #999999;} +.colfff{color: #FFFFFF;} +.bgf1{background-color: #F1F1F1;} +.bgf5{background-color: #F5F5F5;} +.bgf9{background-color: #F9F9F9;} +.bg99{background-color: #999999;} + +.bgff{background-color: #FFFFFF;} +.bgee{background-color: #eeeeee;} +.bg { + background-image: linear-gradient(#FF5D5C,#fa3327); +} +.bg_linear { + background-image: linear-gradient(#FF5D5C,#fa3327); +} +.bg_linear_z { + background-image: linear-gradient(#dd3705,#ff8d43); +} + +.bg_linear_l { + background-image: linear-gradient(to left, #dd3705,#ff8d43); +} + +.col { + color: #fb3e35; +} diff --git a/.svn/pristine/91/9144e513a9c525891a4a22cb567c11592fbc1ea6.svn-base b/.svn/pristine/91/9144e513a9c525891a4a22cb567c11592fbc1ea6.svn-base new file mode 100644 index 0000000..897d7a3 Binary files /dev/null and b/.svn/pristine/91/9144e513a9c525891a4a22cb567c11592fbc1ea6.svn-base differ diff --git a/.svn/pristine/91/916b348b725c595e274a28ec1860005c73a7a82e.svn-base b/.svn/pristine/91/916b348b725c595e274a28ec1860005c73a7a82e.svn-base new file mode 100644 index 0000000..3c89528 --- /dev/null +++ b/.svn/pristine/91/916b348b725c595e274a28ec1860005c73a7a82e.svn-base @@ -0,0 +1,56 @@ + +@mixin fn($space,$direction,$size,$n) { + @if $n { + #{$space}-#{$direction}: #{$size*$uni-space-root}px + } @else { + #{$space}-#{$direction}: #{-$size*$uni-space-root}px + } +} +@mixin get-styles($direction,$i,$space,$n){ + @if $direction == t { + @include fn($space, top,$i,$n); + } + @if $direction == r { + @include fn($space, right,$i,$n); + } + @if $direction == b { + @include fn($space, bottom,$i,$n); + } + @if $direction == l { + @include fn($space, left,$i,$n); + } + @if $direction == x { + @include fn($space, left,$i,$n); + @include fn($space, right,$i,$n); + } + @if $direction == y { + @include fn($space, top,$i,$n); + @include fn($space, bottom,$i,$n); + } + @if $direction == a { + @if $n { + #{$space}:#{$i*$uni-space-root}px; + } @else { + #{$space}:#{-$i*$uni-space-root}px; + } + } +} + +@each $orientation in m,p { + $space: margin; + @if $orientation == m { + $space: margin; + } @else { + $space: padding; + } + @for $i from 0 through 16 { + @each $direction in t, r, b, l, x, y, a { + .uni-#{$orientation}#{$direction}-#{$i} { + @include get-styles($direction,$i,$space,true); + } + .uni-#{$orientation}#{$direction}-n#{$i} { + @include get-styles($direction,$i,$space,false); + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/92/9213dcb5ea31f991d982803f322ef7b1fc953f85.svn-base b/.svn/pristine/92/9213dcb5ea31f991d982803f322ef7b1fc953f85.svn-base new file mode 100644 index 0000000..67774a2 --- /dev/null +++ b/.svn/pristine/92/9213dcb5ea31f991d982803f322ef7b1fc953f85.svn-base @@ -0,0 +1,205 @@ + + + + diff --git a/.svn/pristine/92/928d05113f321697610efef8b4ddbb944940d6ce.svn-base b/.svn/pristine/92/928d05113f321697610efef8b4ddbb944940d6ce.svn-base new file mode 100644 index 0000000..d1c4e77 --- /dev/null +++ b/.svn/pristine/92/928d05113f321697610efef8b4ddbb944940d6ce.svn-base @@ -0,0 +1,86 @@ +{ + "id": "uni-icons", + "displayName": "uni-icons 图标", + "version": "1.3.5", + "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。", + "keywords": [ + "uni-ui", + "uniui", + "icon", + "图标" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.14" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/92/929135fdc029171e431cff2013712c0f7a90bb13.svn-base b/.svn/pristine/92/929135fdc029171e431cff2013712c0f7a90bb13.svn-base new file mode 100644 index 0000000..9ee75a0 --- /dev/null +++ b/.svn/pristine/92/929135fdc029171e431cff2013712c0f7a90bb13.svn-base @@ -0,0 +1,16 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-notice-bar](https://uniapp.dcloud.io/component/uniui/uni-notice-bar) +## 1.1.1(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.9(2021-05-12) +- 新增 组件示例地址 +## 1.0.8(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.7(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.6(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/92/92a7923778920ca7e08fa78b44c88d224f2002b9.svn-base b/.svn/pristine/92/92a7923778920ca7e08fa78b44c88d224f2002b9.svn-base new file mode 100644 index 0000000..3f153c7 --- /dev/null +++ b/.svn/pristine/92/92a7923778920ca7e08fa78b44c88d224f2002b9.svn-base @@ -0,0 +1,6 @@ +{ + "uni-countdown.day": "天", + "uni-countdown.h": "時", + "uni-countdown.m": "分", + "uni-countdown.s": "秒" +} diff --git a/.svn/pristine/92/92e6f7ffe5474a9b1ce707ab6b0ebfb99e6855f5.svn-base b/.svn/pristine/92/92e6f7ffe5474a9b1ce707ab6b0ebfb99e6855f5.svn-base new file mode 100644 index 0000000..f388f46 Binary files /dev/null and b/.svn/pristine/92/92e6f7ffe5474a9b1ce707ab6b0ebfb99e6855f5.svn-base differ diff --git a/.svn/pristine/92/92ef8fc1d523e0332bbba8879b412cfbb062a9e1.svn-base b/.svn/pristine/92/92ef8fc1d523e0332bbba8879b412cfbb062a9e1.svn-base new file mode 100644 index 0000000..e4c21e1 Binary files /dev/null and b/.svn/pristine/92/92ef8fc1d523e0332bbba8879b412cfbb062a9e1.svn-base differ diff --git a/.svn/pristine/93/93112a4f9cea33a4bc25356d6240987624ea0b4e.svn-base b/.svn/pristine/93/93112a4f9cea33a4bc25356d6240987624ea0b4e.svn-base new file mode 100644 index 0000000..7fd8d9d --- /dev/null +++ b/.svn/pristine/93/93112a4f9cea33a4bc25356d6240987624ea0b4e.svn-base @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "anterior", + "uni-pagination.nextText": "próxima" +} diff --git a/.svn/pristine/94/94fda76e1a1e96ad3dfeb088cf8689cc87c62129.svn-base b/.svn/pristine/94/94fda76e1a1e96ad3dfeb088cf8689cc87c62129.svn-base new file mode 100644 index 0000000..80ee62f --- /dev/null +++ b/.svn/pristine/94/94fda76e1a1e96ad3dfeb088cf8689cc87c62129.svn-base @@ -0,0 +1,31 @@ +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; +// 主色 +$uni-primary: #2979ff; +// 辅助色 +$uni-success: #4cd964; +// 警告色 +$uni-warning: #f0ad4e; +// 错误色 +$uni-error: #dd524d; +// 描述色 +$uni-info: #909399; +// 中性色 +$uni-main-color: #303133; +$uni-base-color: #606266; +$uni-secondary-color: #909399; +$uni-extra-color: #C0C4CC; +// 背景色 +$uni-bg-color: #f5f5f5; +// 边框颜色 +$uni-border-1: #DCDFE6; +$uni-border-2: #E4E7ED; +$uni-border-3: #EBEEF5; +$uni-border-4: #F2F6FC; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); diff --git a/.svn/pristine/95/951cbfa959bf165470eb8adb7abb34daef892ecf.svn-base b/.svn/pristine/95/951cbfa959bf165470eb8adb7abb34daef892ecf.svn-base new file mode 100644 index 0000000..3527b03 --- /dev/null +++ b/.svn/pristine/95/951cbfa959bf165470eb8adb7abb34daef892ecf.svn-base @@ -0,0 +1,13 @@ + + +## SegmentedControl 分段器 +> **组件名:uni-segmented-control** +> 代码块: `uSegmentedControl` + + +用作不同视图的显示 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-segmented-control) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/.svn/pristine/95/954c501b602ef31ae4ed5f3d4f05b73194a8822a.svn-base b/.svn/pristine/95/954c501b602ef31ae4ed5f3d4f05b73194a8822a.svn-base new file mode 100644 index 0000000..754e753 --- /dev/null +++ b/.svn/pristine/95/954c501b602ef31ae4ed5f3d4f05b73194a8822a.svn-base @@ -0,0 +1,86 @@ +{ + "id": "uni-table", + "displayName": "uni-table 表格", + "version": "1.2.0", + "description": "表格组件,多用于展示多条结构类似的数据,如", + "keywords": [ + "uni-ui", + "uniui", + "table", + "表格" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-datetime-picker"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "n", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/95/958f366bce14ff59167dcc83882859a2d90d8a9b.svn-base b/.svn/pristine/95/958f366bce14ff59167dcc83882859a2d90d8a9b.svn-base new file mode 100644 index 0000000..66e7312 --- /dev/null +++ b/.svn/pristine/95/958f366bce14ff59167dcc83882859a2d90d8a9b.svn-base @@ -0,0 +1,47 @@ + + + + + diff --git a/.svn/pristine/98/983cf9ebe93f2879ff47ed3c60fed6e16f8c2fbe.svn-base b/.svn/pristine/98/983cf9ebe93f2879ff47ed3c60fed6e16f8c2fbe.svn-base new file mode 100644 index 0000000..679b12f --- /dev/null +++ b/.svn/pristine/98/983cf9ebe93f2879ff47ed3c60fed6e16f8c2fbe.svn-base @@ -0,0 +1,509 @@ + + + + + diff --git a/.svn/pristine/99/991d8c9ffbaa4cf320dc6beb336ef63b21e81e13.svn-base b/.svn/pristine/99/991d8c9ffbaa4cf320dc6beb336ef63b21e81e13.svn-base new file mode 100644 index 0000000..ddb24c6 --- /dev/null +++ b/.svn/pristine/99/991d8c9ffbaa4cf320dc6beb336ef63b21e81e13.svn-base @@ -0,0 +1,10 @@ + + +## DataCheckbox 数据驱动的单选复选框 +> **组件名:uni-data-checkbox** +> 代码块: `uDataCheckbox` + + +本组件是基于uni-app基础组件checkbox的封装。本组件要解决问题包括: + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-card) \ No newline at end of file diff --git a/.svn/pristine/99/9952475c87efb05f088d7986cd7a30eda5255c47.svn-base b/.svn/pristine/99/9952475c87efb05f088d7986cd7a30eda5255c47.svn-base new file mode 100644 index 0000000..7cec240 Binary files /dev/null and b/.svn/pristine/99/9952475c87efb05f088d7986cd7a30eda5255c47.svn-base differ diff --git a/.svn/pristine/99/99efe8cedd96cbf70a9fae2412ca16942d6bb8ef.svn-base b/.svn/pristine/99/99efe8cedd96cbf70a9fae2412ca16942d6bb8ef.svn-base new file mode 100644 index 0000000..fd8e259 Binary files /dev/null and b/.svn/pristine/99/99efe8cedd96cbf70a9fae2412ca16942d6bb8ef.svn-base differ diff --git a/.svn/pristine/9a/9ae26d3806f59e2dc3bbfc589ebda74e872b9f4e.svn-base b/.svn/pristine/9a/9ae26d3806f59e2dc3bbfc589ebda74e872b9f4e.svn-base new file mode 100644 index 0000000..152b605 --- /dev/null +++ b/.svn/pristine/9a/9ae26d3806f59e2dc3bbfc589ebda74e872b9f4e.svn-base @@ -0,0 +1,368 @@ + + + + + diff --git a/.svn/pristine/9b/9b8c1c916fecec2638b844effafbbcac2f74f9a6.svn-base b/.svn/pristine/9b/9b8c1c916fecec2638b844effafbbcac2f74f9a6.svn-base new file mode 100644 index 0000000..253092f --- /dev/null +++ b/.svn/pristine/9b/9b8c1c916fecec2638b844effafbbcac2f74f9a6.svn-base @@ -0,0 +1,14 @@ + + +## SearchBar 搜索栏 + +> **组件名:uni-search-bar** +> 代码块: `uSearchBar` + + +搜索栏组件 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-search-bar) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/.svn/pristine/9b/9bf901bf566bdb95fd1cb53ee682daa9dcf4e530.svn-base b/.svn/pristine/9b/9bf901bf566bdb95fd1cb53ee682daa9dcf4e530.svn-base new file mode 100644 index 0000000..7889936 --- /dev/null +++ b/.svn/pristine/9b/9bf901bf566bdb95fd1cb53ee682daa9dcf4e530.svn-base @@ -0,0 +1,1169 @@ +export default { + "id": "2852637", + "name": "uniui图标库", + "font_family": "uniicons", + "css_prefix_text": "uniui-", + "description": "", + "glyphs": [ + { + "icon_id": "25027049", + "name": "yanse", + "font_class": "color", + "unicode": "e6cf", + "unicode_decimal": 59087 + }, + { + "icon_id": "25027048", + "name": "wallet", + "font_class": "wallet", + "unicode": "e6b1", + "unicode_decimal": 59057 + }, + { + "icon_id": "25015720", + "name": "settings-filled", + "font_class": "settings-filled", + "unicode": "e6ce", + "unicode_decimal": 59086 + }, + { + "icon_id": "25015434", + "name": "shimingrenzheng-filled", + "font_class": "auth-filled", + "unicode": "e6cc", + "unicode_decimal": 59084 + }, + { + "icon_id": "24934246", + "name": "shop-filled", + "font_class": "shop-filled", + "unicode": "e6cd", + "unicode_decimal": 59085 + }, + { + "icon_id": "24934159", + "name": "staff-filled-01", + "font_class": "staff-filled", + "unicode": "e6cb", + "unicode_decimal": 59083 + }, + { + "icon_id": "24932461", + "name": "VIP-filled", + "font_class": "vip-filled", + "unicode": "e6c6", + "unicode_decimal": 59078 + }, + { + "icon_id": "24932462", + "name": "plus_circle_fill", + "font_class": "plus-filled", + "unicode": "e6c7", + "unicode_decimal": 59079 + }, + { + "icon_id": "24932463", + "name": "folder_add-filled", + "font_class": "folder-add-filled", + "unicode": "e6c8", + "unicode_decimal": 59080 + }, + { + "icon_id": "24932464", + "name": "yanse-filled", + "font_class": "color-filled", + "unicode": "e6c9", + "unicode_decimal": 59081 + }, + { + "icon_id": "24932465", + "name": "tune-filled", + "font_class": "tune-filled", + "unicode": "e6ca", + "unicode_decimal": 59082 + }, + { + "icon_id": "24932455", + "name": "a-rilidaka-filled", + "font_class": "calendar-filled", + "unicode": "e6c0", + "unicode_decimal": 59072 + }, + { + "icon_id": "24932456", + "name": "notification-filled", + "font_class": "notification-filled", + "unicode": "e6c1", + "unicode_decimal": 59073 + }, + { + "icon_id": "24932457", + "name": "wallet-filled", + "font_class": "wallet-filled", + "unicode": "e6c2", + "unicode_decimal": 59074 + }, + { + "icon_id": "24932458", + "name": "paihangbang-filled", + "font_class": "medal-filled", + "unicode": "e6c3", + "unicode_decimal": 59075 + }, + { + "icon_id": "24932459", + "name": "gift-filled", + "font_class": "gift-filled", + "unicode": "e6c4", + "unicode_decimal": 59076 + }, + { + "icon_id": "24932460", + "name": "fire-filled", + "font_class": "fire-filled", + "unicode": "e6c5", + "unicode_decimal": 59077 + }, + { + "icon_id": "24928001", + "name": "refreshempty", + "font_class": "refreshempty", + "unicode": "e6bf", + "unicode_decimal": 59071 + }, + { + "icon_id": "24926853", + "name": "location-ellipse", + "font_class": "location-filled", + "unicode": "e6af", + "unicode_decimal": 59055 + }, + { + "icon_id": "24926735", + "name": "person-filled", + "font_class": "person-filled", + "unicode": "e69d", + "unicode_decimal": 59037 + }, + { + "icon_id": "24926703", + "name": "personadd-filled", + "font_class": "personadd-filled", + "unicode": "e698", + "unicode_decimal": 59032 + }, + { + "icon_id": "24923351", + "name": "back", + "font_class": "back", + "unicode": "e6b9", + "unicode_decimal": 59065 + }, + { + "icon_id": "24923352", + "name": "forward", + "font_class": "forward", + "unicode": "e6ba", + "unicode_decimal": 59066 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrow-right", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrowthinright", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrow-left", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrowthinleft", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrow-up", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrowthinup", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrow-down", + "unicode": "e6be", + "unicode_decimal": 59070 + },{ + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrowthindown", + "unicode": "e6be", + "unicode_decimal": 59070 + }, + { + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "bottom", + "unicode": "e6b8", + "unicode_decimal": 59064 + },{ + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "arrowdown", + "unicode": "e6b8", + "unicode_decimal": 59064 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "right", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "arrowright", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "top", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "arrowup", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "left", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "arrowleft", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923334", + "name": "eye", + "font_class": "eye", + "unicode": "e651", + "unicode_decimal": 58961 + }, + { + "icon_id": "24923335", + "name": "eye-filled", + "font_class": "eye-filled", + "unicode": "e66a", + "unicode_decimal": 58986 + }, + { + "icon_id": "24923336", + "name": "eye-slash", + "font_class": "eye-slash", + "unicode": "e6b3", + "unicode_decimal": 59059 + }, + { + "icon_id": "24923337", + "name": "eye-slash-filled", + "font_class": "eye-slash-filled", + "unicode": "e6b4", + "unicode_decimal": 59060 + }, + { + "icon_id": "24923305", + "name": "info-filled", + "font_class": "info-filled", + "unicode": "e649", + "unicode_decimal": 58953 + }, + { + "icon_id": "24923299", + "name": "reload-01", + "font_class": "reload", + "unicode": "e6b2", + "unicode_decimal": 59058 + }, + { + "icon_id": "24923195", + "name": "mic_slash_fill", + "font_class": "micoff-filled", + "unicode": "e6b0", + "unicode_decimal": 59056 + }, + { + "icon_id": "24923165", + "name": "map-pin-ellipse", + "font_class": "map-pin-ellipse", + "unicode": "e6ac", + "unicode_decimal": 59052 + }, + { + "icon_id": "24923166", + "name": "map-pin", + "font_class": "map-pin", + "unicode": "e6ad", + "unicode_decimal": 59053 + }, + { + "icon_id": "24923167", + "name": "location", + "font_class": "location", + "unicode": "e6ae", + "unicode_decimal": 59054 + }, + { + "icon_id": "24923064", + "name": "starhalf", + "font_class": "starhalf", + "unicode": "e683", + "unicode_decimal": 59011 + }, + { + "icon_id": "24923065", + "name": "star", + "font_class": "star", + "unicode": "e688", + "unicode_decimal": 59016 + }, + { + "icon_id": "24923066", + "name": "star-filled", + "font_class": "star-filled", + "unicode": "e68f", + "unicode_decimal": 59023 + }, + { + "icon_id": "24899646", + "name": "a-rilidaka", + "font_class": "calendar", + "unicode": "e6a0", + "unicode_decimal": 59040 + }, + { + "icon_id": "24899647", + "name": "fire", + "font_class": "fire", + "unicode": "e6a1", + "unicode_decimal": 59041 + }, + { + "icon_id": "24899648", + "name": "paihangbang", + "font_class": "medal", + "unicode": "e6a2", + "unicode_decimal": 59042 + }, + { + "icon_id": "24899649", + "name": "font", + "font_class": "font", + "unicode": "e6a3", + "unicode_decimal": 59043 + }, + { + "icon_id": "24899650", + "name": "gift", + "font_class": "gift", + "unicode": "e6a4", + "unicode_decimal": 59044 + }, + { + "icon_id": "24899651", + "name": "link", + "font_class": "link", + "unicode": "e6a5", + "unicode_decimal": 59045 + }, + { + "icon_id": "24899652", + "name": "notification", + "font_class": "notification", + "unicode": "e6a6", + "unicode_decimal": 59046 + }, + { + "icon_id": "24899653", + "name": "staff", + "font_class": "staff", + "unicode": "e6a7", + "unicode_decimal": 59047 + }, + { + "icon_id": "24899654", + "name": "VIP", + "font_class": "vip", + "unicode": "e6a8", + "unicode_decimal": 59048 + }, + { + "icon_id": "24899655", + "name": "folder_add", + "font_class": "folder-add", + "unicode": "e6a9", + "unicode_decimal": 59049 + }, + { + "icon_id": "24899656", + "name": "tune", + "font_class": "tune", + "unicode": "e6aa", + "unicode_decimal": 59050 + }, + { + "icon_id": "24899657", + "name": "shimingrenzheng", + "font_class": "auth", + "unicode": "e6ab", + "unicode_decimal": 59051 + }, + { + "icon_id": "24899565", + "name": "person", + "font_class": "person", + "unicode": "e699", + "unicode_decimal": 59033 + }, + { + "icon_id": "24899566", + "name": "email-filled", + "font_class": "email-filled", + "unicode": "e69a", + "unicode_decimal": 59034 + }, + { + "icon_id": "24899567", + "name": "phone-filled", + "font_class": "phone-filled", + "unicode": "e69b", + "unicode_decimal": 59035 + }, + { + "icon_id": "24899568", + "name": "phone", + "font_class": "phone", + "unicode": "e69c", + "unicode_decimal": 59036 + }, + { + "icon_id": "24899570", + "name": "email", + "font_class": "email", + "unicode": "e69e", + "unicode_decimal": 59038 + }, + { + "icon_id": "24899571", + "name": "personadd", + "font_class": "personadd", + "unicode": "e69f", + "unicode_decimal": 59039 + }, + { + "icon_id": "24899558", + "name": "chatboxes-filled", + "font_class": "chatboxes-filled", + "unicode": "e692", + "unicode_decimal": 59026 + }, + { + "icon_id": "24899559", + "name": "contact", + "font_class": "contact", + "unicode": "e693", + "unicode_decimal": 59027 + }, + { + "icon_id": "24899560", + "name": "chatbubble-filled", + "font_class": "chatbubble-filled", + "unicode": "e694", + "unicode_decimal": 59028 + }, + { + "icon_id": "24899561", + "name": "contact-filled", + "font_class": "contact-filled", + "unicode": "e695", + "unicode_decimal": 59029 + }, + { + "icon_id": "24899562", + "name": "chatboxes", + "font_class": "chatboxes", + "unicode": "e696", + "unicode_decimal": 59030 + }, + { + "icon_id": "24899563", + "name": "chatbubble", + "font_class": "chatbubble", + "unicode": "e697", + "unicode_decimal": 59031 + }, + { + "icon_id": "24881290", + "name": "upload-filled", + "font_class": "upload-filled", + "unicode": "e68e", + "unicode_decimal": 59022 + }, + { + "icon_id": "24881292", + "name": "upload", + "font_class": "upload", + "unicode": "e690", + "unicode_decimal": 59024 + }, + { + "icon_id": "24881293", + "name": "weixin", + "font_class": "weixin", + "unicode": "e691", + "unicode_decimal": 59025 + }, + { + "icon_id": "24881274", + "name": "compose", + "font_class": "compose", + "unicode": "e67f", + "unicode_decimal": 59007 + }, + { + "icon_id": "24881275", + "name": "qq", + "font_class": "qq", + "unicode": "e680", + "unicode_decimal": 59008 + }, + { + "icon_id": "24881276", + "name": "download-filled", + "font_class": "download-filled", + "unicode": "e681", + "unicode_decimal": 59009 + }, + { + "icon_id": "24881277", + "name": "pengyouquan", + "font_class": "pyq", + "unicode": "e682", + "unicode_decimal": 59010 + }, + { + "icon_id": "24881279", + "name": "sound", + "font_class": "sound", + "unicode": "e684", + "unicode_decimal": 59012 + }, + { + "icon_id": "24881280", + "name": "trash-filled", + "font_class": "trash-filled", + "unicode": "e685", + "unicode_decimal": 59013 + }, + { + "icon_id": "24881281", + "name": "sound-filled", + "font_class": "sound-filled", + "unicode": "e686", + "unicode_decimal": 59014 + }, + { + "icon_id": "24881282", + "name": "trash", + "font_class": "trash", + "unicode": "e687", + "unicode_decimal": 59015 + }, + { + "icon_id": "24881284", + "name": "videocam-filled", + "font_class": "videocam-filled", + "unicode": "e689", + "unicode_decimal": 59017 + }, + { + "icon_id": "24881285", + "name": "spinner-cycle", + "font_class": "spinner-cycle", + "unicode": "e68a", + "unicode_decimal": 59018 + }, + { + "icon_id": "24881286", + "name": "weibo", + "font_class": "weibo", + "unicode": "e68b", + "unicode_decimal": 59019 + }, + { + "icon_id": "24881288", + "name": "videocam", + "font_class": "videocam", + "unicode": "e68c", + "unicode_decimal": 59020 + }, + { + "icon_id": "24881289", + "name": "download", + "font_class": "download", + "unicode": "e68d", + "unicode_decimal": 59021 + }, + { + "icon_id": "24879601", + "name": "help", + "font_class": "help", + "unicode": "e679", + "unicode_decimal": 59001 + }, + { + "icon_id": "24879602", + "name": "navigate-filled", + "font_class": "navigate-filled", + "unicode": "e67a", + "unicode_decimal": 59002 + }, + { + "icon_id": "24879603", + "name": "plusempty", + "font_class": "plusempty", + "unicode": "e67b", + "unicode_decimal": 59003 + }, + { + "icon_id": "24879604", + "name": "smallcircle", + "font_class": "smallcircle", + "unicode": "e67c", + "unicode_decimal": 59004 + }, + { + "icon_id": "24879605", + "name": "minus-filled", + "font_class": "minus-filled", + "unicode": "e67d", + "unicode_decimal": 59005 + }, + { + "icon_id": "24879606", + "name": "micoff", + "font_class": "micoff", + "unicode": "e67e", + "unicode_decimal": 59006 + }, + { + "icon_id": "24879588", + "name": "closeempty", + "font_class": "closeempty", + "unicode": "e66c", + "unicode_decimal": 58988 + }, + { + "icon_id": "24879589", + "name": "clear", + "font_class": "clear", + "unicode": "e66d", + "unicode_decimal": 58989 + }, + { + "icon_id": "24879590", + "name": "navigate", + "font_class": "navigate", + "unicode": "e66e", + "unicode_decimal": 58990 + }, + { + "icon_id": "24879591", + "name": "minus", + "font_class": "minus", + "unicode": "e66f", + "unicode_decimal": 58991 + }, + { + "icon_id": "24879592", + "name": "image", + "font_class": "image", + "unicode": "e670", + "unicode_decimal": 58992 + }, + { + "icon_id": "24879593", + "name": "mic", + "font_class": "mic", + "unicode": "e671", + "unicode_decimal": 58993 + }, + { + "icon_id": "24879594", + "name": "paperplane", + "font_class": "paperplane", + "unicode": "e672", + "unicode_decimal": 58994 + }, + { + "icon_id": "24879595", + "name": "close", + "font_class": "close", + "unicode": "e673", + "unicode_decimal": 58995 + }, + { + "icon_id": "24879596", + "name": "help-filled", + "font_class": "help-filled", + "unicode": "e674", + "unicode_decimal": 58996 + }, + { + "icon_id": "24879597", + "name": "plus-filled", + "font_class": "paperplane-filled", + "unicode": "e675", + "unicode_decimal": 58997 + }, + { + "icon_id": "24879598", + "name": "plus", + "font_class": "plus", + "unicode": "e676", + "unicode_decimal": 58998 + }, + { + "icon_id": "24879599", + "name": "mic-filled", + "font_class": "mic-filled", + "unicode": "e677", + "unicode_decimal": 58999 + }, + { + "icon_id": "24879600", + "name": "image-filled", + "font_class": "image-filled", + "unicode": "e678", + "unicode_decimal": 59000 + }, + { + "icon_id": "24855900", + "name": "locked-filled", + "font_class": "locked-filled", + "unicode": "e668", + "unicode_decimal": 58984 + }, + { + "icon_id": "24855901", + "name": "info", + "font_class": "info", + "unicode": "e669", + "unicode_decimal": 58985 + }, + { + "icon_id": "24855903", + "name": "locked", + "font_class": "locked", + "unicode": "e66b", + "unicode_decimal": 58987 + }, + { + "icon_id": "24855884", + "name": "camera-filled", + "font_class": "camera-filled", + "unicode": "e658", + "unicode_decimal": 58968 + }, + { + "icon_id": "24855885", + "name": "chat-filled", + "font_class": "chat-filled", + "unicode": "e659", + "unicode_decimal": 58969 + }, + { + "icon_id": "24855886", + "name": "camera", + "font_class": "camera", + "unicode": "e65a", + "unicode_decimal": 58970 + }, + { + "icon_id": "24855887", + "name": "circle", + "font_class": "circle", + "unicode": "e65b", + "unicode_decimal": 58971 + }, + { + "icon_id": "24855888", + "name": "checkmarkempty", + "font_class": "checkmarkempty", + "unicode": "e65c", + "unicode_decimal": 58972 + }, + { + "icon_id": "24855889", + "name": "chat", + "font_class": "chat", + "unicode": "e65d", + "unicode_decimal": 58973 + }, + { + "icon_id": "24855890", + "name": "circle-filled", + "font_class": "circle-filled", + "unicode": "e65e", + "unicode_decimal": 58974 + }, + { + "icon_id": "24855891", + "name": "flag", + "font_class": "flag", + "unicode": "e65f", + "unicode_decimal": 58975 + }, + { + "icon_id": "24855892", + "name": "flag-filled", + "font_class": "flag-filled", + "unicode": "e660", + "unicode_decimal": 58976 + }, + { + "icon_id": "24855893", + "name": "gear-filled", + "font_class": "gear-filled", + "unicode": "e661", + "unicode_decimal": 58977 + }, + { + "icon_id": "24855894", + "name": "home", + "font_class": "home", + "unicode": "e662", + "unicode_decimal": 58978 + }, + { + "icon_id": "24855895", + "name": "home-filled", + "font_class": "home-filled", + "unicode": "e663", + "unicode_decimal": 58979 + }, + { + "icon_id": "24855896", + "name": "gear", + "font_class": "gear", + "unicode": "e664", + "unicode_decimal": 58980 + }, + { + "icon_id": "24855897", + "name": "smallcircle-filled", + "font_class": "smallcircle-filled", + "unicode": "e665", + "unicode_decimal": 58981 + }, + { + "icon_id": "24855898", + "name": "map-filled", + "font_class": "map-filled", + "unicode": "e666", + "unicode_decimal": 58982 + }, + { + "icon_id": "24855899", + "name": "map", + "font_class": "map", + "unicode": "e667", + "unicode_decimal": 58983 + }, + { + "icon_id": "24855825", + "name": "refresh-filled", + "font_class": "refresh-filled", + "unicode": "e656", + "unicode_decimal": 58966 + }, + { + "icon_id": "24855826", + "name": "refresh", + "font_class": "refresh", + "unicode": "e657", + "unicode_decimal": 58967 + }, + { + "icon_id": "24855808", + "name": "cloud-upload", + "font_class": "cloud-upload", + "unicode": "e645", + "unicode_decimal": 58949 + }, + { + "icon_id": "24855809", + "name": "cloud-download-filled", + "font_class": "cloud-download-filled", + "unicode": "e646", + "unicode_decimal": 58950 + }, + { + "icon_id": "24855810", + "name": "cloud-download", + "font_class": "cloud-download", + "unicode": "e647", + "unicode_decimal": 58951 + }, + { + "icon_id": "24855811", + "name": "cloud-upload-filled", + "font_class": "cloud-upload-filled", + "unicode": "e648", + "unicode_decimal": 58952 + }, + { + "icon_id": "24855813", + "name": "redo", + "font_class": "redo", + "unicode": "e64a", + "unicode_decimal": 58954 + }, + { + "icon_id": "24855814", + "name": "images-filled", + "font_class": "images-filled", + "unicode": "e64b", + "unicode_decimal": 58955 + }, + { + "icon_id": "24855815", + "name": "undo-filled", + "font_class": "undo-filled", + "unicode": "e64c", + "unicode_decimal": 58956 + }, + { + "icon_id": "24855816", + "name": "more", + "font_class": "more", + "unicode": "e64d", + "unicode_decimal": 58957 + }, + { + "icon_id": "24855817", + "name": "more-filled", + "font_class": "more-filled", + "unicode": "e64e", + "unicode_decimal": 58958 + }, + { + "icon_id": "24855818", + "name": "undo", + "font_class": "undo", + "unicode": "e64f", + "unicode_decimal": 58959 + }, + { + "icon_id": "24855819", + "name": "images", + "font_class": "images", + "unicode": "e650", + "unicode_decimal": 58960 + }, + { + "icon_id": "24855821", + "name": "paperclip", + "font_class": "paperclip", + "unicode": "e652", + "unicode_decimal": 58962 + }, + { + "icon_id": "24855822", + "name": "settings", + "font_class": "settings", + "unicode": "e653", + "unicode_decimal": 58963 + }, + { + "icon_id": "24855823", + "name": "search", + "font_class": "search", + "unicode": "e654", + "unicode_decimal": 58964 + }, + { + "icon_id": "24855824", + "name": "redo-filled", + "font_class": "redo-filled", + "unicode": "e655", + "unicode_decimal": 58965 + }, + { + "icon_id": "24841702", + "name": "list", + "font_class": "list", + "unicode": "e644", + "unicode_decimal": 58948 + }, + { + "icon_id": "24841489", + "name": "mail-open-filled", + "font_class": "mail-open-filled", + "unicode": "e63a", + "unicode_decimal": 58938 + }, + { + "icon_id": "24841491", + "name": "hand-thumbsdown-filled", + "font_class": "hand-down-filled", + "unicode": "e63c", + "unicode_decimal": 58940 + }, + { + "icon_id": "24841492", + "name": "hand-thumbsdown", + "font_class": "hand-down", + "unicode": "e63d", + "unicode_decimal": 58941 + }, + { + "icon_id": "24841493", + "name": "hand-thumbsup-filled", + "font_class": "hand-up-filled", + "unicode": "e63e", + "unicode_decimal": 58942 + }, + { + "icon_id": "24841494", + "name": "hand-thumbsup", + "font_class": "hand-up", + "unicode": "e63f", + "unicode_decimal": 58943 + }, + { + "icon_id": "24841496", + "name": "heart-filled", + "font_class": "heart-filled", + "unicode": "e641", + "unicode_decimal": 58945 + }, + { + "icon_id": "24841498", + "name": "mail-open", + "font_class": "mail-open", + "unicode": "e643", + "unicode_decimal": 58947 + }, + { + "icon_id": "24841488", + "name": "heart", + "font_class": "heart", + "unicode": "e639", + "unicode_decimal": 58937 + }, + { + "icon_id": "24839963", + "name": "loop", + "font_class": "loop", + "unicode": "e633", + "unicode_decimal": 58931 + }, + { + "icon_id": "24839866", + "name": "pulldown", + "font_class": "pulldown", + "unicode": "e632", + "unicode_decimal": 58930 + }, + { + "icon_id": "24813798", + "name": "scan", + "font_class": "scan", + "unicode": "e62a", + "unicode_decimal": 58922 + }, + { + "icon_id": "24813786", + "name": "bars", + "font_class": "bars", + "unicode": "e627", + "unicode_decimal": 58919 + }, + { + "icon_id": "24813788", + "name": "cart-filled", + "font_class": "cart-filled", + "unicode": "e629", + "unicode_decimal": 58921 + }, + { + "icon_id": "24813790", + "name": "checkbox", + "font_class": "checkbox", + "unicode": "e62b", + "unicode_decimal": 58923 + }, + { + "icon_id": "24813791", + "name": "checkbox-filled", + "font_class": "checkbox-filled", + "unicode": "e62c", + "unicode_decimal": 58924 + }, + { + "icon_id": "24813794", + "name": "shop", + "font_class": "shop", + "unicode": "e62f", + "unicode_decimal": 58927 + }, + { + "icon_id": "24813795", + "name": "headphones", + "font_class": "headphones", + "unicode": "e630", + "unicode_decimal": 58928 + }, + { + "icon_id": "24813796", + "name": "cart", + "font_class": "cart", + "unicode": "e631", + "unicode_decimal": 58929 + } + ] +} diff --git a/.svn/pristine/9c/9c53534fde874978ee92660e5dc29eb3ca969fa2.svn-base b/.svn/pristine/9c/9c53534fde874978ee92660e5dc29eb3ca969fa2.svn-base new file mode 100644 index 0000000..b288cb0 --- /dev/null +++ b/.svn/pristine/9c/9c53534fde874978ee92660e5dc29eb3ca969fa2.svn-base @@ -0,0 +1,4 @@ +{ + "uni-fav.collect": "collect", + "uni-fav.collected": "collected" +} diff --git a/.svn/pristine/9d/9d7bd063e5fff8ab7269c95ba123aab41bdef3b0.svn-base b/.svn/pristine/9d/9d7bd063e5fff8ab7269c95ba123aab41bdef3b0.svn-base new file mode 100644 index 0000000..abc8259 --- /dev/null +++ b/.svn/pristine/9d/9d7bd063e5fff8ab7269c95ba123aab41bdef3b0.svn-base @@ -0,0 +1,101 @@ + + + + + diff --git a/.svn/pristine/9e/9e48d6f5ac61a9e608185008e35cb3e4af4ff8c5.svn-base b/.svn/pristine/9e/9e48d6f5ac61a9e608185008e35cb3e4af4ff8c5.svn-base new file mode 100644 index 0000000..689afec --- /dev/null +++ b/.svn/pristine/9e/9e48d6f5ac61a9e608185008e35cb3e4af4ff8c5.svn-base @@ -0,0 +1,167 @@ +/* #ifndef APP-NVUE */ + +$-color-white:#fff; +$-color-black:#000; +@mixin base-style($color) { + color: #fff; + background-color: $color; + border-color: mix($-color-black, $color, 8%); + &:not([hover-class]):active { + background: mix($-color-black, $color, 10%); + border-color: mix($-color-black, $color, 20%); + color: $-color-white; + outline: none; + } +} +@mixin is-color($color) { + @include base-style($color); + &[loading] { + @include base-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &[loading], + &:not([hover-class]):active { + color: $-color-white; + border-color: mix(darken($color,10%), $-color-white); + background-color: mix($color, $-color-white); + } + } + +} +@mixin base-plain-style($color) { + color:$color; + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 70%); + &:not([hover-class]):active { + background: mix($-color-white, $color, 80%); + color: $color; + outline: none; + border-color: mix($-color-white, $color, 50%); + } +} +@mixin is-plain($color){ + &[plain] { + @include base-plain-style($color); + &[loading] { + @include base-plain-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &:active { + color: mix($-color-white, $color, 40%); + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 80%); + } + } + } +} + + +.uni-btn { + margin: 5px; + color: #393939; + border:1px solid #ccc; + font-size: 16px; + font-weight: 200; + background-color: #F9F9F9; + // TODO 暂时处理边框隐藏一边的问题 + overflow: visible; + &::after{ + border: none; + } + + &:not([type]),&[type=default] { + color: #999; + &[loading] { + background: none; + &::before { + margin-right:5px; + } + } + + + + &[disabled]{ + color: mix($-color-white, #999, 60%); + &, + &[loading], + &:active { + color: mix($-color-white, #999, 60%); + background-color: mix($-color-white,$-color-black , 98%); + border-color: mix($-color-white, #999, 85%); + } + } + + &[plain] { + color: #999; + background: none; + border-color: $uni-border-1; + &:not([hover-class]):active { + background: none; + color: mix($-color-white, $-color-black, 80%); + border-color: mix($-color-white, $-color-black, 90%); + outline: none; + } + &[disabled]{ + &, + &[loading], + &:active { + background: none; + color: mix($-color-white, #999, 60%); + border-color: mix($-color-white, #999, 85%); + } + } + } + } + + &:not([hover-class]):active { + color: mix($-color-white, $-color-black, 50%); + } + + &[size=mini] { + font-size: 16px; + font-weight: 200; + border-radius: 8px; + } + + + + &.uni-btn-small { + font-size: 14px; + } + &.uni-btn-mini { + font-size: 12px; + } + + &.uni-btn-radius { + border-radius: 999px; + } + &[type=primary] { + @include is-color($uni-primary); + @include is-plain($uni-primary) + } + &[type=success] { + @include is-color($uni-success); + @include is-plain($uni-success) + } + &[type=error] { + @include is-color($uni-error); + @include is-plain($uni-error) + } + &[type=warning] { + @include is-color($uni-warning); + @include is-plain($uni-warning) + } + &[type=info] { + @include is-color($uni-info); + @include is-plain($uni-info) + } +} +/* #endif */ diff --git a/.svn/pristine/9e/9e7b61582e9cd6c1961b2f451e475969f815db6e.svn-base b/.svn/pristine/9e/9e7b61582e9cd6c1961b2f451e475969f815db6e.svn-base new file mode 100644 index 0000000..1d808b3 --- /dev/null +++ b/.svn/pristine/9e/9e7b61582e9cd6c1961b2f451e475969f815db6e.svn-base @@ -0,0 +1,29 @@ + + + + + diff --git a/.svn/pristine/9e/9ea710052ce7a9f3c0ecf5ab551f644fcfe48db8.svn-base b/.svn/pristine/9e/9ea710052ce7a9f3c0ecf5ab551f644fcfe48db8.svn-base new file mode 100644 index 0000000..64131e7 --- /dev/null +++ b/.svn/pristine/9e/9ea710052ce7a9f3c0ecf5ab551f644fcfe48db8.svn-base @@ -0,0 +1,87 @@ +{ + "id": "uni-data-checkbox", + "displayName": "uni-data-checkbox 数据选择器", + "version": "1.0.1", + "description": "通过数据驱动的单选框和复选框", + "keywords": [ + "uni-ui", + "checkbox", + "单选", + "多选", + "单选多选" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.1" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-load-more","uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/9f/9f9d52a610a2bab2fc7db1fee535732f66b5df46.svn-base b/.svn/pristine/9f/9f9d52a610a2bab2fc7db1fee535732f66b5df46.svn-base new file mode 100644 index 0000000..27c5468 --- /dev/null +++ b/.svn/pristine/9f/9f9d52a610a2bab2fc7db1fee535732f66b5df46.svn-base @@ -0,0 +1,128 @@ + + + + + diff --git a/.svn/pristine/9f/9fe2eb8e37b6f92f65d3eb9e453fbf962356a1ce.svn-base b/.svn/pristine/9f/9fe2eb8e37b6f92f65d3eb9e453fbf962356a1ce.svn-base new file mode 100644 index 0000000..e32023c --- /dev/null +++ b/.svn/pristine/9f/9fe2eb8e37b6f92f65d3eb9e453fbf962356a1ce.svn-base @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Reset", + "filter-dropdown.search": "Search", + "filter-dropdown.submit": "Submit", + "filter-dropdown.filter": "Filter", + "filter-dropdown.gt": "Greater or equal to", + "filter-dropdown.lt": "Less than or equal to", + "filter-dropdown.date": "Date" +} diff --git a/.svn/pristine/a0/a02ba586375a3e79ab1ab55a5c9c17ae8caa083d.svn-base b/.svn/pristine/a0/a02ba586375a3e79ab1ab55a5c9c17ae8caa083d.svn-base new file mode 100644 index 0000000..8a98a61 --- /dev/null +++ b/.svn/pristine/a0/a02ba586375a3e79ab1ab55a5c9c17ae8caa083d.svn-base @@ -0,0 +1,25 @@ +## 1.3.1(2022-02-25) +- 修复 条件判断 `NaN` 错误的 bug +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-rate](https://uniapp.dcloud.io/component/uniui/uni-rate) +## 1.2.2(2021-09-10) +- 优化 默认值修改为 0 颗星 +## 1.2.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.2(2021-05-12) +- 新增 组件示例地址 +## 1.1.1(2021-04-21) +- 修复 布局变化后 uni-rate 星星计算不准确的 bug +- 优化 添加依赖 uni-icons, 导入 uni-rate 自动下载依赖 +## 1.1.0(2021-04-16) +- 修复 uni-rate 属性 margin 值为 string 组件失效的 bug + +## 1.0.9(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.8(2021-02-05) +- 调整为uni_modules目录规范 +- 支持 pc 端 diff --git a/.svn/pristine/a0/a07bb562a9c5488a0157ed0dfc66dfc950bb84d2.svn-base b/.svn/pristine/a0/a07bb562a9c5488a0157ed0dfc66dfc950bb84d2.svn-base new file mode 100644 index 0000000..04e56b8 --- /dev/null +++ b/.svn/pristine/a0/a07bb562a9c5488a0157ed0dfc66dfc950bb84d2.svn-base @@ -0,0 +1,538 @@ + + + + + diff --git a/.svn/pristine/a0/a0aebe8f3058124073015aec2f63a1d661a8b136.svn-base b/.svn/pristine/a0/a0aebe8f3058124073015aec2f63a1d661a8b136.svn-base new file mode 100644 index 0000000..be0029e Binary files /dev/null and b/.svn/pristine/a0/a0aebe8f3058124073015aec2f63a1d661a8b136.svn-base differ diff --git a/.svn/pristine/a0/a0ed306307248da7c9ed7fd8a32bad89ff7b2eec.svn-base b/.svn/pristine/a0/a0ed306307248da7c9ed7fd8a32bad89ff7b2eec.svn-base new file mode 100644 index 0000000..a4b96ce --- /dev/null +++ b/.svn/pristine/a0/a0ed306307248da7c9ed7fd8a32bad89ff7b2eec.svn-base @@ -0,0 +1,554 @@ + + + + + diff --git a/.svn/pristine/a1/a117f16ed301bbf9e05e7bbcc9919b68a8add718.svn-base b/.svn/pristine/a1/a117f16ed301bbf9e05e7bbcc9919b68a8add718.svn-base new file mode 100644 index 0000000..5541b22 --- /dev/null +++ b/.svn/pristine/a1/a117f16ed301bbf9e05e7bbcc9919b68a8add718.svn-base @@ -0,0 +1,248 @@ +> 当前插件不包含示例页面 ,如需示例请在 HBuiderX 中新建 `hello uni-app > 扩展组件` 中查看 +> +> 代码示例地址 :[https://ext.dcloud.net.cn/plugin?id=4941](https://ext.dcloud.net.cn/plugin?id=4941) +> +> 组件演示地址:[https://hellouniapp.dcloud.net.cn](https://hellouniapp.dcloud.net.cn/pages/extUI/badge/badge) +> +> 组件文档地址:[https://uniapp.dcloud.io/component/uniui/uni-ui](https://uniapp.dcloud.io/component/uniui/uni-ui) + +# uni-ui 介绍 + +## uni-ui产品特点 + +### 1. 高性能 + +目前为止,在小程序和混合app领域,暂时还没有比 `uni-ui` 更高性能的框架。 +- 自动差量更新数据 + +虽然uni-app支持小程序自定义组件,所有小程序的ui库都可以用。但小程序自定义组件的ui库都需要使用setData手动更新数据,在大数据量时、或高频更新数据时,很容易产生性能问题。 + +而 `uni-ui` 属于vue组件,uni-app引擎底层自动diff更新数据。当然其实插件市场里众多vue组件都具备这个特点。 +- 优化逻辑层和视图层通讯折损 + +非H5,不管是小程序还是App,不管是app的webview渲染还是原生渲染,全都是逻辑层和视图层分离的。这里就有一个逻辑层和视图层通讯的折损问题。 +比如在视图层拖动一个可跟手的组件,由于通讯的损耗,用js监听很难做到实时跟手。 + +这时就需要使用css动画以及平台底层提供的wxs、bindingx等技术。不过这些技术都比较复杂,所以 `uni-ui` 里做了封装,在需要跟手式操作的ui组件,比如swiperaction列表项左滑菜单,就在底层使用了这些技术,实现了高性能的交互体验 +- 背景停止 + +很多ui组件是会一直动的,比如轮播图、跑马灯。即便这个窗体被新窗体挡住,它在背景层仍然在消耗着硬件资源。在Android的webview版本为chrome66以上,背景操作ui会引发很严重的性能问题,造成前台界面明显卡顿。 + +而 `uni-ui` 的组件,会自动判断自己的显示状态,在组件不再可见时,不会再消耗硬件资源。 + +### 2. 全端 + + `uni-ui` 的组件都是多端自适应的,底层会抹平很多小程序平台的差异或bug。 + +比如导航栏navbar组件,会自动处理不同端的状态栏。 +比如swiperaction组件,在app和微信小程序上会使用交互体验更好的wxs技术,但在不支持wxs的其他小程序端会使用js模拟类似效果。 + + `uni-ui` 还支持nvue原生渲染,[详见](https://github.com/dcloudio/uni-ui/tree/nvue-uni-ui) + +未来 `uni-ui` 还会支持pc等大屏设备。 + +### 3. 与uni统计自动集成实现免打点 + +uni统计是优秀的多端统计平台,见[tongji.dcloud.net.cn](https://tongji.dcloud.net.cn)。 + +除了一张报表看全端,它的另一个重要特点是免打点。 +比如使用 `uni-ui` 的navbar标题栏、收藏、购物车等组件,均可实现自动打点,统计页面标题等各种行为数据。 +当然你也可以关闭uni统计,这不是强制的。 + +### 4. 主题扩展 + + `uni-ui` 支持[uni.scss](https://uniapp.dcloud.io/collocation/uni-scss),可以方便的切换App的风格。 + +ui是一种需求非常发散的产品,DCloud官方也无意用 `uni-ui` 压制第三方ui插件的空间,但官方有义务在性能和多端方面提供一个开源的标杆给大家。 + +我们欢迎更多优秀的ui组件出现,也欢迎更多人贡献 `uni-ui` 的主题风格,满足更多用户的需求。 + + +## 快速开始 + +uni-ui支持 HBuilderX直接新建项目模板、npm安装和单独导入个别组件等多种使用方式 + +### 在HBuilderX 新建uni-app项目的模板中,选择uni-ui模板 +![HBuilderX内创建uni-ui项目](https://img.cdn.aliyun.dcloud.net.cn/uni-app/doc/create-uni-ui-project.jpg) + +由于uni-app独特的[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)技术,可以免引用、注册,直接使用各种符合规则的vue组件。 + +在代码区键入`u`,拉出各种内置或uni-ui的组件列表,选择其中一个,即可使用该组件。 + +光标放在组件名称上,按F1,可以查阅组件的文档。 + +![uni-ui代码块](https://img.cdn.aliyun.dcloud.net.cn/uni-app/doc/uni-ui-snippet.jpg) + +### 通过 uni_modules 单独安装组件 +如果你没有创建uni-ui项目模板,也可以在你的工程里,通过 uni_modules 单独安装需要的某个组件。下表为uni-ui的扩展组件清单,点击每个组件在详情页面可以导入组件到项目下,导入后直接使用即可,无需import和注册。 + +|组件名|组件说明| +|---|---| +|uni-badge|[数字角标](https://ext.dcloud.net.cn/plugin?name=uni-badge)| +|uni-calendar|[日历](https://ext.dcloud.net.cn/plugin?name=uni-calendar)| +|uni-card|[卡片](https://ext.dcloud.net.cn/plugin?name=uni-card)| +|uni-collapse|[折叠面板](https://ext.dcloud.net.cn/plugin?name=uni-collapse)| +|uni-combox|[组合框](https://ext.dcloud.net.cn/plugin?name=uni-combox)| +|uni-countdown|[倒计时](https://ext.dcloud.net.cn/plugin?name=uni-countdown)| +|uni-data-checkbox|[数据选择器](https://ext.dcloud.net.cn/plugin?name=uni-data-checkbox)| +|uni-data-picker|[数据驱动的picker选择器](https://ext.dcloud.net.cn/plugin?name=uni-data-picker)| +|uni-dateformat|[日期格式化](https://ext.dcloud.net.cn/plugin?name=uni-dateformat)| +|uni-datetime-picker|[日期选择器](https://ext.dcloud.net.cn/plugin?name=uni-datetime-picker)| +|uni-drawer|[抽屉](https://ext.dcloud.net.cn/plugin?name=uni-drawer)| +|uni-easyinput|[增强输入框](https://ext.dcloud.net.cn/plugin?name=uni-easyinput)| +|uni-fab|[悬浮按钮](https://ext.dcloud.net.cn/plugin?name=uni-fab)| +|uni-fav|[收藏按钮](https://ext.dcloud.net.cn/plugin?name=uni-fav)| +|uni-file-picker|[文件选择上传](https://ext.dcloud.net.cn/plugin?name=uni-file-picker)| +|uni-forms|[表单](https://ext.dcloud.net.cn/plugin?name=uni-forms)| +|uni-goods-nav|[商品导航](https://ext.dcloud.net.cn/plugin?name=uni-goods-nav)| +|uni-grid|[宫格](https://ext.dcloud.net.cn/plugin?name=uni-grid)| +|uni-group|[分组](https://ext.dcloud.net.cn/plugin?name=uni-group)| +|uni-icons|[图标](https://ext.dcloud.net.cn/plugin?name=uni-icons)| +|uni-indexed-list|[索引列表](https://ext.dcloud.net.cn/plugin?name=uni-indexed-list)| +|uni-link|[超链接](https://ext.dcloud.net.cn/plugin?name=uni-link)| +|uni-list|[列表](https://ext.dcloud.net.cn/plugin?name=uni-list)| +|uni-load-more|[加载更多](https://ext.dcloud.net.cn/plugin?name=uni-load-more)| +|uni-nav-bar|[自定义导航栏](https://ext.dcloud.net.cn/plugin?name=uni-nav-bar)| +|uni-notice-bar|[通告栏](https://ext.dcloud.net.cn/plugin?name=uni-notice-bar)| +|uni-number-box|[数字输入框](https://ext.dcloud.net.cn/plugin?name=uni-number-box)| +|uni-pagination|[分页器](https://ext.dcloud.net.cn/plugin?name=uni-pagination)| +|uni-popup|[弹出层](https://ext.dcloud.net.cn/plugin?name=uni-popup)| +|uni-rate|[评分](https://ext.dcloud.net.cn/plugin?name=uni-rate)| +|uni-row|[布局-行](https://ext.dcloud.net.cn/plugin?name=uni-row)| +|uni-search-bar|[搜索栏](https://ext.dcloud.net.cn/plugin?name=uni-search-bar)| +|Section|[标题栏](https://ext.dcloud.net.cn/plugin?name=uni-section)| +|uni-segmented-control|[分段器](https://ext.dcloud.net.cn/plugin?name=uni-segmented-control)| +|uni-steps|[步骤条](https://ext.dcloud.net.cn/plugin?name=uni-steps)| +|uni-swipe-action|[滑动操作](https://ext.dcloud.net.cn/plugin?name=uni-swipe-action)| +|uni-swiper-dot|[轮播图指示点](https://ext.dcloud.net.cn/plugin?name=uni-swiper-dot)| +|uni-table|[表格](https://ext.dcloud.net.cn/plugin?name=uni-table)| +|uni-tag|[标签](https://ext.dcloud.net.cn/plugin?name=uni-tag)| +|uni-title|[章节标题](https://ext.dcloud.net.cn/plugin?name=uni-title)| +|uni-transition|[过渡动画](https://ext.dcloud.net.cn/plugin?name=uni-transition)| + + +使用 `uni_modules` 方式安装组件库,可以直接通过插件市场导入,通过右键菜单快速更新组件,不需要引用、注册,直接在页面中使用 `uni-ui` 组件。[点击安装 uni-ui 组件库](https://ext.dcloud.net.cn/plugin?id=55) + +**注意:下载最新的组件目前仅支持 uni_modules ,非 uni_modules 版本最高支持到组件的1.2.10版本** + +如不能升级到 `uni_modules` 版本,可以使用 `uni_modules` 安装好对应组件,将组件拷贝到对应目录。 + +例如需更新 `uni-list`和`uni-badge` ,将 `uni_modules>uni-list>components`和`uni_modules>uni-badege>components`下所有目录拷贝到如下目录即可: + + +**目录示例** + +```json +┌─components 组件目录 +│ ├─uni-list list 列表目录 +│ │ └─uni-list.vue list 组件文件 +│ ├─uni-list-item list-item 列表目录 +│ │ └─uni-list-item.vue list 组件文件 +│ ├─uni-badge badge 角标目录 +│ │ └─uni-badge.vue badge 组件文件 +│ └─ //.... 更多组件文件 +├─pages 业务页面文件存放的目录 +│ ├─index +│ │ └─index.vue index示例页面 +├─main.js Vue初始化入口文件 +├─App.vue 应用配置,用来配置App全局样式以及监听 应用生命周期 +├─manifest.json 配置应用名称、appid、logo、版本等打包信息,详见 +└─pages.json 配置页 + +``` + +### 通过 `uni_modules` 导入全部组件 +如果想一次把所有uni-ui组件导入到项目中,只需要导入一个 `uni-ui` 组件即可 [点击去导入](https://ext.dcloud.net.cn/plugin?id=55)。 + +如果没有自动导入其他组件,可以在 uni-ui 组件目录上右键选择 `安装三方插件依赖` 即可。 + + + +### npm安装 +在 `vue-cli` 项目中可以使用 `npm` 安装 `uni-ui` 库 ,或者直接在 `HBuilderX` 项目中使用 `npm` 。 + +> **注意** +> cli 项目默认是不编译 `node_modules` 下的组件的,导致条件编译等功能失效 ,导致组件异常 +> 需要在根目录创建 `vue.config.js` 文件 ,增加 `@dcloudio/uni-ui` 包的编译即可正常 +> ```javascript +> // vue.config.js +> module.exports = { +> transpileDependencies:['@dcloudio/uni-ui'] +> } +> ``` + + + +**准备 sass** + +`vue-cli` 项目请先安装 sass 及 sass-loader,如在 HBuliderX 中使用,可跳过此步。 + +- 安装 sass +``` + npm i sass -D 或 yarn add sass -D +``` + +- 安装 sass-loader +``` +npm i sass-loader@10.1.1 -D 或 yarn add sass-loader@10.1.1 -D +``` + +> 如果 `node` 版本小于 16 ,sass-loader 请使用低于 @11.0.0 的版本,[sass-loader@11.0.0 不支持 vue@2.6.12 ](https://stackoverflow.com/questions/66082397/typeerror-this-getoptions-is-not-a-function) +> 如果 `node` 版本大于 16 , `sass-loader` 建议使用 `v8.x` 版本 + +**安装 uni-ui** + +``` +npm i @dcloudio/uni-ui 或 yarn add @dcloudio/uni-ui +``` + + + +**配置easycom** + +使用 `npm` 安装好 `uni-ui` 之后,需要配置 `easycom` 规则,让 `npm` 安装的组件支持 `easycom` + +打开项目根目录下的 `pages.json` 并添加 `easycom` 节点: + +```javascript +// pages.json +{ + "easycom": { + "autoscan": true, + "custom": { + // uni-ui 规则如下配置 + "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue" + } + }, + + // 其他内容 + pages:[ + // ... + ] +} + +``` + +在 ``template`` 中使用组件: + +```html + + + +``` + + **注意** + - uni-ui 现在只推荐使用 `easycom` ,如自己引用组件,可能会出现组件找不到的问题 + - 使用 npm 安装的组件,默认情况下 babel-loader 会忽略所有 node_modules 中的文件 ,导致条件编译失效,需要通过配置 `vue.config.js` 解决: + ```javascript + // 在根目录创建 vue.config.js 文件,并配置如下 + module.exports = { + transpileDependencies: ['@dcloudio/uni-ui'] + } + ``` + - uni-ui 是uni-app内置组件的扩展。注意与web开发不同,uni-ui不包括基础组件,它是基础组件的补充。web开发中有的开发者习惯用一个ui库完成所有开发,但在uni-app体系中,推荐开发者首先使用性能更高的基础组件,然后按需引入必要的扩展组件。 + - `uni-ui` 不支持使用 `Vue.use()` 的方式安装 + + +### 贡献代码 +在使用 `uni-ui` 中,如遇到无法解决的问题,请提 [Issues](https://github.com/dcloudio/uni-ui/issues) 给我们,假如您有更好的点子或更好的实现方式,也欢迎给我们提交 [PR](https://github.com/dcloudio/uni-ui/pulls) \ No newline at end of file diff --git a/.svn/pristine/a2/a2ca1d961bd314ad450a6b8c2a509c1520609006.svn-base b/.svn/pristine/a2/a2ca1d961bd314ad450a6b8c2a509c1520609006.svn-base new file mode 100644 index 0000000..bfd405e --- /dev/null +++ b/.svn/pristine/a2/a2ca1d961bd314ad450a6b8c2a509c1520609006.svn-base @@ -0,0 +1,6 @@ +{ + "uni-goods-nav.options.shop": "店鋪", + "uni-goods-nav.options.cart": "購物車", + "uni-goods-nav.buttonGroup.addToCart": "加入購物車", + "uni-goods-nav.buttonGroup.buyNow": "立即購買" +} diff --git a/.svn/pristine/a3/a355b36044570728977b9a61768fedaf0232a797.svn-base b/.svn/pristine/a3/a355b36044570728977b9a61768fedaf0232a797.svn-base new file mode 100644 index 0000000..eb1840b --- /dev/null +++ b/.svn/pristine/a3/a355b36044570728977b9a61768fedaf0232a797.svn-base @@ -0,0 +1,325 @@ + + + + + diff --git a/.svn/pristine/a4/a443a5c6c8943c7effcd20e6da3d1973a2f1202b.svn-base b/.svn/pristine/a4/a443a5c6c8943c7effcd20e6da3d1973a2f1202b.svn-base new file mode 100644 index 0000000..feb284e Binary files /dev/null and b/.svn/pristine/a4/a443a5c6c8943c7effcd20e6da3d1973a2f1202b.svn-base differ diff --git a/.svn/pristine/a5/a545bc3c955687077ffab7dc49b3908e365e894f.svn-base b/.svn/pristine/a5/a545bc3c955687077ffab7dc49b3908e365e894f.svn-base new file mode 100644 index 0000000..6ef26a2 --- /dev/null +++ b/.svn/pristine/a5/a545bc3c955687077ffab7dc49b3908e365e894f.svn-base @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + this.$once('hook:beforeDestroy', () => { + document.removeEventListener('keyup', listener) + }) + }, + render: () => {} +} +// #endif diff --git a/.svn/pristine/a5/a56ef3d9db96bb6b99c5857addaf3a7998eca06b.svn-base b/.svn/pristine/a5/a56ef3d9db96bb6b99c5857addaf3a7998eca06b.svn-base new file mode 100644 index 0000000..2edc791 --- /dev/null +++ b/.svn/pristine/a5/a56ef3d9db96bb6b99c5857addaf3a7998eca06b.svn-base @@ -0,0 +1,168 @@ +import tools from '@/common/tools.js' + +module.exports = { + data() { + return { + URL: tools.URL,//资源URL+ + noClick: true, + } + }, + computed: { + app() { + return getApp().globalData + }, + isVip() { + if (this.app.userInfo.membership_level==0){ + return false + } else return true + } + }, + onShow() { + + }, + onLoad() { + + }, + methods: { + GetUrlParam(url,paraName) { +     var arrObj = url.split("?"); + +     if (arrObj.length > 1) { +       var arrPara = arrObj[1].split("&"); +       var arr; + +       for (var i = 0; i < arrPara.length; i++) { +         arr = arrPara[i].split("="); + +         if (arr != null && arr[0] == paraName) { +           return arr[1]; +         } +       } +       return ""; +     } +     else { +       return ""; +     } +   }, + // 防止处理多次点击 + noMultipleClicks(methods, info) { + // methods是需要点击后需要执行的函数, info是点击需要传的参数 + let that = this; + if (that.noClick) { + // 第一次点击 + that.noClick= false; + if(info && info !== '') { + // info是执行函数需要传的参数 + methods(info); + } else { + methods(); + } + setTimeout(()=> { + that.noClick= true; + }, 2000) + } else { + // 这里是重复点击的判断 + } + }, + // 跳转下一页 + goNext(url) { + uni.navigateTo({ + url: url + }) + }, + // 返回上一页 + goBack(num) { + uni.navigateBack({ + delta: num + }) + }, + showtt:function(title,icon) { + if(title&&title.length>0) { + uni.showToast({ + title:title, + duration:2000, + icon:icon?icon : 'none' + }) + } + }, + // from表单的输入 + formInfo(data, keys) { + let obj = { + ...data + } + // data 验证对象 Object + // keys 验证对象中非必填字段 Array + if (keys && keys[0]) { + keys.forEach(val => { + delete obj[val] + }) + } + let show = true + for (let key in obj) { + const value = obj[key] + if (!value) { + uni.showToast({ + title: '请检查信息是否填写', + icon: 'none' + }) + console.log('未填写完整', value, key) + show = false; + break; + } + } + return show; + }, + //函数拷贝 + copyObj(obj = {}) { + //变量先置空 + let newobj = null; + + //判断是否需要继续进行递归 + if (typeof(obj) == 'object' && obj !== null) { + newobj = obj instanceof Array ? [] : {}; + //进行下一层递归克隆 + for (var i in obj) { + newobj[i] = this.copyObj(obj[i]) + } + //如果不是对象直接赋值 + } else newobj = obj; + + return newobj; + }, + axiosFromToken:function(method,url,data,showLoads){ + let token = uni.getStorageSync('token')?uni.getStorageSync('token') : '';//用户的token + if(showLoads) { uni.showLoading({ 'title':showLoads }) };//加载中的框 + return new Promise((resolve,reject)=>{ + uni.request({ + url: tools.httpOne + url,//请求地址 url + method:method,//请求格式 method POST GET + data:data,//请求参数 data + header:{ 'content-Type':'application/x-www-form-urlencoded','token':token }, + success:(res)=>{ + if(showLoads) { uni.hideLoading() } + if(res.statusCode==401) { + uni.showModal({ + title: '温馨提示', + content: '尚未登录或登录已过期,是否前往登录?', + success: (res) => { + uni.clearStorageSync() + uni.navigateTo({ + url: "/pages/login/login" + }) + } + }); + return false + } + resolve(res.data) + }, + fail:(err)=>{ + reject(err) + }, + complete() { + + } + }) + }) + }, + }, +} \ No newline at end of file diff --git a/.svn/pristine/a6/a6a4baeb9f914add12f39ac26d0d74dc82b60dff.svn-base b/.svn/pristine/a6/a6a4baeb9f914add12f39ac26d0d74dc82b60dff.svn-base new file mode 100644 index 0000000..b7aada3 --- /dev/null +++ b/.svn/pristine/a6/a6a4baeb9f914add12f39ac26d0d74dc82b60dff.svn-base @@ -0,0 +1,21 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-table](https://uniapp.dcloud.io/component/uniui/uni-table) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-07-08) +- 新增 uni-th 支持 date 日期筛选范围 +## 1.0.6(2021-07-05) +- 新增 uni-th 支持 range 筛选范围 +## 1.0.5(2021-06-28) +- 新增 uni-th 筛选功能 +## 1.0.4(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的Bug +## 1.0.3(2021-04-16) +- 新增 sortable 属性,是否开启单列排序 +- 优化 表格多选逻辑 +## 1.0.2(2021-03-22) +- uni-tr 添加 disabled 属性,用于 type=selection 时,设置某行是否可由全选按钮控制 +## 1.0.1(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/a7/a76ddc94d9c0839955188d05591c70ef9338a470.svn-base b/.svn/pristine/a7/a76ddc94d9c0839955188d05591c70ef9338a470.svn-base new file mode 100644 index 0000000..ea1703c --- /dev/null +++ b/.svn/pristine/a7/a76ddc94d9c0839955188d05591c70ef9338a470.svn-base @@ -0,0 +1,167 @@ + + + + + diff --git a/.svn/pristine/a7/a7738a8a783b3aebe5909d570eab500209b908e1.svn-base b/.svn/pristine/a7/a7738a8a783b3aebe5909d570eab500209b908e1.svn-base new file mode 100644 index 0000000..94f1868 --- /dev/null +++ b/.svn/pristine/a7/a7738a8a783b3aebe5909d570eab500209b908e1.svn-base @@ -0,0 +1,6 @@ +{ + "uni-goods-nav.options.shop": "shop", + "uni-goods-nav.options.cart": "cart", + "uni-goods-nav.buttonGroup.addToCart": "add to cart", + "uni-goods-nav.buttonGroup.buyNow": "buy now" +} diff --git a/.svn/pristine/a7/a7c3dac8c1a80e0cf35f6c74434b501b2291f85b.svn-base b/.svn/pristine/a7/a7c3dac8c1a80e0cf35f6c74434b501b2291f85b.svn-base new file mode 100644 index 0000000..e2cd23d Binary files /dev/null and b/.svn/pristine/a7/a7c3dac8c1a80e0cf35f6c74434b501b2291f85b.svn-base differ diff --git a/.svn/pristine/a7/a7db36d56673666c1d06f39dd008d1bd51e58449.svn-base b/.svn/pristine/a7/a7db36d56673666c1d06f39dd008d1bd51e58449.svn-base new file mode 100644 index 0000000..1ededd9 --- /dev/null +++ b/.svn/pristine/a7/a7db36d56673666c1d06f39dd008d1bd51e58449.svn-base @@ -0,0 +1,66 @@ + +// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐 +// @mixin get-styles($k,$c) { +// @if $k == size or $k == weight{ +// font-#{$k}:#{$c} +// }@else{ +// #{$k}:#{$c} +// } +// } +$uni-ui-color:( + // 主色 + primary: $uni-primary, + primary-disable: $uni-primary-disable, + primary-light: $uni-primary-light, + // 辅助色 + success: $uni-success, + success-disable: $uni-success-disable, + success-light: $uni-success-light, + warning: $uni-warning, + warning-disable: $uni-warning-disable, + warning-light: $uni-warning-light, + error: $uni-error, + error-disable: $uni-error-disable, + error-light: $uni-error-light, + info: $uni-info, + info-disable: $uni-info-disable, + info-light: $uni-info-light, + // 中性色 + main-color: $uni-main-color, + base-color: $uni-base-color, + secondary-color: $uni-secondary-color, + extra-color: $uni-extra-color, + // 背景色 + bg-color: $uni-bg-color, + // 边框颜色 + border-1: $uni-border-1, + border-2: $uni-border-2, + border-3: $uni-border-3, + border-4: $uni-border-4, + // 黑色 + black:$uni-black, + // 白色 + white:$uni-white, + // 透明 + transparent:$uni-transparent +) !default; +@each $key, $child in $uni-ui-color { + .uni-#{"" + $key} { + color: $child; + } + .uni-#{"" + $key}-bg { + background-color: $child; + } +} +.uni-shadow-sm { + box-shadow: $uni-shadow-sm; +} +.uni-shadow-base { + box-shadow: $uni-shadow-base; +} +.uni-shadow-lg { + box-shadow: $uni-shadow-lg; +} +.uni-mask { + background-color:$uni-mask; +} diff --git a/.svn/pristine/a9/a98ab7f35ad90c9b41f16bc1ecb54b4b14f01992.svn-base b/.svn/pristine/a9/a98ab7f35ad90c9b41f16bc1ecb54b4b14f01992.svn-base new file mode 100644 index 0000000..51c10fc --- /dev/null +++ b/.svn/pristine/a9/a98ab7f35ad90c9b41f16bc1ecb54b4b14f01992.svn-base @@ -0,0 +1,89 @@ +{ + "id": "uni-search-bar", + "displayName": "uni-search-bar 搜索栏", + "version": "1.2.2", + "description": "搜索栏组件,通常用于搜索商品、文章等", + "keywords": [ + "uni-ui", + "uniui", + "搜索框", + "搜索栏" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/a9/a9bd7dec6615d36117491b62f688437734802dfa.svn-base b/.svn/pristine/a9/a9bd7dec6615d36117491b62f688437734802dfa.svn-base new file mode 100644 index 0000000..0de943f Binary files /dev/null and b/.svn/pristine/a9/a9bd7dec6615d36117491b62f688437734802dfa.svn-base differ diff --git a/.svn/pristine/a9/a9d5ca0e4fef7b244fddaaf836b03cdba3c978c0.svn-base b/.svn/pristine/a9/a9d5ca0e4fef7b244fddaaf836b03cdba3c978c0.svn-base new file mode 100644 index 0000000..6ee56f3 Binary files /dev/null and b/.svn/pristine/a9/a9d5ca0e4fef7b244fddaaf836b03cdba3c978c0.svn-base differ diff --git a/.svn/pristine/aa/aa0a0a7c04b594513496e5d5e143507f51abfa7d.svn-base b/.svn/pristine/aa/aa0a0a7c04b594513496e5d5e143507f51abfa7d.svn-base new file mode 100644 index 0000000..f87bb25 --- /dev/null +++ b/.svn/pristine/aa/aa0a0a7c04b594513496e5d5e143507f51abfa7d.svn-base @@ -0,0 +1,147 @@ + + + diff --git a/.svn/pristine/aa/aa98f7bbc9f8627d1a08b602ee955481ee3feb71.svn-base b/.svn/pristine/aa/aa98f7bbc9f8627d1a08b602ee955481ee3feb71.svn-base new file mode 100644 index 0000000..93ecc01 --- /dev/null +++ b/.svn/pristine/aa/aa98f7bbc9f8627d1a08b602ee955481ee3feb71.svn-base @@ -0,0 +1,197 @@ + + + + diff --git a/.svn/pristine/ab/ab418700246d474bafa175e240b50e3f908eeb01.svn-base b/.svn/pristine/ab/ab418700246d474bafa175e240b50e3f908eeb01.svn-base new file mode 100644 index 0000000..b8d7d6f --- /dev/null +++ b/.svn/pristine/ab/ab418700246d474bafa175e240b50e3f908eeb01.svn-base @@ -0,0 +1,546 @@ +/** +* @1900-2100区间内的公历、农历互转 +* @charset UTF-8 +* @github https://github.com/jjonline/calendar.js +* @Author Jea杨(JJonline@JJonline.Cn) +* @Time 2014-7-21 +* @Time 2016-8-13 Fixed 2033hex、Attribution Annals +* @Time 2016-9-25 Fixed lunar LeapMonth Param Bug +* @Time 2017-7-24 Fixed use getTerm Func Param Error.use solar year,NOT lunar year +* @Version 1.0.3 +* @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0] +* @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0] +*/ +/* eslint-disable */ +var calendar = { + + /** + * 农历1900-2100的润大小信息表 + * @Array Of Property + * @return Hex + */ + lunarInfo: [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, // 1900-1909 + 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, // 1910-1919 + 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, // 1920-1929 + 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, // 1930-1939 + 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, // 1940-1949 + 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, // 1950-1959 + 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, // 1960-1969 + 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, // 1970-1979 + 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, // 1980-1989 + 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0, // 1990-1999 + 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, // 2000-2009 + 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, // 2010-2019 + 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, // 2020-2029 + 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, // 2030-2039 + 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, // 2040-2049 + /** Add By JJonline@JJonline.Cn**/ + 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0, // 2050-2059 + 0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4, // 2060-2069 + 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0, // 2070-2079 + 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160, // 2080-2089 + 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252, // 2090-2099 + 0x0d520], // 2100 + + /** + * 公历每个月份的天数普通表 + * @Array Of Property + * @return Number + */ + solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + + /** + * 天干地支之天干速查表 + * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"] + * @return Cn string + */ + Gan: ['\u7532', '\u4e59', '\u4e19', '\u4e01', '\u620a', '\u5df1', '\u5e9a', '\u8f9b', '\u58ec', '\u7678'], + + /** + * 天干地支之地支速查表 + * @Array Of Property + * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"] + * @return Cn string + */ + Zhi: ['\u5b50', '\u4e11', '\u5bc5', '\u536f', '\u8fb0', '\u5df3', '\u5348', '\u672a', '\u7533', '\u9149', '\u620c', '\u4ea5'], + + /** + * 天干地支之地支速查表<=>生肖 + * @Array Of Property + * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"] + * @return Cn string + */ + Animals: ['\u9f20', '\u725b', '\u864e', '\u5154', '\u9f99', '\u86c7', '\u9a6c', '\u7f8a', '\u7334', '\u9e21', '\u72d7', '\u732a'], + + /** + * 24节气速查表 + * @Array Of Property + * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"] + * @return Cn string + */ + solarTerm: ['\u5c0f\u5bd2', '\u5927\u5bd2', '\u7acb\u6625', '\u96e8\u6c34', '\u60ca\u86f0', '\u6625\u5206', '\u6e05\u660e', '\u8c37\u96e8', '\u7acb\u590f', '\u5c0f\u6ee1', '\u8292\u79cd', '\u590f\u81f3', '\u5c0f\u6691', '\u5927\u6691', '\u7acb\u79cb', '\u5904\u6691', '\u767d\u9732', '\u79cb\u5206', '\u5bd2\u9732', '\u971c\u964d', '\u7acb\u51ac', '\u5c0f\u96ea', '\u5927\u96ea', '\u51ac\u81f3'], + + /** + * 1900-2100各年的24节气日期速查表 + * @Array Of Property + * @return 0x string For splice + */ + sTermInfo: ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', + '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', + 'b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f', + '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa', + '97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f', + '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', + '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722', + '9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f', + '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', + '97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722', + '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', + '97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2', + '977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722', + '7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', + '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd', + '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35', + '7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35', + '665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35', + '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722'], + + /** + * 数字转中文速查表 + * @Array Of Property + * @trans ['日','一','二','三','四','五','六','七','八','九','十'] + * @return Cn string + */ + nStr1: ['\u65e5', '\u4e00', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341'], + + /** + * 日期转农历称呼速查表 + * @Array Of Property + * @trans ['初','十','廿','卅'] + * @return Cn string + */ + nStr2: ['\u521d', '\u5341', '\u5eff', '\u5345'], + + /** + * 月份转农历称呼速查表 + * @Array Of Property + * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊'] + * @return Cn string + */ + nStr3: ['\u6b63', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341', '\u51ac', '\u814a'], + + /** + * 返回农历y年一整年的总天数 + * @param lunar Year + * @return Number + * @eg:var count = calendar.lYearDays(1987) ;//count=387 + */ + lYearDays: function (y) { + var i; var sum = 348 + for (i = 0x8000; i > 0x8; i >>= 1) { sum += (this.lunarInfo[y - 1900] & i) ? 1 : 0 } + return (sum + this.leapDays(y)) + }, + + /** + * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0 + * @param lunar Year + * @return Number (0-12) + * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6 + */ + leapMonth: function (y) { // 闰字编码 \u95f0 + return (this.lunarInfo[y - 1900] & 0xf) + }, + + /** + * 返回农历y年闰月的天数 若该年没有闰月则返回0 + * @param lunar Year + * @return Number (0、29、30) + * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29 + */ + leapDays: function (y) { + if (this.leapMonth(y)) { + return ((this.lunarInfo[y - 1900] & 0x10000) ? 30 : 29) + } + return (0) + }, + + /** + * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法 + * @param lunar Year + * @return Number (-1、29、30) + * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29 + */ + monthDays: function (y, m) { + if (m > 12 || m < 1) { return -1 }// 月份参数从1至12,参数错误返回-1 + return ((this.lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29) + }, + + /** + * 返回公历(!)y年m月的天数 + * @param solar Year + * @return Number (-1、28、29、30、31) + * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30 + */ + solarDays: function (y, m) { + if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1 + var ms = m - 1 + if (ms == 1) { // 2月份的闰平规律测算后确认返回28或29 + return (((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0)) ? 29 : 28) + } else { + return (this.solarMonth[ms]) + } + }, + + /** + * 农历年份转换为干支纪年 + * @param lYear 农历年的年份数 + * @return Cn string + */ + toGanZhiYear: function (lYear) { + var ganKey = (lYear - 3) % 10 + var zhiKey = (lYear - 3) % 12 + if (ganKey == 0) ganKey = 10// 如果余数为0则为最后一个天干 + if (zhiKey == 0) zhiKey = 12// 如果余数为0则为最后一个地支 + return this.Gan[ganKey - 1] + this.Zhi[zhiKey - 1] + }, + + /** + * 公历月、日判断所属星座 + * @param cMonth [description] + * @param cDay [description] + * @return Cn string + */ + toAstro: function (cMonth, cDay) { + var s = '\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf' + var arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22] + return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + '\u5ea7'// 座 + }, + + /** + * 传入offset偏移量返回干支 + * @param offset 相对甲子的偏移量 + * @return Cn string + */ + toGanZhi: function (offset) { + return this.Gan[offset % 10] + this.Zhi[offset % 12] + }, + + /** + * 传入公历(!)y年获得该年第n个节气的公历日期 + * @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起 + * @return day Number + * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春 + */ + getTerm: function (y, n) { + if (y < 1900 || y > 2100) { return -1 } + if (n < 1 || n > 24) { return -1 } + var _table = this.sTermInfo[y - 1900] + var _info = [ + parseInt('0x' + _table.substr(0, 5)).toString(), + parseInt('0x' + _table.substr(5, 5)).toString(), + parseInt('0x' + _table.substr(10, 5)).toString(), + parseInt('0x' + _table.substr(15, 5)).toString(), + parseInt('0x' + _table.substr(20, 5)).toString(), + parseInt('0x' + _table.substr(25, 5)).toString() + ] + var _calday = [ + _info[0].substr(0, 1), + _info[0].substr(1, 2), + _info[0].substr(3, 1), + _info[0].substr(4, 2), + + _info[1].substr(0, 1), + _info[1].substr(1, 2), + _info[1].substr(3, 1), + _info[1].substr(4, 2), + + _info[2].substr(0, 1), + _info[2].substr(1, 2), + _info[2].substr(3, 1), + _info[2].substr(4, 2), + + _info[3].substr(0, 1), + _info[3].substr(1, 2), + _info[3].substr(3, 1), + _info[3].substr(4, 2), + + _info[4].substr(0, 1), + _info[4].substr(1, 2), + _info[4].substr(3, 1), + _info[4].substr(4, 2), + + _info[5].substr(0, 1), + _info[5].substr(1, 2), + _info[5].substr(3, 1), + _info[5].substr(4, 2) + ] + return parseInt(_calday[n - 1]) + }, + + /** + * 传入农历数字月份返回汉语通俗表示法 + * @param lunar month + * @return Cn string + * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月' + */ + toChinaMonth: function (m) { // 月 => \u6708 + if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1 + var s = this.nStr3[m - 1] + s += '\u6708'// 加上月字 + return s + }, + + /** + * 传入农历日期数字返回汉字表示法 + * @param lunar day + * @return Cn string + * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一' + */ + toChinaDay: function (d) { // 日 => \u65e5 + var s + switch (d) { + case 10: + s = '\u521d\u5341'; break + case 20: + s = '\u4e8c\u5341'; break + break + case 30: + s = '\u4e09\u5341'; break + break + default : + s = this.nStr2[Math.floor(d / 10)] + s += this.nStr1[d % 10] + } + return (s) + }, + + /** + * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春” + * @param y year + * @return Cn string + * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔' + */ + getAnimal: function (y) { + return this.Animals[(y - 4) % 12] + }, + + /** + * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON + * @param y solar year + * @param m solar month + * @param d solar day + * @return JSON object + * @eg:console.log(calendar.solar2lunar(1987,11,01)); + */ + solar2lunar: function (y, m, d) { // 参数区间1900.1.31~2100.12.31 + // 年份限定、上限 + if (y < 1900 || y > 2100) { + return -1// undefined转换为数字变为NaN + } + // 公历传参最下限 + if (y == 1900 && m == 1 && d < 31) { + return -1 + } + // 未传参 获得当天 + if (!y) { + var objDate = new Date() + } else { + var objDate = new Date(y, parseInt(m) - 1, d) + } + var i; var leap = 0; var temp = 0 + // 修正ymd参数 + var y = objDate.getFullYear() + var m = objDate.getMonth() + 1 + var d = objDate.getDate() + var offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 86400000 + for (i = 1900; i < 2101 && offset > 0; i++) { + temp = this.lYearDays(i) + offset -= temp + } + if (offset < 0) { + offset += temp; i-- + } + + // 是否今天 + var isTodayObj = new Date() + var isToday = false + if (isTodayObj.getFullYear() == y && isTodayObj.getMonth() + 1 == m && isTodayObj.getDate() == d) { + isToday = true + } + // 星期几 + var nWeek = objDate.getDay() + var cWeek = this.nStr1[nWeek] + // 数字表示周几顺应天朝周一开始的惯例 + if (nWeek == 0) { + nWeek = 7 + } + // 农历年 + var year = i + var leap = this.leapMonth(i) // 闰哪个月 + var isLeap = false + + // 效验闰月 + for (i = 1; i < 13 && offset > 0; i++) { + // 闰月 + if (leap > 0 && i == (leap + 1) && isLeap == false) { + --i + isLeap = true; temp = this.leapDays(year) // 计算农历闰月天数 + } else { + temp = this.monthDays(year, i)// 计算农历普通月天数 + } + // 解除闰月 + if (isLeap == true && i == (leap + 1)) { isLeap = false } + offset -= temp + } + // 闰月导致数组下标重叠取反 + if (offset == 0 && leap > 0 && i == leap + 1) { + if (isLeap) { + isLeap = false + } else { + isLeap = true; --i + } + } + if (offset < 0) { + offset += temp; --i + } + // 农历月 + var month = i + // 农历日 + var day = offset + 1 + // 天干地支处理 + var sm = m - 1 + var gzY = this.toGanZhiYear(year) + + // 当月的两个节气 + // bugfix-2017-7-24 11:03:38 use lunar Year Param `y` Not `year` + var firstNode = this.getTerm(y, (m * 2 - 1))// 返回当月「节」为几日开始 + var secondNode = this.getTerm(y, (m * 2))// 返回当月「节」为几日开始 + + // 依据12节气修正干支月 + var gzM = this.toGanZhi((y - 1900) * 12 + m + 11) + if (d >= firstNode) { + gzM = this.toGanZhi((y - 1900) * 12 + m + 12) + } + + // 传入的日期的节气与否 + var isTerm = false + var Term = null + if (firstNode == d) { + isTerm = true + Term = this.solarTerm[m * 2 - 2] + } + if (secondNode == d) { + isTerm = true + Term = this.solarTerm[m * 2 - 1] + } + // 日柱 当月一日与 1900/1/1 相差天数 + var dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10 + var gzD = this.toGanZhi(dayCyclical + d - 1) + // 该日期所属的星座 + var astro = this.toAstro(m, d) + + return { 'lYear': year, 'lMonth': month, 'lDay': day, 'Animal': this.getAnimal(year), 'IMonthCn': (isLeap ? '\u95f0' : '') + this.toChinaMonth(month), 'IDayCn': this.toChinaDay(day), 'cYear': y, 'cMonth': m, 'cDay': d, 'gzYear': gzY, 'gzMonth': gzM, 'gzDay': gzD, 'isToday': isToday, 'isLeap': isLeap, 'nWeek': nWeek, 'ncWeek': '\u661f\u671f' + cWeek, 'isTerm': isTerm, 'Term': Term, 'astro': astro } + }, + + /** + * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON + * @param y lunar year + * @param m lunar month + * @param d lunar day + * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可] + * @return JSON object + * @eg:console.log(calendar.lunar2solar(1987,9,10)); + */ + lunar2solar: function (y, m, d, isLeapMonth) { // 参数区间1900.1.31~2100.12.1 + var isLeapMonth = !!isLeapMonth + var leapOffset = 0 + var leapMonth = this.leapMonth(y) + var leapDay = this.leapDays(y) + if (isLeapMonth && (leapMonth != m)) { return -1 }// 传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同 + if (y == 2100 && m == 12 && d > 1 || y == 1900 && m == 1 && d < 31) { return -1 }// 超出了最大极限值 + var day = this.monthDays(y, m) + var _day = day + // bugFix 2016-9-25 + // if month is leap, _day use leapDays method + if (isLeapMonth) { + _day = this.leapDays(y, m) + } + if (y < 1900 || y > 2100 || d > _day) { return -1 }// 参数合法性效验 + + // 计算农历的时间差 + var offset = 0 + for (var i = 1900; i < y; i++) { + offset += this.lYearDays(i) + } + var leap = 0; var isAdd = false + for (var i = 1; i < m; i++) { + leap = this.leapMonth(y) + if (!isAdd) { // 处理闰月 + if (leap <= i && leap > 0) { + offset += this.leapDays(y); isAdd = true + } + } + offset += this.monthDays(y, i) + } + // 转换闰月农历 需补充该年闰月的前一个月的时差 + if (isLeapMonth) { offset += day } + // 1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点) + var stmap = Date.UTC(1900, 1, 30, 0, 0, 0) + var calObj = new Date((offset + d - 31) * 86400000 + stmap) + var cY = calObj.getUTCFullYear() + var cM = calObj.getUTCMonth() + 1 + var cD = calObj.getUTCDate() + + return this.solar2lunar(cY, cM, cD) + } +} + +export default calendar diff --git a/.svn/pristine/ac/ac853d31326801496b778bc1b3db81b7202846f7.svn-base b/.svn/pristine/ac/ac853d31326801496b778bc1b3db81b7202846f7.svn-base new file mode 100644 index 0000000..07df93f --- /dev/null +++ b/.svn/pristine/ac/ac853d31326801496b778bc1b3db81b7202846f7.svn-base @@ -0,0 +1,10 @@ + + +## GoodsNav 商品导航 +> **组件名:uni-goods-nav** +> 代码块: `uGoodsNav` + +商品加入购物车,立即购买等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-goods-nav) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/ad/ad22f937cf4298c3049b3b7e6bc28cd83449ce17.svn-base b/.svn/pristine/ad/ad22f937cf4298c3049b3b7e6bc28cd83449ce17.svn-base new file mode 100644 index 0000000..882f006 --- /dev/null +++ b/.svn/pristine/ad/ad22f937cf4298c3049b3b7e6bc28cd83449ce17.svn-base @@ -0,0 +1,410 @@ +class Calendar { + constructor({ + date, + selected, + startDate, + endDate, + range, + // multipleStatus + } = {}) { + // 当前日期 + this.date = this.getDate(new Date()) // 当前初入日期 + // 打点信息 + this.selected = selected || []; + // 范围开始 + this.startDate = startDate + // 范围结束 + this.endDate = endDate + this.range = range + // 多选状态 + this.cleanMultipleStatus() + // 每周日期 + this.weeks = {} + // this._getWeek(this.date.fullDate) + // this.multipleStatus = multipleStatus + this.lastHover = false + } + /** + * 设置日期 + * @param {Object} date + */ + setDate(date) { + this.selectDate = this.getDate(date) + this._getWeek(this.selectDate.fullDate) + } + + /** + * 清理多选状态 + */ + cleanMultipleStatus() { + this.multipleStatus = { + before: '', + after: '', + data: [] + } + } + + /** + * 重置开始日期 + */ + resetSatrtDate(startDate) { + // 范围开始 + this.startDate = startDate + + } + + /** + * 重置结束日期 + */ + resetEndDate(endDate) { + // 范围结束 + this.endDate = endDate + } + + /** + * 获取任意时间 + */ + getDate(date, AddDayCount = 0, str = 'day') { + if (!date) { + date = new Date() + } + if (typeof date !== 'object') { + date = date.replace(/-/g, '/') + } + const dd = new Date(date) + switch (str) { + case 'day': + dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期 + break + case 'month': + if (dd.getDate() === 31) { + dd.setDate(dd.getDate() + AddDayCount) + } else { + dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期 + } + break + case 'year': + dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期 + break + } + const y = dd.getFullYear() + const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0 + const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0 + return { + fullDate: y + '-' + m + '-' + d, + year: y, + month: m, + date: d, + day: dd.getDay() + } + } + + + /** + * 获取上月剩余天数 + */ + _getLastMonthDays(firstDay, full) { + let dateArr = [] + for (let i = firstDay; i > 0; i--) { + const beforeDate = new Date(full.year, full.month - 1, -i + 1).getDate() + dateArr.push({ + date: beforeDate, + month: full.month - 1, + disable: true + }) + } + return dateArr + } + /** + * 获取本月天数 + */ + _currentMonthDys(dateData, full) { + let dateArr = [] + let fullDate = this.date.fullDate + for (let i = 1; i <= dateData; i++) { + let isinfo = false + let nowDate = full.year + '-' + (full.month < 10 ? + full.month : full.month) + '-' + (i < 10 ? + '0' + i : i) + // 是否今天 + let isDay = fullDate === nowDate + // 获取打点信息 + let info = this.selected && this.selected.find((item) => { + if (this.dateEqual(nowDate, item.date)) { + return item + } + }) + + // 日期禁用 + let disableBefore = true + let disableAfter = true + if (this.startDate) { + // let dateCompBefore = this.dateCompare(this.startDate, fullDate) + // disableBefore = this.dateCompare(dateCompBefore ? this.startDate : fullDate, nowDate) + disableBefore = this.dateCompare(this.startDate, nowDate) + } + + if (this.endDate) { + // let dateCompAfter = this.dateCompare(fullDate, this.endDate) + // disableAfter = this.dateCompare(nowDate, dateCompAfter ? this.endDate : fullDate) + disableAfter = this.dateCompare(nowDate, this.endDate) + } + let multiples = this.multipleStatus.data + let checked = false + let multiplesStatus = -1 + if (this.range) { + if (multiples) { + multiplesStatus = multiples.findIndex((item) => { + return this.dateEqual(item, nowDate) + }) + } + if (multiplesStatus !== -1) { + checked = true + } + } + let data = { + fullDate: nowDate, + year: full.year, + date: i, + multiple: this.range ? checked : false, + beforeMultiple: this.isLogicBefore(nowDate, this.multipleStatus.before, this.multipleStatus.after), + afterMultiple: this.isLogicAfter(nowDate, this.multipleStatus.before, this.multipleStatus.after), + month: full.month, + disable: !(disableBefore && disableAfter), + isDay, + userChecked: false + } + if (info) { + data.extraInfo = info + } + + dateArr.push(data) + } + return dateArr + } + /** + * 获取下月天数 + */ + _getNextMonthDays(surplus, full) { + let dateArr = [] + for (let i = 1; i < surplus + 1; i++) { + dateArr.push({ + date: i, + month: Number(full.month) + 1, + disable: true + }) + } + return dateArr + } + + /** + * 获取当前日期详情 + * @param {Object} date + */ + getInfo(date) { + if (!date) { + date = new Date() + } + const dateInfo = this.canlender.find(item => item.fullDate === this.getDate(date).fullDate) + return dateInfo + } + + /** + * 比较时间大小 + */ + dateCompare(startDate, endDate) { + // 计算截止时间 + startDate = new Date(startDate.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + endDate = new Date(endDate.replace('-', '/').replace('-', '/')) + if (startDate <= endDate) { + return true + } else { + return false + } + } + + /** + * 比较时间是否相等 + */ + dateEqual(before, after) { + // 计算截止时间 + before = new Date(before.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + after = new Date(after.replace('-', '/').replace('-', '/')) + if (before.getTime() - after.getTime() === 0) { + return true + } else { + return false + } + } + + /** + * 比较真实起始日期 + */ + + isLogicBefore(currentDay, before, after) { + let logicBefore = before + if (before && after) { + logicBefore = this.dateCompare(before, after) ? before : after + } + return this.dateEqual(logicBefore, currentDay) + } + + isLogicAfter(currentDay, before, after) { + let logicAfter = after + if (before && after) { + logicAfter = this.dateCompare(before, after) ? after : before + } + return this.dateEqual(logicAfter, currentDay) + } + + /** + * 获取日期范围内所有日期 + * @param {Object} begin + * @param {Object} end + */ + geDateAll(begin, end) { + var arr = [] + var ab = begin.split('-') + var ae = end.split('-') + var db = new Date() + db.setFullYear(ab[0], ab[1] - 1, ab[2]) + var de = new Date() + de.setFullYear(ae[0], ae[1] - 1, ae[2]) + var unixDb = db.getTime() - 24 * 60 * 60 * 1000 + var unixDe = de.getTime() - 24 * 60 * 60 * 1000 + for (var k = unixDb; k <= unixDe;) { + k = k + 24 * 60 * 60 * 1000 + arr.push(this.getDate(new Date(parseInt(k))).fullDate) + } + return arr + } + + /** + * 获取多选状态 + */ + setMultiple(fullDate) { + let { + before, + after + } = this.multipleStatus + if (!this.range) return + if (before && after) { + if (!this.lastHover) { + this.lastHover = true + return + } + this.multipleStatus.before = fullDate + this.multipleStatus.after = '' + this.multipleStatus.data = [] + this.multipleStatus.fulldate = '' + this.lastHover = false + } else { + if (!before) { + this.multipleStatus.before = fullDate + this.lastHover = false + } else { + this.multipleStatus.after = fullDate + if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus + .after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus + .before); + } + this.lastHover = true + } + } + this._getWeek(fullDate) + } + + /** + * 鼠标 hover 更新多选状态 + */ + setHoverMultiple(fullDate) { + let { + before, + after + } = this.multipleStatus + + if (!this.range) return + if (this.lastHover) return + + if (!before) { + this.multipleStatus.before = fullDate + } else { + this.multipleStatus.after = fullDate + if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before); + } + } + this._getWeek(fullDate) + } + + /** + * 更新默认值多选状态 + */ + setDefaultMultiple(before, after) { + this.multipleStatus.before = before + this.multipleStatus.after = after + if (before && after) { + if (this.dateCompare(before, after)) { + this.multipleStatus.data = this.geDateAll(before, after); + this._getWeek(after) + } else { + this.multipleStatus.data = this.geDateAll(after, before); + this._getWeek(before) + } + } + } + + /** + * 获取每周数据 + * @param {Object} dateData + */ + _getWeek(dateData) { + const { + fullDate, + year, + month, + date, + day + } = this.getDate(dateData) + let firstDay = new Date(year, month - 1, 1).getDay() + let currentDay = new Date(year, month, 0).getDate() + let dates = { + lastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), // 上个月末尾几天 + currentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), // 本月天数 + nextMonthDays: [], // 下个月开始几天 + weeks: [] + } + let canlender = [] + const surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length) + dates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData)) + canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays) + let weeks = {} + // 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天 + for (let i = 0; i < canlender.length; i++) { + if (i % 7 === 0) { + weeks[parseInt(i / 7)] = new Array(7) + } + weeks[parseInt(i / 7)][i % 7] = canlender[i] + } + this.canlender = canlender + this.weeks = weeks + } + + //静态方法 + // static init(date) { + // if (!this.instance) { + // this.instance = new Calendar(date); + // } + // return this.instance; + // } +} + + +export default Calendar diff --git a/.svn/pristine/ad/adf80b821e324800b8fedb375d7e3d8579761b84.svn-base b/.svn/pristine/ad/adf80b821e324800b8fedb375d7e3d8579761b84.svn-base new file mode 100644 index 0000000..0c3feff Binary files /dev/null and b/.svn/pristine/ad/adf80b821e324800b8fedb375d7e3d8579761b84.svn-base differ diff --git a/.svn/pristine/ae/aeadd4aab2b449f7352e1819e7dec302bf610999.svn-base b/.svn/pristine/ae/aeadd4aab2b449f7352e1819e7dec302bf610999.svn-base new file mode 100644 index 0000000..dcf6e6b --- /dev/null +++ b/.svn/pristine/ae/aeadd4aab2b449f7352e1819e7dec302bf610999.svn-base @@ -0,0 +1,10 @@ + + +## Drawer 抽屉 +> **组件名:uni-drawer** +> 代码块: `uDrawer` + +抽屉侧滑菜单。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-drawer) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/b0/b05e168a22c1fa68e00f12698b583952d0f80da6.svn-base b/.svn/pristine/b0/b05e168a22c1fa68e00f12698b583952d0f80da6.svn-base new file mode 100644 index 0000000..4ad5f0c --- /dev/null +++ b/.svn/pristine/b0/b05e168a22c1fa68e00f12698b583952d0f80da6.svn-base @@ -0,0 +1,8 @@ +## Badge 数字角标 +> **组件名:uni-breadcrumb** +> 代码块: `uBreadcrumb` + +数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景, + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-breadcrumb) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/.svn/pristine/b3/b374ee28a27146f65ed55ff4e1a0ff95d36a3c7b.svn-base b/.svn/pristine/b3/b374ee28a27146f65ed55ff4e1a0ff95d36a3c7b.svn-base new file mode 100644 index 0000000..faafa2e --- /dev/null +++ b/.svn/pristine/b3/b374ee28a27146f65ed55ff4e1a0ff95d36a3c7b.svn-base @@ -0,0 +1,8 @@ +## Badge 数字角标 +> **组件名:uni-tooltip** +> 代码块: `uTooltip` + +数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景, + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-tooltip) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/.svn/pristine/b3/b3ded7f6b3ccff38cf568e233b19e20a7d4a3bff.svn-base b/.svn/pristine/b3/b3ded7f6b3ccff38cf568e233b19e20a7d4a3bff.svn-base new file mode 100644 index 0000000..786a670 --- /dev/null +++ b/.svn/pristine/b3/b3ded7f6b3ccff38cf568e233b19e20a7d4a3bff.svn-base @@ -0,0 +1,88 @@ +{ + "id": "uni-dateformat", + "displayName": "uni-dateformat 日期格式化", + "version": "1.0.0", + "description": "日期格式化组件,可以将日期格式化为1分钟前、刚刚等形式", + "keywords": [ + "uni-ui", + "uniui", + "日期格式化", + "时间格式化", + "格式化时间", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/b4/b47f5da8fa238049f42f9b2f904f537a21b92b20.svn-base b/.svn/pristine/b4/b47f5da8fa238049f42f9b2f904f537a21b92b20.svn-base new file mode 100644 index 0000000..e0d743b --- /dev/null +++ b/.svn/pristine/b4/b47f5da8fa238049f42f9b2f904f537a21b92b20.svn-base @@ -0,0 +1,90 @@ + + + + + diff --git a/.svn/pristine/b4/b4b186915a863bb0f6567ddf261e5326adccd933.svn-base b/.svn/pristine/b4/b4b186915a863bb0f6567ddf261e5326adccd933.svn-base new file mode 100644 index 0000000..0f27daa --- /dev/null +++ b/.svn/pristine/b4/b4b186915a863bb0f6567ddf261e5326adccd933.svn-base @@ -0,0 +1,87 @@ +{ + "id": "uni-fab", + "displayName": "uni-fab 悬浮按钮", + "version": "1.2.2", + "description": "悬浮按钮 fab button ,点击可展开一个图标按钮菜单。", + "keywords": [ + "uni-ui", + "uniui", + "按钮", + "悬浮按钮", + "fab" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-icons"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/b4/b4f6d091380a0842f4984c6c9987c50dcd3cce13.svn-base b/.svn/pristine/b4/b4f6d091380a0842f4984c6c9987c50dcd3cce13.svn-base new file mode 100644 index 0000000..526a4f3 --- /dev/null +++ b/.svn/pristine/b4/b4f6d091380a0842f4984c6c9987c50dcd3cce13.svn-base @@ -0,0 +1,12 @@ +{ + "uni-calender.ok": "ok", + "uni-calender.cancel": "cancel", + "uni-calender.today": "today", + "uni-calender.MON": "MON", + "uni-calender.TUE": "TUE", + "uni-calender.WED": "WED", + "uni-calender.THU": "THU", + "uni-calender.FRI": "FRI", + "uni-calender.SAT": "SAT", + "uni-calender.SUN": "SUN" +} diff --git a/.svn/pristine/b5/b51047621879dbdb8dbe2a9cf01d80c8d62a7f54.svn-base b/.svn/pristine/b5/b51047621879dbdb8dbe2a9cf01d80c8d62a7f54.svn-base new file mode 100644 index 0000000..a08b34a Binary files /dev/null and b/.svn/pristine/b5/b51047621879dbdb8dbe2a9cf01d80c8d62a7f54.svn-base differ diff --git a/.svn/pristine/b6/b634d2bdab01abf4f3030627da66be4d0da35225.svn-base b/.svn/pristine/b6/b634d2bdab01abf4f3030627da66be4d0da35225.svn-base new file mode 100644 index 0000000..16a5818 --- /dev/null +++ b/.svn/pristine/b6/b634d2bdab01abf4f3030627da66be4d0da35225.svn-base @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + // this.$once('hook:beforeDestroy', () => { + // document.removeEventListener('keyup', listener) + // }) + }, + render: () => {} +} +// #endif diff --git a/.svn/pristine/b6/b6ab694cb7ff239779f308a3cad4c9155a9ca7c8.svn-base b/.svn/pristine/b6/b6ab694cb7ff239779f308a3cad4c9155a9ca7c8.svn-base new file mode 100644 index 0000000..e30f70d Binary files /dev/null and b/.svn/pristine/b6/b6ab694cb7ff239779f308a3cad4c9155a9ca7c8.svn-base differ diff --git a/.svn/pristine/b7/b73b1804328fbf9f6bf162be8a810b57c3d0d8d3.svn-base b/.svn/pristine/b7/b73b1804328fbf9f6bf162be8a810b57c3d0d8d3.svn-base new file mode 100644 index 0000000..affc56f --- /dev/null +++ b/.svn/pristine/b7/b73b1804328fbf9f6bf162be8a810b57c3d0d8d3.svn-base @@ -0,0 +1,13 @@ + + +## NumberBox 数字输入框 +> **组件名:uni-number-box** +> 代码块: `uNumberBox` + + +带加减按钮的数字输入框。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-number-box) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/.svn/pristine/b8/b823133c01191ee562c2a9090f908e44125cd924.svn-base b/.svn/pristine/b8/b823133c01191ee562c2a9090f908e44125cd924.svn-base new file mode 100644 index 0000000..37f5d31 --- /dev/null +++ b/.svn/pristine/b8/b823133c01191ee562c2a9090f908e44125cd924.svn-base @@ -0,0 +1,4 @@ +{ + "uni-search-bar.cancel": "cancel", + "uni-search-bar.placeholder": "请输入搜索内容" +} diff --git a/.svn/pristine/b8/b8658f7b94f4ffafa9de0319a5df5d1bddc05d3d.svn-base b/.svn/pristine/b8/b8658f7b94f4ffafa9de0319a5df5d1bddc05d3d.svn-base new file mode 100644 index 0000000..300cb5f --- /dev/null +++ b/.svn/pristine/b8/b8658f7b94f4ffafa9de0319a5df5d1bddc05d3d.svn-base @@ -0,0 +1,817 @@ + + + + + diff --git a/.svn/pristine/b8/b8b430dbfba48288d91665272f0139bac85ae591.svn-base b/.svn/pristine/b8/b8b430dbfba48288d91665272f0139bac85ae591.svn-base new file mode 100644 index 0000000..faed298 --- /dev/null +++ b/.svn/pristine/b8/b8b430dbfba48288d91665272f0139bac85ae591.svn-base @@ -0,0 +1,67 @@ + + + + + diff --git a/.svn/pristine/b8/b8da4d6e00e3761e2796c75733f6acaab402b875.svn-base b/.svn/pristine/b8/b8da4d6e00e3761e2796c75733f6acaab402b875.svn-base new file mode 100644 index 0000000..8ef68b3 Binary files /dev/null and b/.svn/pristine/b8/b8da4d6e00e3761e2796c75733f6acaab402b875.svn-base differ diff --git a/.svn/pristine/ba/ba5951e6641863dc32abc4c8f0f6554a8574f444.svn-base b/.svn/pristine/ba/ba5951e6641863dc32abc4c8f0f6554a8574f444.svn-base new file mode 100644 index 0000000..6449885 --- /dev/null +++ b/.svn/pristine/ba/ba5951e6641863dc32abc4c8f0f6554a8574f444.svn-base @@ -0,0 +1,22 @@ +## 1.3.5(2022-01-24) +- 优化 size 属性可以传入不带单位的字符串数值 +## 1.3.4(2022-01-24) +- 优化 size 支持其他单位 +## 1.3.3(2022-01-17) +- 修复 nvue 有些图标不显示的bug,兼容老版本图标 +## 1.3.2(2021-12-01) +- 优化 示例可复制图标名称 +## 1.3.1(2021-11-23) +- 优化 兼容旧组件 type 值 +## 1.3.0(2021-11-19) +- 新增 更多图标 +- 优化 自定义图标使用方式 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons) +## 1.1.7(2021-11-08) +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.5(2021-05-12) +- 新增 组件示例地址 +## 1.1.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/bb/bb8705429fb788fbd34716e385208704d3aa5b6a.svn-base b/.svn/pristine/bb/bb8705429fb788fbd34716e385208704d3aa5b6a.svn-base new file mode 100644 index 0000000..97719a0 --- /dev/null +++ b/.svn/pristine/bb/bb8705429fb788fbd34716e385208704d3aa5b6a.svn-base @@ -0,0 +1,90 @@ +{ + "id": "uni-notice-bar", + "displayName": "uni-notice-bar 通告栏", + "version": "1.2.0", + "description": "NoticeBar 通告栏组件,常用于展示公告信息,可设为滚动公告", + "keywords": [ + "uni-ui", + "uniui", + "通告栏", + "公告", + "跑马灯" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/bc/bc0c25368c4bd9c2601f82577f088b4a0df2868d.svn-base b/.svn/pristine/bc/bc0c25368c4bd9c2601f82577f088b4a0df2868d.svn-base new file mode 100644 index 0000000..023ff02 --- /dev/null +++ b/.svn/pristine/bc/bc0c25368c4bd9c2601f82577f088b4a0df2868d.svn-base @@ -0,0 +1,78 @@ + + + + + \ No newline at end of file diff --git a/.svn/pristine/bc/bc3680a71e538ed1bb5be208528908a3ef1f44be.svn-base b/.svn/pristine/bc/bc3680a71e538ed1bb5be208528908a3ef1f44be.svn-base new file mode 100644 index 0000000..a6142bd --- /dev/null +++ b/.svn/pristine/bc/bc3680a71e538ed1bb5be208528908a3ef1f44be.svn-base @@ -0,0 +1,56 @@ + + + + + diff --git a/.svn/pristine/bc/bcb49db9b054088c94b906a5281bac70480f7d05.svn-base b/.svn/pristine/bc/bcb49db9b054088c94b906a5281bac70480f7d05.svn-base new file mode 100644 index 0000000..cfb9076 --- /dev/null +++ b/.svn/pristine/bc/bcb49db9b054088c94b906a5281bac70480f7d05.svn-base @@ -0,0 +1,242 @@ + + + + + diff --git a/.svn/pristine/bd/bd381a45d2e001ecfa97a8ca4686fcbe42d6eb50.svn-base b/.svn/pristine/bd/bd381a45d2e001ecfa97a8ca4686fcbe42d6eb50.svn-base new file mode 100644 index 0000000..0cfebf2 --- /dev/null +++ b/.svn/pristine/bd/bd381a45d2e001ecfa97a8ca4686fcbe42d6eb50.svn-base @@ -0,0 +1,4 @@ +{ + "uni-search-bar.cancel": "cancel", + "uni-search-bar.placeholder": "請輸入搜索內容" +} diff --git a/.svn/pristine/be/be856e04b3c01f85cc23ed404d668096fed7d532.svn-base b/.svn/pristine/be/be856e04b3c01f85cc23ed404d668096fed7d532.svn-base new file mode 100644 index 0000000..2c7d9ea --- /dev/null +++ b/.svn/pristine/be/be856e04b3c01f85cc23ed404d668096fed7d532.svn-base @@ -0,0 +1,454 @@ + + + + + diff --git a/.svn/pristine/be/beeee34f3dc0f70812b67708b9940ae165132ca1.svn-base b/.svn/pristine/be/beeee34f3dc0f70812b67708b9940ae165132ca1.svn-base new file mode 100644 index 0000000..069e9ce --- /dev/null +++ b/.svn/pristine/be/beeee34f3dc0f70812b67708b9940ae165132ca1.svn-base @@ -0,0 +1,90 @@ +{ + "id": "uni-popup", + "displayName": "uni-popup 弹出层", + "version": "1.7.9", + "description": " Popup 组件,提供常用的弹层", + "keywords": [ + "uni-ui", + "弹出层", + "弹窗", + "popup", + "弹框" + ], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-transition" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/bf/bf9b8dd38dba534267a819485e722613157edd57.svn-base b/.svn/pristine/bf/bf9b8dd38dba534267a819485e722613157edd57.svn-base new file mode 100644 index 0000000..3934b32 --- /dev/null +++ b/.svn/pristine/bf/bf9b8dd38dba534267a819485e722613157edd57.svn-base @@ -0,0 +1,15 @@ + + +## NavBar 导航栏 +> **组件名:uni-nav-bar** +> 代码块: `uNavBar` + +导航栏组件,主要用于头部导航。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-nav-bar) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + + + diff --git a/.svn/pristine/c1/c126e23f73a8a2cb7b78953c2dade20bd3d524b9.svn-base b/.svn/pristine/c1/c126e23f73a8a2cb7b78953c2dade20bd3d524b9.svn-base new file mode 100644 index 0000000..44ad84b --- /dev/null +++ b/.svn/pristine/c1/c126e23f73a8a2cb7b78953c2dade20bd3d524b9.svn-base @@ -0,0 +1,11 @@ + + +## IndexedList 索引列表 +> **组件名:uni-indexed-list** +> 代码块: `uIndexedList` + + +用于展示索引列表。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-indexed-list) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/.svn/pristine/c1/c1b644d735e830cc41b1667a50ce461dcf91caaa.svn-base b/.svn/pristine/c1/c1b644d735e830cc41b1667a50ce461dcf91caaa.svn-base new file mode 100644 index 0000000..4a735da --- /dev/null +++ b/.svn/pristine/c1/c1b644d735e830cc41b1667a50ce461dcf91caaa.svn-base @@ -0,0 +1,221 @@ + + + diff --git a/.svn/pristine/c2/c2b7e65cede96b40331fde5b4e0ca1361abadfe8.svn-base b/.svn/pristine/c2/c2b7e65cede96b40331fde5b4e0ca1361abadfe8.svn-base new file mode 100644 index 0000000..03dd271 --- /dev/null +++ b/.svn/pristine/c2/c2b7e65cede96b40331fde5b4e0ca1361abadfe8.svn-base @@ -0,0 +1,183 @@ + + + + + diff --git a/.svn/pristine/c2/c2ba9157338f05f12f631c3ea538c8f104168a42.svn-base b/.svn/pristine/c2/c2ba9157338f05f12f631c3ea538c8f104168a42.svn-base new file mode 100644 index 0000000..5925c32 --- /dev/null +++ b/.svn/pristine/c2/c2ba9157338f05f12f631c3ea538c8f104168a42.svn-base @@ -0,0 +1,25 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-number-box](https://uniapp.dcloud.io/component/uniui/uni-number-box) +## 1.1.2(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.1.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-04-20) +- 修复 uni-number-box 浮点数运算不精确的 bug +- 修复 uni-number-box change 事件触发不正确的 bug +- 新增 uni-number-box v-model 双向绑定 +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 + +## 1.0.7(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持 v-model +- 新增 支持 focus、blur 事件 +- 新增 支持 PC 端 diff --git a/.svn/pristine/c3/c366d8febbb063299cf933305eee6aba272355a2.svn-base b/.svn/pristine/c3/c366d8febbb063299cf933305eee6aba272355a2.svn-base new file mode 100644 index 0000000..f3d6e11 --- /dev/null +++ b/.svn/pristine/c3/c366d8febbb063299cf933305eee6aba272355a2.svn-base @@ -0,0 +1,563 @@ +var tools = { + // httpOne:'http://zhiyuanbaokao.maidaowangluo.com/index.php/api/',//域名 线上 + httpOne: 'https://pc.xiaoyuanbianjie.top/api/', //域名 线上 + upload: 'https://pc.xiaoyuanbianjie.top/api/common/upload', //上传图片域名 + URL: 'https://pc.xiaoyuanbianjie.top', + showtt: function(title, icon) { + if (title && title.length > 0) { + uni.showToast({ + title: title, + duration: 2000, + icon: icon ? icon : 'none' + }) + } + }, + showload: function(title, mask = false) { + if (title && title.length > 0) { + uni.showLoading({ + title, + mask + }) + } + }, + + // 跳转下一页 + goNext(url) { + uni.navigateTo({ + url: url + }) + }, + // 返回上一页 + goBack(num) { + uni.navigateBack({ + delta: num + }) + }, + // 跳转tabar页面 + goSwitchTab(url) { + uni.switchTab({ + url: url + }) + }, + // 关闭所有页面,跳转到指定页面 + goReLaunch(url) { + uni.reLaunch({ + url: url + }) + }, + // 关闭当前页,跳转下一页 + goRedirectTo(url) { + uni.redirectTo({ + url: url + }) + }, + //正常请求 + //请求格式 method POST GET + //请求地址 url + //请求参数 data + //加载中的框 showLoads + axios: function(method, url, data, showLoads) { + if (showLoads) { + uni.showLoading({ + 'title': showLoads + }) + }; //加载中的框 showLoads + return new Promise((resolve, reject) => { + uni.request({ + url: this.httpOne + url, //请求地址 url + data: data, //请求参数 data + method: method, //请求格式 method POST GET + header: { + 'Content-Type': 'application/json;charset=utf-8' + }, + success: (res) => { + if (showLoads) { + uni.hideLoading() + } + resolve(res.data) + }, + fail: (err) => { + reject(err) + }, + complete() { + + } + }) + }) + }, + throttle: function(fn, wait) { + clearTimeout(this.timeout) + let id = this.tabs[this.current].id + this.timeout = setTimeout(() => { + this.getList(id, this.current) + }, 450) + }, + //FROM的请求 + //请求格式 method POST GET + //请求地址 url + //请求参数 data + //加载中的框 showLoads + axiosFrom: function(method, url, data, showLoads) { + let token = uni.getStorageSync('token') ? uni.getStorageSync('token') : ''; //用户的token + if (showLoads) { + uni.showLoading({ + 'title': showLoads + }) + }; //加载中的框 + return new Promise((resolve, reject) => { + uni.request({ + url: this.httpOne + url, //请求地址 url + method: method, //请求格式 method POST GET + data: data, //请求参数 data + header: { + 'content-Type': 'application/x-www-form-urlencoded', + 'token': token + }, + success: (res) => { + if (showLoads) { + uni.hideLoading() + } + resolve(res.data) + }, + fail: (err) => { + console.log('err', err) + reject(err) + }, + complete() { + + } + }) + }) + }, + //FROM的请求 token + //请求格式 method POST GET + //请求地址 url + //请求参数 data + //加载中的框 showLoads + axiosFromToken: function(method, url, data, showLoads) { + let token = uni.getStorageSync('token') ? uni.getStorageSync('token') : ''; //用户的token + if (showLoads) { + uni.showLoading({ + 'title': showLoads + }) + }; //加载中的框 + return new Promise((resolve, reject) => { + uni.request({ + url: this.httpOne + url, //请求地址 url + method: method, //请求格式 method POST GET + data: data, //请求参数 data + header: { + 'content-Type': 'application/x-www-form-urlencoded', + 'token': token + }, + success: (res) => { + if (showLoads) { + uni.hideLoading() + } + if (res.statusCode == 401) { + uni.showModal({ + title: '温馨提示', + content: '尚未登录或登录已过期,是否前往登录?', + success: (res) => { + uni.clearStorageSync() + uni.navigateTo({ + url: "/pages/login/login" + }) + } + }); + return false + } + resolve(res.data) + }, + fail: (err) => { + reject(err) + }, + complete() { + + } + }) + }) + }, + saveImage(url) { //保存二维码 + const that = this + uni.showLoading({ + title: '加载中' + }) + uni.downloadFile({ + url, //网络图片的地址 + success(res) { + uni.saveImageToPhotosAlbum({ + filePath: res.tempFilePath, //临时文件地址 + success(res) { + uni.showToast({ + title: '保存成功', + icon: 'success' + }) + uni.hideLoading() + }, + fail(res) { + uni.showToast({ + title: '保存失败', + icon: 'error' + }) + uni.hideLoading() + console.log('保存错误', res); + } + }) + }, + fail(res) { + console.log('保存错误', res); + }, + }) + }, + lookPhoto(url,current=0) {//查看图片 + uni.previewImage({ + current, + urls: url, + fail(err) { + // console.log(err,'报错') + } + }) + }, + //函数拷贝 + copyObj(obj = {}) { + //变量先置空 + let newobj = null; + + //判断是否需要继续进行递归 + if (typeof(obj) == 'object' && obj !== null) { + newobj = obj instanceof Array ? [] : {}; + //进行下一层递归克隆 + for (var i in obj) { + newobj[i] = this.copyObj(obj[i]) + } + //如果不是对象直接赋值 + } else newobj = obj; + + return newobj; + }, + imageLook(httpImgUrl) { + uni.previewImage({ + urls: httpImgUrl + }) + }, + // from表单的输入 + formInfo(data, keys) { + let obj = { + ...data + } + // data 验证对象 Object + // keys 验证对象中非必填字段 Array + if (keys && keys[0]) { + keys.forEach(val => { + delete obj[val] + }) + } + let show = true + for (let key in obj) { + const value = obj[key] + if (!value) { + uni.showToast({ + title: '请检查信息是否填写', + icon: 'none' + }) + console.log(`未填写完整value => ${value}, key => ${key}`) + show = false; + break; + } + } + return show; + }, + call(tel) { + // #ifdef APP + plus.android.requestPermissions( + ["android.permission.CALL_PHONE"], + function(resultObj) { + var result = 0; + for (var i = 0; i < resultObj.granted.length; i++) { + var grantedPermission = resultObj.granted[i]; + console.log('已获取的权限:' + grantedPermission); + result = 1 + } + for (var i = 0; i < resultObj.deniedPresent.length; i++) { + var deniedPresentPermission = resultObj.deniedPresent[i]; + console.log('拒绝本次申请的权限:' + deniedPresentPermission); + result = 0 + } + for (var i = 0; i < resultObj.deniedAlways.length; i++) { + var deniedAlwaysPermission = resultObj.deniedAlways[i]; + console.log('永久拒绝申请的权限:' + deniedAlwaysPermission); + result = -1 + } + console.log(result); + if(result == 1){ + uni.makePhoneCall({ + phoneNumber: tel,//电话号码 + success(ress) { + console.log("拨打电话成功",ress) + }, + fail(err) { + console.log("拨打电话失败",'err') + } + }); + }else{ + uni.showToast({ + title:"请开启拨号权限", + icon:"error", + }) + } + }, + function(error) { + console.log('申请权限错误:' + error.code + " = " + error.message); + } + ); + // #endif + // #ifdef MP-MP-WEIXIN + uni.makePhoneCall({ + phoneNumber: tel,//电话号码 + success(ress) { + console.log("拨打电话成功",ress) + }, + fail(err) { + console.log("拨打电话失败",'err') + } + }); + // #endif + }, + // 判断身份证号 + isSfz(idcard) { + var id = + /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|31)|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}([0-9]|x|X)$/ + if (idcard === '') { + uni.showToast({ + title: '请输入身份证号', + icon: 'none' + }) + } else if (!id.test(idcard)) { + uni.showToast({ + title: '身份证号格式不正确!', + icon: 'none' + }) + return false + } else { + return false + } + }, + // 判断是否是手机号 + isPhone(val) { + var patrn = /^(((1[3456789][0-9]{1})|(15[0-9]{1}))+\d{8})$/ + if (!patrn.test(val) || val === '') { + uni.showToast({ + title: '手机号格式不正确', + icon: 'none' + }) + return false + } else { + return true + } + }, + // 判断邮箱 + isEmail(email) { + if (email.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) + return true; + else + return false; + }, + //当前日期 + data() { + var now = new Date(), + y = now.getFullYear(), + m = now.getMonth() + 1, + d = now.getDate(); + let Time = y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + return Time + }, + //当前时间 + time() { + var now = new Date(), + y = now.getFullYear(), + m = now.getMonth() + 1, + d = now.getDate(); + let Time = y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + "-" + now.toTimeString() + .substr(0, 8) + let str = y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + "T" + now.toTimeString().substr( + 0, 8) + console.log(str, 'str') + return Time + }, + //时间转时间戳 + timeTotimeStamp(time) { + let timestamp = Date.parse(new Date(time).toString()); + //timestamp = timestamp / 1000; //时间戳为13位需除1000,时间戳为13位的话不需除1000 + return timestamp; + //2021-11-18 22:14:24的时间戳为:1637244864707 + }, + //时间差 + // let startime = new Date() + // let endTime = new Date(res.data.yushou_end_time_text) + timeDifference(startime, endTime) { + const stime = new Date(startime).getTime(); + const etime = new Date(endTime).getTime(); + const diffTime = etime - stime; + const day = Math.floor(diffTime / (1000 * 60 * 60 * 24)); + const hour = Math.floor(diffTime / (1000 * 60 * 60) % 24); + const minute = Math.floor(diffTime / (1000 * 60) % 60); + const second = Math.floor(diffTime / 1000 % 60); + let obj = { + day, + hour, + minute, + second, + timeText: `${day}天${hour}时${minute}分${second}秒` + } + return obj + }, + //时间戳计算时间差 + timestampDifference(startime, endTime) { + const diffTime = endTime - startime; + const day = Math.floor(diffTime / (60 * 60 * 24)); + const hour = Math.floor(diffTime / 60 / 60 % 24); + const minute = Math.floor(diffTime / 60 % 60); + const second = Math.floor(diffTime % 60); + let obj = { + day, + hour, + minute, + second, + timeText: `${day}天${hour}时${minute}分${second}秒` + } + return obj + }, + // 时间戳转时间 + timestampToTime(timestamp) { + timestamp *= 1000 + var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000 + var Y = date.getFullYear() + '-'; + var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; + var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '; + var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; + var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'; + var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()); + return Y + M + D; + }, + getDays() {//获取未来n天的日期信息 + var leng = 7; + var now = new Date(); + var nowTime = now.getTime(); + var oneDayTime = 24 * 60 * 60 * 1000; + var date = [] + for (var i = 0; i < leng; i++) { + var dateItem = {date: '', text: ''} + //显示星期 + var ShowTime = nowTime + i * oneDayTime; + //初始化日期时间 + var myDate = new Date(ShowTime); + var year = myDate.getFullYear(); + var month = myDate.getMonth() + 1; + var date = myDate.getDate(); + dateItem.text = "星期" + "日一二三四五六".charAt(myDate.getDay()); + dateItem.date = year + "-" + month + "-" + date ; dateItem.select = 0; + dateItem.year = year;dateItem.month = month;dateItem.day = date; + if (i == 0) dateItem.text = '今天' + if (i == 1) dateItem.text = '明天' + if (i == 2) dateItem.text = '后天' + date.push(dateItem); + } + return date + console.log(date) + }, + /** + * 判断是否是中文 + * @param str + * @returns {Boolean} + */ + isChine: function(str) { + var reg = /^([u4E00-u9FA5]|[uFE30-uFFA0])*$/; + if (reg.test(str)) { + return false; + } + return true; + }, + /** + * 判断是否是中文 + * @param num + * @returns {String | Number} + */ + isForNumber(num) { + num = Number(num); + if (num == 0) { + return num + ''; + } else + if (num > 1 && num < 10000) { + return num + ''; + } else { + return (num / 10000).toFixed(2) + '万'; + } + }, + /*验证是否为图片*/ + tmCheckImage: function(fileName) { + return /(gif|jpg|jpeg|png|GIF|JPG|PNG)$/ig.test(fileName); + }, + /*验证是否为视频*/ + tmCheckVideo: function(fileName) { + return /(mp4|mp3|flv|wav)$/ig.test(fileName); + }, + // 判断密码是否符合 至少6位,包括大小写字母、数字、特殊字符 + isPassword(val) { + var reg = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,16}$/; + if (val === '') { + uni.showToast({ + title: '请输入密码', + icon: 'none' + }) + } else if (!reg.test(val)) { + uni.showToast({ + title: '至少6位,包括大小写字母、数字、特殊字符', + icon: 'none' + }) + return false + } else { + return true + } + }, + copyTextH5App(info) { + if (!info) return false; + info = info + ''; + // #ifndef H5 + uni.setClipboardData({ //准备复制的数据 + data: info + '', + success: function(res) { + uni.showToast({ + title: '复制成功' + }); + } + }) + // #endif + // #ifdef H5 + let result + let textarea = document.createElement("textarea") + textarea.value = info + textarea.readOnly = "readOnly" + document.body.appendChild(textarea) + textarea.select() // 选中文本内容 + textarea.setSelectionRange(0, info.length) // 设置选定区的开始和结束点 + + result = document.execCommand("copy") //将当前选中区复制到剪贴板 + // console.log('[result]', result); + if (result) { + uni.showToast({ //提示 + title: '复制成功' + }) + } else { + uni.showToast({ //提示 + title: '复制失败,请重新尝试', + icon: 'none' + }) + } + textarea.remove() + // #endif + }, +} + + +export default tools; diff --git a/.svn/pristine/c3/c37501d962611d356d140c146b76fd55c09ea77f.svn-base b/.svn/pristine/c3/c37501d962611d356d140c146b76fd55c09ea77f.svn-base new file mode 100644 index 0000000..71bf7e7 --- /dev/null +++ b/.svn/pristine/c3/c37501d962611d356d140c146b76fd55c09ea77f.svn-base @@ -0,0 +1,231 @@ + + + + + diff --git a/.svn/pristine/c4/c4314362fa4d934275c67dce84247a2e5b1ddb6e.svn-base b/.svn/pristine/c4/c4314362fa4d934275c67dce84247a2e5b1ddb6e.svn-base new file mode 100644 index 0000000..3f52fa6 --- /dev/null +++ b/.svn/pristine/c4/c4314362fa4d934275c67dce84247a2e5b1ddb6e.svn-base @@ -0,0 +1,87 @@ +{ + "id": "uni-row", + "displayName": "uni-row 布局-行", + "version": "1.0.0", + "description": "流式栅格系统,随着屏幕或视口分为 24 份,可以迅速简便地创建布局。", + "keywords": [ + "uni-ui", + "uniui", + "栅格", + "布局", + "layout" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "u" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/c4/c4a0b8fddfabd83ff4af620b4ec1f5b21466fb3b.svn-base b/.svn/pristine/c4/c4a0b8fddfabd83ff4af620b4ec1f5b21466fb3b.svn-base new file mode 100644 index 0000000..1c062d4 --- /dev/null +++ b/.svn/pristine/c4/c4a0b8fddfabd83ff4af620b4ec1f5b21466fb3b.svn-base @@ -0,0 +1,62 @@ +@import './styles/setting/_variables.scss'; +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; + +// 主色 +$uni-primary: #2979ff; +$uni-primary-disable:mix(#fff,$uni-primary,50%); +$uni-primary-light: mix(#fff,$uni-primary,80%); + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37; +$uni-success-disable:mix(#fff,$uni-success,50%); +$uni-success-light: mix(#fff,$uni-success,80%); + +$uni-warning: #f3a73f; +$uni-warning-disable:mix(#fff,$uni-warning,50%); +$uni-warning-light: mix(#fff,$uni-warning,80%); + +$uni-error: #e43d33; +$uni-error-disable:mix(#fff,$uni-error,50%); +$uni-error-light: mix(#fff,$uni-error,80%); + +$uni-info: #8f939c; +$uni-info-disable:mix(#fff,$uni-info,50%); +$uni-info-light: mix(#fff,$uni-info,80%); + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a; // 主要文字 +$uni-base-color: #6a6a6a; // 常规文字 +$uni-secondary-color: #909399; // 次要文字 +$uni-extra-color: #c7c7c7; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0; +$uni-border-2: #EDEDED; +$uni-border-3: #DCDCDC; +$uni-border-4: #B9B9B9; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); + +// 背景色 +$uni-bg-color: #f7f7f7; + +/* 水平间距 */ +$uni-spacing-sm: 8px; +$uni-spacing-base: 15px; +$uni-spacing-lg: 30px; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5); +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2); +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5); + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4); diff --git a/.svn/pristine/c5/c5d754fa34bcf4bb48864c6c34a081c1fd5d6edb.svn-base b/.svn/pristine/c5/c5d754fa34bcf4bb48864c6c34a081c1fd5d6edb.svn-base new file mode 100644 index 0000000..3b37082 --- /dev/null +++ b/.svn/pristine/c5/c5d754fa34bcf4bb48864c6c34a081c1fd5d6edb.svn-base @@ -0,0 +1,88 @@ +{ + "id": "uni-title", + "displayName": "uni-title 章节标题", + "version": "1.1.0", + "description": "章节标题,通常用于记录页面标题,使用当前组件,uni-app 如果开启统计,将会自动统计页面标题", + "keywords": [ + "uni-ui", + "uniui", + "标题", + "章节", + "章节标题", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/c6/c69237a9f91daca111b977e53686605d84c91649.svn-base b/.svn/pristine/c6/c69237a9f91daca111b977e53686605d84c91649.svn-base new file mode 100644 index 0000000..7f549f6 --- /dev/null +++ b/.svn/pristine/c6/c69237a9f91daca111b977e53686605d84c91649.svn-base @@ -0,0 +1,12 @@ +export function isPC() { + var userAgentInfo = navigator.userAgent; + var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; + var flag = true; + for (let v = 0; v < Agents.length - 1; v++) { + if (userAgentInfo.indexOf(Agents[v]) > 0) { + flag = false; + break; + } + } + return flag; +} \ No newline at end of file diff --git a/.svn/pristine/c6/c69cd001942d45cc130f28b10c2295657f0da537.svn-base b/.svn/pristine/c6/c69cd001942d45cc130f28b10c2295657f0da537.svn-base new file mode 100644 index 0000000..bae67f4 --- /dev/null +++ b/.svn/pristine/c6/c69cd001942d45cc130f28b10c2295657f0da537.svn-base @@ -0,0 +1,9 @@ + +## Group 分组 +> **组件名:uni-group** +> 代码块: `uGroup` + +分组组件可用于将组件分组,添加间隔,以产生明显的区块。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-group) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/c6/c6f97bf59780d035a0bc0c35a500f2cfaf2cb443.svn-base b/.svn/pristine/c6/c6f97bf59780d035a0bc0c35a500f2cfaf2cb443.svn-base new file mode 100644 index 0000000..0aa44cc --- /dev/null +++ b/.svn/pristine/c6/c6f97bf59780d035a0bc0c35a500f2cfaf2cb443.svn-base @@ -0,0 +1,11 @@ + + +## Grid 宫格 +> **组件名:uni-grid** +> 代码块: `uGrid` + + +宫格组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-grid) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/c7/c75233b3c5014232d0dc22302baf1603843246c8.svn-base b/.svn/pristine/c7/c75233b3c5014232d0dc22302baf1603843246c8.svn-base new file mode 100644 index 0000000..557d3d7 --- /dev/null +++ b/.svn/pristine/c7/c75233b3c5014232d0dc22302baf1603843246c8.svn-base @@ -0,0 +1,146 @@ +// @use "sass:math"; +@import '../tools/functions.scss'; +// 间距基础倍数 +$uni-space-root: 2 !default; +// 边框半径默认值 +$uni-radius-root:5px !default; +$uni-radius: () !default; +// 边框半径断点 +$uni-radius: map-deep-merge( + ( + 0: 0, + // TODO 当前版本暂时不支持 sm 属性 + // 'sm': math.div($uni-radius-root, 2), + null: $uni-radius-root, + 'lg': $uni-radius-root * 2, + 'xl': $uni-radius-root * 6, + 'pill': 9999px, + 'circle': 50% + ), + $uni-radius +); +// 字体家族 +$body-font-family: 'Roboto', sans-serif !default; +// 文本 +$heading-font-family: $body-font-family !default; +$uni-headings: () !default; +$letterSpacing: -0.01562em; +$uni-headings: map-deep-merge( + ( + 'h1': ( + size: 32px, + weight: 300, + line-height: 50px, + // letter-spacing:-0.01562em + ), + 'h2': ( + size: 28px, + weight: 300, + line-height: 40px, + // letter-spacing: -0.00833em + ), + 'h3': ( + size: 24px, + weight: 400, + line-height: 32px, + // letter-spacing: normal + ), + 'h4': ( + size: 20px, + weight: 400, + line-height: 30px, + // letter-spacing: 0.00735em + ), + 'h5': ( + size: 16px, + weight: 400, + line-height: 24px, + // letter-spacing: normal + ), + 'h6': ( + size: 14px, + weight: 500, + line-height: 18px, + // letter-spacing: 0.0125em + ), + 'subtitle': ( + size: 12px, + weight: 400, + line-height: 20px, + // letter-spacing: 0.00937em + ), + 'body': ( + font-size: 14px, + font-weight: 400, + line-height: 22px, + // letter-spacing: 0.03125em + ), + 'caption': ( + 'size': 12px, + 'weight': 400, + 'line-height': 20px, + // 'letter-spacing': 0.03333em, + // 'text-transform': false + ) + ), + $uni-headings +); + + + +// 主色 +$uni-primary: #2979ff !default; +$uni-primary-disable:lighten($uni-primary,20%) !default; +$uni-primary-light: lighten($uni-primary,25%) !default; + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37 !default; +$uni-success-disable:lighten($uni-success,20%) !default; +$uni-success-light: lighten($uni-success,25%) !default; + +$uni-warning: #f3a73f !default; +$uni-warning-disable:lighten($uni-warning,20%) !default; +$uni-warning-light: lighten($uni-warning,25%) !default; + +$uni-error: #e43d33 !default; +$uni-error-disable:lighten($uni-error,20%) !default; +$uni-error-light: lighten($uni-error,25%) !default; + +$uni-info: #8f939c !default; +$uni-info-disable:lighten($uni-info,20%) !default; +$uni-info-light: lighten($uni-info,25%) !default; + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a !default; // 主要文字 +$uni-base-color: #6a6a6a !default; // 常规文字 +$uni-secondary-color: #909399 !default; // 次要文字 +$uni-extra-color: #c7c7c7 !default; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0 !default; +$uni-border-2: #EDEDED !default; +$uni-border-3: #DCDCDC !default; +$uni-border-4: #B9B9B9 !default; + +// 常规色 +$uni-black: #000000 !default; +$uni-white: #ffffff !default; +$uni-transparent: rgba($color: #000000, $alpha: 0) !default; + +// 背景色 +$uni-bg-color: #f7f7f7 !default; + +/* 水平间距 */ +$uni-spacing-sm: 8px !default; +$uni-spacing-base: 15px !default; +$uni-spacing-lg: 30px !default; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default; +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default; +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default; + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4) !default; diff --git a/.svn/pristine/c7/c780d3c246ba207e2292d8c50475e51cb745fccc.svn-base b/.svn/pristine/c7/c780d3c246ba207e2292d8c50475e51cb745fccc.svn-base new file mode 100644 index 0000000..7938097 --- /dev/null +++ b/.svn/pristine/c7/c780d3c246ba207e2292d8c50475e51cb745fccc.svn-base @@ -0,0 +1,87 @@ +{ + "id": "uni-swipe-action", + "displayName": "uni-swipe-action 滑动操作", + "version": "1.3.3", + "description": "SwipeAction 滑动操作操作组件", + "keywords": [ + "", + "uni-ui", + "uniui", + "滑动删除", + "侧滑删除" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/c7/c7a288727446d8a1905cfdba37ea0d54692da4c2.svn-base b/.svn/pristine/c7/c7a288727446d8a1905cfdba37ea0d54692da4c2.svn-base new file mode 100644 index 0000000..97c07fd Binary files /dev/null and b/.svn/pristine/c7/c7a288727446d8a1905cfdba37ea0d54692da4c2.svn-base differ diff --git a/.svn/pristine/c7/c7d330320c482f685fe6c46903414f25b86f4515.svn-base b/.svn/pristine/c7/c7d330320c482f685fe6c46903414f25b86f4515.svn-base new file mode 100644 index 0000000..7a01f8b Binary files /dev/null and b/.svn/pristine/c7/c7d330320c482f685fe6c46903414f25b86f4515.svn-base differ diff --git a/.svn/pristine/c8/c82168d240a299292e55285d1d21ab1b51cff8d1.svn-base b/.svn/pristine/c8/c82168d240a299292e55285d1d21ab1b51cff8d1.svn-base new file mode 100644 index 0000000..82f13a3 Binary files /dev/null and b/.svn/pristine/c8/c82168d240a299292e55285d1d21ab1b51cff8d1.svn-base differ diff --git a/.svn/pristine/c8/c8f5925bafa503473a813bab2dd4480772f0010a.svn-base b/.svn/pristine/c8/c8f5925bafa503473a813bab2dd4480772f0010a.svn-base new file mode 100644 index 0000000..da7a4bf --- /dev/null +++ b/.svn/pristine/c8/c8f5925bafa503473a813bab2dd4480772f0010a.svn-base @@ -0,0 +1,13 @@ + + +## Steps 步骤条 +> **组件名:uni-steps** +> 代码块: `uSteps` + + +步骤条,常用于显示进度 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-steps) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/.svn/pristine/cc/cc7d7e28ab21c0929d7c6d79ceda158778beb7ff.svn-base b/.svn/pristine/cc/cc7d7e28ab21c0929d7c6d79ceda158778beb7ff.svn-base new file mode 100644 index 0000000..2f8a77e --- /dev/null +++ b/.svn/pristine/cc/cc7d7e28ab21c0929d7c6d79ceda158778beb7ff.svn-base @@ -0,0 +1,11 @@ + + +## Transition 过渡动画 +> **组件名:uni-transition** +> 代码块: `uTransition` + + +元素过渡动画 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-transition) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/cc/ccb25ddd58b57ef27e2079431db76b53254092a6.svn-base b/.svn/pristine/cc/ccb25ddd58b57ef27e2079431db76b53254092a6.svn-base new file mode 100644 index 0000000..b20d466 Binary files /dev/null and b/.svn/pristine/cc/ccb25ddd58b57ef27e2079431db76b53254092a6.svn-base differ diff --git a/.svn/pristine/cd/cd673588703f6f9d4f39ee8ff0400feb54ed6206.svn-base b/.svn/pristine/cd/cd673588703f6f9d4f39ee8ff0400feb54ed6206.svn-base new file mode 100644 index 0000000..4a05c3f --- /dev/null +++ b/.svn/pristine/cd/cd673588703f6f9d4f39ee8ff0400feb54ed6206.svn-base @@ -0,0 +1,90 @@ +{ + "id": "uni-combox", + "displayName": "uni-combox 组合框", + "version": "1.0.1", + "description": "可以选择也可以输入的表单项 ", + "keywords": [ + "uni-ui", + "uniui", + "combox", + "组合框", + "select" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/cd/cdb36b312d4a3bdcb081252ddf9cd7082ab2066c.svn-base b/.svn/pristine/cd/cdb36b312d4a3bdcb081252ddf9cd7082ab2066c.svn-base new file mode 100644 index 0000000..957824e --- /dev/null +++ b/.svn/pristine/cd/cdb36b312d4a3bdcb081252ddf9cd7082ab2066c.svn-base @@ -0,0 +1,4 @@ +## 0.1.1(2022-05-07) +- 新增 记住上次的选项(仅 collection 存在时有效) +## 0.1.0(2022-04-22) +- 初始化 diff --git a/.svn/pristine/ce/ce06db27e6959dea3926302e4724e24b74fb42c9.svn-base b/.svn/pristine/ce/ce06db27e6959dea3926302e4724e24b74fb42c9.svn-base new file mode 100644 index 0000000..7c31560 --- /dev/null +++ b/.svn/pristine/ce/ce06db27e6959dea3926302e4724e24b74fb42c9.svn-base @@ -0,0 +1,179 @@ + + + + + diff --git a/.svn/pristine/ce/ce51d84bb8e4fa063e9ff872dae7ef62d61ba8a1.svn-base b/.svn/pristine/ce/ce51d84bb8e4fa063e9ff872dae7ef62d61ba8a1.svn-base new file mode 100644 index 0000000..5162fb5 Binary files /dev/null and b/.svn/pristine/ce/ce51d84bb8e4fa063e9ff872dae7ef62d61ba8a1.svn-base differ diff --git a/.svn/pristine/d0/d012c189f84b4904406870e90f68615e92695121.svn-base b/.svn/pristine/d0/d012c189f84b4904406870e90f68615e92695121.svn-base new file mode 100644 index 0000000..fdad4b3 --- /dev/null +++ b/.svn/pristine/d0/d012c189f84b4904406870e90f68615e92695121.svn-base @@ -0,0 +1,17 @@ + + +## Popup 弹出层 +> **组件名:uni-popup** +> 代码块: `uPopup` +> 关联组件:`uni-transition` + + +弹出层组件,在应用中弹出一个消息提示窗口、提示框等 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-popup) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + + + diff --git a/.svn/pristine/d0/d027efd3045ad1a2366093b8c2b25076cdadc85a.svn-base b/.svn/pristine/d0/d027efd3045ad1a2366093b8c2b25076cdadc85a.svn-base new file mode 100644 index 0000000..c3ff205 --- /dev/null +++ b/.svn/pristine/d0/d027efd3045ad1a2366093b8c2b25076cdadc85a.svn-base @@ -0,0 +1,20 @@ + + + + + + + + + + +
+ + + diff --git a/.svn/pristine/d0/d047aea9ad902b1a1ac7d1bfd0a4543a8e984c52.svn-base b/.svn/pristine/d0/d047aea9ad902b1a1ac7d1bfd0a4543a8e984c52.svn-base new file mode 100644 index 0000000..5068b16 Binary files /dev/null and b/.svn/pristine/d0/d047aea9ad902b1a1ac7d1bfd0a4543a8e984c52.svn-base differ diff --git a/.svn/pristine/d1/d142fd26085f29a1824ab1a4a072fa3fc0c539a8.svn-base b/.svn/pristine/d1/d142fd26085f29a1824ab1a4a072fa3fc0c539a8.svn-base new file mode 100644 index 0000000..cd49be0 --- /dev/null +++ b/.svn/pristine/d1/d142fd26085f29a1824ab1a4a072fa3fc0c539a8.svn-base @@ -0,0 +1,142 @@ + + + + + diff --git a/.svn/pristine/d1/d1c90d9ade3e5b82336cd4765b6b84976cd2c9da.svn-base b/.svn/pristine/d1/d1c90d9ade3e5b82336cd4765b6b84976cd2c9da.svn-base new file mode 100644 index 0000000..5cb259f --- /dev/null +++ b/.svn/pristine/d1/d1c90d9ade3e5b82336cd4765b6b84976cd2c9da.svn-base @@ -0,0 +1,156 @@ + + + + + diff --git a/.svn/pristine/d1/d1f194416214e80d06537199d62cc768e613c5bc.svn-base b/.svn/pristine/d1/d1f194416214e80d06537199d62cc768e613c5bc.svn-base new file mode 100644 index 0000000..3c9c8b9 --- /dev/null +++ b/.svn/pristine/d1/d1f194416214e80d06537199d62cc768e613c5bc.svn-base @@ -0,0 +1,10 @@ +## Layout 布局 + +> **组件名 uni-row、uni-col** +> 代码块: `uRow`、`uCol` + + +流式栅格系统,随着屏幕或视口分为 24 份,可以迅速简便地创建布局。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-row) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/d2/d249e1c2aa7225bced0ace9f175d133dff7dad1e.svn-base b/.svn/pristine/d2/d249e1c2aa7225bced0ace9f175d133dff7dad1e.svn-base new file mode 100644 index 0000000..581e56f --- /dev/null +++ b/.svn/pristine/d2/d249e1c2aa7225bced0ace9f175d133dff7dad1e.svn-base @@ -0,0 +1,257 @@ +let otherMixins = {} + +// #ifndef APP-PLUS|| MP-WEIXIN || H5 +const MIN_DISTANCE = 10; +otherMixins = { + data() { + // TODO 随机生生元素ID,解决百度小程序获取同一个元素位置信息的bug + const elClass = `Uni_${Math.ceil(Math.random() * 10e5).toString(36)}` + return { + uniShow: false, + left: 0, + buttonShow: 'none', + ani: false, + moveLeft:'', + elClass + } + }, + watch: { + show(newVal) { + if (this.autoClose) return + this.openState(newVal) + }, + left(){ + this.moveLeft = `translateX(${this.left}px)` + }, + buttonShow(newVal){ + if (this.autoClose) return + this.openState(newVal) + }, + leftOptions() { + this.init() + }, + rightOptions() { + this.init() + } + }, + mounted() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + this.init() + }, + methods: { + init(){ + clearTimeout(this.timer) + this.timer = setTimeout(() => { + this.getSelectorQuery() + }, 100) + // 移动距离 + this.left = 0 + this.x = 0 + }, + + closeSwipe(e) { + if (!this.autoClose) return + this.swipeaction.closeOther(this) + }, + appTouchStart(e) { + const { + clientX + } = e.changedTouches[0] + this.clientX = clientX + this.timestamp = new Date().getTime() + }, + appTouchEnd(e, index, item, position) { + const { + clientX + } = e.changedTouches[0] + // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 + let diff = Math.abs(this.clientX - clientX) + let time = (new Date().getTime()) - this.timestamp + if (diff < 40 && time < 300) { + this.$emit('click', { + content: item, + index, + position + }) + } + }, + touchstart(e) { + if (this.disabled) return + this.ani = false + this.x = this.left || 0 + this.stopTouchStart(e) + this.autoClose && this.closeSwipe() + }, + touchmove(e) { + if (this.disabled) return + // 是否可以滑动页面 + this.stopTouchMove(e); + if (this.direction !== 'horizontal') { + return; + } + this.move(this.x + this.deltaX) + return false + }, + touchend() { + if (this.disabled) return + this.moveDirection(this.left) + }, + /** + * 设置移动距离 + * @param {Object} value + */ + move(value) { + value = value || 0 + const leftWidth = this.leftWidth + const rightWidth = this.rightWidth + // 获取可滑动范围 + this.left = this.range(value, -rightWidth, leftWidth); + }, + + /** + * 获取范围 + * @param {Object} num + * @param {Object} min + * @param {Object} max + */ + range(num, min, max) { + return Math.min(Math.max(num, min), max); + }, + /** + * 移动方向判断 + * @param {Object} left + * @param {Object} value + */ + moveDirection(left) { + const threshold = this.threshold + const isopen = this.isopen || 'none' + const leftWidth = this.leftWidth + const rightWidth = this.rightWidth + if (this.deltaX === 0) { + this.openState('none') + return + } + if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > 0 && rightWidth + + left < threshold)) { + // right + this.openState('right') + } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > 0 && + leftWidth - left < threshold)) { + // left + this.openState('left') + } else { + // default + this.openState('none') + } + }, + + /** + * 开启状态 + * @param {Boolean} type + */ + openState(type) { + const leftWidth = this.leftWidth + const rightWidth = this.rightWidth + let left = '' + this.isopen = this.isopen ? this.isopen : 'none' + switch (type) { + case "left": + left = leftWidth + break + case "right": + left = -rightWidth + break + default: + left = 0 + } + + + if (this.isopen !== type) { + this.throttle = true + this.$emit('change', type) + } + + this.isopen = type + // 添加动画类 + this.ani = true + this.$nextTick(() => { + this.move(left) + }) + // 设置最终移动位置,理论上只要进入到这个函数,肯定是要打开的 + }, + close() { + this.openState('none') + }, + getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal'; + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical'; + } + return ''; + }, + + /** + * 重置滑动状态 + * @param {Object} event + */ + resetTouchStatus() { + this.direction = ''; + this.deltaX = 0; + this.deltaY = 0; + this.offsetX = 0; + this.offsetY = 0; + }, + + /** + * 设置滑动开始位置 + * @param {Object} event + */ + stopTouchStart(event) { + this.resetTouchStatus(); + const touch = event.touches[0]; + this.startX = touch.clientX; + this.startY = touch.clientY; + }, + + /** + * 滑动中,是否禁止打开 + * @param {Object} event + */ + stopTouchMove(event) { + const touch = event.touches[0]; + this.deltaX = touch.clientX - this.startX; + this.deltaY = touch.clientY - this.startY; + this.offsetX = Math.abs(this.deltaX); + this.offsetY = Math.abs(this.deltaY); + this.direction = this.direction || this.getDirection(this.offsetX, this.offsetY); + }, + + getSelectorQuery() { + const views = uni.createSelectorQuery().in(this) + views + .selectAll('.'+this.elClass) + .boundingClientRect(data => { + if(data.length === 0) return + let show = 'none' + if (this.autoClose) { + show = 'none' + } else { + show = this.show + } + this.leftWidth = data[0].width || 0 + this.rightWidth = data[1].width || 0 + this.buttonShow = show + }) + .exec() + } + } +} + +// #endif + +export default otherMixins diff --git a/.svn/pristine/d3/d3690b9112ebb6f4a98b51caf1fca8d5cb78d5c4.svn-base b/.svn/pristine/d3/d3690b9112ebb6f4a98b51caf1fca8d5cb78d5c4.svn-base new file mode 100644 index 0000000..e2e1aca Binary files /dev/null and b/.svn/pristine/d3/d3690b9112ebb6f4a98b51caf1fca8d5cb78d5c4.svn-base differ diff --git a/.svn/pristine/d4/d4fd77184f0c5d609bca1d31689a8a21580b1fe5.svn-base b/.svn/pristine/d4/d4fd77184f0c5d609bca1d31689a8a21580b1fe5.svn-base new file mode 100644 index 0000000..b31ca6d --- /dev/null +++ b/.svn/pristine/d4/d4fd77184f0c5d609bca1d31689a8a21580b1fe5.svn-base @@ -0,0 +1,350 @@ +import CALENDAR from './calendar.js' + +class Calendar { + constructor({ + date, + selected, + startDate, + endDate, + range + } = {}) { + // 当前日期 + this.date = this.getDate(new Date()) // 当前初入日期 + // 打点信息 + this.selected = selected || []; + // 范围开始 + this.startDate = startDate + // 范围结束 + this.endDate = endDate + this.range = range + // 多选状态 + this.cleanMultipleStatus() + // 每周日期 + this.weeks = {} + // this._getWeek(this.date.fullDate) + } + /** + * 设置日期 + * @param {Object} date + */ + setDate(date) { + this.selectDate = this.getDate(date) + this._getWeek(this.selectDate.fullDate) + } + + /** + * 清理多选状态 + */ + cleanMultipleStatus() { + this.multipleStatus = { + before: '', + after: '', + data: [] + } + } + + /** + * 重置开始日期 + */ + resetSatrtDate(startDate) { + // 范围开始 + this.startDate = startDate + + } + + /** + * 重置结束日期 + */ + resetEndDate(endDate) { + // 范围结束 + this.endDate = endDate + } + + /** + * 获取任意时间 + */ + getDate(date, AddDayCount = 0, str = 'day') { + if (!date) { + date = new Date() + } + if (typeof date !== 'object') { + date = date.replace(/-/g, '/') + } + const dd = new Date(date) + switch (str) { + case 'day': + dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期 + break + case 'month': + if (dd.getDate() === 31) { + dd.setDate(dd.getDate() + AddDayCount) + } else { + dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期 + } + break + case 'year': + dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期 + break + } + const y = dd.getFullYear() + const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0 + const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0 + return { + fullDate: y + '-' + m + '-' + d, + year: y, + month: m, + date: d, + day: dd.getDay() + } + } + + + /** + * 获取上月剩余天数 + */ + _getLastMonthDays(firstDay, full) { + let dateArr = [] + for (let i = firstDay; i > 0; i--) { + const beforeDate = new Date(full.year, full.month - 1, -i + 1).getDate() + dateArr.push({ + date: beforeDate, + month: full.month - 1, + lunar: this.getlunar(full.year, full.month - 1, beforeDate), + disable: true + }) + } + return dateArr + } + /** + * 获取本月天数 + */ + _currentMonthDys(dateData, full) { + let dateArr = [] + let fullDate = this.date.fullDate + for (let i = 1; i <= dateData; i++) { + let nowDate = full.year + '-' + (full.month < 10 ? + full.month : full.month) + '-' + (i < 10 ? + '0' + i : i) + // 是否今天 + let isDay = fullDate === nowDate + // 获取打点信息 + let info = this.selected && this.selected.find((item) => { + if (this.dateEqual(nowDate, item.date)) { + return item + } + }) + + // 日期禁用 + let disableBefore = true + let disableAfter = true + if (this.startDate) { + // let dateCompBefore = this.dateCompare(this.startDate, fullDate) + // disableBefore = this.dateCompare(dateCompBefore ? this.startDate : fullDate, nowDate) + disableBefore = this.dateCompare(this.startDate, nowDate) + } + + if (this.endDate) { + // let dateCompAfter = this.dateCompare(fullDate, this.endDate) + // disableAfter = this.dateCompare(nowDate, dateCompAfter ? this.endDate : fullDate) + disableAfter = this.dateCompare(nowDate, this.endDate) + } + let multiples = this.multipleStatus.data + let checked = false + let multiplesStatus = -1 + if (this.range) { + if (multiples) { + multiplesStatus = multiples.findIndex((item) => { + return this.dateEqual(item, nowDate) + }) + } + if (multiplesStatus !== -1) { + checked = true + } + } + let data = { + fullDate: nowDate, + year: full.year, + date: i, + multiple: this.range ? checked : false, + beforeMultiple: this.dateEqual(this.multipleStatus.before, nowDate), + afterMultiple: this.dateEqual(this.multipleStatus.after, nowDate), + month: full.month, + lunar: this.getlunar(full.year, full.month, i), + disable: !(disableBefore && disableAfter), + isDay + } + if (info) { + data.extraInfo = info + } + + dateArr.push(data) + } + return dateArr + } + /** + * 获取下月天数 + */ + _getNextMonthDays(surplus, full) { + let dateArr = [] + for (let i = 1; i < surplus + 1; i++) { + dateArr.push({ + date: i, + month: Number(full.month) + 1, + lunar: this.getlunar(full.year, Number(full.month) + 1, i), + disable: true + }) + } + return dateArr + } + + /** + * 获取当前日期详情 + * @param {Object} date + */ + getInfo(date) { + if (!date) { + date = new Date() + } + const dateInfo = this.canlender.find(item => item.fullDate === this.getDate(date).fullDate) + return dateInfo + } + + /** + * 比较时间大小 + */ + dateCompare(startDate, endDate) { + // 计算截止时间 + startDate = new Date(startDate.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + endDate = new Date(endDate.replace('-', '/').replace('-', '/')) + if (startDate <= endDate) { + return true + } else { + return false + } + } + + /** + * 比较时间是否相等 + */ + dateEqual(before, after) { + // 计算截止时间 + before = new Date(before.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + after = new Date(after.replace('-', '/').replace('-', '/')) + if (before.getTime() - after.getTime() === 0) { + return true + } else { + return false + } + } + + + /** + * 获取日期范围内所有日期 + * @param {Object} begin + * @param {Object} end + */ + geDateAll(begin, end) { + var arr = [] + var ab = begin.split('-') + var ae = end.split('-') + var db = new Date() + db.setFullYear(ab[0], ab[1] - 1, ab[2]) + var de = new Date() + de.setFullYear(ae[0], ae[1] - 1, ae[2]) + var unixDb = db.getTime() - 24 * 60 * 60 * 1000 + var unixDe = de.getTime() - 24 * 60 * 60 * 1000 + for (var k = unixDb; k <= unixDe;) { + k = k + 24 * 60 * 60 * 1000 + arr.push(this.getDate(new Date(parseInt(k))).fullDate) + } + return arr + } + /** + * 计算阴历日期显示 + */ + getlunar(year, month, date) { + return CALENDAR.solar2lunar(year, month, date) + } + /** + * 设置打点 + */ + setSelectInfo(data, value) { + this.selected = value + this._getWeek(data) + } + + /** + * 获取多选状态 + */ + setMultiple(fullDate) { + let { + before, + after + } = this.multipleStatus + + if (!this.range) return + if (before && after) { + this.multipleStatus.before = '' + this.multipleStatus.after = '' + this.multipleStatus.data = [] + } else { + if (!before) { + this.multipleStatus.before = fullDate + } else { + this.multipleStatus.after = fullDate + if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before); + } + } + } + this._getWeek(fullDate) + } + + /** + * 获取每周数据 + * @param {Object} dateData + */ + _getWeek(dateData) { + const { + year, + month + } = this.getDate(dateData) + let firstDay = new Date(year, month - 1, 1).getDay() + let currentDay = new Date(year, month, 0).getDate() + let dates = { + lastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), // 上个月末尾几天 + currentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), // 本月天数 + nextMonthDays: [], // 下个月开始几天 + weeks: [] + } + let canlender = [] + const surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length) + dates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData)) + canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays) + let weeks = {} + // 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天 + for (let i = 0; i < canlender.length; i++) { + if (i % 7 === 0) { + weeks[parseInt(i / 7)] = new Array(7) + } + weeks[parseInt(i / 7)][i % 7] = canlender[i] + } + this.canlender = canlender + this.weeks = weeks + } + + //静态方法 + // static init(date) { + // if (!this.instance) { + // this.instance = new Calendar(date); + // } + // return this.instance; + // } +} + + +export default Calendar diff --git a/.svn/pristine/d6/d6b9ff71961f41ea0fc1e6a088fa24883af42f02.svn-base b/.svn/pristine/d6/d6b9ff71961f41ea0fc1e6a088fa24883af42f02.svn-base new file mode 100644 index 0000000..e3a12dc --- /dev/null +++ b/.svn/pristine/d6/d6b9ff71961f41ea0fc1e6a088fa24883af42f02.svn-base @@ -0,0 +1,30 @@ + + + + + diff --git a/.svn/pristine/d7/d751b1b848e235f820e24dfe423dfee2100564cc.svn-base b/.svn/pristine/d7/d751b1b848e235f820e24dfe423dfee2100564cc.svn-base new file mode 100644 index 0000000..c687b40 --- /dev/null +++ b/.svn/pristine/d7/d751b1b848e235f820e24dfe423dfee2100564cc.svn-base @@ -0,0 +1,89 @@ +{ + "id": "uni-steps", + "displayName": "uni-steps 步骤条", + "version": "1.1.1", + "description": "步骤条组件,提供横向和纵向两种布局格式。", + "keywords": [ + "uni-ui", + "uniui", + "步骤条", + "时间轴" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/d7/d7577e5fcb369ff456fa32042e97994e0ed8c91e.svn-base b/.svn/pristine/d7/d7577e5fcb369ff456fa32042e97994e0ed8c91e.svn-base new file mode 100644 index 0000000..1cbe623 --- /dev/null +++ b/.svn/pristine/d7/d7577e5fcb369ff456fa32042e97994e0ed8c91e.svn-base @@ -0,0 +1,35 @@ +## 1.0.2(2022-04-12) +- 修复 默认值不生效的bug +## 1.0.1(2022-04-02) +- 修复 value不能为0的bug +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-easyinput](https://uniapp.dcloud.io/component/uniui/uni-easyinput) +## 0.1.4(2021-08-20) +- 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug +## 0.1.3(2021-08-11) +- 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +## 0.1.2(2021-07-30) +- 优化 vue3下事件警告的问题 +## 0.1.1 +- 优化 errorMessage 属性支持 Boolean 类型 +## 0.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.0.16(2021-06-29) +- 修复 confirmType 属性(仅 type="text" 生效)导致多行文本框无法换行的 bug +## 0.0.15(2021-06-21) +- 修复 passwordIcon 属性拼写错误的 bug +## 0.0.14(2021-06-18) +- 新增 passwordIcon 属性,当type=password时是否显示小眼睛图标 +- 修复 confirmType 属性不生效的问题 +## 0.0.13(2021-06-04) +- 修复 disabled 状态可清出内容的 bug +## 0.0.12(2021-05-12) +- 新增 组件示例地址 +## 0.0.11(2021-05-07) +- 修复 input-border 属性不生效的问题 +## 0.0.10(2021-04-30) +- 修复 ios 遮挡文字、显示一半的问题 +## 0.0.9(2021-02-05) +- 调整为uni_modules目录规范 +- 优化 兼容 nvue 页面 diff --git a/.svn/pristine/d8/d820844c3a70df0bba055d48805cdf04b396d3ea.svn-base b/.svn/pristine/d8/d820844c3a70df0bba055d48805cdf04b396d3ea.svn-base new file mode 100644 index 0000000..448daae --- /dev/null +++ b/.svn/pristine/d8/d820844c3a70df0bba055d48805cdf04b396d3ea.svn-base @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "上一页", + "uni-pagination.nextText": "下一页" +} diff --git a/.svn/pristine/d8/d8a9d018427db1e54cbe4644317710ca2fbc2105.svn-base b/.svn/pristine/d8/d8a9d018427db1e54cbe4644317710ca2fbc2105.svn-base new file mode 100644 index 0000000..71499ce Binary files /dev/null and b/.svn/pristine/d8/d8a9d018427db1e54cbe4644317710ca2fbc2105.svn-base differ diff --git a/.svn/pristine/d9/d96b4f9703bceb70340e502c68dfb8e0e6835f25.svn-base b/.svn/pristine/d9/d96b4f9703bceb70340e502c68dfb8e0e6835f25.svn-base new file mode 100644 index 0000000..6a6d2c1 Binary files /dev/null and b/.svn/pristine/d9/d96b4f9703bceb70340e502c68dfb8e0e6835f25.svn-base differ diff --git a/.svn/pristine/da/da22a3aac525bac00e275e1ecb937d9f6cae1ff4.svn-base b/.svn/pristine/da/da22a3aac525bac00e275e1ecb937d9f6cae1ff4.svn-base new file mode 100644 index 0000000..04bd568 --- /dev/null +++ b/.svn/pristine/da/da22a3aac525bac00e275e1ecb937d9f6cae1ff4.svn-base @@ -0,0 +1,252 @@ + + + + + diff --git a/.svn/pristine/da/da3d6a35442f75520c4203b6e2a13592649d8777.svn-base b/.svn/pristine/da/da3d6a35442f75520c4203b6e2a13592649d8777.svn-base new file mode 100644 index 0000000..4d959a4 --- /dev/null +++ b/.svn/pristine/da/da3d6a35442f75520c4203b6e2a13592649d8777.svn-base @@ -0,0 +1,12 @@ +{ + "uni-calender.ok": "确定", + "uni-calender.cancel": "取消", + "uni-calender.today": "今日", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六" +} diff --git a/.svn/pristine/da/dab32c83dfd4bf8b20f5de927b46e8f302979623.svn-base b/.svn/pristine/da/dab32c83dfd4bf8b20f5de927b46e8f302979623.svn-base new file mode 100644 index 0000000..ac6f63e --- /dev/null +++ b/.svn/pristine/da/dab32c83dfd4bf8b20f5de927b46e8f302979623.svn-base @@ -0,0 +1,19 @@ +// 合并 map +@function map-deep-merge($parent-map, $child-map){ + $result: $parent-map; + @each $key, $child in $child-map { + $parent-has-key: map-has-key($result, $key); + $parent-value: map-get($result, $key); + $parent-type: type-of($parent-value); + $child-type: type-of($child); + $parent-is-map: $parent-type == map; + $child-is-map: $child-type == map; + + @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){ + $result: map-merge($result, ( $key: $child )); + }@else { + $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) )); + } + } + @return $result; +}; diff --git a/.svn/pristine/db/db02da1ad0d35b13024672dc411f3a776c3707e0.svn-base b/.svn/pristine/db/db02da1ad0d35b13024672dc411f3a776c3707e0.svn-base new file mode 100644 index 0000000..65e819e Binary files /dev/null and b/.svn/pristine/db/db02da1ad0d35b13024672dc411f3a776c3707e0.svn-base differ diff --git a/.svn/pristine/db/db1c025269f5b78e703e6a5a337054100a005a67.svn-base b/.svn/pristine/db/db1c025269f5b78e703e6a5a337054100a005a67.svn-base new file mode 100644 index 0000000..37a2a32 Binary files /dev/null and b/.svn/pristine/db/db1c025269f5b78e703e6a5a337054100a005a67.svn-base differ diff --git a/.svn/pristine/db/db992c7710e89654d42e31706a1a5a5ec1f5c198.svn-base b/.svn/pristine/db/db992c7710e89654d42e31706a1a5a5ec1f5c198.svn-base new file mode 100644 index 0000000..a10199e Binary files /dev/null and b/.svn/pristine/db/db992c7710e89654d42e31706a1a5a5ec1f5c198.svn-base differ diff --git a/.svn/pristine/db/dbee43fbdea29b80e044f59a229ab5c802700377.svn-base b/.svn/pristine/db/dbee43fbdea29b80e044f59a229ab5c802700377.svn-base new file mode 100644 index 0000000..a747b9f --- /dev/null +++ b/.svn/pristine/db/dbee43fbdea29b80e044f59a229ab5c802700377.svn-base @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + this.$once('hook:beforeDestroy', () => { + document.removeEventListener('keyup', listener) + }) + }, + render: () => {} +} +// #endif diff --git a/.svn/pristine/dc/dc783b4dd5220efd220b48b5cfebd88a060cf4af.svn-base b/.svn/pristine/dc/dc783b4dd5220efd220b48b5cfebd88a060cf4af.svn-base new file mode 100644 index 0000000..9a444e8 --- /dev/null +++ b/.svn/pristine/dc/dc783b4dd5220efd220b48b5cfebd88a060cf4af.svn-base @@ -0,0 +1,9 @@ +## Fab 悬浮按钮 +> **组件名:uni-fab** +> 代码块: `uFab` + + +点击可展开一个图形按钮菜单 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-fab) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/dd/dd5a48593dd4bc615dd761e0a3329c43af03c5ee.svn-base b/.svn/pristine/dd/dd5a48593dd4bc615dd761e0a3329c43af03c5ee.svn-base new file mode 100644 index 0000000..e92ee8a Binary files /dev/null and b/.svn/pristine/dd/dd5a48593dd4bc615dd761e0a3329c43af03c5ee.svn-base differ diff --git a/.svn/pristine/dd/ddf28ec90d8dc75fd6b5944d14e2457f3a4a19c0.svn-base b/.svn/pristine/dd/ddf28ec90d8dc75fd6b5944d14e2457f3a4a19c0.svn-base new file mode 100644 index 0000000..3637a37 Binary files /dev/null and b/.svn/pristine/dd/ddf28ec90d8dc75fd6b5944d14e2457f3a4a19c0.svn-base differ diff --git a/.svn/pristine/de/de5783975f1cbd845a4b4fd7a7235d40ca3e6f17.svn-base b/.svn/pristine/de/de5783975f1cbd845a4b4fd7a7235d40ca3e6f17.svn-base new file mode 100644 index 0000000..292e4c7 --- /dev/null +++ b/.svn/pristine/de/de5783975f1cbd845a4b4fd7a7235d40ca3e6f17.svn-base @@ -0,0 +1,36 @@ +## 1.4.3(2022-01-25) +- 修复 初始化的时候 ,open 属性失效的bug +## 1.4.2(2022-01-21) +- 修复 微信小程序resize后组件收起的bug +## 1.4.1(2021-11-22) +- 修复 vue3中个别scss变量无法找到的问题 +## 1.4.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-collapse](https://uniapp.dcloud.io/component/uniui/uni-collapse) +## 1.3.3(2021-08-17) +- 优化 show-arrow 属性默认为true +## 1.3.2(2021-08-17) +- 新增 show-arrow 属性,控制是否显示右侧箭头 +## 1.3.1(2021-07-30) +- 优化 vue3下小程序事件警告的问题 +## 1.3.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.2.2(2021-07-21) +- 修复 由1.2.0版本引起的 change 事件返回 undefined 的Bug +## 1.2.1(2021-07-21) +- 优化 组件示例 +## 1.2.0(2021-07-21) +- 新增 组件折叠动画 +- 新增 value\v-model 属性 ,动态修改面板折叠状态 +- 新增 title 插槽 ,可定义面板标题 +- 新增 border 属性 ,显示隐藏面板内容分隔线 +- 新增 title-border 属性 ,显示隐藏面板标题分隔线 +- 修复 resize 方法失效的Bug +- 修复 change 事件返回参数不正确的Bug +- 优化 H5、App 平台自动更具内容更新高度,无需调用 reszie() 方法 +## 1.1.7(2021-05-12) +- 新增 组件示例地址 +## 1.1.6(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.1.5(2021-02-05) +- 调整为uni_modules目录规范 \ No newline at end of file diff --git a/.svn/pristine/de/def6fb2e745b09c6e71655d5aef478fe8e91d24b.svn-base b/.svn/pristine/de/def6fb2e745b09c6e71655d5aef478fe8e91d24b.svn-base new file mode 100644 index 0000000..e240ff5 --- /dev/null +++ b/.svn/pristine/de/def6fb2e745b09c6e71655d5aef478fe8e91d24b.svn-base @@ -0,0 +1,218 @@ + + + + + diff --git a/.svn/pristine/e0/e024c0fda6e0df18a7cb9e7fd7a26c9e12a5c460.svn-base b/.svn/pristine/e0/e024c0fda6e0df18a7cb9e7fd7a26c9e12a5c460.svn-base new file mode 100644 index 0000000..87e5572 --- /dev/null +++ b/.svn/pristine/e0/e024c0fda6e0df18a7cb9e7fd7a26c9e12a5c460.svn-base @@ -0,0 +1,60 @@ + + + + + diff --git a/.svn/pristine/e1/e1b5032438998be9763d9d09fdfd843ef897d25e.svn-base b/.svn/pristine/e1/e1b5032438998be9763d9d09fdfd843ef897d25e.svn-base new file mode 100644 index 0000000..41a83ae Binary files /dev/null and b/.svn/pristine/e1/e1b5032438998be9763d9d09fdfd843ef897d25e.svn-base differ diff --git a/.svn/pristine/e2/e21a9cfd3712ec5962c8817c5d3d8a8880b6b269.svn-base b/.svn/pristine/e2/e21a9cfd3712ec5962c8817c5d3d8a8880b6b269.svn-base new file mode 100644 index 0000000..de50ff0 --- /dev/null +++ b/.svn/pristine/e2/e21a9cfd3712ec5962c8817c5d3d8a8880b6b269.svn-base @@ -0,0 +1,19 @@ +{ + "uni-datetime-picker.selectDate": "選擇日期", + "uni-datetime-picker.selectTime": "選擇時間", + "uni-datetime-picker.selectDateTime": "選擇日期時間", + "uni-datetime-picker.startDate": "開始日期", + "uni-datetime-picker.endDate": "結束日期", + "uni-datetime-picker.startTime": "開始时间", + "uni-datetime-picker.endTime": "結束时间", + "uni-datetime-picker.ok": "確定", + "uni-datetime-picker.clear": "清除", + "uni-datetime-picker.cancel": "取消", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六" +} diff --git a/.svn/pristine/e2/e22ab270e710961b757beb2668a5b42c1f370cc1.svn-base b/.svn/pristine/e2/e22ab270e710961b757beb2668a5b42c1f370cc1.svn-base new file mode 100644 index 0000000..bc9a0e3 --- /dev/null +++ b/.svn/pristine/e2/e22ab270e710961b757beb2668a5b42c1f370cc1.svn-base @@ -0,0 +1,503 @@ + + + + + diff --git a/.svn/pristine/e2/e2524965237e4f5de858de36f77bf98444e0c474.svn-base b/.svn/pristine/e2/e2524965237e4f5de858de36f77bf98444e0c474.svn-base new file mode 100644 index 0000000..41ccefb --- /dev/null +++ b/.svn/pristine/e2/e2524965237e4f5de858de36f77bf98444e0c474.svn-base @@ -0,0 +1,4 @@ +{ + "uni-fav.collect": "收藏", + "uni-fav.collected": "已收藏" +} diff --git a/.svn/pristine/e2/e2942f18888fc869fb4e587ede025d5e5f347454.svn-base b/.svn/pristine/e2/e2942f18888fc869fb4e587ede025d5e5f347454.svn-base new file mode 100644 index 0000000..8c0f5f3 --- /dev/null +++ b/.svn/pristine/e2/e2942f18888fc869fb4e587ede025d5e5f347454.svn-base @@ -0,0 +1,7 @@ +{ + "uni-popup.cancel": "cancel", + "uni-popup.ok": "ok", + "uni-popup.placeholder": "pleace enter", + "uni-popup.title": "Hint", + "uni-popup.shareTitle": "Share to" +} diff --git a/.svn/pristine/e2/e2b36810d70fbfdb93eda4f68fdff02ec46c25fb.svn-base b/.svn/pristine/e2/e2b36810d70fbfdb93eda4f68fdff02ec46c25fb.svn-base new file mode 100644 index 0000000..b7b6f6f --- /dev/null +++ b/.svn/pristine/e2/e2b36810d70fbfdb93eda4f68fdff02ec46c25fb.svn-base @@ -0,0 +1,2 @@ +## 0.1.0(2022-04-22) +- 初始化 diff --git a/.svn/pristine/e4/e42475885d793f292f013e2da4dea3bc5a9fb770.svn-base b/.svn/pristine/e4/e42475885d793f292f013e2da4dea3bc5a9fb770.svn-base new file mode 100644 index 0000000..64e8e33 --- /dev/null +++ b/.svn/pristine/e4/e42475885d793f292f013e2da4dea3bc5a9fb770.svn-base @@ -0,0 +1,88 @@ +{ + "id": "uni-rate", + "displayName": "uni-rate 评分", + "version": "1.3.1", + "description": "Rate 评分组件,可自定义评分星星图标的大小、间隔、评分数。", + "keywords": [ + "uni-ui", + "uniui", + "评分" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/e5/e584c999eee013cb50b5480ba9d89a827606708b.svn-base b/.svn/pristine/e5/e584c999eee013cb50b5480ba9d89a827606708b.svn-base new file mode 100644 index 0000000..08fa71c --- /dev/null +++ b/.svn/pristine/e5/e584c999eee013cb50b5480ba9d89a827606708b.svn-base @@ -0,0 +1,17 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-indexed-list](https://uniapp.dcloud.io/component/uniui/uni-indexed-list) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.11(2021-05-12) +- 新增 组件示例地址 +## 1.0.10(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.9(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.8(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持 PC 端 diff --git a/.svn/pristine/e5/e5e6a380af13bea15f4abfbec65beb73081dc7fc.svn-base b/.svn/pristine/e5/e5e6a380af13bea15f4abfbec65beb73081dc7fc.svn-base new file mode 100644 index 0000000..be5e794 --- /dev/null +++ b/.svn/pristine/e5/e5e6a380af13bea15f4abfbec65beb73081dc7fc.svn-base @@ -0,0 +1,277 @@ + + + + + diff --git a/.svn/pristine/e6/e646832cf68e13acbd4e4a2a5942d0fa366e151d.svn-base b/.svn/pristine/e6/e646832cf68e13acbd4e4a2a5942d0fa366e151d.svn-base new file mode 100644 index 0000000..ed8faf8 Binary files /dev/null and b/.svn/pristine/e6/e646832cf68e13acbd4e4a2a5942d0fa366e151d.svn-base differ diff --git a/.svn/pristine/e8/e81a3e8500287864dd97347a6954463bf1338376.svn-base b/.svn/pristine/e8/e81a3e8500287864dd97347a6954463bf1338376.svn-base new file mode 100644 index 0000000..fb97bb3 --- /dev/null +++ b/.svn/pristine/e8/e81a3e8500287864dd97347a6954463bf1338376.svn-base @@ -0,0 +1,300 @@ +let bindIngXMixins = {} + +// #ifdef APP-NVUE +const BindingX = uni.requireNativePlugin('bindingx'); +const dom = uni.requireNativePlugin('dom'); +const animation = uni.requireNativePlugin('animation'); + +bindIngXMixins = { + data() { + return {} + }, + + watch: { + show(newVal) { + if (this.autoClose) return + if (this.stop) return + this.stop = true + if (newVal) { + this.open(newVal) + } else { + this.close() + } + }, + leftOptions() { + this.getSelectorQuery() + this.init() + }, + rightOptions(newVal) { + this.init() + } + }, + created() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.box = this.getEl(this.$refs['selector-box--hock']) + this.selector = this.getEl(this.$refs['selector-content--hock']); + this.leftButton = this.getEl(this.$refs['selector-left-button--hock']); + this.rightButton = this.getEl(this.$refs['selector-right-button--hock']); + this.init() + }, + // beforeDestroy() { + // this.swipeaction.children.forEach((item, index) => { + // if (item === this) { + // this.swipeaction.children.splice(index, 1) + // } + // }) + // }, + methods: { + init() { + this.$nextTick(() => { + this.x = 0 + this.button = { + show: false + } + setTimeout(() => { + this.getSelectorQuery() + }, 200) + }) + }, + onClick(index, item, position) { + this.$emit('click', { + content: item, + index, + position + }) + }, + touchstart(e) { + // 每次只触发一次,避免多次监听造成闪烁 + if (this.stop) return + this.stop = true + if (this.autoClose) { + this.swipeaction.closeOther(this) + } + + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + let expression = this.range(this.x, -rightWidth, leftWidth) + let leftExpression = this.range(this.x - leftWidth, -leftWidth, 0) + let rightExpression = this.range(this.x + rightWidth, 0, rightWidth) + + this.eventpan = BindingX.bind({ + anchor: this.box, + eventType: 'pan', + props: [{ + element: this.selector, + property: 'transform.translateX', + expression + }, { + element: this.leftButton, + property: 'transform.translateX', + expression: leftExpression + }, { + element: this.rightButton, + property: 'transform.translateX', + expression: rightExpression + }, ] + }, (e) => { + // nope + if (e.state === 'end') { + this.x = e.deltaX + this.x; + this.isclick = true + this.bindTiming(e.deltaX) + } + }); + }, + touchend(e) { + if (this.isopen !== 'none' && !this.isclick) { + this.open('none') + } + }, + bindTiming(x) { + const left = this.x + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + const threshold = this.threshold + if (!this.isopen || this.isopen === 'none') { + if (left > threshold) { + this.open('left') + } else if (left < -threshold) { + this.open('right') + } else { + this.open('none') + } + } else { + if ((x > -leftWidth && x < 0) || x > rightWidth) { + if ((x > -threshold && x < 0) || (x - rightWidth > threshold)) { + this.open('left') + } else { + this.open('none') + } + } else { + if ((x < threshold && x > 0) || (x + leftWidth < -threshold)) { + this.open('right') + } else { + this.open('none') + } + } + } + }, + + /** + * 移动范围 + * @param {Object} num + * @param {Object} mix + * @param {Object} max + */ + range(num, mix, max) { + return `min(max(x+${num}, ${mix}), ${max})` + }, + + /** + * 开启swipe + */ + open(type) { + this.animation(type) + }, + + /** + * 关闭swipe + */ + close() { + this.animation('none') + }, + + /** + * 开启关闭动画 + * @param {Object} type + */ + animation(type) { + const time = 300 + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + if (this.eventpan && this.eventpan.token) { + BindingX.unbind({ + token: this.eventpan.token, + eventType: 'pan' + }) + } + + switch (type) { + case 'left': + Promise.all([ + this.move(this.selector, leftWidth), + this.move(this.leftButton, 0), + this.move(this.rightButton, rightWidth * 2) + ]).then(() => { + this.setEmit(leftWidth, type) + }) + break + case 'right': + Promise.all([ + this.move(this.selector, -rightWidth), + this.move(this.leftButton, -leftWidth * 2), + this.move(this.rightButton, 0) + ]).then(() => { + this.setEmit(-rightWidth, type) + }) + break + default: + Promise.all([ + this.move(this.selector, 0), + this.move(this.leftButton, -leftWidth), + this.move(this.rightButton, rightWidth) + ]).then(() => { + this.setEmit(0, type) + }) + + } + }, + setEmit(x, type) { + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + this.isopen = this.isopen || 'none' + this.stop = false + this.isclick = false + // 只有状态不一致才会返回结果 + if (this.isopen !== type && this.x !== x) { + if (type === 'left' && leftWidth > 0) { + this.$emit('change', 'left') + } + if (type === 'right' && rightWidth > 0) { + this.$emit('change', 'right') + } + if (type === 'none') { + this.$emit('change', 'none') + } + } + this.x = x + this.isopen = type + }, + move(ref, value) { + return new Promise((resolve, reject) => { + animation.transition(ref, { + styles: { + transform: `translateX(${value})`, + }, + duration: 150, //ms + timingFunction: 'linear', + needLayout: false, + delay: 0 //ms + }, function(res) { + resolve(res) + }) + }) + + }, + + /** + * 获取ref + * @param {Object} el + */ + getEl(el) { + return el.ref + }, + /** + * 获取节点信息 + */ + getSelectorQuery() { + Promise.all([ + this.getDom('left'), + this.getDom('right'), + ]).then((data) => { + let show = 'none' + if (this.autoClose) { + show = 'none' + } else { + show = this.show + } + + if (show === 'none') { + // this.close() + } else { + this.open(show) + } + + }) + + }, + getDom(str) { + return new Promise((resolve, reject) => { + dom.getComponentRect(this.$refs[`selector-${str}-button--hock`], (data) => { + if (data) { + this.button[str] = data.size + resolve(data) + } else { + reject() + } + }) + }) + } + } +} + +// #endif + +export default bindIngXMixins diff --git a/.svn/pristine/e8/e8231471e2b059a80eac63cf15ee96fb2006db1e.svn-base b/.svn/pristine/e8/e8231471e2b059a80eac63cf15ee96fb2006db1e.svn-base new file mode 100644 index 0000000..0633e2f --- /dev/null +++ b/.svn/pristine/e8/e8231471e2b059a80eac63cf15ee96fb2006db1e.svn-base @@ -0,0 +1,159 @@ + + + + + diff --git a/.svn/pristine/e8/e839b16f63fd0e982a8c25abe0a8fe51f822c8fd.svn-base b/.svn/pristine/e8/e839b16f63fd0e982a8c25abe0a8fe51f822c8fd.svn-base new file mode 100644 index 0000000..6cae41d --- /dev/null +++ b/.svn/pristine/e8/e839b16f63fd0e982a8c25abe0a8fe51f822c8fd.svn-base @@ -0,0 +1,87 @@ +{ + "id": "uni-segmented-control", + "displayName": "uni-segmented-control 分段器", + "version": "1.2.0", + "description": "分段器由至少 2 个分段控件组成,用作不同视图的显示", + "keywords": [ + "uni-ui", + "uniui", + "分段器", + "segement", + "顶部选择" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/e8/e8747d62bf00d64e569677fc3a34213709a7dc0d.svn-base b/.svn/pristine/e8/e8747d62bf00d64e569677fc3a34213709a7dc0d.svn-base new file mode 100644 index 0000000..8e5b99f --- /dev/null +++ b/.svn/pristine/e8/e8747d62bf00d64e569677fc3a34213709a7dc0d.svn-base @@ -0,0 +1,7 @@ +{ + "uni-popup.cancel": "取消", + "uni-popup.ok": "确定", + "uni-popup.placeholder": "请输入", + "uni-popup.title": "提示", + "uni-popup.shareTitle": "分享到" +} diff --git a/.svn/pristine/e9/e979f498115646af7cce55be0b54008535df9d3e.svn-base b/.svn/pristine/e9/e979f498115646af7cce55be0b54008535df9d3e.svn-base new file mode 100644 index 0000000..3ee50a9 Binary files /dev/null and b/.svn/pristine/e9/e979f498115646af7cce55be0b54008535df9d3e.svn-base differ diff --git a/.svn/pristine/ea/ea11462c27319cb2537c020410251742829b79bc.svn-base b/.svn/pristine/ea/ea11462c27319cb2537c020410251742829b79bc.svn-base new file mode 100644 index 0000000..23c2748 --- /dev/null +++ b/.svn/pristine/ea/ea11462c27319cb2537c020410251742829b79bc.svn-base @@ -0,0 +1,15 @@ +## 1.0.1(2021-11-23) +- 优化 label、label-width 属性 +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-combox](https://uniapp.dcloud.io/component/uniui/uni-combox) +## 0.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.0.6(2021-05-12) +- 新增 组件示例地址 +## 0.0.5(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 0.0.4(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 0.0.3(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/ea/ea19328bd4e7f6a7c2c41ddbd80c81e694eccb27.svn-base b/.svn/pristine/ea/ea19328bd4e7f6a7c2c41ddbd80c81e694eccb27.svn-base new file mode 100644 index 0000000..4de125d --- /dev/null +++ b/.svn/pristine/ea/ea19328bd4e7f6a7c2c41ddbd80c81e694eccb27.svn-base @@ -0,0 +1,10 @@ + + +## Fav 收藏按钮 +> **组件名:uni-fav** +> 代码块: `uFav` + +用于收藏功能,可点击切换选中、不选中的状态。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-fav) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/ea/ea9cec81b9aa9bf6d1ac48fc9b612ae8fab0bbac.svn-base b/.svn/pristine/ea/ea9cec81b9aa9bf6d1ac48fc9b612ae8fab0bbac.svn-base new file mode 100644 index 0000000..151a037 Binary files /dev/null and b/.svn/pristine/ea/ea9cec81b9aa9bf6d1ac48fc9b612ae8fab0bbac.svn-base differ diff --git a/.svn/pristine/ea/eaa26abf7ce2ec40efeb66e998c344056335b698.svn-base b/.svn/pristine/ea/eaa26abf7ce2ec40efeb66e998c344056335b698.svn-base new file mode 100644 index 0000000..336c2ba --- /dev/null +++ b/.svn/pristine/ea/eaa26abf7ce2ec40efeb66e998c344056335b698.svn-base @@ -0,0 +1,20 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-pagination](https://uniapp.dcloud.io/component/uniui/uni-pagination) +## 1.1.2(2021-10-08) +- 修复 current 、value 属性未监听,导致高亮样式失效的 bug +## 1.1.1(2021-08-20) +- 新增 支持国际化 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-04-12) +- 新增 PC 和 移动端适配不同的 ui +## 1.0.5(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/ea/eac9dc3c4b81a611bd162aafc642f069bdc3830b.svn-base b/.svn/pristine/ea/eac9dc3c4b81a611bd162aafc642f069bdc3830b.svn-base new file mode 100644 index 0000000..e00d559 --- /dev/null +++ b/.svn/pristine/ea/eac9dc3c4b81a611bd162aafc642f069bdc3830b.svn-base @@ -0,0 +1,200 @@ +// yyyy-MM-dd hh:mm:ss.SSS 所有支持的类型 +function pad(str, length = 2) { + str += '' + while (str.length < length) { + str = '0' + str + } + return str.slice(-length) +} + +const parser = { + yyyy: (dateObj) => { + return pad(dateObj.year, 4) + }, + yy: (dateObj) => { + return pad(dateObj.year) + }, + MM: (dateObj) => { + return pad(dateObj.month) + }, + M: (dateObj) => { + return dateObj.month + }, + dd: (dateObj) => { + return pad(dateObj.day) + }, + d: (dateObj) => { + return dateObj.day + }, + hh: (dateObj) => { + return pad(dateObj.hour) + }, + h: (dateObj) => { + return dateObj.hour + }, + mm: (dateObj) => { + return pad(dateObj.minute) + }, + m: (dateObj) => { + return dateObj.minute + }, + ss: (dateObj) => { + return pad(dateObj.second) + }, + s: (dateObj) => { + return dateObj.second + }, + SSS: (dateObj) => { + return pad(dateObj.millisecond, 3) + }, + S: (dateObj) => { + return dateObj.millisecond + }, +} + +// 这都n年了iOS依然不认识2020-12-12,需要转换为2020/12/12 +function getDate(time) { + if (time instanceof Date) { + return time + } + switch (typeof time) { + case 'string': + { + // 2020-12-12T12:12:12.000Z、2020-12-12T12:12:12.000 + if (time.indexOf('T') > -1) { + return new Date(time) + } + return new Date(time.replace(/-/g, '/')) + } + default: + return new Date(time) + } +} + +export function formatDate(date, format = 'yyyy/MM/dd hh:mm:ss') { + if (!date && date !== 0) { + return '' + } + date = getDate(date) + const dateObj = { + year: date.getFullYear(), + month: date.getMonth() + 1, + day: date.getDate(), + hour: date.getHours(), + minute: date.getMinutes(), + second: date.getSeconds(), + millisecond: date.getMilliseconds() + } + const tokenRegExp = /yyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S/ + let flag = true + let result = format + while (flag) { + flag = false + result = result.replace(tokenRegExp, function(matched) { + flag = true + return parser[matched](dateObj) + }) + } + return result +} + +export function friendlyDate(time, { + locale = 'zh', + threshold = [60000, 3600000], + format = 'yyyy/MM/dd hh:mm:ss' +}) { + if (time === '-') { + return time + } + if (!time && time !== 0) { + return '' + } + const localeText = { + zh: { + year: '年', + month: '月', + day: '天', + hour: '小时', + minute: '分钟', + second: '秒', + ago: '前', + later: '后', + justNow: '刚刚', + soon: '马上', + template: '{num}{unit}{suffix}' + }, + en: { + year: 'year', + month: 'month', + day: 'day', + hour: 'hour', + minute: 'minute', + second: 'second', + ago: 'ago', + later: 'later', + justNow: 'just now', + soon: 'soon', + template: '{num} {unit} {suffix}' + } + } + const text = localeText[locale] || localeText.zh + let date = getDate(time) + let ms = date.getTime() - Date.now() + let absMs = Math.abs(ms) + if (absMs < threshold[0]) { + return ms < 0 ? text.justNow : text.soon + } + if (absMs >= threshold[1]) { + return formatDate(date, format) + } + let num + let unit + let suffix = text.later + if (ms < 0) { + suffix = text.ago + ms = -ms + } + const seconds = Math.floor((ms) / 1000) + const minutes = Math.floor(seconds / 60) + const hours = Math.floor(minutes / 60) + const days = Math.floor(hours / 24) + const months = Math.floor(days / 30) + const years = Math.floor(months / 12) + switch (true) { + case years > 0: + num = years + unit = text.year + break + case months > 0: + num = months + unit = text.month + break + case days > 0: + num = days + unit = text.day + break + case hours > 0: + num = hours + unit = text.hour + break + case minutes > 0: + num = minutes + unit = text.minute + break + default: + num = seconds + unit = text.second + break + } + + if (locale === 'en') { + if (num === 1) { + num = 'a' + } else { + unit += 's' + } + } + + return text.template.replace(/{\s*num\s*}/g, num + '').replace(/{\s*unit\s*}/g, unit).replace(/{\s*suffix\s*}/g, + suffix) +} diff --git a/.svn/pristine/ec/ec26a683bf29777ae38074cfcf7247c8e12d8eec.svn-base b/.svn/pristine/ec/ec26a683bf29777ae38074cfcf7247c8e12d8eec.svn-base new file mode 100644 index 0000000..71fddcf Binary files /dev/null and b/.svn/pristine/ec/ec26a683bf29777ae38074cfcf7247c8e12d8eec.svn-base differ diff --git a/.svn/pristine/ec/ec726d47fd146684efe445986e8357f6b5664fcf.svn-base b/.svn/pristine/ec/ec726d47fd146684efe445986e8357f6b5664fcf.svn-base new file mode 100644 index 0000000..c7d9370 --- /dev/null +++ b/.svn/pristine/ec/ec726d47fd146684efe445986e8357f6b5664fcf.svn-base @@ -0,0 +1,190 @@ + + + + + diff --git a/.svn/pristine/ec/ecc14720c4c14d0701dec8ea6f7b1309e69d893f.svn-base b/.svn/pristine/ec/ecc14720c4c14d0701dec8ea6f7b1309e69d893f.svn-base new file mode 100644 index 0000000..fc52882 --- /dev/null +++ b/.svn/pristine/ec/ecc14720c4c14d0701dec8ea6f7b1309e69d893f.svn-base @@ -0,0 +1,461 @@ + + + + + diff --git a/.svn/pristine/ed/ed98c580450a3942aff0f6682a52f197b8df6c7f.svn-base b/.svn/pristine/ed/ed98c580450a3942aff0f6682a52f197b8df6c7f.svn-base new file mode 100644 index 0000000..0fefd3c Binary files /dev/null and b/.svn/pristine/ed/ed98c580450a3942aff0f6682a52f197b8df6c7f.svn-base differ diff --git a/.svn/pristine/ee/ee693d7e45bb60da9c313b44be9f8d821240acdc.svn-base b/.svn/pristine/ee/ee693d7e45bb60da9c313b44be9f8d821240acdc.svn-base new file mode 100644 index 0000000..ee99b06 --- /dev/null +++ b/.svn/pristine/ee/ee693d7e45bb60da9c313b44be9f8d821240acdc.svn-base @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "上拉顯示更多", + "uni-load-more.contentrefresh": "正在加載...", + "uni-load-more.contentnomore": "沒有更多數據了" +} diff --git a/.svn/pristine/ee/eeef96e66eccc488c4cb3ddd78555f1260dde9f9.svn-base b/.svn/pristine/ee/eeef96e66eccc488c4cb3ddd78555f1260dde9f9.svn-base new file mode 100644 index 0000000..12bcefc --- /dev/null +++ b/.svn/pristine/ee/eeef96e66eccc488c4cb3ddd78555f1260dde9f9.svn-base @@ -0,0 +1,117 @@ + + + + + diff --git a/.svn/pristine/ef/ef4928511baffb88f1385c922d2a123b5351deed.svn-base b/.svn/pristine/ef/ef4928511baffb88f1385c922d2a123b5351deed.svn-base new file mode 100644 index 0000000..162fbef --- /dev/null +++ b/.svn/pristine/ef/ef4928511baffb88f1385c922d2a123b5351deed.svn-base @@ -0,0 +1,21 @@ + + +> `重要通知:组件升级更新 2.0.0 后,支持日期+时间范围选择,组件 ui 将使用日历选择日期,ui 变化较大,同时支持 PC 和 移动端。此版本不向后兼容,不再支持单独的时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker)。若仍需使用旧版本,可在插件市场下载*非uni_modules版本*,旧版本将不再维护` + +## DatetimePicker 时间选择器 + +> **组件名:uni-datetime-picker** +> 代码块: `uDatetimePicker` + + +该组件的优势是,支持**时间戳**输入和输出(起始时间、终止时间也支持时间戳),可**同时选择**日期和时间。 + +若只是需要单独选择日期和时间,不需要时间戳输入和输出,可使用原生的 picker 组件。 + +**_点击 picker 默认值规则:_** + +- 若设置初始值 value, 会显示在 picker 显示框中 +- 若无初始值 value,则初始值 value 为当前本地时间 Date.now(), 但不会显示在 picker 显示框中 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/.svn/pristine/ef/ef97b493b3eba79a30b0d7c0cb0bf4c3c7893305.svn-base b/.svn/pristine/ef/ef97b493b3eba79a30b0d7c0cb0bf4c3c7893305.svn-base new file mode 100644 index 0000000..af47dbc --- /dev/null +++ b/.svn/pristine/ef/ef97b493b3eba79a30b0d7c0cb0bf4c3c7893305.svn-base @@ -0,0 +1,128 @@ +// const defaultOption = { +// duration: 300, +// timingFunction: 'linear', +// delay: 0, +// transformOrigin: '50% 50% 0' +// } +// #ifdef APP-NVUE +const nvueAnimation = uni.requireNativePlugin('animation') +// #endif +class MPAnimation { + constructor(options, _this) { + this.options = options + this.animation = uni.createAnimation(options) + this.currentStepAnimates = {} + this.next = 0 + this.$ = _this + + } + + _nvuePushAnimates(type, args) { + let aniObj = this.currentStepAnimates[this.next] + let styles = {} + if (!aniObj) { + styles = { + styles: {}, + config: {} + } + } else { + styles = aniObj + } + if (animateTypes1.includes(type)) { + if (!styles.styles.transform) { + styles.styles.transform = '' + } + let unit = '' + if(type === 'rotate'){ + unit = 'deg' + } + styles.styles.transform += `${type}(${args+unit}) ` + } else { + styles.styles[type] = `${args}` + } + this.currentStepAnimates[this.next] = styles + } + _animateRun(styles = {}, config = {}) { + let ref = this.$.$refs['ani'].ref + if (!ref) return + return new Promise((resolve, reject) => { + nvueAnimation.transition(ref, { + styles, + ...config + }, res => { + resolve() + }) + }) + } + + _nvueNextAnimate(animates, step = 0, fn) { + let obj = animates[step] + if (obj) { + let { + styles, + config + } = obj + this._animateRun(styles, config).then(() => { + step += 1 + this._nvueNextAnimate(animates, step, fn) + }) + } else { + this.currentStepAnimates = {} + typeof fn === 'function' && fn() + this.isEnd = true + } + } + + step(config = {}) { + // #ifndef APP-NVUE + this.animation.step(config) + // #endif + // #ifdef APP-NVUE + this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config) + this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin + this.next++ + // #endif + return this + } + + run(fn) { + // #ifndef APP-NVUE + this.$.animationData = this.animation.export() + this.$.timer = setTimeout(() => { + typeof fn === 'function' && fn() + }, this.$.durationTime) + // #endif + // #ifdef APP-NVUE + this.isEnd = false + let ref = this.$.$refs['ani'] && this.$.$refs['ani'].ref + if(!ref) return + this._nvueNextAnimate(this.currentStepAnimates, 0, fn) + this.next = 0 + // #endif + } +} + + +const animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', + 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', + 'translateZ' +] +const animateTypes2 = ['opacity', 'backgroundColor'] +const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'] +animateTypes1.concat(animateTypes2, animateTypes3).forEach(type => { + MPAnimation.prototype[type] = function(...args) { + // #ifndef APP-NVUE + this.animation[type](...args) + // #endif + // #ifdef APP-NVUE + this._nvuePushAnimates(type, args) + // #endif + return this + } +}) + +export function createAnimation(option, _this) { + if(!_this) return + clearTimeout(_this.timer) + return new MPAnimation(option, _this) +} diff --git a/.svn/pristine/ef/efc580fb2828677d71e6e35939b62f377afb7499.svn-base b/.svn/pristine/ef/efc580fb2828677d71e6e35939b62f377afb7499.svn-base new file mode 100644 index 0000000..1f01839 --- /dev/null +++ b/.svn/pristine/ef/efc580fb2828677d71e6e35939b62f377afb7499.svn-base @@ -0,0 +1,49 @@ + + + + + \ No newline at end of file diff --git a/.svn/pristine/ef/efdcc12aa1eb9df25281d5d7193430c1f2cd359e.svn-base b/.svn/pristine/ef/efdcc12aa1eb9df25281d5d7193430c1f2cd359e.svn-base new file mode 100644 index 0000000..26e120b --- /dev/null +++ b/.svn/pristine/ef/efdcc12aa1eb9df25281d5d7193430c1f2cd359e.svn-base @@ -0,0 +1,60 @@ +## 1.3.2(2021-12-09) +- +## 1.3.1(2021-11-19) +- 修复 label 插槽不生效的bug +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-forms](https://uniapp.dcloud.io/component/uniui/uni-forms) +## 1.2.7(2021-08-13) +- 修复 没有添加校验规则的字段依然报错的Bug +## 1.2.6(2021-08-11) +- 修复 重置表单错误信息无法清除的问题 +## 1.2.5(2021-08-11) +- 优化 组件文档 +## 1.2.4(2021-08-11) +- 修复 表单验证只生效一次的问题 +## 1.2.3(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.2.2(2021-07-26) +- 修复 vue2 下条件编译导致destroyed生命周期失效的Bug +- 修复 1.2.1 引起的示例在小程序平台报错的Bug +## 1.2.1(2021-07-22) +- 修复 动态校验表单,默认值为空的情况下校验失效的Bug +- 修复 不指定name属性时,运行报错的Bug +- 优化 label默认宽度从65调整至70,使required为true且四字时不换行 +- 优化 组件示例,新增动态校验示例代码 +- 优化 组件文档,使用方式更清晰 +## 1.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.2(2021-06-25) +- 修复 pattern 属性在微信小程序平台无效的问题 +## 1.1.1(2021-06-22) +- 修复 validate-trigger属性为submit且err-show-type属性为toast时不能弹出的Bug +## 1.1.0(2021-06-22) +- 修复 只写setRules方法而导致校验不生效的Bug +- 修复 由上个办法引发的错误提示文字错位的Bug +## 1.0.48(2021-06-21) +- 修复 不设置 label 属性 ,无法设置label插槽的问题 +## 1.0.47(2021-06-21) +- 修复 不设置label属性,label-width属性不生效的bug +- 修复 setRules 方法与rules属性冲突的问题 +## 1.0.46(2021-06-04) +- 修复 动态删减数据导致报错的问题 +## 1.0.45(2021-06-04) +- 新增 modelValue 属性 ,value 即将废弃 +## 1.0.44(2021-06-02) +- 新增 uni-forms-item 可以设置单独的 rules +- 新增 validate 事件增加 keepitem 参数,可以选择那些字段不过滤 +- 优化 submit 事件重命名为 validate +## 1.0.43(2021-05-12) +- 新增 组件示例地址 +## 1.0.42(2021-04-30) +- 修复 自定义检验器失效的问题 +## 1.0.41(2021-03-05) +- 更新 校验器 +- 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug +## 1.0.40(2021-03-04) +- 修复 动态显示uni-forms-item的情况下,submit 方法获取值错误的Bug +## 1.0.39(2021-02-05) +- 调整为uni_modules目录规范 +- 修复 校验器传入 int 等类型 ,返回String类型的Bug diff --git a/.svn/pristine/f0/f0041a12891d770f4ef28209a707294641be04dd.svn-base b/.svn/pristine/f0/f0041a12891d770f4ef28209a707294641be04dd.svn-base new file mode 100644 index 0000000..dbc83b7 --- /dev/null +++ b/.svn/pristine/f0/f0041a12891d770f4ef28209a707294641be04dd.svn-base @@ -0,0 +1,367 @@ + + + diff --git a/.svn/pristine/f0/f021372ad50d3a2abe08667880fd611020d4404e.svn-base b/.svn/pristine/f0/f021372ad50d3a2abe08667880fd611020d4404e.svn-base new file mode 100644 index 0000000..d145b54 --- /dev/null +++ b/.svn/pristine/f0/f021372ad50d3a2abe08667880fd611020d4404e.svn-base @@ -0,0 +1,107 @@ + + + + + diff --git a/.svn/pristine/f2/f2a8f12dcb4b005d7c684da1ff62ed14078fb910.svn-base b/.svn/pristine/f2/f2a8f12dcb4b005d7c684da1ff62ed14078fb910.svn-base new file mode 100644 index 0000000..39e4f33 --- /dev/null +++ b/.svn/pristine/f2/f2a8f12dcb4b005d7c684da1ff62ed14078fb910.svn-base @@ -0,0 +1,89 @@ +{ + "id": "uni-fav", + "displayName": "uni-fav 收藏按钮", + "version": "1.2.0", + "description": " Fav 收藏组件,可自定义颜色、大小。", + "keywords": [ + "fav", + "uni-ui", + "uniui", + "收藏" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/f2/f2f5e321c4ca014d8e2f36a9d8f398e7c84b320b.svn-base b/.svn/pristine/f2/f2f5e321c4ca014d8e2f36a9d8f398e7c84b320b.svn-base new file mode 100644 index 0000000..b1a824b --- /dev/null +++ b/.svn/pristine/f2/f2f5e321c4ca014d8e2f36a9d8f398e7c84b320b.svn-base @@ -0,0 +1,20 @@ +## 1.3.1(2021-11-23) +- 修复 init 方法初始化问题 +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-transition](https://uniapp.dcloud.io/component/uniui/uni-transition) +## 1.2.1(2021-09-27) +- 修复 init 方法不生效的 Bug +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.1(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的 Bug +## 1.1.0(2021-04-22) +- 新增 通过方法自定义动画 +- 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式 +- 优化 动画触发逻辑,使动画更流畅 +- 优化 支持单独的动画类型 +- 优化 文档示例 +## 1.0.2(2021-02-05) +- 调整为 uni_modules 目录规范 diff --git a/.svn/pristine/f3/f3250ce20d0fe801e0ad8d1765843b74a0f72786.svn-base b/.svn/pristine/f3/f3250ce20d0fe801e0ad8d1765843b74a0f72786.svn-base new file mode 100644 index 0000000..8f9a6f2 --- /dev/null +++ b/.svn/pristine/f3/f3250ce20d0fe801e0ad8d1765843b74a0f72786.svn-base @@ -0,0 +1,68 @@ + + + + + + diff --git a/.svn/pristine/f3/f341ccae586774c1fc2e192c51b7155128add009.svn-base b/.svn/pristine/f3/f341ccae586774c1fc2e192c51b7155128add009.svn-base new file mode 100644 index 0000000..e7e2659 --- /dev/null +++ b/.svn/pristine/f3/f341ccae586774c1fc2e192c51b7155128add009.svn-base @@ -0,0 +1,84 @@ +{ + "id": "uni-tooltip", + "displayName": "uni-tooltip", + "version": "0.2.0", + "description": "uni-tooltip", + "keywords": [ + "uni-tooltip", + "uni-ui", + "tooltip", + "tip", + "文字提示" +], + "repository": "", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + } + } + } + } +} diff --git a/.svn/pristine/f3/f372372f95781cdf6f4c25c70b9fa4a0cee20fe2.svn-base b/.svn/pristine/f3/f372372f95781cdf6f4c25c70b9fa4a0cee20fe2.svn-base new file mode 100644 index 0000000..340153a Binary files /dev/null and b/.svn/pristine/f3/f372372f95781cdf6f4c25c70b9fa4a0cee20fe2.svn-base differ diff --git a/.svn/pristine/f3/f39cd86ca3d37d9b1cb32506f33ea2793299db5c.svn-base b/.svn/pristine/f3/f39cd86ca3d37d9b1cb32506f33ea2793299db5c.svn-base new file mode 100644 index 0000000..a9a742d --- /dev/null +++ b/.svn/pristine/f3/f39cd86ca3d37d9b1cb32506f33ea2793299db5c.svn-base @@ -0,0 +1,76 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ + +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ + +/* 颜色变量 */ + +/* 行为相关颜色 */ +$uni-color-primary: #007aff; +$uni-color-success: #4cd964; +$uni-color-warning: #f0ad4e; +$uni-color-error: #dd524d; + +/* 文字基本颜色 */ +$uni-text-color:#333;//基本色 +$uni-text-color-inverse:#fff;//反色 +$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息 +$uni-text-color-placeholder: #808080; +$uni-text-color-disable:#c0c0c0; + +/* 背景颜色 */ +$uni-bg-color:#ffffff; +$uni-bg-color-grey:#f8f8f8; +$uni-bg-color-hover:#f1f1f1;//点击状态颜色 +$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 + +/* 边框颜色 */ +$uni-border-color:#c8c7cc; + +/* 尺寸变量 */ + +/* 文字尺寸 */ +$uni-font-size-sm:12px; +$uni-font-size-base:14px; +$uni-font-size-lg:16; + +/* 图片尺寸 */ +$uni-img-size-sm:20px; +$uni-img-size-base:26px; +$uni-img-size-lg:40px; + +/* Border Radius */ +$uni-border-radius-sm: 2px; +$uni-border-radius-base: 3px; +$uni-border-radius-lg: 6px; +$uni-border-radius-circle: 50%; + +/* 水平间距 */ +$uni-spacing-row-sm: 5px; +$uni-spacing-row-base: 10px; +$uni-spacing-row-lg: 15px; + +/* 垂直间距 */ +$uni-spacing-col-sm: 4px; +$uni-spacing-col-base: 8px; +$uni-spacing-col-lg: 12px; + +/* 透明度 */ +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 + +/* 文章场景相关 */ +$uni-color-title: #2C405A; // 文章标题颜色 +$uni-font-size-title:20px; +$uni-color-subtitle: #555555; // 二级标题颜色 +$uni-font-size-subtitle:26px; +$uni-color-paragraph: #3F536E; // 文章段落颜色 +$uni-font-size-paragraph:15px; diff --git a/.svn/pristine/f3/f3d89cae8d2bf307c0b86801799414bd9e717179.svn-base b/.svn/pristine/f3/f3d89cae8d2bf307c0b86801799414bd9e717179.svn-base new file mode 100644 index 0000000..d659bb5 --- /dev/null +++ b/.svn/pristine/f3/f3d89cae8d2bf307c0b86801799414bd9e717179.svn-base @@ -0,0 +1,86 @@ +{ + "id": "uni-file-picker", + "displayName": "uni-file-picker 文件选择上传", + "version": "1.0.1", + "description": "文件选择上传组件,可以选择图片、视频等任意文件并上传到当前绑定的服务空间", + "keywords": [ + "uni-ui", + "uniui", + "图片上传", + "文件上传" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/f4/f40a6a32178d4bc6757ec1dc9d8078f94dbba082.svn-base b/.svn/pristine/f4/f40a6a32178d4bc6757ec1dc9d8078f94dbba082.svn-base new file mode 100644 index 0000000..a5dbdcc --- /dev/null +++ b/.svn/pristine/f4/f40a6a32178d4bc6757ec1dc9d8078f94dbba082.svn-base @@ -0,0 +1,82 @@ + + + + + diff --git a/.svn/pristine/f4/f4507247e9c900cb358fc3ba7ad46e02b9ff4dec.svn-base b/.svn/pristine/f4/f4507247e9c900cb358fc3ba7ad46e02b9ff4dec.svn-base new file mode 100644 index 0000000..f6dda22 Binary files /dev/null and b/.svn/pristine/f4/f4507247e9c900cb358fc3ba7ad46e02b9ff4dec.svn-base differ diff --git a/.svn/pristine/f4/f4e89bc4478debd7fd248225fe6d8c3355145bc0.svn-base b/.svn/pristine/f4/f4e89bc4478debd7fd248225fe6d8c3355145bc0.svn-base new file mode 100644 index 0000000..5b465bc --- /dev/null +++ b/.svn/pristine/f4/f4e89bc4478debd7fd248225fe6d8c3355145bc0.svn-base @@ -0,0 +1,10 @@ +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-row](https://uniapp.dcloud.io/component/uniui/uni-row) +## 0.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.0.4(2021-05-12) +- 新增 组件示例地址 +## 0.0.3(2021-02-05) +- 调整为uni_modules目录规范 +- 新增uni-row组件 diff --git a/.svn/pristine/f5/f5121528b8f1a82302f6b6cd8d0aa17e91ba39bc.svn-base b/.svn/pristine/f5/f5121528b8f1a82302f6b6cd8d0aa17e91ba39bc.svn-base new file mode 100644 index 0000000..43e9abc Binary files /dev/null and b/.svn/pristine/f5/f5121528b8f1a82302f6b6cd8d0aa17e91ba39bc.svn-base differ diff --git a/.svn/pristine/f5/f5b09d1c14c28128297cb460d842ae581a3f63ec.svn-base b/.svn/pristine/f5/f5b09d1c14c28128297cb460d842ae581a3f63ec.svn-base new file mode 100644 index 0000000..48aa880 --- /dev/null +++ b/.svn/pristine/f5/f5b09d1c14c28128297cb460d842ae581a3f63ec.svn-base @@ -0,0 +1,295 @@ + + + + + diff --git a/.svn/pristine/f5/f5e7526d4f5b17f7624825b209a50b87d7f9f5b8.svn-base b/.svn/pristine/f5/f5e7526d4f5b17f7624825b209a50b87d7f9f5b8.svn-base new file mode 100644 index 0000000..f16224d --- /dev/null +++ b/.svn/pristine/f5/f5e7526d4f5b17f7624825b209a50b87d7f9f5b8.svn-base @@ -0,0 +1,90 @@ +{ + "id": "uni-card", + "displayName": "uni-card 卡片", + "version": "1.3.1", + "description": "Card 组件,提供常见的卡片样式。", + "keywords": [ + "uni-ui", + "uniui", + "card", + "", + "卡片" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-icons", + "uni-scss" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/.svn/pristine/f5/f5ec37fac3c016eeac10c2b4f46ee2dbd730a5eb.svn-base b/.svn/pristine/f5/f5ec37fac3c016eeac10c2b4f46ee2dbd730a5eb.svn-base new file mode 100644 index 0000000..dbe60db Binary files /dev/null and b/.svn/pristine/f5/f5ec37fac3c016eeac10c2b4f46ee2dbd730a5eb.svn-base differ diff --git a/.svn/pristine/f6/f6323fd8386661b25f3c1cf64710026db4c67f38.svn-base b/.svn/pristine/f6/f6323fd8386661b25f3c1cf64710026db4c67f38.svn-base new file mode 100644 index 0000000..6d2488c --- /dev/null +++ b/.svn/pristine/f6/f6323fd8386661b25f3c1cf64710026db4c67f38.svn-base @@ -0,0 +1,13 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中个别scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-drawer](https://uniapp.dcloud.io/component/uniui/uni-drawer) +## 1.1.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/f6/f6366518af105e0f061aa4851e210b49bb5212e7.svn-base b/.svn/pristine/f6/f6366518af105e0f061aa4851e210b49bb5212e7.svn-base new file mode 100644 index 0000000..b667cf3 --- /dev/null +++ b/.svn/pristine/f6/f6366518af105e0f061aa4851e210b49bb5212e7.svn-base @@ -0,0 +1,651 @@ + + + + + diff --git a/.svn/pristine/f7/f71ddaaa70f7e7037e337ec1940715d843b97871.svn-base b/.svn/pristine/f7/f71ddaaa70f7e7037e337ec1940715d843b97871.svn-base new file mode 100644 index 0000000..fdcb9da Binary files /dev/null and b/.svn/pristine/f7/f71ddaaa70f7e7037e337ec1940715d843b97871.svn-base differ diff --git a/.svn/pristine/f7/f71fb68e7701c1f725ca78093489dae843565288.svn-base b/.svn/pristine/f7/f71fb68e7701c1f725ca78093489dae843565288.svn-base new file mode 100644 index 0000000..42aa5c7 Binary files /dev/null and b/.svn/pristine/f7/f71fb68e7701c1f725ca78093489dae843565288.svn-base differ diff --git a/.svn/pristine/f7/f7e3d31840d039fb9a0d71f4ac87d6605d30422e.svn-base b/.svn/pristine/f7/f7e3d31840d039fb9a0d71f4ac87d6605d30422e.svn-base new file mode 100644 index 0000000..ed73c4a Binary files /dev/null and b/.svn/pristine/f7/f7e3d31840d039fb9a0d71f4ac87d6605d30422e.svn-base differ diff --git a/.svn/pristine/f8/f8f76a83c3251d1a8ae8404d79c4d27ffd4d1837.svn-base b/.svn/pristine/f8/f8f76a83c3251d1a8ae8404d79c4d27ffd4d1837.svn-base new file mode 100644 index 0000000..c0c5839 --- /dev/null +++ b/.svn/pristine/f8/f8f76a83c3251d1a8ae8404d79c4d27ffd4d1837.svn-base @@ -0,0 +1,21 @@ +## 2.1.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-tag](https://uniapp.dcloud.io/component/uniui/uni-tag) +## 2.0.0(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +- 移除 插槽 +- 移除 type 属性的 royal 选项 +## 1.1.1(2021-08-11) +- type 不是 default 时,size 为 small 字体大小显示不正确 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-06-18) +- 修复 uni-tag 在字节跳动小程序上 css 类名编译错误的 bug +## 1.0.6(2021-06-04) +- 修复 未定义 sass 变量 "$uni-color-royal" 的bug +## 1.0.5(2021-05-10) +- 修复 royal 类型无效的bug +- 修复 uni-tag 宽度不自适应的bug +- 新增 uni-tag 支持属性 custom-style 自定义样式 +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/f8/f8ff0cd04719d99ef4cb0aefb864ffe14a741b81.svn-base b/.svn/pristine/f8/f8ff0cd04719d99ef4cb0aefb864ffe14a741b81.svn-base new file mode 100644 index 0000000..6e78ff5 --- /dev/null +++ b/.svn/pristine/f8/f8ff0cd04719d99ef4cb0aefb864ffe14a741b81.svn-base @@ -0,0 +1,13 @@ + + +## Tag 标签 +> **组件名:uni-tag** +> 代码块: `uTag` + + +用于展示1个或多个文字标签,可点击切换选中、不选中的状态 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-tag) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/.svn/pristine/f9/f92e9db6174bd47929dd5634df6d8e074f616874.svn-base b/.svn/pristine/f9/f92e9db6174bd47929dd5634df6d8e074f616874.svn-base new file mode 100644 index 0000000..058f863 Binary files /dev/null and b/.svn/pristine/f9/f92e9db6174bd47929dd5634df6d8e074f616874.svn-base differ diff --git a/.svn/pristine/f9/f9a6f2e42d2b5571dde9cb4f59eaf6059eec1dbe.svn-base b/.svn/pristine/f9/f9a6f2e42d2b5571dde9cb4f59eaf6059eec1dbe.svn-base new file mode 100644 index 0000000..1fd5f0a --- /dev/null +++ b/.svn/pristine/f9/f9a6f2e42d2b5571dde9cb4f59eaf6059eec1dbe.svn-base @@ -0,0 +1,84 @@ +{ + "id": "uni-breadcrumb", + "displayName": "uni-breadcrumb", + "version": "0.1.0", + "description": "uni-breadcrumb", + "keywords": [ + "uni-breadcrumb", + "breadcrumb", + "uni-ui", + "面包屑导航", + "面包屑" +], + "repository": "", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + } + } + } + } +} diff --git a/.svn/pristine/f9/f9f1c5c0b38b8290e7e33e4002306fdab1165563.svn-base b/.svn/pristine/f9/f9f1c5c0b38b8290e7e33e4002306fdab1165563.svn-base new file mode 100644 index 0000000..86c5ea9 --- /dev/null +++ b/.svn/pristine/f9/f9f1c5c0b38b8290e7e33e4002306fdab1165563.svn-base @@ -0,0 +1,86 @@ +let mpMixins = {} + +// #ifdef H5 +import { + isPC +} from "./isPC" +// #endif +// #ifdef APP-VUE|| MP-WEIXIN || H5 + +mpMixins = { + data() { + return { + is_show: 'none' + } + }, + watch: { + show(newVal) { + this.is_show = this.show + } + }, + created() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.is_show = this.show + }, + methods: { + // wxs 中调用 + closeSwipe(e) { + if (!this.autoClose) return + this.swipeaction.closeOther(this) + }, + + change(e) { + this.$emit('change', e.open) + if (this.is_show !== e.open) { + this.is_show = e.open + } + }, + + appTouchStart(e) { + let is_pc = isPC() || false + if (is_pc) return + const { + clientX + } = e.changedTouches[0] + this.clientX = clientX + this.timestamp = new Date().getTime() + }, + appTouchEnd(e, index, item, position) { + let is_pc = isPC() || false + if (is_pc) return + const { + clientX + } = e.changedTouches[0] + // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 + let diff = Math.abs(this.clientX - clientX) + let time = (new Date().getTime()) - this.timestamp + if (diff < 40 && time < 300) { + this.$emit('click', { + content: item, + index, + position + }) + } + }, + onClickForPC(index, item, position) { + + let is_pc = isPC() || false + if (is_pc) return + // #ifdef H5 + this.$emit('click', { + content: item, + index, + position + }) + // #endif + } + } +} + +// #endif +export default mpMixins diff --git a/.svn/pristine/fa/fa178b429ee69ea4cbd8763bab8ec39e3fd4aeba.svn-base b/.svn/pristine/fa/fa178b429ee69ea4cbd8763bab8ec39e3fd4aeba.svn-base new file mode 100644 index 0000000..eefa263 --- /dev/null +++ b/.svn/pristine/fa/fa178b429ee69ea4cbd8763bab8ec39e3fd4aeba.svn-base @@ -0,0 +1,13 @@ + + +## Pagination 分页器 +> **组件名:uni-pagination** +> 代码块: `uPagination` + + +分页器组件,用于展示页码、请求数据等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-pagination) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/.svn/pristine/fa/fa3937f4136a3edcd8afcc44fca76f58da837229.svn-base b/.svn/pristine/fa/fa3937f4136a3edcd8afcc44fca76f58da837229.svn-base new file mode 100644 index 0000000..d15fdf0 --- /dev/null +++ b/.svn/pristine/fa/fa3937f4136a3edcd8afcc44fca76f58da837229.svn-base @@ -0,0 +1,87 @@ +{ + "id": "uni-transition", + "displayName": "uni-transition 过渡动画", + "version": "1.3.1", + "description": "元素的简单过渡动画", + "keywords": [ + "uni-ui", + "uniui", + "动画", + "过渡", + "过渡动画" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/fa/faf6f219c8bde632563437af12d35813f2c51b2e.svn-base b/.svn/pristine/fa/faf6f219c8bde632563437af12d35813f2c51b2e.svn-base new file mode 100644 index 0000000..0539381 Binary files /dev/null and b/.svn/pristine/fa/faf6f219c8bde632563437af12d35813f2c51b2e.svn-base differ diff --git a/.svn/pristine/fb/fb17fb5491d62491295579d4fe8cb4be034acd77.svn-base b/.svn/pristine/fb/fb17fb5491d62491295579d4fe8cb4be034acd77.svn-base new file mode 100644 index 0000000..4e9e631 --- /dev/null +++ b/.svn/pristine/fb/fb17fb5491d62491295579d4fe8cb4be034acd77.svn-base @@ -0,0 +1,88 @@ +{ + "id": "uni-badge", + "displayName": "uni-badge 数字角标", + "version": "1.2.0", + "description": "数字角标(徽章)组件,在元素周围展示消息提醒,一般用于列表、九宫格、按钮等地方。", + "keywords": [ + "", + "badge", + "uni-ui", + "uniui", + "数字角标", + "徽章" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/fc/fc232e4a74d2e48a04f5feaebe5027970c3907a9.svn-base b/.svn/pristine/fc/fc232e4a74d2e48a04f5feaebe5027970c3907a9.svn-base new file mode 100644 index 0000000..2cfbf59 --- /dev/null +++ b/.svn/pristine/fc/fc232e4a74d2e48a04f5feaebe5027970c3907a9.svn-base @@ -0,0 +1,17 @@ +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-link](https://uniapp.dcloud.io/component/uniui/uni-link) +## 1.1.7(2021-11-08) +## 0.0.7(2021-09-03) +- 修复 在 nvue 下不显示的 bug +## 0.0.6(2021-07-30) +- 新增 支持自定义插槽 +## 0.0.5(2021-06-21) +- 新增 download 属性,H5平台下载文件名 +## 0.0.4(2021-05-12) +- 新增 组件示例地址 +## 0.0.3(2021-03-09) +- 新增 href 属性支持 tel:|mailto: + +## 0.0.2(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/fd/fd4256e2390029f757dec6dfb91f3bdd82e61949.svn-base b/.svn/pristine/fd/fd4256e2390029f757dec6dfb91f3bdd82e61949.svn-base new file mode 100644 index 0000000..f2dd8d2 --- /dev/null +++ b/.svn/pristine/fd/fd4256e2390029f757dec6dfb91f3bdd82e61949.svn-base @@ -0,0 +1,87 @@ +{ + "id": "uni-swiper-dot", + "displayName": "uni-swiper-dot 轮播图指示点", + "version": "1.2.0", + "description": "自定义轮播图指示点组件", + "keywords": [ + "uni-ui", + "uniui", + "轮播图指示点", + "dot", + "swiper" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/.svn/pristine/fd/fd64afd1793b053d97a286d3dfd208823d4ac69c.svn-base b/.svn/pristine/fd/fd64afd1793b053d97a286d3dfd208823d4ac69c.svn-base new file mode 100644 index 0000000..52ff305 Binary files /dev/null and b/.svn/pristine/fd/fd64afd1793b053d97a286d3dfd208823d4ac69c.svn-base differ diff --git a/.svn/pristine/fd/fd866e592b6e6e6f099b853d3e7b73940449c0d6.svn-base b/.svn/pristine/fd/fd866e592b6e6e6f099b853d3e7b73940449c0d6.svn-base new file mode 100644 index 0000000..a44385d --- /dev/null +++ b/.svn/pristine/fd/fd866e592b6e6e6f099b853d3e7b73940449c0d6.svn-base @@ -0,0 +1,9 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-segmented-control](https://uniapp.dcloud.io/component/uniui/uni-segmented-control) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.5(2021-05-12) +- 新增 项目示例地址 +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/.svn/pristine/fe/fe26160cb195eabeb1ac98e638f737a75223357f.svn-base b/.svn/pristine/fe/fe26160cb195eabeb1ac98e638f737a75223357f.svn-base new file mode 100644 index 0000000..a5d867b --- /dev/null +++ b/.svn/pristine/fe/fe26160cb195eabeb1ac98e638f737a75223357f.svn-base @@ -0,0 +1,227 @@ + + + + + \ No newline at end of file diff --git a/.svn/pristine/ff/ff4bb41b404d097eb675cce21e6561c255eb8a65.svn-base b/.svn/pristine/ff/ff4bb41b404d097eb675cce21e6561c255eb8a65.svn-base new file mode 100644 index 0000000..51ace0b --- /dev/null +++ b/.svn/pristine/ff/ff4bb41b404d097eb675cce21e6561c255eb8a65.svn-base @@ -0,0 +1,292 @@ + + + + + diff --git a/.svn/wc.db-journal b/.svn/wc.db-journal new file mode 100644 index 0000000..e69de29 diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..17bc9cd --- /dev/null +++ b/App.vue @@ -0,0 +1,201 @@ + + + diff --git a/common/AMapWX_SDK_V1.3.0/__MACOSX/._amap-wx.130.js b/common/AMapWX_SDK_V1.3.0/__MACOSX/._amap-wx.130.js new file mode 100644 index 0000000..51fa7ca Binary files /dev/null and b/common/AMapWX_SDK_V1.3.0/__MACOSX/._amap-wx.130.js differ diff --git a/common/AMapWX_SDK_V1.3.0/amap-wx.130.js b/common/AMapWX_SDK_V1.3.0/amap-wx.130.js new file mode 100644 index 0000000..718d6ef --- /dev/null +++ b/common/AMapWX_SDK_V1.3.0/amap-wx.130.js @@ -0,0 +1,31 @@ +function AMapWX(a){this.key=a.key;this.requestConfig={key:a.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};this.MeRequestConfig={key:a.key,serviceName:"https://restapi.amap.com/rest/me"}} +AMapWX.prototype.getWxLocation=function(a,b){wx.getLocation({type:"gcj02",success:function(c){c=c.longitude+","+c.latitude;wx.setStorage({key:"userLocation",data:c});b(c)},fail:function(c){wx.getStorage({key:"userLocation",success:function(d){d.data&&b(d.data)}});a.fail({errCode:"0",errMsg:c.errMsg||""})}})}; +AMapWX.prototype.getMEKeywordsSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.city&&(d.city=b.city);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&&(d.pageSize=b.pageSize);b.sig&&(d.sig= +b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/local",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})}; +AMapWX.prototype.getMEIdSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.id&&(d.id=b.id);b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/id",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&& +0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})}; +AMapWX.prototype.getMEPolygonSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.polygon&&(d.polygon=b.polygon);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&&(d.pageSize=b.pageSize); +b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/polygon",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})}; +AMapWX.prototype.getMEaroundSearch=function(a){if(!a.options)return a.fail({errCode:"0",errMsg:"\u7f3a\u5c11\u5fc5\u8981\u53c2\u6570"});var b=a.options,c=this.MeRequestConfig,d={key:c.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"};b.layerId&&(d.layerId=b.layerId);b.keywords&&(d.keywords=b.keywords);b.center&&(d.center=b.center);b.radius&&(d.radius=b.radius);b.filter&&(d.filter=b.filter);b.sortrule&&(d.sortrule=b.sortrule);b.pageNum&&(d.pageNum=b.pageNum);b.pageSize&& +(d.pageSize=b.pageSize);b.sig&&(d.sig=b.sig);wx.request({url:c.serviceName+"/cpoint/datasearch/around",data:d,method:"GET",header:{"content-type":"application/json"},success:function(e){(e=e.data)&&e.status&&"1"===e.status&&0===e.code?a.success(e.data):a.fail({errCode:"0",errMsg:e})},fail:function(e){a.fail({errCode:"0",errMsg:e.errMsg||""})}})}; +AMapWX.prototype.getGeo=function(a){var b=this.requestConfig,c=a.options;b={key:this.key,extensions:"all",s:b.s,platform:b.platform,appname:this.key,sdkversion:b.sdkversion,logversion:b.logversion};c.address&&(b.address=c.address);c.city&&(b.city=c.city);c.batch&&(b.batch=c.batch);c.sig&&(b.sig=c.sig);wx.request({url:"https://restapi.amap.com/v3/geocode/geo",data:b,method:"GET",header:{"content-type":"application/json"},success:function(d){(d=d.data)&&d.status&&"1"===d.status?a.success(d):a.fail({errCode:"0", +errMsg:d})},fail:function(d){a.fail({errCode:"0",errMsg:d.errMsg||""})}})}; +AMapWX.prototype.getRegeo=function(a){function b(d){var e=c.requestConfig;wx.request({url:"https://restapi.amap.com/v3/geocode/regeo",data:{key:c.key,location:d,extensions:"all",s:e.s,platform:e.platform,appname:c.key,sdkversion:e.sdkversion,logversion:e.logversion},method:"GET",header:{"content-type":"application/json"},success:function(g){if(g.data.status&&"1"==g.data.status){g=g.data.regeocode;var h=g.addressComponent,f=[],k=g.roads[0].name+"\u9644\u8fd1",m=d.split(",")[0],n=d.split(",")[1];if(g.pois&& +g.pois[0]){k=g.pois[0].name+"\u9644\u8fd1";var l=g.pois[0].location;l&&(m=parseFloat(l.split(",")[0]),n=parseFloat(l.split(",")[1]))}h.provice&&f.push(h.provice);h.city&&f.push(h.city);h.district&&f.push(h.district);h.streetNumber&&h.streetNumber.street&&h.streetNumber.number?(f.push(h.streetNumber.street),f.push(h.streetNumber.number)):f.push(g.roads[0].name);f=f.join("");a.success([{iconPath:a.iconPath,width:a.iconWidth,height:a.iconHeight,name:f,desc:k,longitude:m,latitude:n,id:0,regeocodeData:g}])}else a.fail({errCode:g.data.infocode, +errMsg:g.data.info})},fail:function(g){a.fail({errCode:"0",errMsg:g.errMsg||""})}})}var c=this;a.location?b(a.location):c.getWxLocation(a,function(d){b(d)})}; +AMapWX.prototype.getWeather=function(a){function b(g){var h="base";a.type&&"forecast"==a.type&&(h="all");wx.request({url:"https://restapi.amap.com/v3/weather/weatherInfo",data:{key:d.key,city:g,extensions:h,s:e.s,platform:e.platform,appname:d.key,sdkversion:e.sdkversion,logversion:e.logversion},method:"GET",header:{"content-type":"application/json"},success:function(f){if(f.data.status&&"1"==f.data.status)if(f.data.lives){if((f=f.data.lives)&&0 { + that.noClick= true; + }, 2000) + } else { + that.$utils.showtt('请勿多次点击') + // 这里是重复点击的判断 + } +} +//导出 +export default { + noMultipleClicks,//禁止多次点击 +} \ No newline at end of file diff --git a/common/interceptor.js b/common/interceptor.js new file mode 100644 index 0000000..91c4746 --- /dev/null +++ b/common/interceptor.js @@ -0,0 +1,52 @@ +import tools from '@/common/tools.js' + +let token +//页面黑名单 +const blackList = [ + +] +//未登录黑名单 +const tokenList = [ +] +//回调处理 +function isNext(back,login) { + console.log(back,login) + if (!back) {//如果是黑名单中的路径 + tools.showtt('该功能暂未开放') + } + + if (!login) {//如果是登录名单中的路径,并且没登陆 + uni.showModal({ + content: "请先授权登录再进行此操作", + title: "未登录", + success(res) { + if (res.confirm) { + tools.goNext('/pages/login/login') + } + } + }) + } +} +//拦截器 +// e.url == pagesOne/order/orderlist +uni.addInterceptor('navigateTo', { + invoke(e) { + console.log(e) + token = uni.getStorageSync('token') + //黑名单判断 + let back = blackList.every(val => val !== e.url) + //登录名单判断 + let login = tokenList.every(val => e.url.indexOf(val) == -1 || token) + //白名单 + // let back = !blackList.every(val => val !== e.url) + //拦截回调 + isNext(back,login) + return login && back + }, + success(e) { + console.log(e,'拦截器成功回调') + }, + fail(e) { + console.log(e,'拦截器失败回调') + } +}) diff --git a/common/mixin.js b/common/mixin.js new file mode 100644 index 0000000..67f6a76 --- /dev/null +++ b/common/mixin.js @@ -0,0 +1,48 @@ +export const mixin = { + data () { + return { + share: { + // 转发的标题 + // title: '新住装修顾问', + // 转发的路径,默认是当前页面,必须是以‘/’开头的完整路径,/pages/index/index + // path: '', + // 自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径, + // 支持PNG及JPG,不传入 imageUrl 则使用默认截图。显示图片长宽比是 5:4 + // imageUrl: '' + } + } + }, + // 分享到微信 + onShareAppMessage: function () { + // 获取加载的页面 + let pages = getCurrentPages(), view = pages[pages.length - 1] + //分享的页面路径 + if(!this.share.path) { + // #ifdef MP-WEIXIN + //this.share.path = `/${view.route}` + this.share.path = view.$page.fullPath + //#endif + //#ifdef MP-ALIPAY + this.share.path = view.$page.fullPath + //#endif + } + //转发参数 + return this.share + }, + // 分享到朋友圈 + onShareTimeline () { + // 获取加载的页面 + let pages = getCurrentPages(), view = pages[pages.length - 1] + //分享的页面路径 + if(!this.share.path) { + // #ifdef MP-WEIXIN + this.share.path = view.$page.fullPath + //#endif + //#ifdef MP-ALIPAY + this.share.path = view.$page.fullPath + //#endif + } + //转发参数 + return this.share + }, +} diff --git a/common/style_scss.scss b/common/style_scss.scss new file mode 100644 index 0000000..e1572d5 --- /dev/null +++ b/common/style_scss.scss @@ -0,0 +1,388 @@ +.bg { + background: #E73232; +} +.bg_linear { + background-image: linear-gradient(#FF5D5C,#fa3327); +} + +.col { + color: #E73232; +} + +/* 颜色 */ +.col_E81B27 { color: #E81B27; } +.col_E60012 { color: #E60012; } +.col_FE1515 { color: #FE1515; } +.col_25BFA7 { color: #25BFA7; } +.col_FF590F { color: #FF590F; } +.col_B3B3B3 { color: #B3B3B3; } +.col_2EA5E2 { color: #2EA5E2; } +.col_01B6B8 { color: #01B6B8; } +.col_FF3F45 { color: #FF3F45; } +.col_03C6BF { color: #03C6BF; } +.col_E42419 { color: #E42419; } +.col_FF0101 { color: #FF0101; } +.col_FF0000 { color: #FF0000; } +.col_FF5E00 { color: #FF5E00; } +.col_3DBF7F { color: #3DBF7F; } +.col_ABABB3 { color: #ABABB3;} +.col_0ECE93 { color: #0ECE93; } +.col_EB1513 { color: #EB1513; } +.col_c5c6Cc {color: #C5C6CA;} +.col_a6a5a5 {color: #A6A5A5;} +.col_EA3F49 { color: #EA3F49; } +.col_108EE9 { color: #108EE9; } +.col_FE9600 { color: #FE9600; } +.col_63A35C { color: #63A35C; } +.col_04A4FC { color: #04A4FC; } +.col_FFC9EE { color: #FFC9EE; } +.col_FF3EC9 { color: #FF3EC9; } +.col_FA5211 { color: #FA5211; } +.col_02C7D2 { color: #02C7D2; } +.col_828281 { color: #828281;} +.col_ecebf0 { color: #ecebf0;} +.col_fec85e { color: #FEC85E;} +.col_ff7f69 { color: #FF7F69;} +.col_e9caa9 { color: #E9CAA9;} +.col_b7bed8 { color: #B7BED8;} +.col_fd4449 {color: #FD4449;} +.col_2cc778 {color: #2cc778;} +.col_214f37 {color: #214f37;} +.col_b1b1b1 {color: #b1b1b1} +.col_c0c5cc {color: #c0c5cc;} +.col_bcbcbc {color: #bcbcbc;} +.col_070707 {color: #070707;} +.col_707070 {color: #707070;} +.col_b5b5b5 {color: #b5b5b5;} +.col_b9b9b9 {color: #b9b9b9;} +.col_a5a4a4 {color: #A5A4A4;} +.col_d2d2d2 {color: #d2d2d2;} +.col_534435 {color: #534435} +.col_1d2e89 {color: #1D2E89;} +.col_3d444d {color: #3d444d;} +.col_d12324 {color: #d12324;} +.col_002fa7 {color: #002fa7;} +.col_868686 {color: #868686;} +.col_808080 {color: #808080;} +.col_e81700 {color: #e81700;} +.col_fd5f07 {color: #FD5F07;} +.col_e51f38 {color: #E51F38;} +.col_e7cb90 {color: #e7cb90;} +.bge51f38 {background: #E51F38;} +.bgfd5f07 {background: #FD5F07;} +.bgf28f9c {background: #f28f9c;} +.bg1d2e89 {background: #1d2e89;} +.bgf2f2f2 {background: #f2f2f2;} +.bg002fa7 {background: #002fa7;} +.bgf5f5f5 {background: #f5f5f5;} +.bgf6f6f6 { background: #f6f6f6;} +.bgd4f4e4 {background: #d4f4e4;} +.bg9fe6c2 {background: #9fe6c2;} +.bgf5f7ff {background: #f5f7ff;} +.bgf45349 {background: #f45349;} +.bgea2466 {background: #ea2466;} +.bge7f9f0 {background-color: #e7f9f0;} +.bg2cc778 {background-color: #2cc778;} +.bgf83d47 {background-color: #f83d47;} +.bgfbfabc {background-color: #fbfafc;} +.bgFD4449 {background-color: #FD4449;} +.bgEB1513 {background-color: #EB1513;} +.bgFE9600 {background-color: #FE9600;} +.bg63A35C {background-color: #63A35C;} +.bg108EE9 {background-color: #108EE9;} +.bgFF0000 {background-color: #FF0000;} +.bg3DBF7F { background-color: #3DBF7F; } +.bgFFC9EE { background-color: #FFC9EE; } +.bg04CAFC { background-color: #04CAFC; } +.bgFF60E8 { background-color: #FF60E8; } +.bgFF3EC9 { background-color: #FF3EC9; } +.bg04A4FC { background-color: #04A4FC; } +.bgFF9000 { background-color: #FF9000; } +.bg02C7D2 { background-color: #02C7D2; } +.bgf7f6fa { background-color: #F7F6FA; } +.bg35d2db { background-color: #35D2DB; } +.bgb7bed8 { background-color: #B7BED8;} +.bge6e6e6 { background-color: #e6e6e6;} +.bg534e64 { background-color: #534E64;} +.bgf7f6fa { background-color: #f7f6fa;} +.bge9caa9 { background-color: #E9CAA9;} +.bgf7f7f7 { background: #F7F7F7;} +.bgf8f8f8 { background-color: #f8f8f8;} +view, +scroll-view, +swiper, +button, +input, +textarea, +label, +navigator, +image { + box-sizing: border-box; + z-index: 1; +} +//设置padding和border 不会改变盒子原有的大小//设置padding和border 不会改变盒子原有的大小 +.f0 { + flex-shrink: 0; +} +// // 定义flex等分 +@for $i from 0 through 12 { + .f-#{$i} { + flex: $i; + } + +} +/* +编译后的css代码 +.f-1{ + flex: 1; +} +.f-2{ + flex: 2; +} +.f-3{ + flex: 3; +} + .f-4{ + flex: 4; + } + .f-5{ + flex: 5; + } + .f-6{ + flex: 6; + } + .f-7{ + flex: 7; + } + .f-8{ + flex: 8; + } + .f-9{ + flex: 9; + } + .f-10{ + flex: 10; + } + .f-11{ + flex: 11; + } + .f-12{ + flex: 12; + } + */ +//定义zindex层级 +@for $i from 0 through 1000 { + .zi-#{$i} { + z-index: $i; + } + +} +// 定义字体(rpx)单位,10~100rpx fs-10 ~ fs-100 +@for $i from 10 through 100 { + .fs-#{$i} { + font-size: $i + rpx; + } +} +// 定义内外边距,历遍0-500 +@for $i from 0 through 500 { + //m-all-30 + .m-all-#{$i} { + margin: $i + rpx; + } + //p-all-30 + .p-all-#{$i} { + padding: $i + rpx; + } + @each $short, $long in l left, t top, r right, b bottom { + // 缩写版,结果如: ml-1 mr-10 mb-100 mt-135 + // 定义外边距 + .m#{$short}-#{$i} { + margin-#{$long}: $i + rpx; + } + // 定义内边距,结果如:pl-30 pr-30 pb-30 pt-30 + .p#{$short}-#{$i} { + padding-#{$long}: $i + rpx; + } + } +} +//全局宽高 +.h100vh {//100 vh + height: 100vh; + max-height: 100vh; + min-height: 100vh; +} +.h100 {//100% + height: 100%; + max-height: 100%; + min-height: 100%; +} + +// 嵌入字体 + +// @font-face { +// font-family: test; +// font-weight: normal; +// font-style: normal; +// src: url("~@/SourceHanSansK-Normal/SourceHanSansK-Normal.ttf") format("truetype"); +// } +//字体 +.fn-kt {//楷体 + font-family: KaiTi; +} +.fn-st {// + font-family: serif; +} +.fn-ft { + font-family: fantasy; +} +@for $i from 0 through 750 { + // w-0 ~ w-750 + .w-#{$i} { + width: $i + rpx; + max-width: $i + rpx; + min-width: $i + rpx; + } + // h-0 ~ h-750 + .h-#{$i} { + height: $i + rpx; + max-height: $i + rpx; + min-height: $i + rpx; + } + // lh-0 ~ lh-750 + .lh-#{$i} { + line-height: $i + rpx; + } +} + +//全局圆角 行高 br-0 ~ br-100 +@for $i from 0 through 100 { + // w-0 ~ w-750 + .br-#{$i} { + border-radius: $i + rpx; + } + // h-0 ~ h-750 +} +/* 对齐方式 */ +.tct{text-align: center;} +.trt{text-align: right;} +.tlt{text-align: left;} +.w100{width: 100%;} +.bor { + border-bottom: 2rpx solid #f1f1f1; +} +.box{box-sizing: border-box;} +.con{box-sizing: content-box;} +.relative{position: relative;} +.absolute{position: absolute;} +.fixed{position: fixed;} +.d-none{display: none;} +.d-block{display: inline-block;} +.blb_f1{border-bottom: 3rpx solid #F1F1F1;} +.blb_ff{border-bottom: 3rpx solid #FFFFFF;} +.bltb_e1dede{border-bottom: 3rpx solid #e1dede; border-top: 3rpx solid #e1dede;} +/* 粗体 */ +.fw-b { + font-weight: bold; +} + +.fw-l { + font-weight: lighter; +} + +.fw-n { + font-weight: normal; +} +.fw-600 { + font-weight: 600; +} +.fw-700 { + font-weight: 700; +} +.fw-800 { + font-weight: 800; +} + +//字间距 +@for $i from 0 through 20 { + // w-0 ~ w-750 + .ls-#{$i} { + letter-spacing: $i + rpx; + } +} +/*苹果底部选项栏适配*/ +.nav_bottom { + box-sizing: content-box; + padding-bottom: constant(safe-area-inset-bottom);//兼容 IOS<11.2 + padding-bottom: env(safe-area-inset-bottom);//兼容 IOS>11.2 +} + +/* 特殊处理 */ +.tline { + text-decoration: line-through; + /* 加删除线 */ +} +/* 多少行(3~15) */ +.one_overflow{ + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap; +} /* 一行隐藏 */ +.two_overflow{ + overflow:hidden; + display:-webkit-box; + -webkit-box-orient:vertical; + -webkit-line-clamp:2; +} /* 二行隐藏 */ +.three_overflow{ + overflow:hidden; + display:-webkit-box; + -webkit-box-orient:vertical; + -webkit-line-clamp:3; +} /* 三行隐藏 */ +/*========== flex布局相关 ==========*/ +/* http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html */ +.rows {display: flex;display: -webkit-flex;flex-direction: row;} /* 盒子内容横向布局 */ +.rowsa {display: flex;display: -webkit-flex;flex-direction: row;justify-content: space-around;} /* 盒子内容居中间间隙布局 */ +.rowsb {display: flex;display: -webkit-flex;flex-direction: row;justify-content: space-between;} /* 盒子内容两端间隙布局 */ +.rowsc {display: flex;display: -webkit-flex;flex-direction: row;justify-content: center;} /* 盒子内容居中布局 */ +.rowse {display: flex;display: -webkit-flex;flex-direction: row;justify-content: flex-end;} /* 盒子内容结尾布局 */ +.rowsm {align-items: center;} +.rowsw {flex-wrap: wrap;} +.rowsl {display: flex;display: -webkit-flex;flex-direction: column;} /* 盒子内容竖向中间间隙布局 */ +.rowsal {display: flex;display: -webkit-flex;justify-content: space-around;flex-direction: column;} /* 盒子内容竖向中间间隙布局 */ +.rowsbl {display: flex;display: -webkit-flex;justify-content: space-between;flex-direction: column;} /* 盒子内容竖向两端间隙布局 */ +.rowscl {display: flex;display: -webkit-flex;justify-content: center;flex-direction: column;} /* 盒子内容竖向中间居中布局 */ +.rowsce {display: flex;display: -webkit-flex;flex-direction: column;justify-content: flex-end;} /* 盒子内容竖向结尾布局 */ +.notYet {text-align: center;font-size: 30rpx;color: #999999;padding: 30rpx 0rpx;} /* 页面无数据 */ +.arrow{width: 7px;height: 7px;border-top: 1px solid #333333;border-right: 1px solid #333333;transform: rotate(45deg);}/* 右箭头 */ +.shadow_total{box-shadow: 0px 0px 5rpx 6rpx rgba(136,136,136,0.1);} +.shadow{box-shadow: 0px 0px 12rpx 12rpx rgba(136,136,136,0.1);} +.shadow_bottom{box-shadow: 2px 2px 6rpx 2rpx rgba(136,136,136,0.24);} +image{height: auto;} +// /deep/::-webkit-scrollbar { /* 隐藏滚动条,但依旧具备可以滚动的功能 */ +// display: none; +// width: 0; +// height: 0; +// color: transparent; +// background: transparent; +// } + +/* 根据设计图的主题色自行扩展颜色包*/ +.col000{color: #000000;} +.col111{color: #111111;} +.col222{color: #222222;} +.col333{color: #333333;} +.col444{color: #444444;} +.col555{color: #555555;} +.col666{color: #666666;} +.col777{color: #777777;} +.col888{color: #888888;} +.col999{color: #999999;} +.colfff{color: #FFFFFF;} +.bgf1{background-color: #F1F1F1;} +.bgf5{background-color: #F5F5F5;} +.bgf9{background-color: #F9F9F9;} +.bg99{background-color: #999999;} + +.bgff{background-color: #FFFFFF;} +.bgee{background-color: #eeeeee;} diff --git a/common/tools.js b/common/tools.js new file mode 100644 index 0000000..0a769a0 --- /dev/null +++ b/common/tools.js @@ -0,0 +1,632 @@ +var tools = { + httpOne: 'https://yurongjiuye.mmx0626.com/api/', //域名 线上 + upload: 'https://yurongjiuye.mmx0626.com/api/common/upload', //上传图片域名 + URL: 'https://yurongjiuye.mmx0626.com', + showtt: function(title, icon) { + if (title && title.length > 0) { + uni.showToast({ + title: title, + duration: 2000, + icon: icon ? icon : 'none' + }) + } + }, + showload: function(title, mask = false) { + if (title && title.length > 0) { + uni.showLoading({ + title, + mask + }) + } + }, + clearLoginStorage: function() { + const promotionUnlocked = uni.getStorageSync('promotionUnlocked') + uni.clearStorageSync() + if (promotionUnlocked) { + uni.setStorageSync('promotionUnlocked', promotionUnlocked) + } + }, + //图片地址拼接 + oss: function(url) { + if (!url || url.indexOf("http://") != -1 || url.indexOf("https://") != -1) { + return url + } else { + return this.URL + url + } + }, + // 跳转下一页 + goNext(url) { + uni.navigateTo({ + url: url + }) + }, + // 返回上一页 + goBack(num) { + uni.navigateBack({ + delta: num + }) + }, + // 跳转tabar页面 + goSwitchTab(url) { + uni.switchTab({ + url: url + }) + }, + // 关闭所有页面,跳转到指定页面 + goReLaunch(url) { + uni.reLaunch({ + url: url + }) + }, + // 关闭当前页,跳转下一页 + goRedirectTo(url) { + uni.redirectTo({ + url: url + }) + }, + //正常请求 + //请求格式 method POST GET + //请求地址 url + //请求参数 data + //加载中的框 showLoads + axios: function(method, url, data, showLoads) { + if (showLoads) { + uni.showLoading({ + 'title': showLoads + }) + }; //加载中的框 showLoads + return new Promise((resolve, reject) => { + uni.request({ + url: this.httpOne + url, //请求地址 url + data: data, //请求参数 data + method: method, //请求格式 method POST GET + header: { + 'Content-Type': 'application/json;charset=utf-8' + }, + success: (res) => { + if (showLoads) { + uni.hideLoading() + } + resolve(res.data) + }, + fail: (err) => { + reject(err) + }, + complete() { + + } + }) + }) + }, + throttle: function(fn, wait) { + clearTimeout(this.timeout) + let id = this.tabs[this.current].id + this.timeout = setTimeout(() => { + this.getList(id, this.current) + }, 450) + }, + //FROM的请求 + //请求格式 method POST GET + //请求地址 url + //请求参数 data + //加载中的框 showLoads + axiosFrom: function(method, url, data, showLoads) { + let token = uni.getStorageSync('token') ? uni.getStorageSync('token') : ''; //用户的token + if (showLoads) { + uni.showLoading({ + 'title': showLoads + }) + }; //加载中的框 + return new Promise((resolve, reject) => { + uni.request({ + url: this.httpOne + url, //请求地址 url + method: method, //请求格式 method POST GET + data: data, //请求参数 data + header: { + 'content-Type': 'application/x-www-form-urlencoded', + 'token': token + }, + success: (res) => { + if (showLoads) { + uni.hideLoading() + } + resolve(res.data) + }, + fail: (err) => { + console.log('err', err) + reject(err) + }, + complete() { + + } + }) + }) + }, + //FROM的请求 token + //请求格式 method POST GET + //请求地址 url + //请求参数 data + //加载中的框 showLoads + axiosFromToken: function(method, url, data, showLoads) { + let token = uni.getStorageSync('token') ? uni.getStorageSync('token') : ''; //用户的token + if (showLoads) { + uni.showLoading({ + 'title': showLoads + }) + }; //加载中的框 + return new Promise((resolve, reject) => { + uni.request({ + url: this.httpOne + url, //请求地址 url + method: method, //请求格式 method POST GET + data: data, //请求参数 data + header: { + 'content-Type': 'application/x-www-form-urlencoded', + 'token': token + }, + success: (res) => { + if (showLoads) { + uni.hideLoading() + } + if (res.statusCode == 401) { + uni.showModal({ + title: '温馨提示', + content: '尚未登录或登录已过期,是否前往登录?', + success: (res) => { + this.clearLoginStorage() + if(res.confirm){ + uni.navigateTo({ + url: "/pages/login/login" + }) + } + } + }); + return false + } + resolve(res.data) + }, + fail: (err) => { + reject(err) + }, + complete() { + + } + }) + }) + }, + getScrollHeight(titleH) {//获取元素铺满全屏的高度 uni.createSelectorQuery().select(".scroll") + return new Promise((resolve, reject) => { + setTimeout(() => { + let system = uni.getSystemInfoSync() + console.log(system, titleH) + titleH.boundingClientRect(data => { + console.log(data) + resolve(system.windowHeight - data.top)//计算高度:元素高度=窗口高度-元素距离顶部的距离(data.top) + }).exec() + }, 10) + }) + }, + downloadFile(file,ifOpenFile) { //下载课件 + uni.showLoading({ + title: '请稍等', + content: '正在下载文件', + mask: true + }) + uni.downloadFile({ + url: file, //下载地址接口返回 + success: (data) => { + if (data.statusCode === 200) { + //文件保存到本地 + uni.saveFile({ + tempFilePath: data.tempFilePath, //临时路径 + success: function(res) { + uni.showToast({ + icon: 'none', + mask: true, + title: '文件已保存:' + res.savedFilePath, //保存路径 + duration: 3000, + }); + if (ifOpenFile) { + setTimeout(() => { + //打开文档查看 + uni.openDocument({ + filePath: res.savedFilePath, + success: function(res) { + // console.log('打开文档成功'); + } + }); + }, 1000) + } + }, + complete() { + uni.hideLoading() + } + }); + } + }, + fail: (err) => { + uni.hideLoading() + uni.showToast({ + icon: 'none', + mask: true, + title: '失败请重新下载', + }); + }, + }); + }, + saveImage(url) { //保存二维码 + const that = this + uni.showLoading({ + title: '加载中' + }) + uni.downloadFile({ + url, //网络图片的地址 + success(res) { + uni.saveImageToPhotosAlbum({ + filePath: res.tempFilePath, //临时文件地址 + success(res) { + uni.showToast({ + title: '保存成功', + icon: 'success' + }) + uni.hideLoading() + }, + fail(res) { + uni.showToast({ + title: '保存失败', + icon: 'error' + }) + uni.hideLoading() + console.log('保存错误', res); + } + }) + }, + fail(res) { + console.log('保存错误', res); + }, + }) + }, + lookPhoto(url,current=0) {//查看图片 + uni.previewImage({ + current, + urls: url, + fail(err) { + // console.log(err,'报错') + } + }) + }, + //函数拷贝 + copyObj(obj = {}) { + //变量先置空 + let newobj = null; + + //判断是否需要继续进行递归 + if (typeof(obj) == 'object' && obj !== null) { + newobj = obj instanceof Array ? [] : {}; + //进行下一层递归克隆 + for (var i in obj) { + newobj[i] = this.copyObj(obj[i]) + } + //如果不是对象直接赋值 + } else newobj = obj; + + return newobj; + }, + imageLook(httpImgUrl) { + uni.previewImage({ + urls: httpImgUrl + }) + }, + // from表单的输入 + formInfo(data, keys) { + let obj = { + ...data + } + // data 验证对象 Object + // keys 验证对象中非必填字段 Array + if (keys && keys[0]) { + keys.forEach(val => { + delete obj[val] + }) + } + let show = true + for (let key in obj) { + const value = obj[key] + if (!value) { + uni.showToast({ + title: '请检查信息是否填写', + icon: 'none' + }) + console.log(`未填写完整value => ${value}, key => ${key}`) + show = false; + break; + } + } + return show; + }, + call(tel) { + // #ifdef APP + plus.android.requestPermissions( + ["android.permission.CALL_PHONE"], + function(resultObj) { + var result = 0; + for (var i = 0; i < resultObj.granted.length; i++) { + var grantedPermission = resultObj.granted[i]; + console.log('已获取的权限:' + grantedPermission); + result = 1 + } + for (var i = 0; i < resultObj.deniedPresent.length; i++) { + var deniedPresentPermission = resultObj.deniedPresent[i]; + console.log('拒绝本次申请的权限:' + deniedPresentPermission); + result = 0 + } + for (var i = 0; i < resultObj.deniedAlways.length; i++) { + var deniedAlwaysPermission = resultObj.deniedAlways[i]; + console.log('永久拒绝申请的权限:' + deniedAlwaysPermission); + result = -1 + } + console.log(result); + if(result == 1){ + uni.makePhoneCall({ + phoneNumber: tel,//电话号码 + success(ress) { + console.log("拨打电话成功",ress) + }, + fail(err) { + console.log("拨打电话失败",'err') + } + }); + }else{ + uni.showToast({ + title:"请开启拨号权限", + icon:"error", + }) + } + }, + function(error) { + console.log('申请权限错误:' + error.code + " = " + error.message); + } + ); + // #endif + // #ifdef MP-WEIXIN + uni.makePhoneCall({ + phoneNumber: tel,//电话号码 + success(ress) { + console.log("拨打电话成功",ress) + }, + fail(err) { + console.log("拨打电话失败",'err') + } + }); + // #endif + }, + // 判断身份证号 + isSfz(idcard) { + var id = + /^[1-9]\d{5}(18|19|20|21|22)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|[Xx])$/ + if (idcard === '') { + return false + } + if (!id.test(idcard)) { + return false + } else { + return true + } + }, + // 判断是否是手机号 + isPhone(val) { + var patrn = /^(((1[3456789][0-9]{1})|(15[0-9]{1}))+\d{8})$/ + if (!patrn.test(val) || val === '') { + uni.showToast({ + title: '手机号格式不正确', + icon: 'none' + }) + return false + } else { + return true + } + }, + // 判断邮箱 + isEmail(email) { + if (email.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) + return true; + else + return false; + }, + //当前日期 + data() { + var now = new Date(), + y = now.getFullYear(), + m = now.getMonth() + 1, + d = now.getDate(); + let Time = y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + return Time + }, + //当前时间 + time() { + var now = new Date(), + y = now.getFullYear(), + m = now.getMonth() + 1, + d = now.getDate(); + let Time = y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + "-" + now.toTimeString() + .substr(0, 8) + let str = y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + "T" + now.toTimeString().substr( + 0, 8) + console.log(str, 'str') + return Time + }, + //时间转时间戳 + timeTotimeStamp(time) { + let timestamp = Date.parse(new Date(time).toString()); + //timestamp = timestamp / 1000; //时间戳为13位需除1000,时间戳为13位的话不需除1000 + return timestamp; + //2021-11-18 22:14:24的时间戳为:1637244864707 + }, + //时间差 + // let startime = new Date() + // let endTime = new Date(res.data.yushou_end_time_text) + timeDifference(startime, endTime) { + const stime = new Date(startime).getTime(); + const etime = new Date(endTime).getTime(); + const diffTime = etime - stime; + const day = Math.floor(diffTime / (1000 * 60 * 60 * 24)); + const hour = Math.floor(diffTime / (1000 * 60 * 60) % 24); + const minute = Math.floor(diffTime / (1000 * 60) % 60); + const second = Math.floor(diffTime / 1000 % 60); + let obj = { + day, + hour, + minute, + second, + timeText: `${day}天${hour}时${minute}分${second}秒` + } + return obj + }, + //时间戳计算时间差 + timestampDifference(startime, endTime) { + const diffTime = endTime - startime; + const day = Math.floor(diffTime / (60 * 60 * 24)); + const hour = Math.floor(diffTime / 60 / 60 % 24); + const minute = Math.floor(diffTime / 60 % 60); + const second = Math.floor(diffTime % 60); + let obj = { + day, + hour, + minute, + second, + timeText: `${day}天${hour}时${minute}分${second}秒` + } + return obj + }, + // 时间戳转时间 + timestampToTime(timestamp) { + timestamp *= 1000 + var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000 + var Y = date.getFullYear() + '-'; + var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'; + var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '; + var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; + var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'; + var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()); + return Y + M + D; + }, + getDays() {//获取未来n天的日期信息 + var leng = 7; + var now = new Date(); + var nowTime = now.getTime(); + var oneDayTime = 24 * 60 * 60 * 1000; + var date = [] + for (var i = 0; i < leng; i++) { + var dateItem = {date: '', text: ''} + //显示星期 + var ShowTime = nowTime + i * oneDayTime; + //初始化日期时间 + var myDate = new Date(ShowTime); + var year = myDate.getFullYear(); + var month = myDate.getMonth() + 1; + var date = myDate.getDate(); + dateItem.text = "星期" + "日一二三四五六".charAt(myDate.getDay()); + dateItem.date = year + "-" + month + "-" + date ; dateItem.select = 0; + dateItem.year = year;dateItem.month = month;dateItem.day = date; + if (i == 0) dateItem.text = '今天' + if (i == 1) dateItem.text = '明天' + if (i == 2) dateItem.text = '后天' + date.push(dateItem); + } + return date + console.log(date) + }, + /** + * 判断是否是中文 + * @param str + * @returns {Boolean} + */ + isChine: function(str) { + var reg = /^([u4E00-u9FA5]|[uFE30-uFFA0])*$/; + if (reg.test(str)) { + return false; + } + return true; + }, + /** + * 判断是否是中文 + * @param num + * @returns {String | Number} + */ + isForNumber(num) { + num = Number(num); + if (num == 0) { + return num + ''; + } else + if (num > 1 && num < 10000) { + return num + ''; + } else { + return (num / 10000).toFixed(2) + '万'; + } + }, + /*验证是否为图片*/ + tmCheckImage: function(fileName) { + return /(gif|jpg|jpeg|png|GIF|JPG|PNG)$/ig.test(fileName); + }, + /*验证是否为视频*/ + tmCheckVideo: function(fileName) { + return /(mp4|mp3|flv|wav)$/ig.test(fileName); + }, + // 判断密码是否符合 至少6位,包括大小写字母、数字、特殊字符 + isPassword(val) { + var reg = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,16}$/; + if (val === '') { + uni.showToast({ + title: '请输入密码', + icon: 'none' + }) + } else if (!reg.test(val)) { + uni.showToast({ + title: '至少6位,包括大小写字母、数字、特殊字符', + icon: 'none' + }) + return false + } else { + return true + } + }, + copyTextH5App(info) { + if (!info) return false; + info = info + ''; + // #ifndef H5 + uni.setClipboardData({ //准备复制的数据 + data: info + '', + success: function(res) { + uni.showToast({ + title: '复制成功' + }); + } + }) + // #endif + // #ifdef H5 + let result + let textarea = document.createElement("textarea") + textarea.value = info + textarea.readOnly = "readOnly" + document.body.appendChild(textarea) + textarea.select() // 选中文本内容 + textarea.setSelectionRange(0, info.length) // 设置选定区的开始和结束点 + + result = document.execCommand("copy") //将当前选中区复制到剪贴板 + // console.log('[result]', result); + if (result) { + uni.showToast({ //提示 + title: '复制成功' + }) + } else { + uni.showToast({ //提示 + title: '复制失败,请重新尝试', + icon: 'none' + }) + } + textarea.remove() + // #endif + }, +} + + +export default tools; diff --git a/components/address-picker/address-picker.vue b/components/address-picker/address-picker.vue new file mode 100644 index 0000000..7f3b8a1 --- /dev/null +++ b/components/address-picker/address-picker.vue @@ -0,0 +1,104 @@ + + + + + \ No newline at end of file diff --git a/components/address-picker/data.js b/components/address-picker/data.js new file mode 100644 index 0000000..506bf83 --- /dev/null +++ b/components/address-picker/data.js @@ -0,0 +1,4909 @@ +export default [ + { + "name": "北京市", + "city": [ + { + "name": "北京市", + "area": [ + "东城区", + "西城区", + "崇文区", + "宣武区", + "朝阳区", + "丰台区", + "石景山区", + "海淀区", + "门头沟区", + "房山区", + "通州区", + "顺义区", + "昌平区", + "大兴区", + "平谷区", + "怀柔区", + "密云县", + "延庆县" + ] + } + ] + }, + { + "name": "天津市", + "city": [ + { + "name": "天津市", + "area": [ + "和平区", + "河东区", + "河西区", + "南开区", + "河北区", + "红桥区", + "塘沽区", + "汉沽区", + "大港区", + "东丽区", + "西青区", + "津南区", + "北辰区", + "武清区", + "宝坻区", + "宁河县", + "静海县", + "蓟 县" + ] + } + ] + }, + { + "name": "河北省", + "city": [ + { + "name": "石家庄市", + "area": [ + "长安区", + "桥东区", + "桥西区", + "新华区", + "郊 区", + "井陉矿区", + "井陉县", + "正定县", + "栾城县", + "行唐县", + "灵寿县", + "高邑县", + "深泽县", + "赞皇县", + "无极县", + "平山县", + "元氏县", + "赵 县", + "辛集市", + "藁", + "晋州市", + "新乐市", + "鹿泉市" + ] + }, + { + "name": "唐山市", + "area": [ + "路南区", + "路北区", + "古冶区", + "开平区", + "新 区", + "丰润县", + "滦 县", + "滦南县", + "乐亭县", + "迁西县", + "玉田县", + "唐海县", + "遵化市", + "丰南市", + "迁安市" + ] + }, + { + "name": "秦皇岛市", + "area": [ + "海港区", + "山海关区", + "北戴河区", + "青龙满族自治县", + "昌黎县", + "抚宁县", + "卢龙县" + ] + }, + { + "name": "邯郸市", + "area": [ + "邯山区", + "丛台区", + "复兴区", + "峰峰矿区", + "邯郸县", + "临漳县", + "成安县", + "大名县", + "涉 县", + "磁 县", + "肥乡县", + "永年县", + "邱 县", + "鸡泽县", + "广平县", + "馆陶县", + "魏 县", + "曲周县", + "武安市" + ] + }, + { + "name": "邢台市", + "area": [ + "桥东区", + "桥西区", + "邢台县", + "临城县", + "内丘县", + "柏乡县", + "隆尧县", + "任 县", + "南和县", + "宁晋县", + "巨鹿县", + "新河县", + "广宗县", + "平乡县", + "威 县", + "清河县", + "临西县", + "南宫市", + "沙河市" + ] + }, + { + "name": "保定市", + "area": [ + "新市区", + "北市区", + "南市区", + "满城县", + "清苑县", + "涞水县", + "阜平县", + "徐水县", + "定兴县", + "唐 县", + "高阳县", + "容城县", + "涞源县", + "望都县", + "安新县", + "易 县", + "曲阳县", + "蠡 县", + "顺平县", + "博野", + "雄县", + "涿州市", + "定州市", + "安国市", + "高碑店市" + ] + }, + { + "name": "张家口", + "area": [ + "桥东区", + "桥西区", + "宣化区", + "下花园区", + "宣化县", + "张北县", + "康保县", + "沽源县", + "尚义县", + "蔚 县", + "阳原县", + "怀安县", + "万全县", + "怀来县", + "涿鹿县", + "赤城县", + "崇礼县" + ] + }, + { + "name": "承德市", + "area": [ + "双桥区", + "双滦区", + "鹰手营子矿区", + "承德县", + "兴隆县", + "平泉县", + "滦平县", + "隆化县", + "丰宁满族自治县", + "宽城满族自治县", + "围场满族蒙古族自治县" + ] + }, + { + "name": "沧州市", + "area": [ + "新华区", + "运河区", + "沧 县", + "青 县", + "东光县", + "海兴县", + "盐山县", + "肃宁县", + "南皮县", + "吴桥县", + "献 县", + "孟村回族自治县", + "泊头市", + "任丘市", + "黄骅市", + "河间市" + ] + }, + { + "name": "廊坊市", + "area": [ + "安次区", + "固安县", + "永清县", + "香河县", + "大城县", + "文安县", + "大厂回族自治县", + "霸州市", + "三河市" + ] + }, + { + "name": "衡水市", + "area": [ + "桃城区", + "枣强县", + "武邑县", + "武强县", + "饶阳县", + "安平县", + "故城县", + "景 县", + "阜城县", + "冀州市", + "深州市" + ] + } + ] + }, + { + "name": "山西省", + "city": [ + { + "name": "太原市", + "area": [ + "小店区", + "迎泽区", + "杏花岭区", + "尖草坪区", + "万柏林区", + "晋源区", + "清徐县", + "阳曲县", + "娄烦县", + "古交市" + ] + }, + { + "name": "大同市", + "area": [ + "城 区", + "矿 区", + "南郊区", + "新荣区", + "阳高县", + "天镇县", + "广灵县", + "灵丘县", + "浑源县", + "左云县", + "大同县" + ] + }, + { + "name": "阳泉市", + "area": [ + "城 区", + "矿 区", + "郊 区", + "平定县", + "盂 县" + ] + }, + { + "name": "长治市", + "area": [ + "城 区", + "郊 区", + "长治县", + "襄垣县", + "屯留县", + "平顺县", + "黎城县", + "壶关县", + "长子县", + "武乡县", + "沁 县", + "沁源县", + "潞城市" + ] + }, + { + "name": "晋城市", + "area": [ + "城 区", + "沁水县", + "阳城县", + "陵川县", + "泽州县", + "高平市" + ] + }, + { + "name": "朔州市", + "area": [ + "朔城区", + "平鲁区", + "山阴县", + "应 县", + "右玉县", + "怀仁县" + ] + }, + { + "name": "忻州市", + "area": [ + "忻府区", + "原平市", + "定襄县", + "五台县", + "代 县", + "繁峙县", + "宁武县", + "静乐县", + "神池县", + "五寨县", + "岢岚县", + "河曲县", + "保德县", + "偏关县" + ] + }, + { + "name": "吕梁市", + "area": [ + "离石区", + "孝义市", + "汾阳市", + "文水县", + "交城县", + "兴 县", + "临 县", + "柳林县", + "石楼县", + "岚 县", + "方山县", + "中阳县", + "交口县" + ] + }, + { + "name": "晋中市", + "area": [ + "榆次市", + "介休市", + "榆社县", + "左权县", + "和顺县", + "昔阳县", + "寿阳县", + "太谷县", + "祁 县", + "平遥县", + "灵石县" + ] + }, + { + "name": "临汾市", + "area": [ + "临汾市", + "侯马市", + "霍州市", + "曲沃县", + "翼城县", + "襄汾县", + "洪洞县", + "古 县", + "安泽县", + "浮山县", + "吉 县", + "乡宁县", + "蒲 县", + "大宁县", + "永和县", + "隰 县", + "汾西县" + ] + }, + { + "name": "运城市", + "area": [ + "运城市", + "永济市", + "河津市", + "芮城县", + "临猗县", + "万荣县", + "新绛县", + "稷山县", + "闻喜县", + "夏 县", + "绛 县", + "平陆县", + "垣曲县" + ] + } + ] + }, + { + "name": "内蒙古", + "city": [ + { + "name": "呼和浩特市", + "area": [ + "新城区", + "回民区", + "玉泉区", + "郊 区", + "土默特左旗", + "托克托县", + "和林格尔县", + "清水河县", + "武川县" + ] + }, + { + "name": "包头市", + "area": [ + "东河区", + "昆都伦区", + "青山区", + "石拐矿区", + "白云矿区", + "郊 区", + "土默特右旗", + "固阳县", + "达尔罕茂明安联合旗" + ] + }, + { + "name": "乌海市", + "area": [ + "海勃湾区", + "海南区", + "乌达区" + ] + }, + { + "name": "赤峰市", + "area": [ + "红山区", + "元宝山区", + "松山区", + "阿鲁科尔沁旗", + "巴林左旗", + "巴林右旗", + "林西县", + "克什克腾旗", + "翁牛特旗", + "喀喇沁旗", + "宁城县", + "敖汉旗" + ] + }, + { + "name": "呼伦贝尔市", + "area": [ + "海拉尔市", + "满洲里市", + "扎兰屯市", + "牙克石市", + "根河市", + "额尔古纳市", + "阿荣旗", + "莫力达瓦达斡尔族自治旗", + "鄂伦春自治旗", + "鄂温克族自治旗", + "新巴尔虎右旗", + "新巴尔虎左旗", + "陈巴尔虎旗" + ] + }, + { + "name": "兴安盟", + "area": [ + "乌兰浩特市", + "阿尔山市", + "科尔沁右翼前旗", + "科尔沁右翼中旗", + "扎赉特旗", + "突泉县" + ] + }, + { + "name": "通辽市", + "area": [ + "科尔沁区", + "霍林郭勒市", + "科尔沁左翼中旗", + "科尔沁左翼后旗", + "开鲁县", + "库伦旗", + "奈曼旗", + "扎鲁特旗" + ] + }, + { + "name": "锡林郭勒盟", + "area": [ + "二连浩特市", + "锡林浩特市", + "阿巴嘎旗", + "苏尼特左旗", + "苏尼特右旗", + "东乌珠穆沁旗", + "西乌珠穆沁旗", + "太仆寺旗", + "镶黄旗", + "正镶白旗", + "正蓝旗", + "多伦县" + ] + }, + { + "name": "乌兰察布盟", + "area": [ + "集宁市", + "丰镇市", + "卓资县", + "化德县", + "商都县", + "兴和县", + "凉城县", + "察哈尔右翼前旗", + "察哈尔右翼中旗", + "察哈尔右翼后旗", + "四子王旗" + ] + }, + { + "name": "伊克昭盟", + "area": [ + "东胜市", + "达拉特旗", + "准格尔旗", + "鄂托克前旗", + "鄂托克旗", + "杭锦旗", + "乌审旗", + "伊金霍洛旗" + ] + }, + { + "name": "巴彦淖尔盟", + "area": [ + "临河市", + "五原县", + "磴口县", + "乌拉特前旗", + "乌拉特中旗", + "乌拉特后旗", + "杭锦后旗" + ] + }, + { + "name": "阿拉善盟", + "area": [ + "阿拉善左旗", + "阿拉善右旗", + "额济纳旗" + ] + } + ] + }, + { + "name": "辽宁省", + "city": [ + { + "name": "沈阳市", + "area": [ + "沈河区", + "皇姑区", + "和平区", + "大东区", + "铁西区", + "苏家屯区", + "东陵区", + "于洪区", + "新民市", + "法库县", + "辽中县", + "康平县", + "新城子区" + ] + }, + { + "name": "大连市", + "area": [ + "西岗区", + "中山区", + "沙河口区", + "甘井子区", + "旅顺口区", + "金州区", + "瓦房店市", + "普兰店市", + "庄河市", + "长海县" + ] + }, + { + "name": "鞍山市", + "area": [ + "铁东区", + "铁西区", + "立山区", + "千山区", + "海城市", + "台安县", + "岫岩满族自治县" + ] + }, + { + "name": "抚顺市", + "area": [ + "顺城区", + "新抚区", + "东洲区", + "望花区", + "抚顺县", + "清原满族自治县", + "新宾满族自治县" + ] + }, + { + "name": "本溪市", + "area": [ + "平山区", + "明山区", + "溪湖区", + "南芬区", + "本溪满族自治县", + "桓仁满族自治县" + ] + }, + { + "name": "丹东市", + "area": [ + "振兴区", + "元宝区", + "振安区", + "东港市", + "凤城市", + "宽甸满族自治县" + ] + }, + { + "name": "锦州市", + "area": [ + "太和区", + "古塔区", + "凌河区", + "凌海市", + "黑山县", + "义县", + "北宁市" + ] + }, + { + "name": "营口市", + "area": [ + "站前区", + "西市区", + "鲅鱼圈区", + "老边区", + "大石桥市", + "盖州市" + ] + }, + { + "name": "阜新市", + "area": [ + "海州区", + "新邱区", + "太平区", + "清河门区", + "细河区", + "彰武县", + "阜新蒙古族自治县" + ] + }, + { + "name": "辽阳市", + "area": [ + "白塔区", + "文圣区", + "宏伟区", + "太子河区", + "弓长岭区", + "灯塔市", + "辽阳县" + ] + }, + { + "name": "盘锦", + "area": [ + "双台子区", + "兴隆台区", + "盘山县", + "大洼县" + ] + }, + { + "name": "铁岭市", + "area": [ + "银州区", + "清河区", + "调兵山市", + "开原市", + "铁岭县", + "昌图县", + "西丰县" + ] + }, + { + "name": "朝阳市", + "area": [ + "双塔区", + "龙城区", + "凌源市", + "北票市", + "朝阳县", + "建平县", + "喀喇沁左翼蒙古族自治县" + ] + }, + { + "name": "葫芦岛市", + "area": [ + "龙港区", + "南票区", + "连山区", + "兴城市", + "绥中县", + "建昌县" + ] + } + ] + }, + { + "name": "吉林省", + "city": [ + { + "name": "长春市", + "area": [ + "朝阳区", + "宽城区", + "二道区", + "南关区", + "绿园区", + "双阳区", + "九台市", + "榆树市", + "德惠市", + "农安县" + ] + }, + { + "name": "吉林市", + "area": [ + "船营区", + "昌邑区", + "龙潭区", + "丰满区", + "舒兰市", + "桦甸市", + "蛟河市", + "磐石市", + "永吉县" + ] + }, + { + "name": "四平", + "area": [ + "铁西区", + "铁东区", + "公主岭市", + "双辽市", + "梨树县", + "伊通满族自治县" + ] + }, + { + "name": "辽源市", + "area": [ + "龙山区", + "西安区", + "东辽县", + "东丰县" + ] + }, + { + "name": "通化市", + "area": [ + "东昌区", + "二道江区", + "梅河口市", + "集安市", + "通化县", + "辉南县", + "柳河县" + ] + }, + { + "name": "白山市", + "area": [ + "八道江区", + "江源区", + "临江市", + "靖宇县", + "抚松县", + "长白朝鲜族自治县" + ] + }, + { + "name": "松原市", + "area": [ + "宁江区", + "乾安县", + "长岭县", + "扶余县", + "前郭尔罗斯蒙古族自治县" + ] + }, + { + "name": "白城市", + "area": [ + "洮北区", + "大安市", + "洮南市", + "镇赉县", + "通榆县" + ] + }, + { + "name": "延边朝鲜族自治州", + "area": [ + "延吉市", + "图们市", + "敦化市", + "龙井市", + "珲春市", + "和龙市", + "安图县", + "汪清县" + ] + } + ] + }, + { + "name": "黑龙江省", + "city": [ + { + "name": "哈尔滨市", + "area": [ + "松北区", + "道里区", + "南岗区", + "平房区", + "香坊区", + "道外区", + "呼兰区", + "阿城区", + "双城市", + "尚志市", + "五常市", + "宾县", + "方正县", + "通河县", + "巴彦县", + "延寿县", + "木兰县", + "依兰县" + ] + }, + { + "name": "齐齐哈尔市", + "area": [ + "龙沙区", + "昂昂溪区", + "铁锋区", + "建华区", + "富拉尔基区", + "碾子山区", + "梅里斯达斡尔族区", + "讷河市", + "富裕县", + "拜泉县", + "甘南县", + "依安县", + "克山县", + "泰来县", + "克东县", + "龙江县" + ] + }, + { + "name": "鹤岗市", + "area": [ + "兴山区", + "工农区", + "南山区", + "兴安区", + "向阳区", + "东山区", + "萝北县", + "绥滨县" + ] + }, + { + "name": "双鸭山", + "area": [ + "尖山区", + "岭东区", + "四方台区", + "宝山区", + "集贤县", + "宝清县", + "友谊县", + "饶河县" + ] + }, + { + "name": "鸡西市", + "area": [ + "鸡冠区", + "恒山区", + "城子河区", + "滴道区", + "梨树区", + "麻山区", + "密山市", + "虎林市", + "鸡东县" + ] + }, + { + "name": "大庆市", + "area": [ + "萨尔图区", + "红岗区", + "龙凤区", + "让胡路区", + "大同区", + "林甸县", + "肇州县", + "肇源县", + "杜尔伯特蒙古族自治县" + ] + }, + { + "name": "伊春市", + "area": [ + "伊春区", + "带岭区", + "南岔区", + "金山屯区", + "西林区", + "美溪区", + "乌马河区", + "翠峦区", + "友好区", + "上甘岭区", + "五营区", + "红星区", + "新青区", + "汤旺河区", + "乌伊岭区", + "铁力市", + "嘉荫县" + ] + }, + { + "name": "牡丹江市", + "area": [ + "爱民区", + "东安区", + "阳明区", + "西安区", + "绥芬河市", + "宁安市", + "海林市", + "穆棱市", + "林口县", + "东宁县" + ] + }, + { + "name": "佳木斯市", + "area": [ + "向阳区", + "前进区", + "东风区", + "郊区", + "同江市", + "富锦市", + "桦川县", + "抚远县", + "桦南县", + "汤原县" + ] + }, + { + "name": "七台河市", + "area": [ + "桃山区", + "新兴区", + "茄子河区", + "勃利县" + ] + }, + { + "name": "黑河市", + "area": [ + "爱辉区", + "北安市", + "五大连池市", + "逊克县", + "嫩江县", + "孙吴县" + ] + }, + { + "name": "绥化市", + "area": [ + "北林区", + "安达市", + "肇东市", + "海伦市", + "绥棱县", + "兰西县", + "明水县", + "青冈县", + "庆安县", + "望奎县" + ] + }, + { + "name": "大兴安岭地区", + "area": [ + "呼玛县", + "塔河县", + "漠河县", + "大兴安岭辖区" + ] + } + ] + }, + { + "name": "上海市", + "city": [ + { + "name": "上海市", + "area": [ + "黄浦区", + "卢湾区", + "徐汇区", + "长宁区", + "静安区", + "普陀区", + "闸北区", + "虹口区", + "杨浦区", + "宝山区", + "闵行区", + "嘉定区", + "松江区", + "金山区", + "青浦区", + "南汇区", + "奉贤区", + "浦东新区", + "崇明县" + ] + } + ] + }, + { + "name": "江苏省", + "city": [ + { + "name": "南京市", + "area": [ + "玄武区", + "白下区", + "秦淮区", + "建邺区", + "鼓楼区", + "下关区", + "栖霞区", + "雨花台区", + "浦口区", + "江宁区", + "六合区", + "溧水县", + "高淳县" + ] + }, + { + "name": "苏州市", + "area": [ + "金阊区", + "平江区", + "沧浪区", + "虎丘区", + "吴中区", + "相城区", + "常熟市", + "张家港市", + "昆山市", + "吴江市", + "太仓市" + ] + }, + { + "name": "无锡市", + "area": [ + "崇安区", + "南长区", + "北塘区", + "滨湖区", + "锡山区", + "惠山区", + "江阴市", + "宜兴市" + ] + }, + { + "name": "常州市", + "area": [ + "钟楼区", + "天宁区", + "戚墅堰区", + "新北区", + "武进区", + "金坛市", + "溧阳市" + ] + }, + { + "name": "镇江市", + "area": [ + "京口区", + "润州区", + "丹徒区", + "丹阳市", + "扬中市", + "句容市" + ] + }, + { + "name": "南通市", + "area": [ + "崇川区", + "港闸区", + "通州市", + "如皋市", + "海门市", + "启东市", + "海安县", + "如东县" + ] + }, + { + "name": "泰州市", + "area": [ + "海陵区", + "高港区", + "姜堰市", + "泰兴市", + "靖江市", + "兴化市" + ] + }, + { + "name": "扬州市", + "area": [ + "广陵区", + "维扬区", + "邗江区", + "江都市", + "仪征市", + "高邮市", + "宝应县" + ] + }, + { + "name": "盐城市", + "area": [ + "亭湖区", + "盐都区", + "大丰市", + "东台市", + "建湖县", + "射阳县", + "阜宁县", + "滨海县", + "响水县" + ] + }, + { + "name": "连云港市", + "area": [ + "新浦区", + "海州区", + "连云区", + "东海县", + "灌云县", + "赣榆县", + "灌南县" + ] + }, + { + "name": "徐州市", + "area": [ + "云龙区", + "鼓楼区", + "九里区", + "泉山区", + "贾汪区", + "邳州市", + "新沂市", + "铜山县", + "睢宁县", + "沛县", + "丰县" + ] + }, + { + "name": "淮安市", + "area": [ + "清河区", + "清浦区", + "楚州区", + "淮阴区", + "涟水县", + "洪泽县", + "金湖县", + "盱眙县" + ] + }, + { + "name": "宿迁市", + "area": [ + "宿城区", + "宿豫区", + "沭阳县", + "泗阳县", + "泗洪县" + ] + } + ] + }, + { + "name": "浙江省", + "city": [ + { + "name": "杭州市", + "area": [ + "拱墅区", + "西湖区", + "上城区", + "下城区", + "江干区", + "滨江区", + "余杭区", + "萧山区", + "建德市", + "富阳市", + "临安市", + "桐庐县", + "淳安县" + ] + }, + { + "name": "宁波市", + "area": [ + "海曙区", + "江东区", + "江北区", + "镇海区", + "北仑区", + "鄞州区", + "余姚市", + "慈溪市", + "奉化市", + "宁海县", + "象山县" + ] + }, + { + "name": "温州市", + "area": [ + "鹿城区", + "龙湾区", + "瓯海区", + "瑞安市", + "乐清市", + "永嘉县", + "洞头县", + "平阳县", + "苍南县", + "文成县", + "泰顺县" + ] + }, + { + "name": "嘉兴市", + "area": [ + "秀城区", + "秀洲区", + "海宁市", + "平湖市", + "桐乡市", + "嘉善县", + "海盐县" + ] + }, + { + "name": "湖州市", + "area": [ + "吴兴区", + "南浔区", + "长兴县", + "德清县", + "安吉县" + ] + }, + { + "name": "绍兴市", + "area": [ + "越城区", + "诸暨市", + "上虞市", + "嵊州市", + "绍兴县", + "新昌县" + ] + }, + { + "name": "金华市", + "area": [ + "婺城区", + "金东区", + "兰溪市", + "义乌市", + "东阳市", + "永康市", + "武义县", + "浦江县", + "磐安县" + ] + }, + { + "name": "衢州市", + "area": [ + "柯城区", + "衢江区", + "江山市", + "龙游县", + "常山县", + "开化县" + ] + }, + { + "name": "舟山市", + "area": [ + "定海区", + "普陀区", + "岱山县", + "嵊泗县" + ] + }, + { + "name": "台州市", + "area": [ + "椒江区", + "黄岩区", + "路桥区", + "临海市", + "温岭市", + "玉环县", + "天台县", + "仙居县", + "三门县" + ] + }, + { + "name": "丽水市", + "area": [ + "莲都区", + "龙泉市", + "缙云县", + "青田县", + "云和县", + "遂昌县", + "松阳县", + "庆元县", + "景宁畲族自治县" + ] + } + ] + }, + { + "name": "安徽省", + "city": [ + { + "name": "合肥市", + "area": [ + "庐阳区", + "瑶海区", + "蜀山区", + "包河区", + "长丰县", + "肥东县", + "肥西县" + ] + }, + { + "name": "芜湖市", + "area": [ + "镜湖区", + "弋江区", + "鸠江区", + "三山区", + "芜湖县", + "南陵县", + "繁昌县" + ] + }, + { + "name": "蚌埠市", + "area": [ + "蚌山区", + "龙子湖区", + "禹会区", + "淮上区", + "怀远县", + "固镇县", + "五河县" + ] + }, + { + "name": "淮南市", + "area": [ + "田家庵区", + "大通区", + "谢家集区", + "八公山区", + "潘集区", + "凤台县" + ] + }, + { + "name": "马鞍山市", + "area": [ + "雨山区", + "花山区", + "金家庄区", + "当涂县" + ] + }, + { + "name": "淮北市", + "area": [ + "相山区", + "杜集区", + "烈山区", + "濉溪县" + ] + }, + { + "name": "铜陵市", + "area": [ + "铜官山区", + "狮子山区", + "郊区", + "铜陵县" + ] + }, + { + "name": "安庆市", + "area": [ + "迎江区", + "大观区", + "宜秀区", + "桐城市", + "宿松县", + "枞阳县", + "太湖县", + "怀宁县", + "岳西县", + "望江县", + "潜山县" + ] + }, + { + "name": "黄山市", + "area": [ + "屯溪区", + "黄山区", + "徽州区", + "休宁县", + "歙县", + "祁门县", + "黟县" + ] + }, + { + "name": "滁州市", + "area": [ + "琅琊区", + "南谯区", + "天长市", + "明光市", + "全椒县", + "来安县", + "定远县", + "凤阳县" + ] + }, + { + "name": "阜阳市", + "area": [ + "颍州区", + "颍东区", + "颍泉区", + "界首市", + "临泉县", + "颍上县", + "阜南县", + "太和县" + ] + }, + { + "name": "宿州市", + "area": [ + "埇桥区", + "萧县", + "泗县", + "砀山县", + "灵璧县" + ] + }, + { + "name": "巢湖市", + "area": [ + "居巢区", + "含山县", + "无为县", + "庐江县", + "和县" + ] + }, + { + "name": "六安市", + "area": [ + "金安区", + "裕安区", + "寿县", + "霍山县", + "霍邱县", + "舒城县", + "金寨县" + ] + }, + { + "name": "亳州市", + "area": [ + "谯城区", + "利辛县", + "涡阳县", + "蒙城县" + ] + }, + { + "name": "池州市", + "area": [ + "贵池区", + "东至县", + "石台县", + "青阳县" + ] + }, + { + "name": "宣城市", + "area": [ + "宣州区", + "宁国市", + "广德县", + "郎溪县", + "泾县", + "旌德县", + "绩溪县" + ] + } + ] + }, + { + "name": "福建省", + "city": [ + { + "name": "福州市", + "area": [ + "鼓楼区", + "台江区", + "仓山区", + "马尾区", + "晋安区", + "福清市", + "长乐市", + "闽侯县", + "闽清县", + "永泰县", + "连江县", + "罗源县", + "平潭县" + ] + }, + { + "name": "厦门市", + "area": [ + "思明区", + "海沧区", + "湖里区", + "集美区", + "同安区", + "翔安区" + ] + }, + { + "name": "莆田市", + "area": [ + "城厢区", + "涵江区", + "荔城区", + "秀屿区", + "仙游县" + ] + }, + { + "name": "三明市", + "area": [ + "梅列区", + "三元区", + "永安市", + "明溪县", + "将乐县", + "大田县", + "宁化县", + "建宁县", + "沙县", + "尤溪县", + "清流县", + "泰宁县" + ] + }, + { + "name": "泉州市", + "area": [ + "鲤城区", + "丰泽区", + "洛江区", + "泉港区", + "石狮市", + "晋江市", + "南安市", + "惠安县", + "永春县", + "安溪县", + "德化县", + "金门县" + ] + }, + { + "name": "漳州市", + "area": [ + "芗城区", + "龙文区", + "龙海市", + "平和县", + "南靖县", + "诏安县", + "漳浦县", + "华安县", + "东山县", + "长泰县", + "云霄县" + ] + }, + { + "name": "南平市", + "area": [ + "延平区", + "建瓯市", + "邵武市", + "武夷山市", + "建阳市", + "松溪县", + "光泽县", + "顺昌县", + "浦城县", + "政和县" + ] + }, + { + "name": "龙岩市", + "area": [ + "新罗区", + "漳平市", + "长汀县", + "武平县", + "上杭县", + "永定县", + "连城县" + ] + }, + { + "name": "宁德市", + "area": [ + "蕉城区", + "福安市", + "福鼎市", + "寿宁县", + "霞浦县", + "柘荣县", + "屏南县", + "古田县", + "周宁县" + ] + } + ] + }, + { + "name": "江西省", + "city": [ + { + "name": "南昌市", + "area": [ + "东湖区", + "西湖区", + "青云谱区", + "湾里区", + "青山湖区", + "新建县", + "南昌县", + "进贤县", + "安义县" + ] + }, + { + "name": "景德镇市", + "area": [ + "珠山区", + "昌江区", + "乐平市", + "浮梁县" + ] + }, + { + "name": "萍乡市", + "area": [ + "安源区", + "湘东区", + "莲花县", + "上栗县", + "芦溪县" + ] + }, + { + "name": "九江市", + "area": [ + "浔阳区", + "庐山区", + "瑞昌市", + "九江县", + "星子县", + "武宁县", + "彭泽县", + "永修县", + "修水县", + "湖口县", + "德安县", + "都昌县" + ] + }, + { + "name": "新余市", + "area": [ + "渝水区", + "分宜县" + ] + }, + { + "name": "鹰潭市", + "area": [ + "月湖区", + "贵溪市", + "余江县" + ] + }, + { + "name": "赣州市", + "area": [ + "章贡区", + "瑞金市", + "南康市", + "石城县", + "安远县", + "赣县", + "宁都县", + "寻乌县", + "兴国县", + "定南县", + "上犹县", + "于都县", + "龙南县", + "崇义县", + "信丰县", + "全南县", + "大余县", + "会昌县" + ] + }, + { + "name": "吉安市", + "area": [ + "吉州区", + "青原区", + "井冈山市", + "吉安县", + "永丰县", + "永新县", + "新干县", + "泰和县", + "峡江县", + "遂川县", + "安福县", + "吉水县", + "万安县" + ] + }, + { + "name": "宜春市", + "area": [ + "袁州区", + "丰城市", + "樟树市", + "高安市", + "铜鼓县", + "靖安县", + "宜丰县", + "奉新县", + "万载县", + "上高县" + ] + }, + { + "name": "抚州市", + "area": [ + "临川区", + "南丰县", + "乐安县", + "金溪县", + "南城县", + "东乡县", + "资溪县", + "宜黄县", + "广昌县", + "黎川县", + "崇仁县" + ] + }, + { + "name": "上饶市", + "area": [ + "信州区", + "德兴市", + "上饶县", + "广丰县", + "鄱阳县", + "婺源县", + "铅山县", + "余干县", + "横峰县", + "弋阳县", + "玉山县", + "万年县" + ] + } + ] + }, + { + "name": "山东省", + "city": [ + { + "name": "济南市", + "area": [ + "市中区", + "历下区", + "天桥区", + "槐荫区", + "历城区", + "长清区", + "章丘市", + "平阴县", + "济阳县", + "商河县", + "莱芜区", + "钢城区" + ] + }, + { + "name": "青岛市", + "area": [ + "市南区", + "市北区", + "城阳区", + "四方区", + "李沧区", + "黄岛区", + "崂山区", + "胶南市", + "胶州市", + "平度市", + "莱西市", + "即墨市" + ] + }, + { + "name": "淄博市", + "area": [ + "张店区", + "临淄区", + "淄川区", + "博山区", + "周村区", + "桓台县", + "高青县", + "沂源县" + ] + }, + { + "name": "枣庄市", + "area": [ + "市中区", + "山亭区", + "峄城区", + "台儿庄区", + "薛城区", + "滕州市" + ] + }, + { + "name": "东营市", + "area": [ + "东营区", + "河口区", + "垦利县", + "广饶县", + "利津县" + ] + }, + { + "name": "烟台市", + "area": [ + "芝罘区", + "福山区", + "牟平区", + "莱山区", + "龙口市", + "莱阳市", + "莱州市", + "招远市", + "蓬莱市", + "栖霞市", + "海阳市", + "长岛县" + ] + }, + { + "name": "潍坊市", + "area": [ + "潍城区", + "寒亭区", + "坊子区", + "奎文区", + "青州市", + "诸城市", + "寿光市", + "安丘市", + "高密市", + "昌邑市", + "昌乐县", + "临朐县" + ] + }, + { + "name": "济宁市", + "area": [ + "市中区", + "任城区", + "曲阜市", + "兖州市", + "邹城市", + "鱼台县", + "金乡县", + "嘉祥县", + "微山县", + "汶上县", + "泗水县", + "梁山县" + ] + }, + { + "name": "泰安市", + "area": [ + "泰山区", + "岱岳区", + "新泰市", + "肥城市", + "宁阳县", + "东平县" + ] + }, + { + "name": "威海市", + "area": [ + "环翠区", + "乳山市", + "文登市", + "荣成市" + ] + }, + { + "name": "日照市", + "area": [ + "东港区", + "岚山区", + "五莲县", + "莒县" + ] + }, + { + "name": "临沂市", + "area": [ + "兰山区", + "罗庄区", + "河东区", + "沂南县", + "郯城县", + "沂水县", + "苍山县", + "费县", + "平邑县", + "莒南县", + "蒙阴县", + "临沭县" + ] + }, + { + "name": "德州市", + "area": [ + "德城区", + "乐陵市", + "禹城市", + "陵县", + "宁津县", + "齐河县", + "武城县", + "庆云县", + "平原县", + "夏津县", + "临邑县" + ] + }, + { + "name": "聊城市", + "area": [ + "东昌府区", + "临清市", + "高唐县", + "阳谷县", + "茌平县", + "莘县", + "东阿县", + "冠县" + ] + }, + { + "name": "滨州市", + "area": [ + "滨城区", + "邹平县", + "沾化县", + "惠民县", + "博兴县", + "阳信县", + "无棣县" + ] + }, + { + "name": "菏泽市", + "area": [ + "牡丹区", + "鄄城县", + "单县", + "郓城县", + "曹县", + "定陶县", + "巨野县", + "东明县", + "成武县" + ] + } + ] + }, + { + "name": "河南省", + "city": [ + { + "name": "郑州市", + "area": [ + "中原区", + "金水区", + "二七区", + "管城回族区", + "上街区", + "惠济区", + "巩义市", + "新郑市", + "新密市", + "登封市", + "荥阳市", + "中牟县" + ] + }, + { + "name": "开封市", + "area": [ + "鼓楼区", + "龙亭区", + "顺河回族区", + "禹王台区", + "金明区", + "开封县", + "尉氏县", + "兰考县", + "杞县", + "通许县" + ] + }, + { + "name": "洛阳市", + "area": [ + "西工区", + "老城区", + "涧西区", + "瀍河回族区", + "洛龙区", + "吉利区", + "偃师市", + "孟津县", + "汝阳县", + "伊川县", + "洛宁县", + "嵩县", + "宜阳县", + "新安县", + "栾川县" + ] + }, + { + "name": "平顶山市", + "area": [ + "新华区", + "卫东区", + "湛河区", + "石龙区", + "汝州市", + "舞钢市", + "宝丰县", + "叶县", + "郏县", + "鲁山县" + ] + }, + { + "name": "安阳市", + "area": [ + "北关区", + "文峰区", + "殷都区", + "龙安区", + "林州市", + "安阳县", + "滑县", + "内黄县", + "汤阴县" + ] + }, + { + "name": "鹤壁市", + "area": [ + "淇滨区", + "山城区", + "鹤山区", + "浚县", + "淇县" + ] + }, + { + "name": "新乡市", + "area": [ + "卫滨区", + "红旗区", + "凤泉区", + "牧野区", + "卫辉市", + "辉县市", + "新乡县", + "获嘉县", + "原阳县", + "长垣县", + "封丘县", + "延津县" + ] + }, + { + "name": "焦作市", + "area": [ + "解放区", + "中站区", + "马村区", + "山阳区", + "沁阳市", + "孟州市", + "修武县", + "温县", + "武陟县", + "博爱县" + ] + }, + { + "name": "濮阳市", + "area": [ + "华龙区", + "濮阳县", + "南乐县", + "台前县", + "清丰县", + "范县" + ] + }, + { + "name": "许昌市", + "area": [ + "魏都区", + "禹州市", + "长葛市", + "许昌县", + "鄢陵县", + "襄城县" + ] + }, + { + "name": "漯河市", + "area": [ + "源汇区", + "郾城区", + "召陵区", + "临颍县", + "舞阳县" + ] + }, + { + "name": "三门峡市", + "area": [ + "湖滨区", + "义马市", + "灵宝市", + "渑池县", + "卢氏县", + "陕县" + ] + }, + { + "name": "南阳市", + "area": [ + "卧龙区", + "宛城区", + "邓州市", + "桐柏县", + "方城县", + "淅川县", + "镇平县", + "唐河县", + "南召县", + "内乡县", + "新野县", + "社旗县", + "西峡县" + ] + }, + { + "name": "商丘市", + "area": [ + "梁园区", + "睢阳区", + "永城市", + "宁陵县", + "虞城县", + "民权县", + "夏邑县", + "柘城县", + "睢县" + ] + }, + { + "name": "信阳市", + "area": [ + "浉河区", + "平桥区", + "潢川县", + "淮滨县", + "息县", + "新县", + "商城县", + "固始县", + "罗山县", + "光山县" + ] + }, + { + "name": "周口市", + "area": [ + "川汇区", + "项城市", + "商水县", + "淮阳县", + "太康县", + "鹿邑县", + "西华县", + "扶沟县", + "沈丘县", + "郸城县" + ] + }, + { + "name": "驻马店市", + "area": [ + "驿城区", + "确山县", + "新蔡县", + "上蔡县", + "西平县", + "泌阳县", + "平舆县", + "汝南县", + "遂平县", + "正阳县" + ] + }, + { + "name": "焦作市", + "area": [ + "济源市" + ] + } + ] + }, + { + "name": "湖北省", + "city": [ + { + "name": "武汉市", + "area": [ + "江岸区", + "武昌区", + "江汉区", + "硚口区", + "汉阳区", + "青山区", + "洪山区", + "东西湖区", + "汉南区", + "蔡甸区", + "江夏区", + "黄陂区", + "新洲区" + ] + }, + { + "name": "黄石市", + "area": [ + "黄石港区", + "西塞山区", + "下陆区", + "铁山区", + "大冶市", + "阳新县" + ] + }, + { + "name": "十堰市", + "area": [ + "张湾区", + "茅箭区", + "丹江口市", + "郧县", + "竹山县", + "房县", + "郧西县", + "竹溪县" + ] + }, + { + "name": "荆州市", + "area": [ + "沙市区", + "荆州区", + "洪湖市", + "石首市", + "松滋市", + "监利县", + "公安县", + "江陵县" + ] + }, + { + "name": "宜昌市", + "area": [ + "西陵区", + "伍家岗区", + "点军区", + "猇亭区", + "夷陵区", + "宜都市", + "当阳市", + "枝江市", + "秭归县", + "远安县", + "兴山县", + "五峰土家族自治县", + "长阳土家族自治县" + ] + }, + { + "name": "襄樊市", + "area": [ + "襄城区", + "樊城区", + "襄阳区", + "老河口市", + "枣阳市", + "宜城市", + "南漳县", + "谷城县", + "保康县" + ] + }, + { + "name": "鄂州市", + "area": [ + "鄂城区", + "华容区", + "梁子湖区" + ] + }, + { + "name": "荆门市", + "area": [ + "东宝区", + "掇刀区", + "钟祥市", + "京山县", + "沙洋县" + ] + }, + { + "name": "孝感市", + "area": [ + "孝南区", + "应城市", + "安陆市", + "汉川市", + "云梦县", + "大悟县", + "孝昌县" + ] + }, + { + "name": "黄冈市", + "area": [ + "黄州区", + "麻城市", + "武穴市", + "红安县", + "罗田县", + "浠水县", + "蕲春县", + "黄梅县", + "英山县", + "团风县" + ] + }, + { + "name": "咸宁市", + "area": [ + "咸安区", + "赤壁市", + "嘉鱼县", + "通山县", + "崇阳县", + "通城县" + ] + }, + { + "name": "随州市", + "area": [ + "曾都区", + "广水市" + ] + }, + { + "name": "恩施土家族苗族自治州", + "area": [ + "恩施市", + "利川市", + "建始县", + "来凤县", + "巴东县", + "鹤峰县", + "宣恩县", + "咸丰县" + ] + }, + { + "name": "仙桃市", + "area": [ + "仙桃" + ] + }, + { + "name": "天门市", + "area": [ + "天门" + ] + }, + { + "name": "潜江市", + "area": [ + "潜江" + ] + }, + { + "name": "神农架林区", + "area": [ + "神农架林区" + ] + } + ] + }, + { + "name": "湖南省", + "city": [ + { + "name": "长沙市", + "area": [ + "岳麓区", + "芙蓉区", + "天心区", + "开福区", + "雨花区", + "浏阳市", + "长沙县", + "望城县", + "宁乡县" + ] + }, + { + "name": "株洲市", + "area": [ + "天元区", + "荷塘区", + "芦淞区", + "石峰区", + "醴陵市", + "株洲县", + "炎陵县", + "茶陵县", + "攸县" + ] + }, + { + "name": "湘潭市", + "area": [ + "岳塘区", + "雨湖区", + "湘乡市", + "韶山市", + "湘潭县" + ] + }, + { + "name": "衡阳市", + "area": [ + "雁峰区", + "珠晖区", + "石鼓区", + "蒸湘区", + "南岳区", + "耒阳市", + "常宁市", + "衡阳县", + "衡东县", + "衡山县", + "衡南县", + "祁东县" + ] + }, + { + "name": "邵阳市", + "area": [ + "双清区", + "大祥区", + "北塔区", + "武冈市", + "邵东县", + "洞口县", + "新邵县", + "绥宁县", + "新宁县", + "邵阳县", + "隆回县", + "城步苗族自治县" + ] + }, + { + "name": "岳阳市", + "area": [ + "岳阳楼区", + "云溪区", + "君山区", + "临湘市", + "汨罗市", + "岳阳县", + "湘阴县", + "平江县", + "华容县" + ] + }, + { + "name": "常德市", + "area": [ + "武陵区", + "鼎城区", + "津市市", + "澧县", + "临澧县", + "桃源县", + "汉寿县", + "安乡县", + "石门县" + ] + }, + { + "name": "张家界市", + "area": [ + "永定区", + "武陵源区", + "慈利县", + "桑植县" + ] + }, + { + "name": "益阳市", + "area": [ + "赫山区", + "资阳区", + "沅江市", + "桃江县", + "南县", + "安化县" + ] + }, + { + "name": "郴州市", + "area": [ + "北湖区", + "苏仙区", + "资兴市", + "宜章县", + "汝城县", + "安仁县", + "嘉禾县", + "临武县", + "桂东县", + "永兴县", + "桂阳县" + ] + }, + { + "name": "永州市", + "area": [ + "冷水滩区", + "零陵区", + "祁阳县", + "蓝山县", + "宁远县", + "新田县", + "东安县", + "江永县", + "道县", + "双牌县", + "江华瑶族自治县" + ] + }, + { + "name": "怀化市", + "area": [ + "鹤城区", + "洪江市", + "会同县", + "沅陵县", + "辰溪县", + "溆浦县", + "中方县", + "新晃侗族自治县", + "芷江侗族自治县", + "通道侗族自治县", + "靖州苗族侗族自治县", + "麻阳苗族自治县" + ] + }, + { + "name": "娄底市", + "area": [ + "娄星区", + "冷水江市", + "涟源市", + "新化县", + "双峰县" + ] + }, + { + "name": "湘西土家族苗族自治州", + "area": [ + "吉首市", + "古丈县", + "龙山县", + "永顺县", + "凤凰县", + "泸溪县", + "保靖县", + "花垣县" + ] + } + ] + }, + { + "name": "广东省", + "city": [ + { + "name": "广州市", + "area": [ + "越秀区", + "荔湾区", + "海珠区", + "天河区", + "白云区", + "黄埔区", + "番禺区", + "花都区", + "南沙区", + "萝岗区", + "增城市", + "从化市" + ] + }, + { + "name": "深圳市", + "area": [ + "福田区", + "罗湖区", + "南山区", + "宝安区", + "龙岗区", + "盐田区" + ] + }, + { + "name": "东莞市", + "area": [ + "莞城", + "常平", + "塘厦", + // "塘厦", + // "塘厦" + ] + }, + { + "name": "中山市", + "area": [ + "中山" + ] + }, + { + "name": "潮州市", + "area": [ + "湘桥区", + "潮安县", + "饶平县" + ] + }, + { + "name": "揭阳市", + "area": [ + "榕城区", + "揭东县", + "揭西县", + "惠来县", + "普宁市" + ] + }, + { + "name": "云浮市", + "area": [ + "云城区", + "新兴县", + "郁南县", + "云安县", + "罗定市" + ] + }, + { + "name": "珠海市", + "area": [ + "香洲区", + "斗门区", + "金湾区" + ] + }, + { + "name": "汕头市", + "area": [ + "金平区", + "濠江区", + "龙湖区", + "潮阳区", + "潮南区", + "澄海区", + "南澳县" + ] + }, + { + "name": "韶关市", + "area": [ + "浈江区", + "武江区", + "曲江区", + "乐昌市", + "南雄市", + "始兴县", + "仁化县", + "翁源县", + "新丰县", + "乳源瑶族自治县" + ] + }, + { + "name": "佛山市", + "area": [ + "禅城区", + "南海区", + "顺德区", + "三水区", + "高明区" + ] + }, + { + "name": "江门市", + "area": [ + "蓬江区", + "江海区", + "新会区", + "恩平市", + "台山市", + "开平市", + "鹤山市" + ] + }, + { + "name": "湛江市", + "area": [ + "赤坎区", + "霞山区", + "坡头区", + "麻章区", + "吴川市", + "廉江市", + "雷州市", + "遂溪县", + "徐闻县" + ] + }, + { + "name": "茂名市", + "area": [ + "茂南区", + "茂港区", + "化州市", + "信宜市", + "高州市", + "电白县" + ] + }, + { + "name": "肇庆市", + "area": [ + "端州区", + "鼎湖区", + "高要市", + "四会市", + "广宁县", + "怀集县", + "封开县", + "德庆县" + ] + }, + { + "name": "惠州市", + "area": [ + "惠城区", + "惠阳区", + "博罗县", + "惠东县", + "龙门县" + ] + }, + { + "name": "梅州市", + "area": [ + "梅江区", + "兴宁市", + "梅县", + "大埔县", + "丰顺县", + "五华县", + "平远县", + "蕉岭县" + ] + }, + { + "name": "汕尾市", + "area": [ + "城区", + "陆丰市", + "海丰县", + "陆河县" + ] + }, + { + "name": "河源市", + "area": [ + "源城区", + "紫金县", + "龙川县", + "连平县", + "和平县", + "东源县" + ] + }, + { + "name": "阳江市", + "area": [ + "江城区", + "阳春市", + "阳西县", + "阳东县" + ] + }, + { + "name": "清远市", + "area": [ + "清城区", + "英德市", + "连州市", + "佛冈县", + "阳山县", + "清新县", + "连山壮族瑶族自治县", + "连南瑶族自治县" + ] + } + ] + }, + { + "name": "广西", + "city": [ + { + "name": "南宁市", + "area": [ + "青秀区", + "兴宁区", + "西乡塘区", + "良庆区", + "江南区", + "邕宁区", + "武鸣县", + "隆安县", + "马山县", + "上林县", + "宾阳县", + "横县" + ] + }, + { + "name": "柳州市", + "area": [ + "城中区", + "鱼峰区", + "柳北区", + "柳南区", + "柳江县", + "柳城县", + "鹿寨县", + "融安县", + "融水苗族自治县", + "三江侗族自治县" + ] + }, + { + "name": "桂林市", + "area": [ + "象山区", + "秀峰区", + "叠彩区", + "七星区", + "雁山区", + "阳朔县", + "临桂县", + "灵川县", + "全州县", + "平乐县", + "兴安县", + "灌阳县", + "荔浦县", + "资源县", + "永福县", + "龙胜各族自治县", + "恭城瑶族自治县" + ] + }, + { + "name": "梧州市", + "area": [ + "万秀区", + "蝶山区", + "长洲区", + "岑溪市", + "苍梧县", + "藤县", + "蒙山县" + ] + }, + { + "name": "北海市", + "area": [ + "海城区", + "银海区", + "铁山港区", + "合浦县" + ] + }, + { + "name": "防城港市", + "area": [ + "港口区", + "防城区", + "东兴市", + "上思县" + ] + }, + { + "name": "钦州市", + "area": [ + "钦南区", + "钦北区", + "灵山县", + "浦北县" + ] + }, + { + "name": "贵港市", + "area": [ + "港北区", + "港南区", + "覃塘区", + "桂平市", + "平南县" + ] + }, + { + "name": "玉林市", + "area": [ + "玉州区", + "北流市", + "容县", + "陆川县", + "博白县", + "兴业县" + ] + }, + { + "name": "百色市", + "area": [ + "右江区", + "凌云县", + "平果县", + "西林县", + "乐业县", + "德保县", + "田林县", + "田阳县", + "靖西县", + "田东县", + "那坡县", + "隆林各族自治县" + ] + }, + { + "name": "贺州市", + "area": [ + "八步区", + "钟山县", + "昭平县", + "富川瑶族自治县" + ] + }, + { + "name": "河池市", + "area": [ + "金城江区", + "宜州市", + "天峨县", + "凤山县", + "南丹县", + "东兰县", + "都安瑶族自治县", + "罗城仫佬族自治县", + "巴马瑶族自治县", + "环江毛南族自治县", + "大化瑶族自治县" + ] + }, + { + "name": "来宾市", + "area": [ + "兴宾区", + "合山市", + "象州县", + "武宣县", + "忻城县", + "金秀瑶族自治县" + ] + }, + { + "name": "崇左市", + "area": [ + "江州区", + "凭祥市", + "宁明县", + "扶绥县", + "龙州县", + "大新县", + "天等县" + ] + } + ] + }, + { + "name": "海南省", + "city": [ + { + "name": "海口市", + "area": [ + "龙华区", + "秀英区", + "琼山区", + "美兰区" + ] + }, + { + "name": "三亚市", + "area": [ + "三亚市" + ] + }, + { + "name": "五指山市", + "area": [ + "五指山" + ] + }, + { + "name": "琼海市", + "area": [ + "琼海" + ] + }, + { + "name": "儋州市", + "area": [ + "儋州" + ] + }, + { + "name": "文昌市", + "area": [ + "文昌" + ] + }, + { + "name": "万宁市", + "area": [ + "万宁" + ] + }, + { + "name": "东方市", + "area": [ + "东方" + ] + }, + { + "name": "澄迈县", + "area": [ + "澄迈县" + ] + }, + { + "name": "定安县", + "area": [ + "定安县" + ] + }, + { + "name": "屯昌县", + "area": [ + "屯昌县" + ] + }, + { + "name": "临高县", + "area": [ + "临高县" + ] + }, + { + "name": "白沙黎族自治县", + "area": [ + "白沙黎族自治县" + ] + }, + { + "name": "昌江黎族自治县", + "area": [ + "昌江黎族自治县" + ] + }, + { + "name": "乐东黎族自治县", + "area": [ + "乐东黎族自治县" + ] + }, + { + "name": "陵水黎族自治县", + "area": [ + "陵水黎族自治县" + ] + }, + { + "name": "保亭黎族苗族自治县", + "area": [ + "保亭黎族苗族自治县" + ] + }, + { + "name": "琼中黎族苗族自治县", + "area": [ + "琼中黎族苗族自治县" + ] + } + ] + }, + { + "name": "重庆市", + "city": [ + { + "name": "重庆市", + "area": [ + "渝中区", + "大渡口区", + "江北区", + "南岸区", + "北碚区", + "渝北区", + "巴南区", + "长寿区", + "双桥区", + "沙坪坝区", + "万盛区", + "万州区", + "涪陵区", + "黔江区", + "永川区", + "合川区", + "江津区", + "九龙坡区", + "南川区", + "綦江县", + "潼南县", + "荣昌县", + "璧山县", + "大足县", + "铜梁县", + "梁平县", + "开县", + "忠县", + "城口县", + "垫江县", + "武隆县", + "丰都县", + "奉节县", + "云阳县", + "巫溪县", + "巫山县", + "石柱土家族自治县", + "秀山土家族苗族自治县", + "酉阳土家族苗族自治县", + "彭水苗族土家族自治县" + ] + } + ] + }, + { + "name": "四川省", + "city": [ + { + "name": "成都市", + "area": [ + "青羊区", + "锦江区", + "金牛区", + "武侯区", + "成华区", + "龙泉驿区", + "青白江区", + "新都区", + "温江区", + "都江堰市", + "彭州市", + "邛崃市", + "崇州市", + "金堂县", + "郫县", + "新津县", + "双流县", + "蒲江县", + "大邑县" + ] + }, + { + "name": "自贡市", + "area": [ + "大安区", + "自流井区", + "贡井区", + "沿滩区", + "荣县", + "富顺县" + ] + }, + { + "name": "攀枝花市", + "area": [ + "仁和区", + "米易县", + "盐边县", + "东区", + "西区" + ] + }, + { + "name": "泸州市", + "area": [ + "江阳区", + "纳溪区", + "龙马潭区", + "泸县", + "合江县", + "叙永县", + "古蔺县" + ] + }, + { + "name": "德阳市", + "area": [ + "旌阳区", + "广汉市", + "什邡市", + "绵竹市", + "罗江县", + "中江县" + ] + }, + { + "name": "绵阳市", + "area": [ + "涪城区", + "游仙区", + "江油市", + "盐亭县", + "三台县", + "平武县", + "安县", + "梓潼县", + "北川羌族自治县" + ] + }, + { + "name": "广元市", + "area": [ + "元坝区", + "朝天区", + "青川县", + "旺苍县", + "剑阁县", + "苍溪县", + "市中区" + ] + }, + { + "name": "遂宁市", + "area": [ + "船山区", + "安居区", + "射洪县", + "蓬溪县", + "大英县" + ] + }, + { + "name": "内江市", + "area": [ + "市中区", + "东兴区", + "资中县", + "隆昌县", + "威远县" + ] + }, + { + "name": "乐山市", + "area": [ + "市中区", + "五通桥区", + "沙湾区", + "金口河区", + "峨眉山市", + "夹江县", + "井研县", + "犍为县", + "沐川县", + "马边彝族自治县", + "峨边彝族自治县" + ] + }, + { + "name": "南充", + "area": [ + "顺庆区", + "高坪区", + "嘉陵区", + "阆中市", + "营山县", + "蓬安县", + "仪陇县", + "南部县", + "西充县" + ] + }, + { + "name": "眉山市", + "area": [ + "东坡区", + "仁寿县", + "彭山县", + "洪雅县", + "丹棱县", + "青神县" + ] + }, + { + "name": "宜宾市", + "area": [ + "翠屏区", + "宜宾县", + "兴文县", + "南溪县", + "珙县", + "长宁县", + "高县", + "江安县", + "筠连县", + "屏山县" + ] + }, + { + "name": "广安市", + "area": [ + "广安区", + "华蓥市", + "岳池县", + "邻水县", + "武胜县" + ] + }, + { + "name": "达州市", + "area": [ + "通川区", + "万源市", + "达县", + "渠县", + "宣汉县", + "开江县", + "大竹县" + ] + }, + { + "name": "雅安市", + "area": [ + "雨城区", + "芦山县", + "石棉县", + "名山县", + "天全县", + "荥经县", + "宝兴县", + "汉源县" + ] + }, + { + "name": "巴中市", + "area": [ + "巴州区", + "南江县", + "平昌县", + "通江县" + ] + }, + { + "name": "资阳市", + "area": [ + "雁江区", + "简阳市", + "安岳县", + "乐至县" + ] + }, + { + "name": "阿坝藏族羌族自治州", + "area": [ + "马尔康县", + "九寨沟县", + "红原县", + "汶川县", + "阿坝县", + "理县", + "若尔盖县", + "小金县", + "黑水县", + "金川县", + "松潘县", + "壤塘县", + "茂县" + ] + }, + { + "name": "甘孜藏族自治州", + "area": [ + "康定县", + "丹巴县", + "炉霍县", + "九龙县", + "甘孜县", + "雅江县", + "新龙县", + "道孚县", + "白玉县", + "理塘县", + "德格县", + "乡城县", + "石渠县", + "稻城县", + "色达县", + "巴塘县", + "泸定县", + "得荣县" + ] + }, + { + "name": "凉山彝族自治州", + "area": [ + "西昌市", + "美姑县", + "昭觉县", + "金阳县", + "甘洛县", + "布拖县", + "雷波县", + "普格县", + "宁南县", + "喜德县", + "会东县", + "越西县", + "会理县", + "盐源县", + "德昌县", + "冕宁县", + "木里藏族自治县" + ] + } + ] + }, + { + "name": "贵州省", + "city": [ + { + "name": "贵阳市", + "area": [ + "南明区", + "云岩区", + "花溪区", + "乌当区", + "白云区", + "小河区", + "清镇市", + "开阳县", + "修文县", + "息烽县" + ] + }, + { + "name": "六盘水市", + "area": [ + "钟山区", + "水城县", + "盘县", + "六枝特区" + ] + }, + { + "name": "遵义市", + "area": [ + "红花岗区", + "汇川区", + "赤水市", + "仁怀市", + "遵义县", + "绥阳县", + "桐梓县", + "习水县", + "凤冈县", + "正安县", + "余庆县", + "湄潭县", + "道真仡佬族苗族自治县", + "务川仡佬族苗族自治县" + ] + }, + { + "name": "安顺市", + "area": [ + "西秀区", + "普定县", + "平坝县", + "镇宁布依族苗族自治县", + "紫云苗族布依族自治县", + "关岭布依族苗族自治县" + ] + }, + { + "name": "铜仁地区", + "area": [ + "铜仁市", + "德江县", + "江口县", + "思南县", + "石阡县", + "玉屏侗族自治县", + "松桃苗族自治县", + "印江土家族苗族自治县", + "沿河土家族自治县", + "万山特区" + ] + }, + { + "name": "毕节地区", + "area": [ + "毕节市", + "黔西县", + "大方县", + "织金县", + "金沙县", + "赫章县", + "纳雍县", + "威宁彝族回族苗族自治县" + ] + }, + { + "name": "黔西南布依族苗族自治州", + "area": [ + "兴义市", + "望谟县", + "兴仁县", + "普安县", + "册亨县", + "晴隆县", + "贞丰县", + "安龙县" + ] + }, + { + "name": "黔东南苗族侗族自治州", + "area": [ + "凯里市", + "施秉县", + "从江县", + "锦屏县", + "镇远县", + "麻江县", + "台江县", + "天柱县", + "黄平县", + "榕江县", + "剑河县", + "三穗县", + "雷山县", + "黎平县", + "岑巩县", + "丹寨县" + ] + }, + { + "name": "黔南布依族苗族自治州", + "area": [ + "都匀市", + "福泉市", + "贵定县", + "惠水县", + "罗甸县", + "瓮安县", + "荔波县", + "龙里县", + "平塘县", + "长顺县", + "独山县", + "三都水族自治县" + ] + } + ] + }, + { + "name": "云南省", + "city": [ + { + "name": "昆明市", + "area": [ + "盘龙区", + "五华区", + "官渡区", + "西山区", + "东川区", + "安宁市", + "呈贡县", + "晋宁县", + "富民县", + "宜良县", + "嵩明县", + "石林彝族自治县", + "禄劝彝族苗族自治县", + "寻甸回族彝族自治县" + ] + }, + { + "name": "曲靖市", + "area": [ + "麒麟区", + "宣威市", + "马龙县", + "沾益县", + "富源县", + "罗平县", + "师宗县", + "陆良县", + "会泽县" + ] + }, + { + "name": "玉溪市", + "area": [ + "红塔区", + "江川县", + "澄江县", + "通海县", + "华宁县", + "易门县", + "峨山彝族自治县", + "新平彝族傣族自治县", + "元江哈尼族彝族傣族自治县" + ] + }, + { + "name": "保山市", + "area": [ + "隆阳区", + "施甸县", + "腾冲县", + "龙陵县", + "昌宁县" + ] + }, + { + "name": "昭通市", + "area": [ + "昭阳区", + "鲁甸县", + "巧家县", + "盐津县", + "大关县", + "永善县", + "绥江县", + "镇雄县", + "彝良县", + "威信县", + "水富县" + ] + }, + { + "name": "丽江市", + "area": [ + "古城区", + "永胜县", + "华坪县", + "玉龙纳西族自治县", + "宁蒗彝族自治县" + ] + }, + { + "name": "普洱市", + "area": [ + "思茅区", + "普洱哈尼族彝族自治县", + "墨江哈尼族自治县", + "景东彝族自治县", + "景谷傣族彝族自治县", + "镇沅彝族哈尼族拉祜族自治县", + "江城哈尼族彝族自治县", + "孟连傣族拉祜族佤族自治县", + "澜沧拉祜族自治县", + "西盟佤族自治县" + ] + }, + { + "name": "临沧市", + "area": [ + "临翔区", + "凤庆县", + "云县", + "永德县", + "镇康县", + "双江拉祜族佤族布朗族傣族自治县", + "耿马傣族佤族自治县", + "沧源佤族自治县" + ] + }, + { + "name": "德宏傣族景颇族自治州", + "area": [ + "潞西市", + "瑞丽市", + "梁河县", + "盈江县", + "陇川县" + ] + }, + { + "name": "怒江傈僳族自治州", + "area": [ + "泸水县", + "福贡县", + "贡山独龙族怒族自治县", + "兰坪白族普米族自治县" + ] + }, + { + "name": "迪庆藏族自治州", + "area": [ + "香格里拉县", + "德钦县", + "维西傈僳族自治县" + ] + }, + { + "name": "大理白族自治州", + "area": [ + "大理市", + "祥云县", + "宾川县", + "弥渡县", + "永平县", + "云龙县", + "洱源县", + "剑川县", + "鹤庆县", + "漾濞彝族自治县", + "南涧彝族自治县", + "巍山彝族回族自治县" + ] + }, + { + "name": "楚雄彝族自治州", + "area": [ + "楚雄市", + "双柏县", + "牟定县", + "南华县", + "姚安县", + "大姚县", + "永仁县", + "元谋县", + "武定县", + "禄丰县" + ] + }, + { + "name": "红河哈尼族彝族自治州", + "area": [ + "蒙自县", + "个旧市", + "开远市", + "绿春县", + "建水县", + "石屏县", + "弥勒县", + "泸西县", + "元阳县", + "红河县", + "金平苗族瑶族傣族自治县", + "河口瑶族自治县", + "屏边苗族自治县" + ] + }, + { + "name": "文山壮族苗族自治州", + "area": [ + "文山县", + "砚山县", + "西畴县", + "麻栗坡县", + "马关县", + "丘北县", + "广南县", + "富宁县" + ] + }, + { + "name": "西双版纳傣族自治州", + "area": [ + "景洪市", + "勐海县", + "勐腊县" + ] + } + ] + }, + { + "name": "西藏", + "city": [ + { + "name": "拉萨市", + "area": [ + "城关区", + "林周县", + "当雄县", + "尼木县", + "曲水县", + "堆龙德庆县", + "达孜县", + "墨竹工卡县" + ] + }, + { + "name": "那曲地区", + "area": [ + "那曲县", + "嘉黎县", + "比如县", + "聂荣县", + "安多县", + "申扎县", + "索县", + "班戈县", + "巴青县", + "尼玛县" + ] + }, + { + "name": "昌都地区", + "area": [ + "昌都县", + "江达县", + "贡觉县", + "类乌齐县", + "丁青县", + "察雅县", + "八宿县", + "左贡县", + "芒康县", + "洛隆县", + "边坝县" + ] + }, + { + "name": "林芝地区", + "area": [ + "林芝县", + "工布江达县", + "米林县", + "墨脱县", + "波密县", + "察隅县", + "朗县" + ] + }, + { + "name": "山南地区", + "area": [ + "乃东县", + "扎囊县", + "贡嘎县", + "桑日县", + "琼结县", + "曲松县", + "措美县", + "洛扎县", + "加查县", + "隆子县", + "错那县", + "浪卡子县" + ] + }, + { + "name": "日喀则地区", + "area": [ + "日喀则市", + "南木林县", + "江孜县", + "定日县", + "萨迦县", + "拉孜县", + "昂仁县", + "谢通门县", + "白朗县", + "仁布县", + "康马县", + "定结县", + "仲巴县", + "亚东县", + "吉隆县", + "聂拉木县", + "萨嘎县", + "岗巴县" + ] + }, + { + "name": "阿里地区", + "area": [ + "噶尔县", + "普兰县", + "札达县", + "日土县", + "革吉县", + "改则县", + "措勤县" + ] + } + ] + }, + { + "name": "陕西省", + "city": [ + { + "name": "西安市", + "area": [ + "莲湖区", + "新城区", + "碑林区", + "雁塔区", + "灞桥区", + "未央区", + "阎良区", + "临潼区", + "长安区", + "高陵县", + "蓝田县", + "户县", + "周至县" + ] + }, + { + "name": "铜川市", + "area": [ + "耀州区", + "王益区", + "印台区", + "宜君县" + ] + }, + { + "name": "宝鸡市", + "area": [ + "渭滨区", + "金台区", + "陈仓区", + "岐山县", + "凤翔县", + "陇县", + "太白县", + "麟游县", + "扶风县", + "千阳县", + "眉县", + "凤县" + ] + }, + { + "name": "咸阳市", + "area": [ + "秦都区", + "渭城区", + "杨陵区", + "兴平市", + "礼泉县", + "泾阳县", + "永寿县", + "三原县", + "彬县", + "旬邑县", + "长武县", + "乾县", + "武功县", + "淳化县" + ] + }, + { + "name": "渭南市", + "area": [ + "临渭区", + "韩城市", + "华阴市", + "蒲城县", + "潼关县", + "白水县", + "澄城县", + "华县", + "合阳县", + "富平县", + "大荔县" + ] + }, + { + "name": "延安市", + "area": [ + "宝塔区", + "安塞县", + "洛川县", + "子长县", + "黄陵县", + "延川县", + "富县", + "延长县", + "甘泉县", + "宜川县", + "志丹县", + "黄龙县", + "吴起县" + ] + }, + { + "name": "汉中市", + "area": [ + "汉台区", + "留坝县", + "镇巴县", + "城固县", + "南郑县", + "洋县", + "宁强县", + "佛坪县", + "勉县", + "西乡县", + "略阳县" + ] + }, + { + "name": "榆林市", + "area": [ + "榆阳区", + "清涧县", + "绥德县", + "神木县", + "佳县", + "府谷县", + "子洲县", + "靖边县", + "横山县", + "米脂县", + "吴堡县", + "定边县" + ] + }, + { + "name": "安康市", + "area": [ + "汉滨区", + "紫阳县", + "岚皋县", + "旬阳县", + "镇坪县", + "平利县", + "石泉县", + "宁陕县", + "白河县", + "汉阴县" + ] + }, + { + "name": "商洛市", + "area": [ + "商州区", + "镇安县", + "山阳县", + "洛南县", + "商南县", + "丹凤县", + "柞水县" + ] + } + ] + }, + { + "name": "甘肃省", + "city": [ + { + "name": "兰州市", + "area": [ + "城关区", + "七里河区", + "西固区", + "安宁区", + "红古区", + "永登县", + "皋兰县", + "榆中县" + ] + }, + { + "name": "嘉峪关市", + "area": [ + "嘉峪关市" + ] + }, + { + "name": "金昌市", + "area": [ + "金川区", + "永昌县" + ] + }, + { + "name": "白银市", + "area": [ + "白银区", + "平川区", + "靖远县", + "会宁县", + "景泰县" + ] + }, + { + "name": "天水市", + "area": [ + "清水县", + "秦安县", + "甘谷县", + "武山县", + "张家川回族自治县", + "北道区", + "秦城区" + ] + }, + { + "name": "武威市", + "area": [ + "凉州区", + "民勤县", + "古浪县", + "天祝藏族自治县" + ] + }, + { + "name": "酒泉市", + "area": [ + "肃州区", + "玉门市", + "敦煌市", + "金塔县", + "肃北蒙古族自治县", + "阿克塞哈萨克族自治县", + "安西县" + ] + }, + { + "name": "张掖市", + "area": [ + "甘州区", + "民乐县", + "临泽县", + "高台县", + "山丹县", + "肃南裕固族自治县" + ] + }, + { + "name": "庆阳市", + "area": [ + "西峰区", + "庆城县", + "环县", + "华池县", + "合水县", + "正宁县", + "宁县", + "镇原县" + ] + }, + { + "name": "平凉市", + "area": [ + "崆峒区", + "泾川县", + "灵台县", + "崇信县", + "华亭县", + "庄浪县", + "静宁县" + ] + }, + { + "name": "定西市", + "area": [ + "安定区", + "通渭县", + "临洮县", + "漳县", + "岷县", + "渭源县", + "陇西县" + ] + }, + { + "name": "陇南市", + "area": [ + "武都区", + "成县", + "宕昌县", + "康县", + "文县", + "西和县", + "礼县", + "两当县", + "徽县" + ] + }, + { + "name": "临夏回族自治州", + "area": [ + "临夏市", + "临夏县", + "康乐县", + "永靖县", + "广河县", + "和政县", + "东乡族自治县", + "积石山保安族东乡族撒拉族自治县" + ] + }, + { + "name": "甘南藏族自治州", + "area": [ + "合作市", + "临潭县", + "卓尼县", + "舟曲县", + "迭部县", + "玛曲县", + "碌曲县", + "夏河县" + ] + } + ] + }, + { + "name": "青海省", + "city": [ + { + "name": "西宁市", + "area": [ + "城中区", + "城东区", + "城西区", + "城北区", + "湟源县", + "湟中县", + "大通回族土族自治县" + ] + }, + { + "name": "海东地区", + "area": [ + "平安县", + "乐都县", + "民和回族土族自治县", + "互助土族自治县", + "化隆回族自治县", + "循化撒拉族自治县" + ] + }, + { + "name": "海北藏族自治州", + "area": [ + "海晏县", + "祁连县", + "刚察县", + "门源回族自治县" + ] + }, + { + "name": "海南藏族自治州", + "area": [ + "共和县", + "同德县", + "贵德县", + "兴海县", + "贵南县" + ] + }, + { + "name": "黄南藏族自治州", + "area": [ + "同仁县", + "尖扎县", + "泽库县", + "河南蒙古族自治县" + ] + }, + { + "name": "果洛藏族自治州", + "area": [ + "玛沁县", + "班玛县", + "甘德县", + "达日县", + "久治县", + "玛多县" + ] + }, + { + "name": "玉树藏族自治州", + "area": [ + "玉树县", + "杂多县", + "称多县", + "治多县", + "囊谦县", + "曲麻莱县" + ] + }, + { + "name": "海西蒙古族藏族自治州", + "area": [ + "德令哈市", + "格尔木市", + "乌兰县", + "都兰县", + "天峻县" + ] + } + ] + }, + { + "name": "宁夏", + "city": [ + { + "name": "银川市", + "area": [ + "兴庆区", + "西夏区", + "金凤区", + "灵武市", + "永宁县", + "贺兰县" + ] + }, + { + "name": "石嘴山市", + "area": [ + "大武口区", + "惠农区", + "平罗县" + ] + }, + { + "name": "吴忠市", + "area": [ + "利通区", + "青铜峡市", + "盐池县", + "同心县" + ] + }, + { + "name": "固原市", + "area": [ + "原州区", + "西吉县", + "隆德县", + "泾源县", + "彭阳县" + ] + }, + { + "name": "中卫市", + "area": [ + "沙坡头区", + "中宁县", + "海原县" + ] + } + ] + }, + { + "name": "新疆", + "city": [ + { + "name": "乌鲁木齐市", + "area": [ + "天山区", + "沙依巴克区", + "新市区", + "水磨沟区", + "头屯河区", + "达坂城区", + "东山区", + "乌鲁木齐县" + ] + }, + { + "name": "克拉玛依市", + "area": [ + "克拉玛依区", + "独山子区", + "白碱滩区", + "乌尔禾区" + ] + }, + { + "name": "吐鲁番地区", + "area": [ + "吐鲁番市", + "托克逊县", + "鄯善县" + ] + }, + { + "name": "哈密地区", + "area": [ + "哈密市", + "伊吾县", + "巴里坤哈萨克自治县" + ] + }, + { + "name": "和田地区", + "area": [ + "和田市", + "和田县", + "洛浦县", + "民丰县", + "皮山县", + "策勒县", + "于田县", + "墨玉县" + ] + }, + { + "name": "阿克苏地区", + "area": [ + "阿克苏市", + "温宿县", + "沙雅县", + "拜城县", + "阿瓦提县", + "库车县", + "柯坪县", + "新和县", + "乌什县" + ] + }, + { + "name": "喀什地区", + "area": [ + "喀什市", + "巴楚县", + "泽普县", + "伽师县", + "叶城县", + "岳普湖县", + "疏勒县", + "麦盖提县", + "英吉沙县", + "莎车县", + "疏附县", + "塔什库尔干塔吉克自治县" + ] + }, + { + "name": "克孜勒苏柯尔克孜自治州", + "area": [ + "阿图什市", + "阿合奇县", + "乌恰县", + "阿克陶县" + ] + }, + { + "name": "巴音郭楞蒙古自治州", + "area": [ + "库尔勒市", + "和静县", + "尉犁县", + "和硕县", + "且末县", + "博湖县", + "轮台县", + "若羌县", + "焉耆回族自治县" + ] + }, + { + "name": "昌吉回族自治州", + "area": [ + "昌吉市", + "阜康市", + "奇台县", + "玛纳斯县", + "吉木萨尔县", + "呼图壁县", + "木垒哈萨克自治县", + "米泉市" + ] + }, + { + "name": "博尔塔拉蒙古自治州", + "area": [ + "博乐市", + "精河县", + "温泉县" + ] + }, + { + "name": "石河子", + "area": [ + "石河子" + ] + }, + { + "name": "阿拉尔", + "area": [ + "阿拉尔" + ] + }, + { + "name": "图木舒克", + "area": [ + "图木舒克" + ] + }, + { + "name": "五家渠", + "area": [ + "五家渠" + ] + }, + { + "name": "伊犁哈萨克自治州", + "area": [ + "伊宁市", + "奎屯市", + "伊宁县", + "特克斯县", + "尼勒克县", + "昭苏县", + "新源县", + "霍城县", + "巩留县", + "察布查尔锡伯自治县", + "塔城地区", + "阿勒泰地区" + ] + } + ] + }, + { + "name": "台湾省", + "city": [ + { + "name": "台北市", + "area": [ + "内湖区", + "南港区", + "中正区", + "万华区", + "大同区", + "中山区", + "松山区", + "大安区", + "信义区", + "文山区", + "士林区", + "北投区" + ] + }, + { + "name": "新北市", + "area": [ + "板桥区", + "汐止区", + "新店区" + ] + }, + { + "name": "桃园市", + "area": [ + "其他" + ] + }, + { + "name": "台中市", + "area": [ + "其他" + ] + }, + { + "name": "台南市", + "area": [ + "其他" + ] + }, + { + "name": "高雄市", + "area": [ + "其他" + ] + } + ] + }, + { + "name": "澳门", + "city": [ + { + "name": "澳门", + "area": [ + "花地玛堂区", + "圣安多尼堂区", + "大堂区", + "望德堂区", + "风顺堂区", + "嘉模堂区", + "圣方济各堂区", + "路凼" + ] + } + ] + }, + { + "name": "香港", + "city": [ + { + "name": "香港", + "area": [ + "深水埗区", + "油尖旺区", + "九龙城区", + "黄大仙区", + "观塘区", + "北区", + "大埔区", + "沙田区", + "西贡区", + "元朗区", + "屯门区", + "荃湾区", + "葵青区", + "离岛区", + "中西区", + "湾仔区", + "东区", + "南区" + ] + } + ] + } +] \ No newline at end of file diff --git a/components/lxc-count-style/lxc-count-style.vue b/components/lxc-count-style/lxc-count-style.vue new file mode 100644 index 0000000..92c5036 --- /dev/null +++ b/components/lxc-count-style/lxc-count-style.vue @@ -0,0 +1,198 @@ + + + + diff --git a/components/wn-calendar/calendar.js b/components/wn-calendar/calendar.js new file mode 100644 index 0000000..b705f2a --- /dev/null +++ b/components/wn-calendar/calendar.js @@ -0,0 +1,129 @@ +/** + * + */ + +function getDays(year, month, data, isLess) { + if (!Array.isArray(data)) { + data = [] + } + + let today = new Date() + + let y, m + if (typeof(year) === 'number' && year > 2000 && typeof(month) === 'number') { + const d = new Date(year, month - 1) + y = d.getFullYear() + m = d.getMonth() + } else { + y = today.getFullYear() + m = today.getMonth() + } + + let st = new Date(y, m, 1).getDay(), + ed = new Date(y, m + 1, 0).getDay(), + len = new Date(y, m + 1, 0).getDate() + + let isfill = data.length > 0 + let days = Array.from(new Array(len), (x, i) => { + i = i + 1 + const date = `${y}/${m+1}/${i}` + x = null + if (isfill) { + x = data.find(item => item.date === date) + } + return { + show: true, + label: i, + date, + data: x + } + }) + + let prev = new Date(y, m - 1), + prevDate = `${prev.getFullYear()}/${prev.getMonth()+1}`, + prevLd = new Date(y, m, 0).getDate() + let prevDays = Array.from(new Array(st), (x, i) => { + i = prevLd - (st - 1 - i) + return { + show: false, + label: isLess ? '' : i, + date: `${prevDate}/${i}` + } + }) + days = prevDays.concat(days) + + let next = new Date(y, m + 1), + nextDate = `${next.getFullYear()}/${next.getMonth()+1}` + let lened = (days.length <= 35 ? 7 : 0) + (6 - ed) + if (isLess) { + lened = 6 - ed + } + let nextDays = Array.from(new Array(lened), (x, i) => { + i = i + 1 + return { + show: false, + label: isLess ? '' : i, + date: `${nextDate}/${i}` + } + }) + days = days.concat(nextDays) + + days = days.concat(Array.from(new Array(42 - days.length), (x, i) => { + return { + show: false, + label: '', + date: `*${i}` + } + })) + + return { + days, + year: y, + month: m + } +} + +function getEn (m) { + const en = [ + 'Jan', + 'Feb', + 'Mar', + 'Apr', + 'May', + 'Jun', + 'Jul', + 'Aug', + 'Sept', + 'Oct', + 'Nov', + 'Dec', + ] + return en[m - 1] +} + +const labels_en = [ + 'S', + 'M', + 'T', + 'W', + 'T', + 'F', + 'S', +] + +const labels_zh = [ + '日', + '一', + '二', + '三', + '四', + '五', + '六', +] + +export default { + getDays, + getEn, + labels_en, + labels_zh +} \ No newline at end of file diff --git a/components/wn-calendar/wn-calendar.vue b/components/wn-calendar/wn-calendar.vue new file mode 100644 index 0000000..b1c2bcd --- /dev/null +++ b/components/wn-calendar/wn-calendar.vue @@ -0,0 +1,275 @@ + + + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..c3ff205 --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + + + + + + +
+ + + diff --git a/main.js b/main.js new file mode 100644 index 0000000..fcf9e89 --- /dev/null +++ b/main.js @@ -0,0 +1,27 @@ +import Vue from 'vue' +import App from './App' +import {mixin} from '@/common/mixin.js' +import tools from 'common/tools.js' +import amapwx from './common/AMapWX_SDK_V1.3.0/amap-wx.130.js' +import uView from 'uview-ui'; + +const inter = require('common/interceptor.js') +import interceptor from '@/common/interceptor.js' + + +import common from '@/common/common.js' + +Vue.prototype.$tools = tools ;//工具类 +Vue.prototype.$amapwx = amapwx;//高德地图类 +// 混入代码 +Vue.mixin(mixin) +Vue.mixin(inter) +Vue.use(uView) + + +// 工具类 +App.mpType = 'app' +const app = new Vue({ + ...App, +}) +app.$mount() diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..8d2c455 --- /dev/null +++ b/manifest.json @@ -0,0 +1,120 @@ +{ + "name" : "", + "appid" : "__UNI__73F0D10", + "description" : "", + "versionName" : "1.0.0", + "versionCode" : "100", + "transformPx" : false, + /* 5+App特有相关 */ + "app-plus" : { + "usingComponents" : true, + "nvueStyleCompiler" : "uni-app", + "compilerVersion" : 3, + "compatible" : { + "ignoreVersion" : true //true表示忽略版本检查提示框,HBuilderX1.9.0及以上版本支持 + }, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + "privacy" : { + "prompt" : "template", + "template" : { + //prompt取值为template时有效,用于配置模板提示框上显示的内容 + "title" : "服务协议和隐私政策", + "message" : "尊敬的用户,欢迎您注册成为本应用用户,在注册前请您仔细阅读《用户协议》《隐私政策》,了解我们对您使用我们APP制定的规则,您个人信息的处理以及申请权限的目的和使用范围。
  经您确认后,本用户协议和隐私权政策即在您和本应用之间产生法律效力。请您务必在注册之前认真阅读全部服务协议内容,如有任何疑问,可向本应用客服咨询。", + "buttonAccept" : "同意", //继续下一步 + "buttonRefuse" : "拒绝" //退出下载 + } + }, + /* 模块配置 */ + "modules" : {}, + /* 应用发布信息 */ + "distribute" : { + /* android打包配置 */ + "android" : { + /* 申请获取手机存储权限 */ + "permissionExternalStorage" : { + "request" : "none", + "prompt" : "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。" + }, + // 申请手机号权限 + "permissionPhoneState" : { + "request" : "none", + "prompt" : "为保证您正常、安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。" + }, + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ], + "minSdkVersion" : 21, + "targetSdkVersion" : 28 + }, + /* ios打包配置 */ + "ios" : {}, + /* SDK配置 */ + "sdkConfigs" : { + "payment" : { + "weixin" : { + "__platform__" : [ "ios", "android" ], + "appid" : "", + "UniversalLinks" : "https://www.huizukeji.cn/" + } + }, + "share" : { + "weixin" : { + "appid" : "", + "UniversalLinks" : "https://www.huizukeji.cn/" + } + } + } + } + }, + /* 快应用特有相关 */ + "quickapp" : {}, + /* 小程序特有相关 */ + "mp-weixin" : { + "appid" : "wxbe6c2f19a19b3ce9", + "setting" : { + "urlCheck" : false, + "es6" : true, + "minified" : true, + "postcss" : true + }, + "usingComponents" : true, + "libVersion" : "latest", + "optimization" : { + "subPackages" : true + } + }, + "mp-alipay" : { + "usingComponents" : true + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "uniStatistics" : { + "enable" : false + }, + "vueVersion" : "2" +} diff --git a/pageOne/indexs/allEvaluate.vue b/pageOne/indexs/allEvaluate.vue new file mode 100644 index 0000000..6250bcf --- /dev/null +++ b/pageOne/indexs/allEvaluate.vue @@ -0,0 +1,42 @@ + + + + + \ No newline at end of file diff --git a/pageOne/indexs/confirm.vue b/pageOne/indexs/confirm.vue new file mode 100644 index 0000000..01a41d5 --- /dev/null +++ b/pageOne/indexs/confirm.vue @@ -0,0 +1,192 @@ + + + + + diff --git a/pageOne/indexs/detail.vue b/pageOne/indexs/detail.vue new file mode 100644 index 0000000..5b7eb30 --- /dev/null +++ b/pageOne/indexs/detail.vue @@ -0,0 +1,206 @@ +] + + + + diff --git a/pageOne/indexs/notDetail.vue b/pageOne/indexs/notDetail.vue new file mode 100644 index 0000000..985d66f --- /dev/null +++ b/pageOne/indexs/notDetail.vue @@ -0,0 +1,34 @@ + + + + + \ No newline at end of file diff --git a/pageOne/indexs/notList.vue b/pageOne/indexs/notList.vue new file mode 100644 index 0000000..7c45134 --- /dev/null +++ b/pageOne/indexs/notList.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/pageOne/indexs/search.vue b/pageOne/indexs/search.vue new file mode 100644 index 0000000..e0d4f64 --- /dev/null +++ b/pageOne/indexs/search.vue @@ -0,0 +1,73 @@ + + + + + \ No newline at end of file diff --git a/pageOne/indexs/shopList.vue b/pageOne/indexs/shopList.vue new file mode 100644 index 0000000..bfe049f --- /dev/null +++ b/pageOne/indexs/shopList.vue @@ -0,0 +1,51 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/aaa.vue b/pageOne/mes/aaa.vue new file mode 100644 index 0000000..7c147c9 --- /dev/null +++ b/pageOne/mes/aaa.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/pageOne/mes/addEdit.vue b/pageOne/mes/addEdit.vue new file mode 100644 index 0000000..19a9216 --- /dev/null +++ b/pageOne/mes/addEdit.vue @@ -0,0 +1,98 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/addNew.vue b/pageOne/mes/addNew.vue new file mode 100644 index 0000000..f095db7 --- /dev/null +++ b/pageOne/mes/addNew.vue @@ -0,0 +1,83 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/address.vue b/pageOne/mes/address.vue new file mode 100644 index 0000000..a125e03 --- /dev/null +++ b/pageOne/mes/address.vue @@ -0,0 +1,90 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/agreement.vue b/pageOne/mes/agreement.vue new file mode 100644 index 0000000..6fb1eed --- /dev/null +++ b/pageOne/mes/agreement.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/pageOne/mes/collection.vue b/pageOne/mes/collection.vue new file mode 100644 index 0000000..a41ecfb --- /dev/null +++ b/pageOne/mes/collection.vue @@ -0,0 +1,49 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/evaluate.vue b/pageOne/mes/evaluate.vue new file mode 100644 index 0000000..c32253b --- /dev/null +++ b/pageOne/mes/evaluate.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/pageOne/mes/information.vue b/pageOne/mes/information.vue new file mode 100644 index 0000000..64be96d --- /dev/null +++ b/pageOne/mes/information.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/pageOne/mes/invitation.vue b/pageOne/mes/invitation.vue new file mode 100644 index 0000000..a9b41b5 --- /dev/null +++ b/pageOne/mes/invitation.vue @@ -0,0 +1,81 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/myPoints.vue b/pageOne/mes/myPoints.vue new file mode 100644 index 0000000..d36dc0c --- /dev/null +++ b/pageOne/mes/myPoints.vue @@ -0,0 +1,61 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/orderDetail.vue b/pageOne/mes/orderDetail.vue new file mode 100644 index 0000000..6970c8b --- /dev/null +++ b/pageOne/mes/orderDetail.vue @@ -0,0 +1,238 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/orderList.vue b/pageOne/mes/orderList.vue new file mode 100644 index 0000000..42cae8d --- /dev/null +++ b/pageOne/mes/orderList.vue @@ -0,0 +1,231 @@ + + + + + diff --git a/pageOne/mes/proRank.vue b/pageOne/mes/proRank.vue new file mode 100644 index 0000000..6e8183b --- /dev/null +++ b/pageOne/mes/proRank.vue @@ -0,0 +1,99 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/proStatistics.vue b/pageOne/mes/proStatistics.vue new file mode 100644 index 0000000..9de0081 --- /dev/null +++ b/pageOne/mes/proStatistics.vue @@ -0,0 +1,91 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/promotion.vue b/pageOne/mes/promotion.vue new file mode 100644 index 0000000..7d2275c --- /dev/null +++ b/pageOne/mes/promotion.vue @@ -0,0 +1,143 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/saleRank.vue b/pageOne/mes/saleRank.vue new file mode 100644 index 0000000..1cc4d8f --- /dev/null +++ b/pageOne/mes/saleRank.vue @@ -0,0 +1,99 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/service.vue b/pageOne/mes/service.vue new file mode 100644 index 0000000..c03e9a2 --- /dev/null +++ b/pageOne/mes/service.vue @@ -0,0 +1,41 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/setUp.vue b/pageOne/mes/setUp.vue new file mode 100644 index 0000000..1d74a1f --- /dev/null +++ b/pageOne/mes/setUp.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/pageOne/mes/subsidyCom.vue b/pageOne/mes/subsidyCom.vue new file mode 100644 index 0000000..08f237a --- /dev/null +++ b/pageOne/mes/subsidyCom.vue @@ -0,0 +1,101 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/subsidyDay.vue b/pageOne/mes/subsidyDay.vue new file mode 100644 index 0000000..21930f3 --- /dev/null +++ b/pageOne/mes/subsidyDay.vue @@ -0,0 +1,97 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/subsidyLoop.vue b/pageOne/mes/subsidyLoop.vue new file mode 100644 index 0000000..73a0aec --- /dev/null +++ b/pageOne/mes/subsidyLoop.vue @@ -0,0 +1,110 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/subsidyShare.vue b/pageOne/mes/subsidyShare.vue new file mode 100644 index 0000000..2e31a34 --- /dev/null +++ b/pageOne/mes/subsidyShare.vue @@ -0,0 +1,105 @@ + + + + + \ No newline at end of file diff --git a/pageOne/mes/withdraw.vue b/pageOne/mes/withdraw.vue new file mode 100644 index 0000000..09219c4 --- /dev/null +++ b/pageOne/mes/withdraw.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/pageOne/shopConfirm.vue b/pageOne/shopConfirm.vue new file mode 100644 index 0000000..c3e09df --- /dev/null +++ b/pageOne/shopConfirm.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..68c0169 --- /dev/null +++ b/pages.json @@ -0,0 +1,293 @@ +{ + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + { + "path": "pages/tabbar/index", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, { + "path": "pages/login/login", + "style": { + "navigationBarTitleText": "登录", + "navigationStyle": "custom" + } + }, { + "path": "pages/tabbar/me", + "style": { + "navigationBarTitleText": "我的", + "navigationStyle": "custom", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/tabbar/sort", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "pages/tabbar/shop", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + } + ], + "subPackages": [{ + "root": "pageOne", + "pages": [ + { + "path": "indexs/notList", + "style": { + "navigationBarTitleText": "通知公告", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "indexs/search", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "indexs/shopList", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "indexs/detail", + "style": { + "navigationBarTitleText": "商品详情", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "indexs/allEvaluate", + "style": { + "navigationBarTitleText": "全部评价", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "indexs/confirm", + "style": { + "navigationBarTitleText": "确认订单", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "mes/information", + "style": { + "navigationBarTitleText": "个人信息", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "mes/setUp", + "style": { + "navigationBarTitleText": "设置", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "mes/agreement", + "style": { + "navigationBarTitleText": "", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "mes/orderList", + "style": { + "navigationBarTitleText": "我的订单", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "mes/orderDetail", + "style": { + "navigationBarTitleText": "订单详情", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "mes/myPoints", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "mes/evaluate", + "style": { + "navigationBarTitleText": "订单评价", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "mes/address", + "style": { + "navigationBarTitleText": "收货地址", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "mes/addNew", + "style": { + "navigationBarTitleText": "新增地址", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "mes/addEdit", + "style": { + "navigationBarTitleText": "编辑地址", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "mes/collection", + "style": { + "navigationBarTitleText": "我的收藏", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "mes/service", + "style": { + "navigationBarTitleText": "联系客服", + "navigationBarBackgroundColor": "#F3C0C3" + } + }, + { + "path": "mes/promotion", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "mes/withdraw", + "style": { + "navigationBarTitleText": "提现", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "mes/subsidyLoop", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "mes/subsidyDay", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "mes/subsidyShare", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "mes/subsidyCom", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "mes/invitation", + "style": { + "navigationBarTitleText": "邀请名片", + "navigationBarBackgroundColor": "#F3C0C3" + } + }, + { + "path": "mes/proStatistics", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "mes/proRank", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "mes/saleRank", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "custom" + } + }, + { + "path": "shopConfirm", + "style": { + "navigationBarTitleText": "确认订单", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "mes/aaa", + "style": { + "navigationBarTitleText": "", + "navigationBarBackgroundColor": "#fff" + } + }, + { + "path": "indexs/notDetail", + "style": { + "navigationBarTitleText": "公告详情", + "navigationBarBackgroundColor": "#fff" + } + } + + ] + }], + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "uni-app", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#FFFFFF" + }, + "tabBar": { + "color": "#666", + "selectedColor": "#ee4237", + "backgroundColor": "#FFFFFF", + "list": [{ + "pagePath": "pages/tabbar/index", + "iconPath": "/static/images/icon_sy.png", + "selectedIconPath": "/static/images/icon_syf.png", + "text": "首页" + }, { + "pagePath": "pages/tabbar/sort", + "iconPath": "/static/images/icon_fl.png", + "selectedIconPath": "/static/images/icon_flf.png", + "text": "分类" + }, { + "pagePath": "pages/tabbar/shop", + "iconPath": "/static/images/icon_gwc.png", + "selectedIconPath": "/static/images/icon_gwcf.png", + "text": "购物车" + }, { + "pagePath": "pages/tabbar/me", + "iconPath": "/static/images/icon_wd.png", + "selectedIconPath": "/static/images/icon_wdf.png", + "text": "我的" + }] + } +} \ No newline at end of file diff --git a/pages/login/login.vue b/pages/login/login.vue new file mode 100644 index 0000000..47eefc8 --- /dev/null +++ b/pages/login/login.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/pages/tabbar/index.vue b/pages/tabbar/index.vue new file mode 100644 index 0000000..46dce8d --- /dev/null +++ b/pages/tabbar/index.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/pages/tabbar/me.vue b/pages/tabbar/me.vue new file mode 100644 index 0000000..1336942 --- /dev/null +++ b/pages/tabbar/me.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/pages/tabbar/shop.vue b/pages/tabbar/shop.vue new file mode 100644 index 0000000..379118b --- /dev/null +++ b/pages/tabbar/shop.vue @@ -0,0 +1,161 @@ + + + + + diff --git a/pages/tabbar/sort.vue b/pages/tabbar/sort.vue new file mode 100644 index 0000000..bb1fe1d --- /dev/null +++ b/pages/tabbar/sort.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/static/images/01_13wz.png b/static/images/01_13wz.png new file mode 100644 index 0000000..4234cd1 Binary files /dev/null and b/static/images/01_13wz.png differ diff --git a/static/images/01_ss.png b/static/images/01_ss.png new file mode 100644 index 0000000..94c0708 Binary files /dev/null and b/static/images/01_ss.png differ diff --git a/static/images/01qer.png b/static/images/01qer.png new file mode 100644 index 0000000..304df1d Binary files /dev/null and b/static/images/01qer.png differ diff --git a/static/images/01qsdfgd.png b/static/images/01qsdfgd.png new file mode 100644 index 0000000..b753f37 Binary files /dev/null and b/static/images/01qsdfgd.png differ diff --git a/static/images/01ws.png b/static/images/01ws.png new file mode 100644 index 0000000..b183e67 Binary files /dev/null and b/static/images/01ws.png differ diff --git a/static/images/02gttg.png b/static/images/02gttg.png new file mode 100644 index 0000000..4bd160b Binary files /dev/null and b/static/images/02gttg.png differ diff --git a/static/images/03_qou.png b/static/images/03_qou.png new file mode 100644 index 0000000..0e75e85 Binary files /dev/null and b/static/images/03_qou.png differ diff --git a/static/images/03_sc.png b/static/images/03_sc.png new file mode 100644 index 0000000..2628dcc Binary files /dev/null and b/static/images/03_sc.png differ diff --git a/static/images/03_w.png b/static/images/03_w.png new file mode 100644 index 0000000..5946eae Binary files /dev/null and b/static/images/03_w.png differ diff --git a/static/images/03hyhy.png b/static/images/03hyhy.png new file mode 100644 index 0000000..385b445 Binary files /dev/null and b/static/images/03hyhy.png differ diff --git a/static/images/044vef.png b/static/images/044vef.png new file mode 100644 index 0000000..23fc4c5 Binary files /dev/null and b/static/images/044vef.png differ diff --git a/static/images/04_12bianji.png b/static/images/04_12bianji.png new file mode 100644 index 0000000..45286b6 Binary files /dev/null and b/static/images/04_12bianji.png differ diff --git a/static/images/04_12sahnchu.png b/static/images/04_12sahnchu.png new file mode 100644 index 0000000..5356345 Binary files /dev/null and b/static/images/04_12sahnchu.png differ diff --git a/static/images/04_13kaig.png b/static/images/04_13kaig.png new file mode 100644 index 0000000..5ff1f40 Binary files /dev/null and b/static/images/04_13kaig.png differ diff --git a/static/images/04_13kaigd.png b/static/images/04_13kaigd.png new file mode 100644 index 0000000..9f4e29e Binary files /dev/null and b/static/images/04_13kaigd.png differ diff --git a/static/images/04_erfg.png b/static/images/04_erfg.png new file mode 100644 index 0000000..2737aca Binary files /dev/null and b/static/images/04_erfg.png differ diff --git a/static/images/04_ghi.png b/static/images/04_ghi.png new file mode 100644 index 0000000..43998e9 Binary files /dev/null and b/static/images/04_ghi.png differ diff --git a/static/images/04_ghidf.png b/static/images/04_ghidf.png new file mode 100644 index 0000000..8e5f1b3 Binary files /dev/null and b/static/images/04_ghidf.png differ diff --git a/static/images/04_we.png b/static/images/04_we.png new file mode 100644 index 0000000..294fe51 Binary files /dev/null and b/static/images/04_we.png differ diff --git a/static/images/05de.png b/static/images/05de.png new file mode 100644 index 0000000..c8bdf4a Binary files /dev/null and b/static/images/05de.png differ diff --git a/static/images/06fr.png b/static/images/06fr.png new file mode 100644 index 0000000..5606bf6 Binary files /dev/null and b/static/images/06fr.png differ diff --git a/static/images/11dsf.png b/static/images/11dsf.png new file mode 100644 index 0000000..69eac14 Binary files /dev/null and b/static/images/11dsf.png differ diff --git a/static/images/5gy.png b/static/images/5gy.png new file mode 100644 index 0000000..e912826 Binary files /dev/null and b/static/images/5gy.png differ diff --git a/static/images/adf.png b/static/images/adf.png new file mode 100644 index 0000000..20e8e57 Binary files /dev/null and b/static/images/adf.png differ diff --git a/static/images/bj.png b/static/images/bj.png new file mode 100644 index 0000000..dc15b28 Binary files /dev/null and b/static/images/bj.png differ diff --git a/static/images/bth.png b/static/images/bth.png new file mode 100644 index 0000000..2b86aa9 Binary files /dev/null and b/static/images/bth.png differ diff --git a/static/images/cd.png b/static/images/cd.png new file mode 100644 index 0000000..894b610 Binary files /dev/null and b/static/images/cd.png differ diff --git a/static/images/cef.png b/static/images/cef.png new file mode 100644 index 0000000..dacbff5 Binary files /dev/null and b/static/images/cef.png differ diff --git a/static/images/csd.png b/static/images/csd.png new file mode 100644 index 0000000..da92c78 Binary files /dev/null and b/static/images/csd.png differ diff --git a/static/images/de.png b/static/images/de.png new file mode 100644 index 0000000..aad258f Binary files /dev/null and b/static/images/de.png differ diff --git a/static/images/dfg.png b/static/images/dfg.png new file mode 100644 index 0000000..cff40ff Binary files /dev/null and b/static/images/dfg.png differ diff --git a/static/images/ef.png b/static/images/ef.png new file mode 100644 index 0000000..2a83e1a Binary files /dev/null and b/static/images/ef.png differ diff --git a/static/images/efdf.png b/static/images/efdf.png new file mode 100644 index 0000000..5517e91 Binary files /dev/null and b/static/images/efdf.png differ diff --git a/static/images/erf.png b/static/images/erf.png new file mode 100644 index 0000000..bd301e0 Binary files /dev/null and b/static/images/erf.png differ diff --git a/static/images/evff.png b/static/images/evff.png new file mode 100644 index 0000000..36c78a3 Binary files /dev/null and b/static/images/evff.png differ diff --git a/static/images/fr09.png b/static/images/fr09.png new file mode 100644 index 0000000..06300d4 Binary files /dev/null and b/static/images/fr09.png differ diff --git a/static/images/hg.png b/static/images/hg.png new file mode 100644 index 0000000..f78473e Binary files /dev/null and b/static/images/hg.png differ diff --git a/static/images/icon_7wx.png b/static/images/icon_7wx.png new file mode 100644 index 0000000..36c4ef5 Binary files /dev/null and b/static/images/icon_7wx.png differ diff --git a/static/images/icon_fl.png b/static/images/icon_fl.png new file mode 100644 index 0000000..fd4776c Binary files /dev/null and b/static/images/icon_fl.png differ diff --git a/static/images/icon_flf.png b/static/images/icon_flf.png new file mode 100644 index 0000000..db4902d Binary files /dev/null and b/static/images/icon_flf.png differ diff --git a/static/images/icon_gwc.png b/static/images/icon_gwc.png new file mode 100644 index 0000000..d718b41 Binary files /dev/null and b/static/images/icon_gwc.png differ diff --git a/static/images/icon_gwcf.png b/static/images/icon_gwcf.png new file mode 100644 index 0000000..eac2205 Binary files /dev/null and b/static/images/icon_gwcf.png differ diff --git a/static/images/icon_sy.png b/static/images/icon_sy.png new file mode 100644 index 0000000..3d3d4c9 Binary files /dev/null and b/static/images/icon_sy.png differ diff --git a/static/images/icon_syf.png b/static/images/icon_syf.png new file mode 100644 index 0000000..66cf23c Binary files /dev/null and b/static/images/icon_syf.png differ diff --git a/static/images/icon_wd.png b/static/images/icon_wd.png new file mode 100644 index 0000000..1b95464 Binary files /dev/null and b/static/images/icon_wd.png differ diff --git a/static/images/icon_wdf.png b/static/images/icon_wdf.png new file mode 100644 index 0000000..336c384 Binary files /dev/null and b/static/images/icon_wdf.png differ diff --git a/static/images/l05ool.png b/static/images/l05ool.png new file mode 100644 index 0000000..d0f3704 Binary files /dev/null and b/static/images/l05ool.png differ diff --git a/static/images/mv_tuic.png b/static/images/mv_tuic.png new file mode 100644 index 0000000..c5d10bf Binary files /dev/null and b/static/images/mv_tuic.png differ diff --git a/static/images/mv_tuichu.png b/static/images/mv_tuichu.png new file mode 100644 index 0000000..54b8961 Binary files /dev/null and b/static/images/mv_tuichu.png differ diff --git a/static/images/qqa.png b/static/images/qqa.png new file mode 100644 index 0000000..ad3d735 Binary files /dev/null and b/static/images/qqa.png differ diff --git a/static/images/qw.png b/static/images/qw.png new file mode 100644 index 0000000..27b0678 Binary files /dev/null and b/static/images/qw.png differ diff --git a/static/images/sz.png b/static/images/sz.png new file mode 100644 index 0000000..40540f2 Binary files /dev/null and b/static/images/sz.png differ diff --git a/static/images/wdd.png b/static/images/wdd.png new file mode 100644 index 0000000..3d1ba5d Binary files /dev/null and b/static/images/wdd.png differ diff --git a/static/images/wdsd.png b/static/images/wdsd.png new file mode 100644 index 0000000..899c919 Binary files /dev/null and b/static/images/wdsd.png differ diff --git a/static/images/ws.png b/static/images/ws.png new file mode 100644 index 0000000..204a3c1 Binary files /dev/null and b/static/images/ws.png differ diff --git a/static/images/xaunzhong.png b/static/images/xaunzhong.png new file mode 100644 index 0000000..a6c2029 Binary files /dev/null and b/static/images/xaunzhong.png differ diff --git a/static/images/yt.png b/static/images/yt.png new file mode 100644 index 0000000..7e7fd16 Binary files /dev/null and b/static/images/yt.png differ diff --git a/static/images/yuh.png b/static/images/yuh.png new file mode 100644 index 0000000..97cab8f Binary files /dev/null and b/static/images/yuh.png differ diff --git a/static/other/3.png b/static/other/3.png new file mode 100644 index 0000000..dbe2ee2 Binary files /dev/null and b/static/other/3.png differ diff --git a/static/other/4.png b/static/other/4.png new file mode 100644 index 0000000..58f60dd Binary files /dev/null and b/static/other/4.png differ diff --git a/static/other/4s.png b/static/other/4s.png new file mode 100644 index 0000000..2753596 Binary files /dev/null and b/static/other/4s.png differ diff --git a/static/other/5.png b/static/other/5.png new file mode 100644 index 0000000..e1780da Binary files /dev/null and b/static/other/5.png differ diff --git a/uni.scss b/uni.scss new file mode 100644 index 0000000..a9a742d --- /dev/null +++ b/uni.scss @@ -0,0 +1,76 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ + +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ + +/* 颜色变量 */ + +/* 行为相关颜色 */ +$uni-color-primary: #007aff; +$uni-color-success: #4cd964; +$uni-color-warning: #f0ad4e; +$uni-color-error: #dd524d; + +/* 文字基本颜色 */ +$uni-text-color:#333;//基本色 +$uni-text-color-inverse:#fff;//反色 +$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息 +$uni-text-color-placeholder: #808080; +$uni-text-color-disable:#c0c0c0; + +/* 背景颜色 */ +$uni-bg-color:#ffffff; +$uni-bg-color-grey:#f8f8f8; +$uni-bg-color-hover:#f1f1f1;//点击状态颜色 +$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 + +/* 边框颜色 */ +$uni-border-color:#c8c7cc; + +/* 尺寸变量 */ + +/* 文字尺寸 */ +$uni-font-size-sm:12px; +$uni-font-size-base:14px; +$uni-font-size-lg:16; + +/* 图片尺寸 */ +$uni-img-size-sm:20px; +$uni-img-size-base:26px; +$uni-img-size-lg:40px; + +/* Border Radius */ +$uni-border-radius-sm: 2px; +$uni-border-radius-base: 3px; +$uni-border-radius-lg: 6px; +$uni-border-radius-circle: 50%; + +/* 水平间距 */ +$uni-spacing-row-sm: 5px; +$uni-spacing-row-base: 10px; +$uni-spacing-row-lg: 15px; + +/* 垂直间距 */ +$uni-spacing-col-sm: 4px; +$uni-spacing-col-base: 8px; +$uni-spacing-col-lg: 12px; + +/* 透明度 */ +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 + +/* 文章场景相关 */ +$uni-color-title: #2C405A; // 文章标题颜色 +$uni-font-size-title:20px; +$uni-color-subtitle: #555555; // 二级标题颜色 +$uni-font-size-subtitle:26px; +$uni-color-paragraph: #3F536E; // 文章段落颜色 +$uni-font-size-paragraph:15px; diff --git a/uni_modules/uni-badge/changelog.md b/uni_modules/uni-badge/changelog.md new file mode 100644 index 0000000..544ecc1 --- /dev/null +++ b/uni_modules/uni-badge/changelog.md @@ -0,0 +1,29 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-badge](https://uniapp.dcloud.io/component/uniui/uni-badge) +## 1.1.7(2021-11-08) +- 优化 升级ui +- 修改 size 属性默认值调整为 small +- 修改 type 属性,默认值调整为 error,info 替换 default +## 1.1.6(2021-09-22) +- 修复 在字节小程序上样式不生效的 bug +## 1.1.5(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.4(2021-07-29) +- 修复 去掉 nvue 不支持css 的 align-self 属性,nvue 下不暂支持 absolute 属性 +## 1.1.3(2021-06-24) +- 优化 示例项目 +## 1.1.1(2021-05-12) +- 新增 组件示例地址 +## 1.1.0(2021-05-12) +- 新增 uni-badge 的 absolute 属性,支持定位 +- 新增 uni-badge 的 offset 属性,支持定位偏移 +- 新增 uni-badge 的 is-dot 属性,支持仅显示有一个小点 +- 新增 uni-badge 的 max-num 属性,支持自定义封顶的数字值,超过 99 显示99+ +- 优化 uni-badge 属性 custom-style, 支持以对象形式自定义样式 +## 1.0.7(2021-05-07) +- 修复 uni-badge 在 App 端,数字小于10时不是圆形的bug +- 修复 uni-badge 在父元素不是 flex 布局时,宽度缩小的bug +- 新增 uni-badge 属性 custom-style, 支持自定义样式 +## 1.0.6(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-badge/components/uni-badge/uni-badge.vue b/uni_modules/uni-badge/components/uni-badge/uni-badge.vue new file mode 100644 index 0000000..55bf2c5 --- /dev/null +++ b/uni_modules/uni-badge/components/uni-badge/uni-badge.vue @@ -0,0 +1,268 @@ + + + + + diff --git a/uni_modules/uni-badge/package.json b/uni_modules/uni-badge/package.json new file mode 100644 index 0000000..4e9e631 --- /dev/null +++ b/uni_modules/uni-badge/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-badge", + "displayName": "uni-badge 数字角标", + "version": "1.2.0", + "description": "数字角标(徽章)组件,在元素周围展示消息提醒,一般用于列表、九宫格、按钮等地方。", + "keywords": [ + "", + "badge", + "uni-ui", + "uniui", + "数字角标", + "徽章" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-badge/readme.md b/uni_modules/uni-badge/readme.md new file mode 100644 index 0000000..bdf175d --- /dev/null +++ b/uni_modules/uni-badge/readme.md @@ -0,0 +1,10 @@ +## Badge 数字角标 +> **组件名:uni-badge** +> 代码块: `uBadge` + +数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景, + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-badge) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-breadcrumb/changelog.md b/uni_modules/uni-breadcrumb/changelog.md new file mode 100644 index 0000000..b7b6f6f --- /dev/null +++ b/uni_modules/uni-breadcrumb/changelog.md @@ -0,0 +1,2 @@ +## 0.1.0(2022-04-22) +- 初始化 diff --git a/uni_modules/uni-breadcrumb/components/uni-breadcrumb-item/uni-breadcrumb-item.vue b/uni_modules/uni-breadcrumb/components/uni-breadcrumb-item/uni-breadcrumb-item.vue new file mode 100644 index 0000000..4d3f398 --- /dev/null +++ b/uni_modules/uni-breadcrumb/components/uni-breadcrumb-item/uni-breadcrumb-item.vue @@ -0,0 +1,106 @@ + + + diff --git a/uni_modules/uni-breadcrumb/components/uni-breadcrumb/uni-breadcrumb.vue b/uni_modules/uni-breadcrumb/components/uni-breadcrumb/uni-breadcrumb.vue new file mode 100644 index 0000000..a93f735 --- /dev/null +++ b/uni_modules/uni-breadcrumb/components/uni-breadcrumb/uni-breadcrumb.vue @@ -0,0 +1,38 @@ + + + diff --git a/uni_modules/uni-breadcrumb/package.json b/uni_modules/uni-breadcrumb/package.json new file mode 100644 index 0000000..1fd5f0a --- /dev/null +++ b/uni_modules/uni-breadcrumb/package.json @@ -0,0 +1,84 @@ +{ + "id": "uni-breadcrumb", + "displayName": "uni-breadcrumb", + "version": "0.1.0", + "description": "uni-breadcrumb", + "keywords": [ + "uni-breadcrumb", + "breadcrumb", + "uni-ui", + "面包屑导航", + "面包屑" +], + "repository": "", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + } + } + } + } +} diff --git a/uni_modules/uni-breadcrumb/readme.md b/uni_modules/uni-breadcrumb/readme.md new file mode 100644 index 0000000..4ad5f0c --- /dev/null +++ b/uni_modules/uni-breadcrumb/readme.md @@ -0,0 +1,8 @@ +## Badge 数字角标 +> **组件名:uni-breadcrumb** +> 代码块: `uBreadcrumb` + +数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景, + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-breadcrumb) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-calendar/changelog.md b/uni_modules/uni-calendar/changelog.md new file mode 100644 index 0000000..6df4493 --- /dev/null +++ b/uni_modules/uni-calendar/changelog.md @@ -0,0 +1,16 @@ +## 1.4.5(2022-02-25) +- 修复 条件编译 nvue 不支持的 css 样式 +## 1.4.4(2022-02-25) +- 修复 条件编译 nvue 不支持的 css 样式 +## 1.4.3(2021-09-22) +- 修复 startDate、 endDate 属性失效的 bug +## 1.4.2(2021-08-24) +- 新增 支持国际化 +## 1.4.1(2021-08-05) +- 修复 弹出层被 tabbar 遮盖 bug +## 1.4.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.3.16(2021-05-12) +- 新增 组件示例地址 +## 1.3.15(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-calendar/components/uni-calendar/calendar.js b/uni_modules/uni-calendar/components/uni-calendar/calendar.js new file mode 100644 index 0000000..b8d7d6f --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/calendar.js @@ -0,0 +1,546 @@ +/** +* @1900-2100区间内的公历、农历互转 +* @charset UTF-8 +* @github https://github.com/jjonline/calendar.js +* @Author Jea杨(JJonline@JJonline.Cn) +* @Time 2014-7-21 +* @Time 2016-8-13 Fixed 2033hex、Attribution Annals +* @Time 2016-9-25 Fixed lunar LeapMonth Param Bug +* @Time 2017-7-24 Fixed use getTerm Func Param Error.use solar year,NOT lunar year +* @Version 1.0.3 +* @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0] +* @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0] +*/ +/* eslint-disable */ +var calendar = { + + /** + * 农历1900-2100的润大小信息表 + * @Array Of Property + * @return Hex + */ + lunarInfo: [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, // 1900-1909 + 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, // 1910-1919 + 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, // 1920-1929 + 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, // 1930-1939 + 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, // 1940-1949 + 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, // 1950-1959 + 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, // 1960-1969 + 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, // 1970-1979 + 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, // 1980-1989 + 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0, // 1990-1999 + 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, // 2000-2009 + 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, // 2010-2019 + 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, // 2020-2029 + 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, // 2030-2039 + 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, // 2040-2049 + /** Add By JJonline@JJonline.Cn**/ + 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0, // 2050-2059 + 0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4, // 2060-2069 + 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0, // 2070-2079 + 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160, // 2080-2089 + 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252, // 2090-2099 + 0x0d520], // 2100 + + /** + * 公历每个月份的天数普通表 + * @Array Of Property + * @return Number + */ + solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + + /** + * 天干地支之天干速查表 + * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"] + * @return Cn string + */ + Gan: ['\u7532', '\u4e59', '\u4e19', '\u4e01', '\u620a', '\u5df1', '\u5e9a', '\u8f9b', '\u58ec', '\u7678'], + + /** + * 天干地支之地支速查表 + * @Array Of Property + * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"] + * @return Cn string + */ + Zhi: ['\u5b50', '\u4e11', '\u5bc5', '\u536f', '\u8fb0', '\u5df3', '\u5348', '\u672a', '\u7533', '\u9149', '\u620c', '\u4ea5'], + + /** + * 天干地支之地支速查表<=>生肖 + * @Array Of Property + * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"] + * @return Cn string + */ + Animals: ['\u9f20', '\u725b', '\u864e', '\u5154', '\u9f99', '\u86c7', '\u9a6c', '\u7f8a', '\u7334', '\u9e21', '\u72d7', '\u732a'], + + /** + * 24节气速查表 + * @Array Of Property + * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"] + * @return Cn string + */ + solarTerm: ['\u5c0f\u5bd2', '\u5927\u5bd2', '\u7acb\u6625', '\u96e8\u6c34', '\u60ca\u86f0', '\u6625\u5206', '\u6e05\u660e', '\u8c37\u96e8', '\u7acb\u590f', '\u5c0f\u6ee1', '\u8292\u79cd', '\u590f\u81f3', '\u5c0f\u6691', '\u5927\u6691', '\u7acb\u79cb', '\u5904\u6691', '\u767d\u9732', '\u79cb\u5206', '\u5bd2\u9732', '\u971c\u964d', '\u7acb\u51ac', '\u5c0f\u96ea', '\u5927\u96ea', '\u51ac\u81f3'], + + /** + * 1900-2100各年的24节气日期速查表 + * @Array Of Property + * @return 0x string For splice + */ + sTermInfo: ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', + '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', + 'b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f', + '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa', + '97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f', + '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', + '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722', + '9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f', + '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', + '97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722', + '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', + '97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2', + '977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722', + '7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', + '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd', + '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35', + '7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35', + '665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35', + '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722'], + + /** + * 数字转中文速查表 + * @Array Of Property + * @trans ['日','一','二','三','四','五','六','七','八','九','十'] + * @return Cn string + */ + nStr1: ['\u65e5', '\u4e00', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341'], + + /** + * 日期转农历称呼速查表 + * @Array Of Property + * @trans ['初','十','廿','卅'] + * @return Cn string + */ + nStr2: ['\u521d', '\u5341', '\u5eff', '\u5345'], + + /** + * 月份转农历称呼速查表 + * @Array Of Property + * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊'] + * @return Cn string + */ + nStr3: ['\u6b63', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341', '\u51ac', '\u814a'], + + /** + * 返回农历y年一整年的总天数 + * @param lunar Year + * @return Number + * @eg:var count = calendar.lYearDays(1987) ;//count=387 + */ + lYearDays: function (y) { + var i; var sum = 348 + for (i = 0x8000; i > 0x8; i >>= 1) { sum += (this.lunarInfo[y - 1900] & i) ? 1 : 0 } + return (sum + this.leapDays(y)) + }, + + /** + * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0 + * @param lunar Year + * @return Number (0-12) + * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6 + */ + leapMonth: function (y) { // 闰字编码 \u95f0 + return (this.lunarInfo[y - 1900] & 0xf) + }, + + /** + * 返回农历y年闰月的天数 若该年没有闰月则返回0 + * @param lunar Year + * @return Number (0、29、30) + * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29 + */ + leapDays: function (y) { + if (this.leapMonth(y)) { + return ((this.lunarInfo[y - 1900] & 0x10000) ? 30 : 29) + } + return (0) + }, + + /** + * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法 + * @param lunar Year + * @return Number (-1、29、30) + * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29 + */ + monthDays: function (y, m) { + if (m > 12 || m < 1) { return -1 }// 月份参数从1至12,参数错误返回-1 + return ((this.lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29) + }, + + /** + * 返回公历(!)y年m月的天数 + * @param solar Year + * @return Number (-1、28、29、30、31) + * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30 + */ + solarDays: function (y, m) { + if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1 + var ms = m - 1 + if (ms == 1) { // 2月份的闰平规律测算后确认返回28或29 + return (((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0)) ? 29 : 28) + } else { + return (this.solarMonth[ms]) + } + }, + + /** + * 农历年份转换为干支纪年 + * @param lYear 农历年的年份数 + * @return Cn string + */ + toGanZhiYear: function (lYear) { + var ganKey = (lYear - 3) % 10 + var zhiKey = (lYear - 3) % 12 + if (ganKey == 0) ganKey = 10// 如果余数为0则为最后一个天干 + if (zhiKey == 0) zhiKey = 12// 如果余数为0则为最后一个地支 + return this.Gan[ganKey - 1] + this.Zhi[zhiKey - 1] + }, + + /** + * 公历月、日判断所属星座 + * @param cMonth [description] + * @param cDay [description] + * @return Cn string + */ + toAstro: function (cMonth, cDay) { + var s = '\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf' + var arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22] + return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + '\u5ea7'// 座 + }, + + /** + * 传入offset偏移量返回干支 + * @param offset 相对甲子的偏移量 + * @return Cn string + */ + toGanZhi: function (offset) { + return this.Gan[offset % 10] + this.Zhi[offset % 12] + }, + + /** + * 传入公历(!)y年获得该年第n个节气的公历日期 + * @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起 + * @return day Number + * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春 + */ + getTerm: function (y, n) { + if (y < 1900 || y > 2100) { return -1 } + if (n < 1 || n > 24) { return -1 } + var _table = this.sTermInfo[y - 1900] + var _info = [ + parseInt('0x' + _table.substr(0, 5)).toString(), + parseInt('0x' + _table.substr(5, 5)).toString(), + parseInt('0x' + _table.substr(10, 5)).toString(), + parseInt('0x' + _table.substr(15, 5)).toString(), + parseInt('0x' + _table.substr(20, 5)).toString(), + parseInt('0x' + _table.substr(25, 5)).toString() + ] + var _calday = [ + _info[0].substr(0, 1), + _info[0].substr(1, 2), + _info[0].substr(3, 1), + _info[0].substr(4, 2), + + _info[1].substr(0, 1), + _info[1].substr(1, 2), + _info[1].substr(3, 1), + _info[1].substr(4, 2), + + _info[2].substr(0, 1), + _info[2].substr(1, 2), + _info[2].substr(3, 1), + _info[2].substr(4, 2), + + _info[3].substr(0, 1), + _info[3].substr(1, 2), + _info[3].substr(3, 1), + _info[3].substr(4, 2), + + _info[4].substr(0, 1), + _info[4].substr(1, 2), + _info[4].substr(3, 1), + _info[4].substr(4, 2), + + _info[5].substr(0, 1), + _info[5].substr(1, 2), + _info[5].substr(3, 1), + _info[5].substr(4, 2) + ] + return parseInt(_calday[n - 1]) + }, + + /** + * 传入农历数字月份返回汉语通俗表示法 + * @param lunar month + * @return Cn string + * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月' + */ + toChinaMonth: function (m) { // 月 => \u6708 + if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1 + var s = this.nStr3[m - 1] + s += '\u6708'// 加上月字 + return s + }, + + /** + * 传入农历日期数字返回汉字表示法 + * @param lunar day + * @return Cn string + * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一' + */ + toChinaDay: function (d) { // 日 => \u65e5 + var s + switch (d) { + case 10: + s = '\u521d\u5341'; break + case 20: + s = '\u4e8c\u5341'; break + break + case 30: + s = '\u4e09\u5341'; break + break + default : + s = this.nStr2[Math.floor(d / 10)] + s += this.nStr1[d % 10] + } + return (s) + }, + + /** + * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春” + * @param y year + * @return Cn string + * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔' + */ + getAnimal: function (y) { + return this.Animals[(y - 4) % 12] + }, + + /** + * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON + * @param y solar year + * @param m solar month + * @param d solar day + * @return JSON object + * @eg:console.log(calendar.solar2lunar(1987,11,01)); + */ + solar2lunar: function (y, m, d) { // 参数区间1900.1.31~2100.12.31 + // 年份限定、上限 + if (y < 1900 || y > 2100) { + return -1// undefined转换为数字变为NaN + } + // 公历传参最下限 + if (y == 1900 && m == 1 && d < 31) { + return -1 + } + // 未传参 获得当天 + if (!y) { + var objDate = new Date() + } else { + var objDate = new Date(y, parseInt(m) - 1, d) + } + var i; var leap = 0; var temp = 0 + // 修正ymd参数 + var y = objDate.getFullYear() + var m = objDate.getMonth() + 1 + var d = objDate.getDate() + var offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 86400000 + for (i = 1900; i < 2101 && offset > 0; i++) { + temp = this.lYearDays(i) + offset -= temp + } + if (offset < 0) { + offset += temp; i-- + } + + // 是否今天 + var isTodayObj = new Date() + var isToday = false + if (isTodayObj.getFullYear() == y && isTodayObj.getMonth() + 1 == m && isTodayObj.getDate() == d) { + isToday = true + } + // 星期几 + var nWeek = objDate.getDay() + var cWeek = this.nStr1[nWeek] + // 数字表示周几顺应天朝周一开始的惯例 + if (nWeek == 0) { + nWeek = 7 + } + // 农历年 + var year = i + var leap = this.leapMonth(i) // 闰哪个月 + var isLeap = false + + // 效验闰月 + for (i = 1; i < 13 && offset > 0; i++) { + // 闰月 + if (leap > 0 && i == (leap + 1) && isLeap == false) { + --i + isLeap = true; temp = this.leapDays(year) // 计算农历闰月天数 + } else { + temp = this.monthDays(year, i)// 计算农历普通月天数 + } + // 解除闰月 + if (isLeap == true && i == (leap + 1)) { isLeap = false } + offset -= temp + } + // 闰月导致数组下标重叠取反 + if (offset == 0 && leap > 0 && i == leap + 1) { + if (isLeap) { + isLeap = false + } else { + isLeap = true; --i + } + } + if (offset < 0) { + offset += temp; --i + } + // 农历月 + var month = i + // 农历日 + var day = offset + 1 + // 天干地支处理 + var sm = m - 1 + var gzY = this.toGanZhiYear(year) + + // 当月的两个节气 + // bugfix-2017-7-24 11:03:38 use lunar Year Param `y` Not `year` + var firstNode = this.getTerm(y, (m * 2 - 1))// 返回当月「节」为几日开始 + var secondNode = this.getTerm(y, (m * 2))// 返回当月「节」为几日开始 + + // 依据12节气修正干支月 + var gzM = this.toGanZhi((y - 1900) * 12 + m + 11) + if (d >= firstNode) { + gzM = this.toGanZhi((y - 1900) * 12 + m + 12) + } + + // 传入的日期的节气与否 + var isTerm = false + var Term = null + if (firstNode == d) { + isTerm = true + Term = this.solarTerm[m * 2 - 2] + } + if (secondNode == d) { + isTerm = true + Term = this.solarTerm[m * 2 - 1] + } + // 日柱 当月一日与 1900/1/1 相差天数 + var dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10 + var gzD = this.toGanZhi(dayCyclical + d - 1) + // 该日期所属的星座 + var astro = this.toAstro(m, d) + + return { 'lYear': year, 'lMonth': month, 'lDay': day, 'Animal': this.getAnimal(year), 'IMonthCn': (isLeap ? '\u95f0' : '') + this.toChinaMonth(month), 'IDayCn': this.toChinaDay(day), 'cYear': y, 'cMonth': m, 'cDay': d, 'gzYear': gzY, 'gzMonth': gzM, 'gzDay': gzD, 'isToday': isToday, 'isLeap': isLeap, 'nWeek': nWeek, 'ncWeek': '\u661f\u671f' + cWeek, 'isTerm': isTerm, 'Term': Term, 'astro': astro } + }, + + /** + * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON + * @param y lunar year + * @param m lunar month + * @param d lunar day + * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可] + * @return JSON object + * @eg:console.log(calendar.lunar2solar(1987,9,10)); + */ + lunar2solar: function (y, m, d, isLeapMonth) { // 参数区间1900.1.31~2100.12.1 + var isLeapMonth = !!isLeapMonth + var leapOffset = 0 + var leapMonth = this.leapMonth(y) + var leapDay = this.leapDays(y) + if (isLeapMonth && (leapMonth != m)) { return -1 }// 传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同 + if (y == 2100 && m == 12 && d > 1 || y == 1900 && m == 1 && d < 31) { return -1 }// 超出了最大极限值 + var day = this.monthDays(y, m) + var _day = day + // bugFix 2016-9-25 + // if month is leap, _day use leapDays method + if (isLeapMonth) { + _day = this.leapDays(y, m) + } + if (y < 1900 || y > 2100 || d > _day) { return -1 }// 参数合法性效验 + + // 计算农历的时间差 + var offset = 0 + for (var i = 1900; i < y; i++) { + offset += this.lYearDays(i) + } + var leap = 0; var isAdd = false + for (var i = 1; i < m; i++) { + leap = this.leapMonth(y) + if (!isAdd) { // 处理闰月 + if (leap <= i && leap > 0) { + offset += this.leapDays(y); isAdd = true + } + } + offset += this.monthDays(y, i) + } + // 转换闰月农历 需补充该年闰月的前一个月的时差 + if (isLeapMonth) { offset += day } + // 1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点) + var stmap = Date.UTC(1900, 1, 30, 0, 0, 0) + var calObj = new Date((offset + d - 31) * 86400000 + stmap) + var cY = calObj.getUTCFullYear() + var cM = calObj.getUTCMonth() + 1 + var cD = calObj.getUTCDate() + + return this.solar2lunar(cY, cM, cD) + } +} + +export default calendar diff --git a/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json b/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json new file mode 100644 index 0000000..526a4f3 --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json @@ -0,0 +1,12 @@ +{ + "uni-calender.ok": "ok", + "uni-calender.cancel": "cancel", + "uni-calender.today": "today", + "uni-calender.MON": "MON", + "uni-calender.TUE": "TUE", + "uni-calender.WED": "WED", + "uni-calender.THU": "THU", + "uni-calender.FRI": "FRI", + "uni-calender.SAT": "SAT", + "uni-calender.SUN": "SUN" +} diff --git a/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js b/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js new file mode 100644 index 0000000..fa8f0f3 --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json b/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json new file mode 100644 index 0000000..4d959a4 --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json @@ -0,0 +1,12 @@ +{ + "uni-calender.ok": "确定", + "uni-calender.cancel": "取消", + "uni-calender.today": "今日", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六" +} diff --git a/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json b/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json new file mode 100644 index 0000000..8dabf81 --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json @@ -0,0 +1,12 @@ +{ + "uni-calender.ok": "確定", + "uni-calender.cancel": "取消", + "uni-calender.today": "今日", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六" +} diff --git a/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue b/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue new file mode 100644 index 0000000..cd5863d --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue b/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue new file mode 100644 index 0000000..a4b96ce --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue @@ -0,0 +1,554 @@ + + + + + diff --git a/uni_modules/uni-calendar/components/uni-calendar/util.js b/uni_modules/uni-calendar/components/uni-calendar/util.js new file mode 100644 index 0000000..b31ca6d --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/util.js @@ -0,0 +1,350 @@ +import CALENDAR from './calendar.js' + +class Calendar { + constructor({ + date, + selected, + startDate, + endDate, + range + } = {}) { + // 当前日期 + this.date = this.getDate(new Date()) // 当前初入日期 + // 打点信息 + this.selected = selected || []; + // 范围开始 + this.startDate = startDate + // 范围结束 + this.endDate = endDate + this.range = range + // 多选状态 + this.cleanMultipleStatus() + // 每周日期 + this.weeks = {} + // this._getWeek(this.date.fullDate) + } + /** + * 设置日期 + * @param {Object} date + */ + setDate(date) { + this.selectDate = this.getDate(date) + this._getWeek(this.selectDate.fullDate) + } + + /** + * 清理多选状态 + */ + cleanMultipleStatus() { + this.multipleStatus = { + before: '', + after: '', + data: [] + } + } + + /** + * 重置开始日期 + */ + resetSatrtDate(startDate) { + // 范围开始 + this.startDate = startDate + + } + + /** + * 重置结束日期 + */ + resetEndDate(endDate) { + // 范围结束 + this.endDate = endDate + } + + /** + * 获取任意时间 + */ + getDate(date, AddDayCount = 0, str = 'day') { + if (!date) { + date = new Date() + } + if (typeof date !== 'object') { + date = date.replace(/-/g, '/') + } + const dd = new Date(date) + switch (str) { + case 'day': + dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期 + break + case 'month': + if (dd.getDate() === 31) { + dd.setDate(dd.getDate() + AddDayCount) + } else { + dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期 + } + break + case 'year': + dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期 + break + } + const y = dd.getFullYear() + const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0 + const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0 + return { + fullDate: y + '-' + m + '-' + d, + year: y, + month: m, + date: d, + day: dd.getDay() + } + } + + + /** + * 获取上月剩余天数 + */ + _getLastMonthDays(firstDay, full) { + let dateArr = [] + for (let i = firstDay; i > 0; i--) { + const beforeDate = new Date(full.year, full.month - 1, -i + 1).getDate() + dateArr.push({ + date: beforeDate, + month: full.month - 1, + lunar: this.getlunar(full.year, full.month - 1, beforeDate), + disable: true + }) + } + return dateArr + } + /** + * 获取本月天数 + */ + _currentMonthDys(dateData, full) { + let dateArr = [] + let fullDate = this.date.fullDate + for (let i = 1; i <= dateData; i++) { + let nowDate = full.year + '-' + (full.month < 10 ? + full.month : full.month) + '-' + (i < 10 ? + '0' + i : i) + // 是否今天 + let isDay = fullDate === nowDate + // 获取打点信息 + let info = this.selected && this.selected.find((item) => { + if (this.dateEqual(nowDate, item.date)) { + return item + } + }) + + // 日期禁用 + let disableBefore = true + let disableAfter = true + if (this.startDate) { + // let dateCompBefore = this.dateCompare(this.startDate, fullDate) + // disableBefore = this.dateCompare(dateCompBefore ? this.startDate : fullDate, nowDate) + disableBefore = this.dateCompare(this.startDate, nowDate) + } + + if (this.endDate) { + // let dateCompAfter = this.dateCompare(fullDate, this.endDate) + // disableAfter = this.dateCompare(nowDate, dateCompAfter ? this.endDate : fullDate) + disableAfter = this.dateCompare(nowDate, this.endDate) + } + let multiples = this.multipleStatus.data + let checked = false + let multiplesStatus = -1 + if (this.range) { + if (multiples) { + multiplesStatus = multiples.findIndex((item) => { + return this.dateEqual(item, nowDate) + }) + } + if (multiplesStatus !== -1) { + checked = true + } + } + let data = { + fullDate: nowDate, + year: full.year, + date: i, + multiple: this.range ? checked : false, + beforeMultiple: this.dateEqual(this.multipleStatus.before, nowDate), + afterMultiple: this.dateEqual(this.multipleStatus.after, nowDate), + month: full.month, + lunar: this.getlunar(full.year, full.month, i), + disable: !(disableBefore && disableAfter), + isDay + } + if (info) { + data.extraInfo = info + } + + dateArr.push(data) + } + return dateArr + } + /** + * 获取下月天数 + */ + _getNextMonthDays(surplus, full) { + let dateArr = [] + for (let i = 1; i < surplus + 1; i++) { + dateArr.push({ + date: i, + month: Number(full.month) + 1, + lunar: this.getlunar(full.year, Number(full.month) + 1, i), + disable: true + }) + } + return dateArr + } + + /** + * 获取当前日期详情 + * @param {Object} date + */ + getInfo(date) { + if (!date) { + date = new Date() + } + const dateInfo = this.canlender.find(item => item.fullDate === this.getDate(date).fullDate) + return dateInfo + } + + /** + * 比较时间大小 + */ + dateCompare(startDate, endDate) { + // 计算截止时间 + startDate = new Date(startDate.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + endDate = new Date(endDate.replace('-', '/').replace('-', '/')) + if (startDate <= endDate) { + return true + } else { + return false + } + } + + /** + * 比较时间是否相等 + */ + dateEqual(before, after) { + // 计算截止时间 + before = new Date(before.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + after = new Date(after.replace('-', '/').replace('-', '/')) + if (before.getTime() - after.getTime() === 0) { + return true + } else { + return false + } + } + + + /** + * 获取日期范围内所有日期 + * @param {Object} begin + * @param {Object} end + */ + geDateAll(begin, end) { + var arr = [] + var ab = begin.split('-') + var ae = end.split('-') + var db = new Date() + db.setFullYear(ab[0], ab[1] - 1, ab[2]) + var de = new Date() + de.setFullYear(ae[0], ae[1] - 1, ae[2]) + var unixDb = db.getTime() - 24 * 60 * 60 * 1000 + var unixDe = de.getTime() - 24 * 60 * 60 * 1000 + for (var k = unixDb; k <= unixDe;) { + k = k + 24 * 60 * 60 * 1000 + arr.push(this.getDate(new Date(parseInt(k))).fullDate) + } + return arr + } + /** + * 计算阴历日期显示 + */ + getlunar(year, month, date) { + return CALENDAR.solar2lunar(year, month, date) + } + /** + * 设置打点 + */ + setSelectInfo(data, value) { + this.selected = value + this._getWeek(data) + } + + /** + * 获取多选状态 + */ + setMultiple(fullDate) { + let { + before, + after + } = this.multipleStatus + + if (!this.range) return + if (before && after) { + this.multipleStatus.before = '' + this.multipleStatus.after = '' + this.multipleStatus.data = [] + } else { + if (!before) { + this.multipleStatus.before = fullDate + } else { + this.multipleStatus.after = fullDate + if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before); + } + } + } + this._getWeek(fullDate) + } + + /** + * 获取每周数据 + * @param {Object} dateData + */ + _getWeek(dateData) { + const { + year, + month + } = this.getDate(dateData) + let firstDay = new Date(year, month - 1, 1).getDay() + let currentDay = new Date(year, month, 0).getDate() + let dates = { + lastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), // 上个月末尾几天 + currentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), // 本月天数 + nextMonthDays: [], // 下个月开始几天 + weeks: [] + } + let canlender = [] + const surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length) + dates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData)) + canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays) + let weeks = {} + // 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天 + for (let i = 0; i < canlender.length; i++) { + if (i % 7 === 0) { + weeks[parseInt(i / 7)] = new Array(7) + } + weeks[parseInt(i / 7)][i % 7] = canlender[i] + } + this.canlender = canlender + this.weeks = weeks + } + + //静态方法 + // static init(date) { + // if (!this.instance) { + // this.instance = new Calendar(date); + // } + // return this.instance; + // } +} + + +export default Calendar diff --git a/uni_modules/uni-calendar/package.json b/uni_modules/uni-calendar/package.json new file mode 100644 index 0000000..40455c8 --- /dev/null +++ b/uni_modules/uni-calendar/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-calendar", + "displayName": "uni-calendar 日历", + "version": "1.4.5", + "description": "日历组件", + "keywords": [ + "uni-ui", + "uniui", + "日历", + "", + "打卡", + "日历选择" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-calendar/readme.md b/uni_modules/uni-calendar/readme.md new file mode 100644 index 0000000..4f3ca0e --- /dev/null +++ b/uni_modules/uni-calendar/readme.md @@ -0,0 +1,103 @@ + + +## Calendar 日历 +> **组件名:uni-calendar** +> 代码块: `uCalendar` + + +日历组件 + +> **注意事项** +> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。 +> - 本组件农历转换使用的js是 [@1900-2100区间内的公历、农历互转](https://github.com/jjonline/calendar.js) +> - 仅支持自定义组件模式 +> - `date`属性传入的应该是一个 String ,如: 2019-06-27 ,而不是 new Date() +> - 通过 `insert` 属性来确定当前的事件是 @change 还是 @confirm 。理应合并为一个事件,但是为了区分模式,现使用两个事件,这里需要注意 +> - 弹窗模式下无法阻止后面的元素滚动,如有需要阻止,请在弹窗弹出后,手动设置滚动元素为不可滚动 + + +### 安装方式 + +本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。 + +如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55) + +### 基本用法 + +在 ``template`` 中使用组件 + +```html + + + +``` + +### 通过方法打开日历 + +需要设置 `insert` 为 `false` + +```html + + + + +``` + +```javascript + +export default { + data() { + return {}; + }, + methods: { + open(){ + this.$refs.calendar.open(); + }, + confirm(e) { + console.log(e); + } + } +}; + +``` + + +## API + +### Calendar Props + +| 属性名 | 类型 | 默认值| 说明 | +| | | +| date | String |- | 自定义当前时间,默认为今天 | +| lunar | Boolean | false | 显示农历 | +| startDate | String |- | 日期选择范围-开始日期 | +| endDate | String |- | 日期选择范围-结束日期 | +| range | Boolean | false | 范围选择 | +| insert | Boolean | false | 插入模式,可选值,ture:插入模式;false:弹窗模式;默认为插入模式 | +|clearDate |Boolean |true |弹窗模式是否清空上次选择内容 | +| selected | Array |- | 打点,期待格式[{date: '2019-06-27', info: '签到', data: { custom: '自定义信息', name: '自定义消息头',xxx:xxx... }}] | +|showMonth | Boolean | true | 是否显示月份为背景 | + +### Calendar Events + +| 事件名 | 说明 |返回值| +| | | | +| open | 弹出日历组件,`insert :false` 时生效|- | + + + + + +## 组件示例 + +点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/calendar/calendar](https://hellouniapp.dcloud.net.cn/pages/extUI/calendar/calendar) \ No newline at end of file diff --git a/uni_modules/uni-card/changelog.md b/uni_modules/uni-card/changelog.md new file mode 100644 index 0000000..c3cd8c4 --- /dev/null +++ b/uni_modules/uni-card/changelog.md @@ -0,0 +1,26 @@ +## 1.3.1(2021-12-20) +- 修复 在vue页面下略缩图显示不正常的bug +## 1.3.0(2021-11-19) +- 重构插槽的用法 ,header 替换为 title +- 新增 actions 插槽 +- 新增 cover 封面图属性和插槽 +- 新增 padding 内容默认内边距离 +- 新增 margin 卡片默认外边距离 +- 新增 spacing 卡片默认内边距 +- 新增 shadow 卡片阴影属性 +- 取消 mode 属性,可使用组合插槽代替 +- 取消 note 属性 ,使用actions插槽代替 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-card](https://uniapp.dcloud.io/component/uniui/uni-card) +## 1.2.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.8(2021-07-01) +- 优化 图文卡片无图片加载时,提供占位图标 +- 新增 header 插槽,自定义卡片头部( 图文卡片 mode="style" 时,不支持) +- 修复 thumbnail 不存在仍然占位的 bug +## 1.1.7(2021-05-12) +- 新增 组件示例地址 +## 1.1.6(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-card/components/uni-card/uni-card.vue b/uni_modules/uni-card/components/uni-card/uni-card.vue new file mode 100644 index 0000000..045c082 --- /dev/null +++ b/uni_modules/uni-card/components/uni-card/uni-card.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/uni_modules/uni-card/package.json b/uni_modules/uni-card/package.json new file mode 100644 index 0000000..f16224d --- /dev/null +++ b/uni_modules/uni-card/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-card", + "displayName": "uni-card 卡片", + "version": "1.3.1", + "description": "Card 组件,提供常见的卡片样式。", + "keywords": [ + "uni-ui", + "uniui", + "card", + "", + "卡片" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-icons", + "uni-scss" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-card/readme.md b/uni_modules/uni-card/readme.md new file mode 100644 index 0000000..7434e71 --- /dev/null +++ b/uni_modules/uni-card/readme.md @@ -0,0 +1,12 @@ + + +## Card 卡片 +> **组件名:uni-card** +> 代码块: `uCard` + +卡片视图组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-card) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-collapse/changelog.md b/uni_modules/uni-collapse/changelog.md new file mode 100644 index 0000000..292e4c7 --- /dev/null +++ b/uni_modules/uni-collapse/changelog.md @@ -0,0 +1,36 @@ +## 1.4.3(2022-01-25) +- 修复 初始化的时候 ,open 属性失效的bug +## 1.4.2(2022-01-21) +- 修复 微信小程序resize后组件收起的bug +## 1.4.1(2021-11-22) +- 修复 vue3中个别scss变量无法找到的问题 +## 1.4.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-collapse](https://uniapp.dcloud.io/component/uniui/uni-collapse) +## 1.3.3(2021-08-17) +- 优化 show-arrow 属性默认为true +## 1.3.2(2021-08-17) +- 新增 show-arrow 属性,控制是否显示右侧箭头 +## 1.3.1(2021-07-30) +- 优化 vue3下小程序事件警告的问题 +## 1.3.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.2.2(2021-07-21) +- 修复 由1.2.0版本引起的 change 事件返回 undefined 的Bug +## 1.2.1(2021-07-21) +- 优化 组件示例 +## 1.2.0(2021-07-21) +- 新增 组件折叠动画 +- 新增 value\v-model 属性 ,动态修改面板折叠状态 +- 新增 title 插槽 ,可定义面板标题 +- 新增 border 属性 ,显示隐藏面板内容分隔线 +- 新增 title-border 属性 ,显示隐藏面板标题分隔线 +- 修复 resize 方法失效的Bug +- 修复 change 事件返回参数不正确的Bug +- 优化 H5、App 平台自动更具内容更新高度,无需调用 reszie() 方法 +## 1.1.7(2021-05-12) +- 新增 组件示例地址 +## 1.1.6(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.1.5(2021-02-05) +- 调整为uni_modules目录规范 \ No newline at end of file diff --git a/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue b/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue new file mode 100644 index 0000000..b2aad1f --- /dev/null +++ b/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue @@ -0,0 +1,402 @@ + + + + + diff --git a/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue b/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue new file mode 100644 index 0000000..f87bb25 --- /dev/null +++ b/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue @@ -0,0 +1,147 @@ + + + diff --git a/uni_modules/uni-collapse/package.json b/uni_modules/uni-collapse/package.json new file mode 100644 index 0000000..65349cf --- /dev/null +++ b/uni_modules/uni-collapse/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-collapse", + "displayName": "uni-collapse 折叠面板", + "version": "1.4.3", + "description": "Collapse 组件,可以折叠 / 展开的内容区域。", + "keywords": [ + "uni-ui", + "折叠", + "折叠面板", + "手风琴" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-collapse/readme.md b/uni_modules/uni-collapse/readme.md new file mode 100644 index 0000000..bc758eb --- /dev/null +++ b/uni_modules/uni-collapse/readme.md @@ -0,0 +1,12 @@ + + +## Collapse 折叠面板 +> **组件名:uni-collapse** +> 代码块: `uCollapse` +> 关联组件:`uni-collapse-item`、`uni-icons`。 + + +折叠面板用来折叠/显示过长的内容或者是列表。通常是在多内容分类项使用,折叠不重要的内容,显示重要内容。点击可以展开折叠部分。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-collapse) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-combox/changelog.md b/uni_modules/uni-combox/changelog.md new file mode 100644 index 0000000..23c2748 --- /dev/null +++ b/uni_modules/uni-combox/changelog.md @@ -0,0 +1,15 @@ +## 1.0.1(2021-11-23) +- 优化 label、label-width 属性 +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-combox](https://uniapp.dcloud.io/component/uniui/uni-combox) +## 0.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.0.6(2021-05-12) +- 新增 组件示例地址 +## 0.0.5(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 0.0.4(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 0.0.3(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-combox/components/uni-combox/uni-combox.vue b/uni_modules/uni-combox/components/uni-combox/uni-combox.vue new file mode 100644 index 0000000..500b6f8 --- /dev/null +++ b/uni_modules/uni-combox/components/uni-combox/uni-combox.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/uni_modules/uni-combox/package.json b/uni_modules/uni-combox/package.json new file mode 100644 index 0000000..4a05c3f --- /dev/null +++ b/uni_modules/uni-combox/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-combox", + "displayName": "uni-combox 组合框", + "version": "1.0.1", + "description": "可以选择也可以输入的表单项 ", + "keywords": [ + "uni-ui", + "uniui", + "combox", + "组合框", + "select" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-combox/readme.md b/uni_modules/uni-combox/readme.md new file mode 100644 index 0000000..ffa2cc8 --- /dev/null +++ b/uni_modules/uni-combox/readme.md @@ -0,0 +1,11 @@ + + +## Combox 组合框 +> **组件名:uni-combox** +> 代码块: `uCombox` + + +组合框组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-combox) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-countdown/changelog.md b/uni_modules/uni-countdown/changelog.md new file mode 100644 index 0000000..f25beef --- /dev/null +++ b/uni_modules/uni-countdown/changelog.md @@ -0,0 +1,24 @@ +## 1.2.2(2022-01-19) +- 修复 在微信小程序中样式不生效的bug +## 1.2.1(2022-01-18) +- 新增 update 方法 ,在动态更新时间后,刷新组件 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-countdown](https://uniapp.dcloud.io/component/uniui/uni-countdown) +## 1.1.3(2021-10-18) +- 重构 +- 新增 font-size 支持自定义字体大小 +## 1.1.2(2021-08-24) +- 新增 支持国际化 +## 1.1.1(2021-07-30) +- 优化 vue3下小程序事件警告的问题 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.5(2021-06-18) +- 修复 uni-countdown 重复赋值跳两秒的 bug +## 1.0.4(2021-05-12) +- 新增 组件示例地址 +## 1.0.3(2021-05-08) +- 修复 uni-countdown 不能控制倒计时的 bug +## 1.0.2(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json b/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json new file mode 100644 index 0000000..c18587c --- /dev/null +++ b/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json @@ -0,0 +1,6 @@ +{ + "uni-countdown.day": "day", + "uni-countdown.h": "h", + "uni-countdown.m": "m", + "uni-countdown.s": "s" +} diff --git a/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js b/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js new file mode 100644 index 0000000..fa8f0f3 --- /dev/null +++ b/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json b/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json new file mode 100644 index 0000000..c021600 --- /dev/null +++ b/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json @@ -0,0 +1,6 @@ +{ + "uni-countdown.day": "天", + "uni-countdown.h": "时", + "uni-countdown.m": "分", + "uni-countdown.s": "秒" +} diff --git a/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json b/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json new file mode 100644 index 0000000..3f153c7 --- /dev/null +++ b/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json @@ -0,0 +1,6 @@ +{ + "uni-countdown.day": "天", + "uni-countdown.h": "時", + "uni-countdown.m": "分", + "uni-countdown.s": "秒" +} diff --git a/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue b/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue new file mode 100644 index 0000000..5f63365 --- /dev/null +++ b/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue @@ -0,0 +1,271 @@ + + + diff --git a/uni_modules/uni-countdown/package.json b/uni_modules/uni-countdown/package.json new file mode 100644 index 0000000..70e99ee --- /dev/null +++ b/uni_modules/uni-countdown/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-countdown", + "displayName": "uni-countdown 倒计时", + "version": "1.2.2", + "description": "CountDown 倒计时组件", + "keywords": [ + "uni-ui", + "uniui", + "countdown", + "倒计时" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-countdown/readme.md b/uni_modules/uni-countdown/readme.md new file mode 100644 index 0000000..4bcb1aa --- /dev/null +++ b/uni_modules/uni-countdown/readme.md @@ -0,0 +1,10 @@ + + +## CountDown 倒计时 +> **组件名:uni-countdown** +> 代码块: `uCountDown` + +倒计时组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-countdown) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-data-checkbox/changelog.md b/uni_modules/uni-data-checkbox/changelog.md new file mode 100644 index 0000000..d8f420b --- /dev/null +++ b/uni_modules/uni-data-checkbox/changelog.md @@ -0,0 +1,41 @@ +## 1.0.1(2022-02-07) +- 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-data-checkbox](https://uniapp.dcloud.io/component/uniui/uni-data-checkbox) +## 0.2.5(2021-08-23) +- 修复 在uni-forms中 modelValue 中不存在当前字段,当前字段必填写也不参与校验的问题 +## 0.2.4(2021-08-17) +- 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 +## 0.2.3(2021-08-11) +- 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +## 0.2.2(2021-07-30) +- 优化 在uni-forms组件,与label不对齐的问题 +## 0.2.1(2021-07-27) +- 修复 单选默认值为0不能选中的Bug +## 0.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.1.11(2021-07-06) +- 优化 删除无用日志 +## 0.1.10(2021-07-05) +- 修复 由 0.1.9 引起的非 nvue 端图标不显示的问题 +## 0.1.9(2021-07-05) +- 修复 nvue 黑框样式问题 +## 0.1.8(2021-06-28) +- 修复 selectedTextColor 属性不生效的Bug +## 0.1.7(2021-06-02) +- 新增 map 属性,可以方便映射text/value属性 +## 0.1.6(2021-05-26) +- 修复 不关联服务空间的情况下组件报错的Bug +## 0.1.5(2021-05-12) +- 新增 组件示例地址 +## 0.1.4(2021-04-09) +- 修复 nvue 下无法选中的问题 +## 0.1.3(2021-03-22) +- 新增 disabled属性 +## 0.1.2(2021-02-24) +- 优化 默认颜色显示 +## 0.1.1(2021-02-24) +- 新增 支持nvue +## 0.1.0(2021-02-18) +- “暂无数据”显示居中 diff --git a/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue b/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue new file mode 100644 index 0000000..300cb5f --- /dev/null +++ b/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue @@ -0,0 +1,817 @@ + + + + + diff --git a/uni_modules/uni-data-checkbox/package.json b/uni_modules/uni-data-checkbox/package.json new file mode 100644 index 0000000..64131e7 --- /dev/null +++ b/uni_modules/uni-data-checkbox/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-data-checkbox", + "displayName": "uni-data-checkbox 数据选择器", + "version": "1.0.1", + "description": "通过数据驱动的单选框和复选框", + "keywords": [ + "uni-ui", + "checkbox", + "单选", + "多选", + "单选多选" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.1" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-load-more","uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-data-checkbox/readme.md b/uni_modules/uni-data-checkbox/readme.md new file mode 100644 index 0000000..6eb253d --- /dev/null +++ b/uni_modules/uni-data-checkbox/readme.md @@ -0,0 +1,18 @@ + + +## DataCheckbox 数据驱动的单选复选框 +> **组件名:uni-data-checkbox** +> 代码块: `uDataCheckbox` + + +本组件是基于uni-app基础组件checkbox的封装。本组件要解决问题包括: + +1. 数据绑定型组件:给本组件绑定一个data,会自动渲染一组候选内容。再以往,开发者需要编写不少代码实现类似功能 +2. 自动的表单校验:组件绑定了data,且符合[uni-forms](https://ext.dcloud.net.cn/plugin?id=2773)组件的表单校验规范,搭配使用会自动实现表单校验 +3. 本组件合并了单选多选 +4. 本组件有若干风格选择,如普通的单选多选框、并列button风格、tag风格。开发者可以快速选择需要的风格。但作为一个封装组件,样式代码虽然不用自己写了,却会牺牲一定的样式自定义性 + +在uniCloud开发中,`DB Schema`中配置了enum枚举等类型后,在web控制台的[自动生成表单](https://uniapp.dcloud.io/uniCloud/schema?id=autocode)功能中,会自动生成``uni-data-checkbox``组件并绑定好data + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-checkbox) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-data-picker/changelog.md b/uni_modules/uni-data-picker/changelog.md new file mode 100644 index 0000000..0c45f8f --- /dev/null +++ b/uni_modules/uni-data-picker/changelog.md @@ -0,0 +1,58 @@ +## 1.0.4(2022-04-19) +- 修复 字节小程序 本地数据无法选择下一级的Bug +## 1.0.3(2022-02-25) +- 修复 nvue 不支持的 v-show 的 bug +## 1.0.2(2022-02-25) +- 修复 条件编译 nvue 不支持的 css 样式 +## 1.0.1(2021-11-23) +- 修复 由上个版本引发的map、v-model等属性不生效的bug +## 1.0.0(2021-11-19) +- 优化 组件 UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-data-picker](https://uniapp.dcloud.io/component/uniui/uni-data-picker) +## 0.4.9(2021-10-28) +- 修复 VUE2 v-model 概率无效的 bug +## 0.4.8(2021-10-27) +- 修复 v-model 概率无效的 bug +## 0.4.7(2021-10-25) +- 新增 属性 spaceInfo 服务空间配置 HBuilderX 3.2.11+ +- 修复 树型 uniCloud 数据类型为 int 时报错的 bug +## 0.4.6(2021-10-19) +- 修复 非 VUE3 v-model 为 0 时无法选中的 bug +## 0.4.5(2021-09-26) +- 新增 清除已选项的功能(通过 clearIcon 属性配置是否显示按钮),同时提供 clear 方法以供调用,二者等效 +- 修复 readonly 为 true 时报错的 bug +## 0.4.4(2021-09-26) +- 修复 上一版本造成的 map 属性失效的 bug +- 新增 ellipsis 属性,支持配置 tab 选项长度过长时是否自动省略 +## 0.4.3(2021-09-24) +- 修复 某些情况下级联未触发的 bug +## 0.4.2(2021-09-23) +- 新增 提供 show 和 hide 方法,开发者可以通过 ref 调用 +- 新增 选项内容过长自动添加省略号 +## 0.4.1(2021-09-15) +- 新增 map 属性 字段映射,将 text/value 映射到数据中的其他字段 +## 0.4.0(2021-07-13) +- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.3.5(2021-06-04) +- 修复 无法加载云端数据的问题 +## 0.3.4(2021-05-28) +- 修复 v-model 无效问题 +- 修复 loaddata 为空数据组时加载时间过长问题 +- 修复 上个版本引出的本地数据无法选择带有 children 的 2 级节点 +## 0.3.3(2021-05-12) +- 新增 组件示例地址 +## 0.3.2(2021-04-22) +- 修复 非树形数据有 where 属性查询报错的问题 +## 0.3.1(2021-04-15) +- 修复 本地数据概率无法回显时问题 +## 0.3.0(2021-04-07) +- 新增 支持云端非树形表结构数据 +- 修复 根节点 parent_field 字段等于 null 时选择界面错乱问题 +## 0.2.0(2021-03-15) +- 修复 nodeclick、popupopened、popupclosed 事件无法触发的问题 +## 0.1.9(2021-03-09) +- 修复 微信小程序某些情况下无法选择的问题 +## 0.1.8(2021-02-05) +- 优化 部分样式在 nvue 上的兼容表现 +## 0.1.7(2021-02-05) +- 调整为 uni_modules 目录规范 diff --git a/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js b/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js new file mode 100644 index 0000000..6ef26a2 --- /dev/null +++ b/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + this.$once('hook:beforeDestroy', () => { + document.removeEventListener('keyup', listener) + }) + }, + render: () => {} +} +// #endif diff --git a/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue b/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue new file mode 100644 index 0000000..0d3a139 --- /dev/null +++ b/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue @@ -0,0 +1,541 @@ + + + + + diff --git a/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js new file mode 100644 index 0000000..c12fd54 --- /dev/null +++ b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js @@ -0,0 +1,563 @@ +export default { + props: { + localdata: { + type: [Array, Object], + default () { + return [] + } + }, + spaceInfo: { + type: Object, + default () { + return {} + } + }, + collection: { + type: String, + default: '' + }, + action: { + type: String, + default: '' + }, + field: { + type: String, + default: '' + }, + orderby: { + type: String, + default: '' + }, + where: { + type: [String, Object], + default: '' + }, + pageData: { + type: String, + default: 'add' + }, + pageCurrent: { + type: Number, + default: 1 + }, + pageSize: { + type: Number, + default: 20 + }, + getcount: { + type: [Boolean, String], + default: false + }, + getone: { + type: [Boolean, String], + default: false + }, + gettree: { + type: [Boolean, String], + default: false + }, + manual: { + type: Boolean, + default: false + }, + value: { + type: [Array, String, Number], + default () { + return [] + } + }, + modelValue: { + type: [Array, String, Number], + default () { + return [] + } + }, + preload: { + type: Boolean, + default: false + }, + stepSearh: { + type: Boolean, + default: true + }, + selfField: { + type: String, + default: '' + }, + parentField: { + type: String, + default: '' + }, + multiple: { + type: Boolean, + default: false + }, + map: { + type: Object, + default() { + return { + text: "text", + value: "value" + } + } + } + }, + data() { + return { + loading: false, + errorMessage: '', + loadMore: { + contentdown: '', + contentrefresh: '', + contentnomore: '' + }, + dataList: [], + selected: [], + selectedIndex: 0, + page: { + current: this.pageCurrent, + size: this.pageSize, + count: 0 + } + } + }, + computed: { + isLocaldata() { + return !this.collection.length + }, + postField() { + let fields = [this.field]; + if (this.parentField) { + fields.push(`${this.parentField} as parent_value`); + } + return fields.join(','); + }, + dataValue() { + let isModelValue = Array.isArray(this.modelValue) ? (this.modelValue.length > 0) : (this.modelValue !== null || this.modelValue !== undefined) + return isModelValue ? this.modelValue : this.value + }, + hasValue() { + if (typeof this.dataValue === 'number') { + return true + } + return (this.dataValue != null) && (this.dataValue.length > 0) + } + }, + created() { + this.$watch(() => { + var al = []; + ['pageCurrent', + 'pageSize', + 'spaceInfo', + 'value', + 'modelValue', + 'localdata', + 'collection', + 'action', + 'field', + 'orderby', + 'where', + 'getont', + 'getcount', + 'gettree' + ].forEach(key => { + al.push(this[key]) + }); + return al + }, (newValue, oldValue) => { + let needReset = false + for (let i = 2; i < newValue.length; i++) { + if (newValue[i] != oldValue[i]) { + needReset = true + break + } + } + if (newValue[0] != oldValue[0]) { + this.page.current = this.pageCurrent + } + this.page.size = this.pageSize + + this.onPropsChange() + }) + this._treeData = [] + }, + methods: { + onPropsChange() { + this._treeData = [] + }, + getCommand(options = {}) { + /* eslint-disable no-undef */ + let db = uniCloud.database(this.spaceInfo) + + const action = options.action || this.action + if (action) { + db = db.action(action) + } + + const collection = options.collection || this.collection + db = db.collection(collection) + + const where = options.where || this.where + if (!(!where || !Object.keys(where).length)) { + db = db.where(where) + } + + const field = options.field || this.field + if (field) { + db = db.field(field) + } + + const orderby = options.orderby || this.orderby + if (orderby) { + db = db.orderBy(orderby) + } + + const current = options.pageCurrent !== undefined ? options.pageCurrent : this.page.current + const size = options.pageSize !== undefined ? options.pageSize : this.page.size + const getCount = options.getcount !== undefined ? options.getcount : this.getcount + const getTree = options.gettree !== undefined ? options.gettree : this.gettree + + const getOptions = { + getCount, + getTree + } + if (options.getTreePath) { + getOptions.getTreePath = options.getTreePath + } + + db = db.skip(size * (current - 1)).limit(size).get(getOptions) + + return db + }, + getNodeData(callback) { + if (this.loading) { + return + } + this.loading = true + this.getCommand({ + field: this.postField, + where: this._pathWhere() + }).then((res) => { + this.loading = false + this.selected = res.result.data + callback && callback() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + getTreePath(callback) { + if (this.loading) { + return + } + this.loading = true + + this.getCommand({ + field: this.postField, + getTreePath: { + startWith: `${this.selfField}=='${this.dataValue}'` + } + }).then((res) => { + this.loading = false + let treePath = [] + this._extractTreePath(res.result.data, treePath) + this.selected = treePath + callback && callback() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + loadData() { + if (this.isLocaldata) { + this._processLocalData() + return + } + + if (this.dataValue != null) { + this._loadNodeData((data) => { + this._treeData = data + this._updateBindData() + this._updateSelected() + }) + return + } + + if (this.stepSearh) { + this._loadNodeData((data) => { + this._treeData = data + this._updateBindData() + }) + } else { + this._loadAllData((data) => { + this._treeData = [] + this._extractTree(data, this._treeData, null) + this._updateBindData() + }) + } + }, + _loadAllData(callback) { + if (this.loading) { + return + } + this.loading = true + + this.getCommand({ + field: this.postField, + gettree: true, + startwith: `${this.selfField}=='${this.dataValue}'` + }).then((res) => { + this.loading = false + callback(res.result.data) + this.onDataChange() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + _loadNodeData(callback, pw) { + if (this.loading) { + return + } + this.loading = true + + this.getCommand({ + field: this.postField, + where: pw || this._postWhere(), + pageSize: 500 + }).then((res) => { + this.loading = false + callback(res.result.data) + this.onDataChange() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + _pathWhere() { + let result = [] + let where_field = this._getParentNameByField(); + if (where_field) { + result.push(`${where_field} == '${this.dataValue}'`) + } + + if (this.where) { + return `(${this.where}) && (${result.join(' || ')})` + } + + return result.join(' || ') + }, + _postWhere() { + let result = [] + let selected = this.selected + let parentField = this.parentField + if (parentField) { + result.push(`${parentField} == null || ${parentField} == ""`) + } + if (selected.length) { + for (var i = 0; i < selected.length - 1; i++) { + result.push(`${parentField} == '${selected[i].value}'`) + } + } + + let where = [] + if (this.where) { + where.push(`(${this.where})`) + } + if (result.length) { + where.push(`(${result.join(' || ')})`) + } + + return where.join(' && ') + }, + _nodeWhere() { + let result = [] + let selected = this.selected + if (selected.length) { + result.push(`${this.parentField} == '${selected[selected.length - 1].value}'`) + } + + if (this.where) { + return `(${this.where}) && (${result.join(' || ')})` + } + + return result.join(' || ') + }, + _getParentNameByField() { + const fields = this.field.split(','); + let where_field = null; + for (let i = 0; i < fields.length; i++) { + const items = fields[i].split('as'); + if (items.length < 2) { + continue; + } + if (items[1].trim() === 'value') { + where_field = items[0].trim(); + break; + } + } + return where_field + }, + _isTreeView() { + return (this.parentField && this.selfField) + }, + _updateSelected() { + var dl = this.dataList + var sl = this.selected + let textField = this.map.text + let valueField = this.map.value + for (var i = 0; i < sl.length; i++) { + var value = sl[i].value + var dl2 = dl[i] + for (var j = 0; j < dl2.length; j++) { + var item2 = dl2[j] + if (item2[valueField] === value) { + sl[i].text = item2[textField] + break + } + } + } + }, + _updateBindData(node) { + const { + dataList, + hasNodes + } = this._filterData(this._treeData, this.selected) + + let isleaf = this._stepSearh === false && !hasNodes + + if (node) { + node.isleaf = isleaf + } + + this.dataList = dataList + this.selectedIndex = dataList.length - 1 + + if (!isleaf && this.selected.length < dataList.length) { + this.selected.push({ + value: null, + text: "请选择" + }) + } + + return { + isleaf, + hasNodes + } + }, + _filterData(data, paths) { + let dataList = [] + let hasNodes = true + + dataList.push(data.filter((item) => { + return (item.parent_value === null || item.parent_value === undefined || item.parent_value === '') + })) + for (let i = 0; i < paths.length; i++) { + var value = paths[i].value + var nodes = data.filter((item) => { + return item.parent_value === value + }) + + if (nodes.length) { + dataList.push(nodes) + } else { + hasNodes = false + } + } + + return { + dataList, + hasNodes + } + }, + _extractTree(nodes, result, parent_value) { + let list = result || [] + let valueField = this.map.value + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i] + + let child = {} + for (let key in node) { + if (key !== 'children') { + child[key] = node[key] + } + } + if (parent_value !== null && parent_value !== undefined && parent_value !== '') { + child.parent_value = parent_value + } + result.push(child) + + let children = node.children + if (children) { + this._extractTree(children, result, node[valueField]) + } + } + }, + _extractTreePath(nodes, result) { + let list = result || [] + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i] + + let child = {} + for (let key in node) { + if (key !== 'children') { + child[key] = node[key] + } + } + result.push(child) + + let children = node.children + if (children) { + this._extractTreePath(children, result) + } + } + }, + _findNodePath(key, nodes, path = []) { + let textField = this.map.text + let valueField = this.map.value + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i] + let children = node.children + let text = node[textField] + let value = node[valueField] + + path.push({ + value, + text + }) + + if (value === key) { + return path + } + + if (children) { + const p = this._findNodePath(key, children, path) + if (p.length) { + return p + } + } + + path.pop() + } + return [] + }, + _processLocalData() { + this._treeData = [] + this._extractTree(this.localdata, this._treeData) + + var inputValue = this.dataValue + if (inputValue === undefined) { + return + } + + if (Array.isArray(inputValue)) { + inputValue = inputValue[inputValue.length - 1] + if (typeof inputValue === 'object' && inputValue[this.map.value]) { + inputValue = inputValue[this.map.value] + } + } + + this.selected = this._findNodePath(inputValue, this.localdata) + } + } +} diff --git a/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue new file mode 100644 index 0000000..e180301 --- /dev/null +++ b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue @@ -0,0 +1,333 @@ + + + + diff --git a/uni_modules/uni-data-picker/package.json b/uni_modules/uni-data-picker/package.json new file mode 100644 index 0000000..ab4029e --- /dev/null +++ b/uni_modules/uni-data-picker/package.json @@ -0,0 +1,92 @@ +{ + "id": "uni-data-picker", + "displayName": "uni-data-picker 数据驱动的picker选择器", + "version": "1.0.4", + "description": "单列、多列级联选择器,常用于省市区城市选择、公司部门选择、多级分类等场景", + "keywords": [ + "uni-ui", + "uniui", + "picker", + "级联", + "省市区", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-load-more", + "uni-icons", + "uni-scss" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-data-picker/readme.md b/uni_modules/uni-data-picker/readme.md new file mode 100644 index 0000000..6cda224 --- /dev/null +++ b/uni_modules/uni-data-picker/readme.md @@ -0,0 +1,22 @@ +## DataPicker 级联选择 +> **组件名:uni-data-picker** +> 代码块: `uDataPicker` +> 关联组件:`uni-data-pickerview`、`uni-load-more`。 + + +`` 是一个选择类[datacom组件](https://uniapp.dcloud.net.cn/component/datacom)。 + +支持单列、和多列级联选择。列数没有限制,如果屏幕显示不全,顶部tab区域会左右滚动。 + +候选数据支持一次性加载完毕,也支持懒加载,比如示例图中,选择了“北京”后,动态加载北京的区县数据。 + +`` 组件尤其适用于地址选择、分类选择等选择类。 + +`` 支持本地数据、云端静态数据(json),uniCloud云数据库数据。 + +`` 可以通过JQL直连uniCloud云数据库,配套[DB Schema](https://uniapp.dcloud.net.cn/uniCloud/schema),可在schema2code中自动生成前端页面,还支持服务器端校验。 + +在uniCloud数据表中新建表“uni-id-address”和“opendb-city-china”,这2个表的schema自带foreignKey关联。在“uni-id-address”表的表结构页面使用schema2code生成前端页面,会自动生成地址管理的维护页面,自动从“opendb-city-china”表包含的中国所有省市区信息里选择地址。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-picker) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-data-select/changelog.md b/uni_modules/uni-data-select/changelog.md new file mode 100644 index 0000000..957824e --- /dev/null +++ b/uni_modules/uni-data-select/changelog.md @@ -0,0 +1,4 @@ +## 0.1.1(2022-05-07) +- 新增 记住上次的选项(仅 collection 存在时有效) +## 0.1.0(2022-04-22) +- 初始化 diff --git a/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue b/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue new file mode 100644 index 0000000..152b605 --- /dev/null +++ b/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue @@ -0,0 +1,368 @@ + + + + + diff --git a/uni_modules/uni-data-select/package.json b/uni_modules/uni-data-select/package.json new file mode 100644 index 0000000..b3344ff --- /dev/null +++ b/uni_modules/uni-data-select/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-data-select", + "displayName": "uni-data-select 下拉框选择器", + "version": "0.1.1", + "description": "通过数据驱动的下拉框选择器", + "keywords": [ + "uni-ui", + "select", + "uni-data-select", + "下拉框", + "下拉选" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.1" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-load-more"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "u", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-data-select/readme.md b/uni_modules/uni-data-select/readme.md new file mode 100644 index 0000000..8b59e4a --- /dev/null +++ b/uni_modules/uni-data-select/readme.md @@ -0,0 +1,8 @@ +## Badge 数字角标 +> **组件名:uni-data-select** +> 代码块: `uDataSelect` + +数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景, + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-select) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-dateformat/changelog.md b/uni_modules/uni-dateformat/changelog.md new file mode 100644 index 0000000..d551d7b --- /dev/null +++ b/uni_modules/uni-dateformat/changelog.md @@ -0,0 +1,10 @@ +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-dateformat](https://uniapp.dcloud.io/component/uniui/uni-dateformat) +## 0.0.5(2021-07-08) +- 调整 默认时间不再是当前时间,而是显示'-'字符 +## 0.0.4(2021-05-12) +- 新增 组件示例地址 +## 0.0.3(2021-02-04) +- 调整为uni_modules目录规范 +- 修复 iOS 平台日期格式化出错的问题 diff --git a/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js b/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js new file mode 100644 index 0000000..e00d559 --- /dev/null +++ b/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js @@ -0,0 +1,200 @@ +// yyyy-MM-dd hh:mm:ss.SSS 所有支持的类型 +function pad(str, length = 2) { + str += '' + while (str.length < length) { + str = '0' + str + } + return str.slice(-length) +} + +const parser = { + yyyy: (dateObj) => { + return pad(dateObj.year, 4) + }, + yy: (dateObj) => { + return pad(dateObj.year) + }, + MM: (dateObj) => { + return pad(dateObj.month) + }, + M: (dateObj) => { + return dateObj.month + }, + dd: (dateObj) => { + return pad(dateObj.day) + }, + d: (dateObj) => { + return dateObj.day + }, + hh: (dateObj) => { + return pad(dateObj.hour) + }, + h: (dateObj) => { + return dateObj.hour + }, + mm: (dateObj) => { + return pad(dateObj.minute) + }, + m: (dateObj) => { + return dateObj.minute + }, + ss: (dateObj) => { + return pad(dateObj.second) + }, + s: (dateObj) => { + return dateObj.second + }, + SSS: (dateObj) => { + return pad(dateObj.millisecond, 3) + }, + S: (dateObj) => { + return dateObj.millisecond + }, +} + +// 这都n年了iOS依然不认识2020-12-12,需要转换为2020/12/12 +function getDate(time) { + if (time instanceof Date) { + return time + } + switch (typeof time) { + case 'string': + { + // 2020-12-12T12:12:12.000Z、2020-12-12T12:12:12.000 + if (time.indexOf('T') > -1) { + return new Date(time) + } + return new Date(time.replace(/-/g, '/')) + } + default: + return new Date(time) + } +} + +export function formatDate(date, format = 'yyyy/MM/dd hh:mm:ss') { + if (!date && date !== 0) { + return '' + } + date = getDate(date) + const dateObj = { + year: date.getFullYear(), + month: date.getMonth() + 1, + day: date.getDate(), + hour: date.getHours(), + minute: date.getMinutes(), + second: date.getSeconds(), + millisecond: date.getMilliseconds() + } + const tokenRegExp = /yyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S/ + let flag = true + let result = format + while (flag) { + flag = false + result = result.replace(tokenRegExp, function(matched) { + flag = true + return parser[matched](dateObj) + }) + } + return result +} + +export function friendlyDate(time, { + locale = 'zh', + threshold = [60000, 3600000], + format = 'yyyy/MM/dd hh:mm:ss' +}) { + if (time === '-') { + return time + } + if (!time && time !== 0) { + return '' + } + const localeText = { + zh: { + year: '年', + month: '月', + day: '天', + hour: '小时', + minute: '分钟', + second: '秒', + ago: '前', + later: '后', + justNow: '刚刚', + soon: '马上', + template: '{num}{unit}{suffix}' + }, + en: { + year: 'year', + month: 'month', + day: 'day', + hour: 'hour', + minute: 'minute', + second: 'second', + ago: 'ago', + later: 'later', + justNow: 'just now', + soon: 'soon', + template: '{num} {unit} {suffix}' + } + } + const text = localeText[locale] || localeText.zh + let date = getDate(time) + let ms = date.getTime() - Date.now() + let absMs = Math.abs(ms) + if (absMs < threshold[0]) { + return ms < 0 ? text.justNow : text.soon + } + if (absMs >= threshold[1]) { + return formatDate(date, format) + } + let num + let unit + let suffix = text.later + if (ms < 0) { + suffix = text.ago + ms = -ms + } + const seconds = Math.floor((ms) / 1000) + const minutes = Math.floor(seconds / 60) + const hours = Math.floor(minutes / 60) + const days = Math.floor(hours / 24) + const months = Math.floor(days / 30) + const years = Math.floor(months / 12) + switch (true) { + case years > 0: + num = years + unit = text.year + break + case months > 0: + num = months + unit = text.month + break + case days > 0: + num = days + unit = text.day + break + case hours > 0: + num = hours + unit = text.hour + break + case minutes > 0: + num = minutes + unit = text.minute + break + default: + num = seconds + unit = text.second + break + } + + if (locale === 'en') { + if (num === 1) { + num = 'a' + } else { + unit += 's' + } + } + + return text.template.replace(/{\s*num\s*}/g, num + '').replace(/{\s*unit\s*}/g, unit).replace(/{\s*suffix\s*}/g, + suffix) +} diff --git a/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue b/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue new file mode 100644 index 0000000..c5ed030 --- /dev/null +++ b/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/uni_modules/uni-dateformat/package.json b/uni_modules/uni-dateformat/package.json new file mode 100644 index 0000000..786a670 --- /dev/null +++ b/uni_modules/uni-dateformat/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-dateformat", + "displayName": "uni-dateformat 日期格式化", + "version": "1.0.0", + "description": "日期格式化组件,可以将日期格式化为1分钟前、刚刚等形式", + "keywords": [ + "uni-ui", + "uniui", + "日期格式化", + "时间格式化", + "格式化时间", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-dateformat/readme.md b/uni_modules/uni-dateformat/readme.md new file mode 100644 index 0000000..37ddb6e --- /dev/null +++ b/uni_modules/uni-dateformat/readme.md @@ -0,0 +1,11 @@ + + +### DateFormat 日期格式化 +> **组件名:uni-dateformat** +> 代码块: `uDateformat` + + +日期格式化组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-dateformat) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/changelog.md b/uni_modules/uni-datetime-picker/changelog.md new file mode 100644 index 0000000..9611a30 --- /dev/null +++ b/uni_modules/uni-datetime-picker/changelog.md @@ -0,0 +1,89 @@ +## 2.2.4(2022-03-31) +- 修复 Vue3 下动态赋值,单选类型未响应的 bug +## 2.2.3(2022-03-28) +- 修复 Vue3 下动态赋值未响应的 bug +## 2.2.2(2021-12-10) +- 修复 clear-icon 属性在小程序平台不生效的 bug +## 2.2.1(2021-12-10) +- 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的 bug +## 2.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-datetime-picker](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker) +## 2.1.5(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 2.1.4(2021-09-10) +- 修复 hide-second 在移动端的 bug +- 修复 单选赋默认值时,赋值日期未高亮的 bug +- 修复 赋默认值时,移动端未正确显示时间的 bug +## 2.1.3(2021-09-09) +- 新增 hide-second 属性,支持只使用时分,隐藏秒 +## 2.1.2(2021-09-03) +- 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次 +- 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法 +- 优化 调整字号大小,美化日历界面 +- 修复 因国际化导致的 placeholder 失效的 bug +## 2.1.1(2021-08-24) +- 新增 支持国际化 +- 优化 范围选择器在 pc 端过宽的问题 +## 2.1.0(2021-08-09) +- 新增 适配 vue3 +## 2.0.19(2021-08-09) +- 新增 支持作为 uni-forms 子组件相关功能 +- 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug +## 2.0.18(2021-08-05) +- 修复 type 属性动态赋值无效的 bug +- 修复 ‘确认’按钮被 tabbar 遮盖 bug +- 修复 组件未赋值时范围选左、右日历相同的 bug +## 2.0.17(2021-08-04) +- 修复 范围选未正确显示当前值的 bug +- 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug +## 2.0.16(2021-07-21) +- 新增 return-type 属性支持返回 date 日期对象 +## 2.0.15(2021-07-14) +- 修复 单选日期类型,初始赋值后不在当前日历的 bug +- 新增 clearIcon 属性,显示框的清空按钮可配置显示隐藏(仅 pc 有效) +- 优化 移动端移除显示框的清空按钮,无实际用途 +## 2.0.14(2021-07-14) +- 修复 组件赋值为空,界面未更新的 bug +- 修复 start 和 end 不能动态赋值的 bug +- 修复 范围选类型,用户选择后再次选择右侧日历(结束日期)显示不正确的 bug +## 2.0.13(2021-07-08) +- 修复 范围选择不能动态赋值的 bug +## 2.0.12(2021-07-08) +- 修复 范围选择的初始时间在一个月内时,造成无法选择的bug +## 2.0.11(2021-07-08) +- 优化 弹出层在超出视窗边缘定位不准确的问题 +## 2.0.10(2021-07-08) +- 修复 范围起始点样式的背景色与今日样式的字体前景色融合,导致日期字体看不清的 bug +- 优化 弹出层在超出视窗边缘被遮盖的问题 +## 2.0.9(2021-07-07) +- 新增 maskClick 事件 +- 修复 特殊情况日历 rpx 布局错误的 bug,rpx -> px +- 修复 范围选择时清空返回值不合理的bug,['', ''] -> [] +## 2.0.8(2021-07-07) +- 新增 日期时间显示框支持插槽 +## 2.0.7(2021-07-01) +- 优化 添加 uni-icons 依赖 +## 2.0.6(2021-05-22) +- 修复 图标在小程序上不显示的 bug +- 优化 重命名引用组件,避免潜在组件命名冲突 +## 2.0.5(2021-05-20) +- 优化 代码目录扁平化 +## 2.0.4(2021-05-12) +- 新增 组件示例地址 +## 2.0.3(2021-05-10) +- 修复 ios 下不识别 '-' 日期格式的 bug +- 优化 pc 下弹出层添加边框和阴影 +## 2.0.2(2021-05-08) +- 修复 在 admin 中获取弹出层定位错误的bug +## 2.0.1(2021-05-08) +- 修复 type 属性向下兼容,默认值从 date 变更为 datetime +## 2.0.0(2021-04-30) +- 支持日历形式的日期+时间的范围选择 + > 注意:此版本不向后兼容,不再支持单独时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker) +## 1.0.6(2021-03-18) +- 新增 hide-second 属性,时间支持仅选择时、分 +- 修复 选择跟显示的日期不一样的 bug +- 修复 chang事件触发2次的 bug +- 修复 分、秒 end 范围错误的 bug +- 优化 更好的 nvue 适配 diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue new file mode 100644 index 0000000..1c95c68 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue new file mode 100644 index 0000000..548849d --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue @@ -0,0 +1,898 @@ + + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json new file mode 100644 index 0000000..75b3754 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json @@ -0,0 +1,19 @@ +{ + "uni-datetime-picker.selectDate": "select date", + "uni-datetime-picker.selectTime": "select time", + "uni-datetime-picker.selectDateTime": "select datetime", + "uni-datetime-picker.startDate": "start date", + "uni-datetime-picker.endDate": "end date", + "uni-datetime-picker.startTime": "start time", + "uni-datetime-picker.endTime": "end time", + "uni-datetime-picker.ok": "ok", + "uni-datetime-picker.clear": "clear", + "uni-datetime-picker.cancel": "cancel", + "uni-calender.MON": "MON", + "uni-calender.TUE": "TUE", + "uni-calender.WED": "WED", + "uni-calender.THU": "THU", + "uni-calender.FRI": "FRI", + "uni-calender.SAT": "SAT", + "uni-calender.SUN": "SUN" +} diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js new file mode 100644 index 0000000..fa8f0f3 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json new file mode 100644 index 0000000..1a885e4 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json @@ -0,0 +1,19 @@ +{ + "uni-datetime-picker.selectDate": "选择日期", + "uni-datetime-picker.selectTime": "选择时间", + "uni-datetime-picker.selectDateTime": "选择日期时间", + "uni-datetime-picker.startDate": "开始日期", + "uni-datetime-picker.endDate": "结束日期", + "uni-datetime-picker.startTime": "开始时间", + "uni-datetime-picker.endTime": "结束时间", + "uni-datetime-picker.ok": "确定", + "uni-datetime-picker.clear": "清除", + "uni-datetime-picker.cancel": "取消", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六" +} diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json new file mode 100644 index 0000000..de50ff0 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json @@ -0,0 +1,19 @@ +{ + "uni-datetime-picker.selectDate": "選擇日期", + "uni-datetime-picker.selectTime": "選擇時間", + "uni-datetime-picker.selectDateTime": "選擇日期時間", + "uni-datetime-picker.startDate": "開始日期", + "uni-datetime-picker.endDate": "結束日期", + "uni-datetime-picker.startTime": "開始时间", + "uni-datetime-picker.endTime": "結束时间", + "uni-datetime-picker.ok": "確定", + "uni-datetime-picker.clear": "清除", + "uni-datetime-picker.cancel": "取消", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六" +} diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js new file mode 100644 index 0000000..9601aba --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + this.$once('hook:beforeDestroy', () => { + document.removeEventListener('keyup', listener) + }) + }, + render: () => {} +} +// #endif \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue new file mode 100644 index 0000000..9e799a4 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue @@ -0,0 +1,927 @@ + + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue new file mode 100644 index 0000000..987bba6 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue @@ -0,0 +1,997 @@ + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js new file mode 100644 index 0000000..882f006 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js @@ -0,0 +1,410 @@ +class Calendar { + constructor({ + date, + selected, + startDate, + endDate, + range, + // multipleStatus + } = {}) { + // 当前日期 + this.date = this.getDate(new Date()) // 当前初入日期 + // 打点信息 + this.selected = selected || []; + // 范围开始 + this.startDate = startDate + // 范围结束 + this.endDate = endDate + this.range = range + // 多选状态 + this.cleanMultipleStatus() + // 每周日期 + this.weeks = {} + // this._getWeek(this.date.fullDate) + // this.multipleStatus = multipleStatus + this.lastHover = false + } + /** + * 设置日期 + * @param {Object} date + */ + setDate(date) { + this.selectDate = this.getDate(date) + this._getWeek(this.selectDate.fullDate) + } + + /** + * 清理多选状态 + */ + cleanMultipleStatus() { + this.multipleStatus = { + before: '', + after: '', + data: [] + } + } + + /** + * 重置开始日期 + */ + resetSatrtDate(startDate) { + // 范围开始 + this.startDate = startDate + + } + + /** + * 重置结束日期 + */ + resetEndDate(endDate) { + // 范围结束 + this.endDate = endDate + } + + /** + * 获取任意时间 + */ + getDate(date, AddDayCount = 0, str = 'day') { + if (!date) { + date = new Date() + } + if (typeof date !== 'object') { + date = date.replace(/-/g, '/') + } + const dd = new Date(date) + switch (str) { + case 'day': + dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期 + break + case 'month': + if (dd.getDate() === 31) { + dd.setDate(dd.getDate() + AddDayCount) + } else { + dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期 + } + break + case 'year': + dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期 + break + } + const y = dd.getFullYear() + const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0 + const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0 + return { + fullDate: y + '-' + m + '-' + d, + year: y, + month: m, + date: d, + day: dd.getDay() + } + } + + + /** + * 获取上月剩余天数 + */ + _getLastMonthDays(firstDay, full) { + let dateArr = [] + for (let i = firstDay; i > 0; i--) { + const beforeDate = new Date(full.year, full.month - 1, -i + 1).getDate() + dateArr.push({ + date: beforeDate, + month: full.month - 1, + disable: true + }) + } + return dateArr + } + /** + * 获取本月天数 + */ + _currentMonthDys(dateData, full) { + let dateArr = [] + let fullDate = this.date.fullDate + for (let i = 1; i <= dateData; i++) { + let isinfo = false + let nowDate = full.year + '-' + (full.month < 10 ? + full.month : full.month) + '-' + (i < 10 ? + '0' + i : i) + // 是否今天 + let isDay = fullDate === nowDate + // 获取打点信息 + let info = this.selected && this.selected.find((item) => { + if (this.dateEqual(nowDate, item.date)) { + return item + } + }) + + // 日期禁用 + let disableBefore = true + let disableAfter = true + if (this.startDate) { + // let dateCompBefore = this.dateCompare(this.startDate, fullDate) + // disableBefore = this.dateCompare(dateCompBefore ? this.startDate : fullDate, nowDate) + disableBefore = this.dateCompare(this.startDate, nowDate) + } + + if (this.endDate) { + // let dateCompAfter = this.dateCompare(fullDate, this.endDate) + // disableAfter = this.dateCompare(nowDate, dateCompAfter ? this.endDate : fullDate) + disableAfter = this.dateCompare(nowDate, this.endDate) + } + let multiples = this.multipleStatus.data + let checked = false + let multiplesStatus = -1 + if (this.range) { + if (multiples) { + multiplesStatus = multiples.findIndex((item) => { + return this.dateEqual(item, nowDate) + }) + } + if (multiplesStatus !== -1) { + checked = true + } + } + let data = { + fullDate: nowDate, + year: full.year, + date: i, + multiple: this.range ? checked : false, + beforeMultiple: this.isLogicBefore(nowDate, this.multipleStatus.before, this.multipleStatus.after), + afterMultiple: this.isLogicAfter(nowDate, this.multipleStatus.before, this.multipleStatus.after), + month: full.month, + disable: !(disableBefore && disableAfter), + isDay, + userChecked: false + } + if (info) { + data.extraInfo = info + } + + dateArr.push(data) + } + return dateArr + } + /** + * 获取下月天数 + */ + _getNextMonthDays(surplus, full) { + let dateArr = [] + for (let i = 1; i < surplus + 1; i++) { + dateArr.push({ + date: i, + month: Number(full.month) + 1, + disable: true + }) + } + return dateArr + } + + /** + * 获取当前日期详情 + * @param {Object} date + */ + getInfo(date) { + if (!date) { + date = new Date() + } + const dateInfo = this.canlender.find(item => item.fullDate === this.getDate(date).fullDate) + return dateInfo + } + + /** + * 比较时间大小 + */ + dateCompare(startDate, endDate) { + // 计算截止时间 + startDate = new Date(startDate.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + endDate = new Date(endDate.replace('-', '/').replace('-', '/')) + if (startDate <= endDate) { + return true + } else { + return false + } + } + + /** + * 比较时间是否相等 + */ + dateEqual(before, after) { + // 计算截止时间 + before = new Date(before.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + after = new Date(after.replace('-', '/').replace('-', '/')) + if (before.getTime() - after.getTime() === 0) { + return true + } else { + return false + } + } + + /** + * 比较真实起始日期 + */ + + isLogicBefore(currentDay, before, after) { + let logicBefore = before + if (before && after) { + logicBefore = this.dateCompare(before, after) ? before : after + } + return this.dateEqual(logicBefore, currentDay) + } + + isLogicAfter(currentDay, before, after) { + let logicAfter = after + if (before && after) { + logicAfter = this.dateCompare(before, after) ? after : before + } + return this.dateEqual(logicAfter, currentDay) + } + + /** + * 获取日期范围内所有日期 + * @param {Object} begin + * @param {Object} end + */ + geDateAll(begin, end) { + var arr = [] + var ab = begin.split('-') + var ae = end.split('-') + var db = new Date() + db.setFullYear(ab[0], ab[1] - 1, ab[2]) + var de = new Date() + de.setFullYear(ae[0], ae[1] - 1, ae[2]) + var unixDb = db.getTime() - 24 * 60 * 60 * 1000 + var unixDe = de.getTime() - 24 * 60 * 60 * 1000 + for (var k = unixDb; k <= unixDe;) { + k = k + 24 * 60 * 60 * 1000 + arr.push(this.getDate(new Date(parseInt(k))).fullDate) + } + return arr + } + + /** + * 获取多选状态 + */ + setMultiple(fullDate) { + let { + before, + after + } = this.multipleStatus + if (!this.range) return + if (before && after) { + if (!this.lastHover) { + this.lastHover = true + return + } + this.multipleStatus.before = fullDate + this.multipleStatus.after = '' + this.multipleStatus.data = [] + this.multipleStatus.fulldate = '' + this.lastHover = false + } else { + if (!before) { + this.multipleStatus.before = fullDate + this.lastHover = false + } else { + this.multipleStatus.after = fullDate + if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus + .after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus + .before); + } + this.lastHover = true + } + } + this._getWeek(fullDate) + } + + /** + * 鼠标 hover 更新多选状态 + */ + setHoverMultiple(fullDate) { + let { + before, + after + } = this.multipleStatus + + if (!this.range) return + if (this.lastHover) return + + if (!before) { + this.multipleStatus.before = fullDate + } else { + this.multipleStatus.after = fullDate + if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before); + } + } + this._getWeek(fullDate) + } + + /** + * 更新默认值多选状态 + */ + setDefaultMultiple(before, after) { + this.multipleStatus.before = before + this.multipleStatus.after = after + if (before && after) { + if (this.dateCompare(before, after)) { + this.multipleStatus.data = this.geDateAll(before, after); + this._getWeek(after) + } else { + this.multipleStatus.data = this.geDateAll(after, before); + this._getWeek(before) + } + } + } + + /** + * 获取每周数据 + * @param {Object} dateData + */ + _getWeek(dateData) { + const { + fullDate, + year, + month, + date, + day + } = this.getDate(dateData) + let firstDay = new Date(year, month - 1, 1).getDay() + let currentDay = new Date(year, month, 0).getDate() + let dates = { + lastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), // 上个月末尾几天 + currentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), // 本月天数 + nextMonthDays: [], // 下个月开始几天 + weeks: [] + } + let canlender = [] + const surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length) + dates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData)) + canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays) + let weeks = {} + // 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天 + for (let i = 0; i < canlender.length; i++) { + if (i % 7 === 0) { + weeks[parseInt(i / 7)] = new Array(7) + } + weeks[parseInt(i / 7)][i % 7] = canlender[i] + } + this.canlender = canlender + this.weeks = weeks + } + + //静态方法 + // static init(date) { + // if (!this.instance) { + // this.instance = new Calendar(date); + // } + // return this.instance; + // } +} + + +export default Calendar diff --git a/uni_modules/uni-datetime-picker/package.json b/uni_modules/uni-datetime-picker/package.json new file mode 100644 index 0000000..0e44103 --- /dev/null +++ b/uni_modules/uni-datetime-picker/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-datetime-picker", + "displayName": "uni-datetime-picker 日期选择器", + "version": "2.2.4", + "description": "uni-datetime-picker 日期时间选择器,支持日历,支持范围选择", + "keywords": [ + "uni-datetime-picker", + "uni-ui", + "uniui", + "日期时间选择器", + "日期时间" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-datetime-picker/readme.md b/uni_modules/uni-datetime-picker/readme.md new file mode 100644 index 0000000..162fbef --- /dev/null +++ b/uni_modules/uni-datetime-picker/readme.md @@ -0,0 +1,21 @@ + + +> `重要通知:组件升级更新 2.0.0 后,支持日期+时间范围选择,组件 ui 将使用日历选择日期,ui 变化较大,同时支持 PC 和 移动端。此版本不向后兼容,不再支持单独的时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker)。若仍需使用旧版本,可在插件市场下载*非uni_modules版本*,旧版本将不再维护` + +## DatetimePicker 时间选择器 + +> **组件名:uni-datetime-picker** +> 代码块: `uDatetimePicker` + + +该组件的优势是,支持**时间戳**输入和输出(起始时间、终止时间也支持时间戳),可**同时选择**日期和时间。 + +若只是需要单独选择日期和时间,不需要时间戳输入和输出,可使用原生的 picker 组件。 + +**_点击 picker 默认值规则:_** + +- 若设置初始值 value, 会显示在 picker 显示框中 +- 若无初始值 value,则初始值 value 为当前本地时间 Date.now(), 但不会显示在 picker 显示框中 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-drawer/changelog.md b/uni_modules/uni-drawer/changelog.md new file mode 100644 index 0000000..6d2488c --- /dev/null +++ b/uni_modules/uni-drawer/changelog.md @@ -0,0 +1,13 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中个别scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-drawer](https://uniapp.dcloud.io/component/uniui/uni-drawer) +## 1.1.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-drawer/components/uni-drawer/keypress.js b/uni_modules/uni-drawer/components/uni-drawer/keypress.js new file mode 100644 index 0000000..62dda46 --- /dev/null +++ b/uni_modules/uni-drawer/components/uni-drawer/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + // this.$once('hook:beforeDestroy', () => { + // document.removeEventListener('keyup', listener) + // }) + }, + render: () => {} +} +// #endif diff --git a/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue b/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue new file mode 100644 index 0000000..03dd271 --- /dev/null +++ b/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue @@ -0,0 +1,183 @@ + + + + + diff --git a/uni_modules/uni-drawer/package.json b/uni_modules/uni-drawer/package.json new file mode 100644 index 0000000..dd056e4 --- /dev/null +++ b/uni_modules/uni-drawer/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-drawer", + "displayName": "uni-drawer 抽屉", + "version": "1.2.1", + "description": "抽屉式导航,用于展示侧滑菜单,侧滑导航。", + "keywords": [ + "uni-ui", + "uniui", + "drawer", + "抽屉", + "侧滑导航" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-drawer/readme.md b/uni_modules/uni-drawer/readme.md new file mode 100644 index 0000000..dcf6e6b --- /dev/null +++ b/uni_modules/uni-drawer/readme.md @@ -0,0 +1,10 @@ + + +## Drawer 抽屉 +> **组件名:uni-drawer** +> 代码块: `uDrawer` + +抽屉侧滑菜单。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-drawer) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-easyinput/changelog.md b/uni_modules/uni-easyinput/changelog.md new file mode 100644 index 0000000..1cbe623 --- /dev/null +++ b/uni_modules/uni-easyinput/changelog.md @@ -0,0 +1,35 @@ +## 1.0.2(2022-04-12) +- 修复 默认值不生效的bug +## 1.0.1(2022-04-02) +- 修复 value不能为0的bug +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-easyinput](https://uniapp.dcloud.io/component/uniui/uni-easyinput) +## 0.1.4(2021-08-20) +- 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug +## 0.1.3(2021-08-11) +- 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +## 0.1.2(2021-07-30) +- 优化 vue3下事件警告的问题 +## 0.1.1 +- 优化 errorMessage 属性支持 Boolean 类型 +## 0.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.0.16(2021-06-29) +- 修复 confirmType 属性(仅 type="text" 生效)导致多行文本框无法换行的 bug +## 0.0.15(2021-06-21) +- 修复 passwordIcon 属性拼写错误的 bug +## 0.0.14(2021-06-18) +- 新增 passwordIcon 属性,当type=password时是否显示小眼睛图标 +- 修复 confirmType 属性不生效的问题 +## 0.0.13(2021-06-04) +- 修复 disabled 状态可清出内容的 bug +## 0.0.12(2021-05-12) +- 新增 组件示例地址 +## 0.0.11(2021-05-07) +- 修复 input-border 属性不生效的问题 +## 0.0.10(2021-04-30) +- 修复 ios 遮挡文字、显示一半的问题 +## 0.0.9(2021-02-05) +- 调整为uni_modules目录规范 +- 优化 兼容 nvue 页面 diff --git a/uni_modules/uni-easyinput/components/uni-easyinput/common.js b/uni_modules/uni-easyinput/components/uni-easyinput/common.js new file mode 100644 index 0000000..5549cc9 --- /dev/null +++ b/uni_modules/uni-easyinput/components/uni-easyinput/common.js @@ -0,0 +1,56 @@ +/** + * @desc 函数防抖 + * @param func 目标函数 + * @param wait 延迟执行毫秒数 + * @param immediate true - 立即执行, false - 延迟执行 + */ +export const debounce = function(func, wait = 1000, immediate = true) { + let timer; + console.log(1); + return function() { + console.log(123); + let context = this, + args = arguments; + if (timer) clearTimeout(timer); + if (immediate) { + let callNow = !timer; + timer = setTimeout(() => { + timer = null; + }, wait); + if (callNow) func.apply(context, args); + } else { + timer = setTimeout(() => { + func.apply(context, args); + }, wait) + } + } +} +/** + * @desc 函数节流 + * @param func 函数 + * @param wait 延迟执行毫秒数 + * @param type 1 使用表时间戳,在时间段开始的时候触发 2 使用表定时器,在时间段结束的时候触发 + */ +export const throttle = (func, wait = 1000, type = 1) => { + let previous = 0; + let timeout; + return function() { + let context = this; + let args = arguments; + if (type === 1) { + let now = Date.now(); + + if (now - previous > wait) { + func.apply(context, args); + previous = now; + } + } else if (type === 2) { + if (!timeout) { + timeout = setTimeout(() => { + timeout = null; + func.apply(context, args) + }, wait) + } + } + } +} diff --git a/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue b/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue new file mode 100644 index 0000000..fc52882 --- /dev/null +++ b/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue @@ -0,0 +1,461 @@ + + + + + diff --git a/uni_modules/uni-easyinput/package.json b/uni_modules/uni-easyinput/package.json new file mode 100644 index 0000000..f1195b1 --- /dev/null +++ b/uni_modules/uni-easyinput/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-easyinput", + "displayName": "uni-easyinput 增强输入框", + "version": "1.0.2", + "description": "Easyinput 组件是对原生input组件的增强", + "keywords": [ + "uni-ui", + "uniui", + "input", + "uni-easyinput", + "输入框" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-easyinput/readme.md b/uni_modules/uni-easyinput/readme.md new file mode 100644 index 0000000..f1faf8f --- /dev/null +++ b/uni_modules/uni-easyinput/readme.md @@ -0,0 +1,11 @@ + + +### Easyinput 增强输入框 +> **组件名:uni-easyinput** +> 代码块: `uEasyinput` + + +easyinput 组件是对原生input组件的增强 ,是专门为配合表单组件[uni-forms](https://ext.dcloud.net.cn/plugin?id=2773)而设计的,easyinput 内置了边框,图标等,同时包含 input 所有功能 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-easyinput) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-fab/changelog.md b/uni_modules/uni-fab/changelog.md new file mode 100644 index 0000000..24e26b1 --- /dev/null +++ b/uni_modules/uni-fab/changelog.md @@ -0,0 +1,17 @@ +## 1.2.2(2021-12-29) +- 更新 组件依赖 +## 1.2.1(2021-11-19) +- 修复 阴影颜色不正确的bug +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fab](https://uniapp.dcloud.io/component/uniui/uni-fab) +## 1.1.1(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-02-05) +- 调整为uni_modules目录规范 +- 优化 按钮背景色调整 +- 优化 兼容pc端 diff --git a/uni_modules/uni-fab/components/uni-fab/uni-fab.vue b/uni_modules/uni-fab/components/uni-fab/uni-fab.vue new file mode 100644 index 0000000..6143a05 --- /dev/null +++ b/uni_modules/uni-fab/components/uni-fab/uni-fab.vue @@ -0,0 +1,475 @@ + + + + + diff --git a/uni_modules/uni-fab/package.json b/uni_modules/uni-fab/package.json new file mode 100644 index 0000000..0f27daa --- /dev/null +++ b/uni_modules/uni-fab/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-fab", + "displayName": "uni-fab 悬浮按钮", + "version": "1.2.2", + "description": "悬浮按钮 fab button ,点击可展开一个图标按钮菜单。", + "keywords": [ + "uni-ui", + "uniui", + "按钮", + "悬浮按钮", + "fab" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-icons"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-fab/readme.md b/uni_modules/uni-fab/readme.md new file mode 100644 index 0000000..9a444e8 --- /dev/null +++ b/uni_modules/uni-fab/readme.md @@ -0,0 +1,9 @@ +## Fab 悬浮按钮 +> **组件名:uni-fab** +> 代码块: `uFab` + + +点击可展开一个图形按钮菜单 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-fab) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-fav/changelog.md b/uni_modules/uni-fav/changelog.md new file mode 100644 index 0000000..4b3f8c2 --- /dev/null +++ b/uni_modules/uni-fav/changelog.md @@ -0,0 +1,17 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fav](https://uniapp.dcloud.io/component/uniui/uni-fav) +## 1.1.1(2021-08-24) +- 新增 支持国际化 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.6(2021-05-12) +- 新增 组件示例地址 +## 1.0.5(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.4(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.0.3(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.0.2(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-fav/components/uni-fav/i18n/en.json b/uni_modules/uni-fav/components/uni-fav/i18n/en.json new file mode 100644 index 0000000..b288cb0 --- /dev/null +++ b/uni_modules/uni-fav/components/uni-fav/i18n/en.json @@ -0,0 +1,4 @@ +{ + "uni-fav.collect": "collect", + "uni-fav.collected": "collected" +} diff --git a/uni_modules/uni-fav/components/uni-fav/i18n/index.js b/uni_modules/uni-fav/components/uni-fav/i18n/index.js new file mode 100644 index 0000000..fa8f0f3 --- /dev/null +++ b/uni_modules/uni-fav/components/uni-fav/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json b/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json new file mode 100644 index 0000000..41ccefb --- /dev/null +++ b/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json @@ -0,0 +1,4 @@ +{ + "uni-fav.collect": "收藏", + "uni-fav.collected": "已收藏" +} diff --git a/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json b/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json new file mode 100644 index 0000000..41ccefb --- /dev/null +++ b/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json @@ -0,0 +1,4 @@ +{ + "uni-fav.collect": "收藏", + "uni-fav.collected": "已收藏" +} diff --git a/uni_modules/uni-fav/components/uni-fav/uni-fav.vue b/uni_modules/uni-fav/components/uni-fav/uni-fav.vue new file mode 100644 index 0000000..5cb259f --- /dev/null +++ b/uni_modules/uni-fav/components/uni-fav/uni-fav.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/uni_modules/uni-fav/package.json b/uni_modules/uni-fav/package.json new file mode 100644 index 0000000..39e4f33 --- /dev/null +++ b/uni_modules/uni-fav/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-fav", + "displayName": "uni-fav 收藏按钮", + "version": "1.2.0", + "description": " Fav 收藏组件,可自定义颜色、大小。", + "keywords": [ + "fav", + "uni-ui", + "uniui", + "收藏" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-fav/readme.md b/uni_modules/uni-fav/readme.md new file mode 100644 index 0000000..4de125d --- /dev/null +++ b/uni_modules/uni-fav/readme.md @@ -0,0 +1,10 @@ + + +## Fav 收藏按钮 +> **组件名:uni-fav** +> 代码块: `uFav` + +用于收藏功能,可点击切换选中、不选中的状态。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-fav) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-file-picker/changelog.md b/uni_modules/uni-file-picker/changelog.md new file mode 100644 index 0000000..840a9e6 --- /dev/null +++ b/uni_modules/uni-file-picker/changelog.md @@ -0,0 +1,61 @@ +## 1.0.1(2021-11-23) +- 修复 参数为对象的情况下,url在某些情况显示错误的bug +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-file-picker](https://uniapp.dcloud.io/component/uniui/uni-file-picker) +## 0.2.16(2021-11-08) +- 修复 传入空对象 ,显示错误的Bug +## 0.2.15(2021-08-30) +- 修复 return-type="object" 时且存在v-model时,无法删除文件的Bug +## 0.2.14(2021-08-23) +- 新增 参数中返回 fileID 字段 +## 0.2.13(2021-08-23) +- 修复 腾讯云传入fileID 不能回显的bug +- 修复 选择图片后,不能放大的问题 +## 0.2.12(2021-08-17) +- 修复 由于 0.2.11 版本引起的不能回显图片的Bug +## 0.2.11(2021-08-16) +- 新增 clearFiles(index) 方法,可以手动删除指定文件 +- 修复 v-model 值设为 null 报错的Bug +## 0.2.10(2021-08-13) +- 修复 return-type="object" 时,无法删除文件的Bug +## 0.2.9(2021-08-03) +- 修复 auto-upload 属性失效的Bug +## 0.2.8(2021-07-31) +- 修复 fileExtname属性不指定值报错的Bug +## 0.2.7(2021-07-31) +- 修复 在某种场景下图片不回显的Bug +## 0.2.6(2021-07-30) +- 修复 return-type为object下,返回值不正确的Bug +## 0.2.5(2021-07-30) +- 修复(重要) H5 平台下如果和uni-forms组件一同使用导致页面卡死的问题 +## 0.2.3(2021-07-28) +- 优化 调整示例代码 +## 0.2.2(2021-07-27) +- 修复 vue3 下赋值错误的Bug +- 优化 h5平台下上传文件导致页面卡死的问题 +## 0.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.1.1(2021-07-02) +- 修复 sourceType 缺少默认值导致 ios 无法选择文件 +## 0.1.0(2021-06-30) +- 优化 解耦与uniCloud的强绑定关系 ,如不绑定服务空间,默认autoUpload为false且不可更改 +## 0.0.11(2021-06-30) +- 修复 由 0.0.10 版本引发的 returnType 属性失效的问题 +## 0.0.10(2021-06-29) +- 优化 文件上传后进度条消失时机 +## 0.0.9(2021-06-29) +- 修复 在uni-forms 中,删除文件 ,获取的值不对的Bug +## 0.0.8(2021-06-15) +- 修复 删除文件时无法触发 v-model 的Bug +## 0.0.7(2021-05-12) +- 新增 组件示例地址 +## 0.0.6(2021-04-09) +- 修复 选择的文件非 file-extname 字段指定的扩展名报错的Bug +## 0.0.5(2021-04-09) +- 优化 更新组件示例 +## 0.0.4(2021-04-09) +- 优化 file-extname 字段支持字符串写法,多个扩展名需要用逗号分隔 +## 0.0.3(2021-02-05) +- 调整为uni_modules目录规范 +- 修复 微信小程序不指定 fileExtname 属性选择失败的Bug diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js b/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js new file mode 100644 index 0000000..9c4af20 --- /dev/null +++ b/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js @@ -0,0 +1,224 @@ +'use strict'; + +const ERR_MSG_OK = 'chooseAndUploadFile:ok'; +const ERR_MSG_FAIL = 'chooseAndUploadFile:fail'; + +function chooseImage(opts) { + const { + count, + sizeType = ['original', 'compressed'], + sourceType = ['album', 'camera'], + extension + } = opts + return new Promise((resolve, reject) => { + uni.chooseImage({ + count, + sizeType, + sourceType, + extension, + success(res) { + resolve(normalizeChooseAndUploadFileRes(res, 'image')); + }, + fail(res) { + reject({ + errMsg: res.errMsg.replace('chooseImage:fail', ERR_MSG_FAIL), + }); + }, + }); + }); +} + +function chooseVideo(opts) { + const { + camera, + compressed, + maxDuration, + sourceType = ['album', 'camera'], + extension + } = opts; + return new Promise((resolve, reject) => { + uni.chooseVideo({ + camera, + compressed, + maxDuration, + sourceType, + extension, + success(res) { + const { + tempFilePath, + duration, + size, + height, + width + } = res; + resolve(normalizeChooseAndUploadFileRes({ + errMsg: 'chooseVideo:ok', + tempFilePaths: [tempFilePath], + tempFiles: [ + { + name: (res.tempFile && res.tempFile.name) || '', + path: tempFilePath, + size, + type: (res.tempFile && res.tempFile.type) || '', + width, + height, + duration, + fileType: 'video', + cloudPath: '', + }, ], + }, 'video')); + }, + fail(res) { + reject({ + errMsg: res.errMsg.replace('chooseVideo:fail', ERR_MSG_FAIL), + }); + }, + }); + }); +} + +function chooseAll(opts) { + const { + count, + extension + } = opts; + return new Promise((resolve, reject) => { + let chooseFile = uni.chooseFile; + if (typeof wx !== 'undefined' && + typeof wx.chooseMessageFile === 'function') { + chooseFile = wx.chooseMessageFile; + } + if (typeof chooseFile !== 'function') { + return reject({ + errMsg: ERR_MSG_FAIL + ' 请指定 type 类型,该平台仅支持选择 image 或 video。', + }); + } + chooseFile({ + type: 'all', + count, + extension, + success(res) { + resolve(normalizeChooseAndUploadFileRes(res)); + }, + fail(res) { + reject({ + errMsg: res.errMsg.replace('chooseFile:fail', ERR_MSG_FAIL), + }); + }, + }); + }); +} + +function normalizeChooseAndUploadFileRes(res, fileType) { + res.tempFiles.forEach((item, index) => { + if (!item.name) { + item.name = item.path.substring(item.path.lastIndexOf('/') + 1); + } + if (fileType) { + item.fileType = fileType; + } + item.cloudPath = + Date.now() + '_' + index + item.name.substring(item.name.lastIndexOf('.')); + }); + if (!res.tempFilePaths) { + res.tempFilePaths = res.tempFiles.map((file) => file.path); + } + return res; +} + +function uploadCloudFiles(files, max = 5, onUploadProgress) { + files = JSON.parse(JSON.stringify(files)) + const len = files.length + let count = 0 + let self = this + return new Promise(resolve => { + while (count < max) { + next() + } + + function next() { + let cur = count++ + if (cur >= len) { + !files.find(item => !item.url && !item.errMsg) && resolve(files) + return + } + const fileItem = files[cur] + const index = self.files.findIndex(v => v.uuid === fileItem.uuid) + fileItem.url = '' + delete fileItem.errMsg + + uniCloud + .uploadFile({ + filePath: fileItem.path, + cloudPath: fileItem.cloudPath, + fileType: fileItem.fileType, + onUploadProgress: res => { + res.index = index + onUploadProgress && onUploadProgress(res) + } + }) + .then(res => { + fileItem.url = res.fileID + fileItem.index = index + if (cur < len) { + next() + } + }) + .catch(res => { + fileItem.errMsg = res.errMsg || res.message + fileItem.index = index + if (cur < len) { + next() + } + }) + } + }) +} + + + + + +function uploadFiles(choosePromise, { + onChooseFile, + onUploadProgress +}) { + return choosePromise + .then((res) => { + if (onChooseFile) { + const customChooseRes = onChooseFile(res); + if (typeof customChooseRes !== 'undefined') { + return Promise.resolve(customChooseRes).then((chooseRes) => typeof chooseRes === 'undefined' ? + res : chooseRes); + } + } + return res; + }) + .then((res) => { + if (res === false) { + return { + errMsg: ERR_MSG_OK, + tempFilePaths: [], + tempFiles: [], + }; + } + return res + }) +} + +function chooseAndUploadFile(opts = { + type: 'all' +}) { + if (opts.type === 'image') { + return uploadFiles(chooseImage(opts), opts); + } + else if (opts.type === 'video') { + return uploadFiles(chooseVideo(opts), opts); + } + return uploadFiles(chooseAll(opts), opts); +} + +export { + chooseAndUploadFile, + uploadCloudFiles +}; diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue b/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue new file mode 100644 index 0000000..b667cf3 --- /dev/null +++ b/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue @@ -0,0 +1,651 @@ + + + + + diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue b/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue new file mode 100644 index 0000000..eb1840b --- /dev/null +++ b/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue @@ -0,0 +1,325 @@ + + + + + diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue b/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue new file mode 100644 index 0000000..51ace0b --- /dev/null +++ b/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/utils.js b/uni_modules/uni-file-picker/components/uni-file-picker/utils.js new file mode 100644 index 0000000..60aaa3e --- /dev/null +++ b/uni_modules/uni-file-picker/components/uni-file-picker/utils.js @@ -0,0 +1,109 @@ +/** + * 获取文件名和后缀 + * @param {String} name + */ +export const get_file_ext = (name) => { + const last_len = name.lastIndexOf('.') + const len = name.length + return { + name: name.substring(0, last_len), + ext: name.substring(last_len + 1, len) + } +} + +/** + * 获取扩展名 + * @param {Array} fileExtname + */ +export const get_extname = (fileExtname) => { + if (!Array.isArray(fileExtname)) { + let extname = fileExtname.replace(/(\[|\])/g, '') + return extname.split(',') + } else { + return fileExtname + } + return [] +} + +/** + * 获取文件和检测是否可选 + */ +export const get_files_and_is_max = (res, _extname) => { + let filePaths = [] + let files = [] + if(!_extname || _extname.length === 0){ + return { + filePaths, + files + } + } + res.tempFiles.forEach(v => { + let fileFullName = get_file_ext(v.name) + const extname = fileFullName.ext.toLowerCase() + if (_extname.indexOf(extname) !== -1) { + files.push(v) + filePaths.push(v.path) + } + }) + if (files.length !== res.tempFiles.length) { + uni.showToast({ + title: `当前选择了${res.tempFiles.length}个文件 ,${res.tempFiles.length - files.length} 个文件格式不正确`, + icon: 'none', + duration: 5000 + }) + } + + return { + filePaths, + files + } +} + + +/** + * 获取图片信息 + * @param {Object} filepath + */ +export const get_file_info = (filepath) => { + return new Promise((resolve, reject) => { + uni.getImageInfo({ + src: filepath, + success(res) { + resolve(res) + }, + fail(err) { + reject(err) + } + }) + }) +} +/** + * 获取封装数据 + */ +export const get_file_data = async (files, type = 'image') => { + // 最终需要上传数据库的数据 + let fileFullName = get_file_ext(files.name) + const extname = fileFullName.ext.toLowerCase() + let filedata = { + name: files.name, + uuid: files.uuid, + extname: extname || '', + cloudPath: files.cloudPath, + fileType: files.fileType, + url: files.path || files.path, + size: files.size, //单位是字节 + image: {}, + path: files.path, + video: {} + } + if (type === 'image') { + const imageinfo = await get_file_info(files.path) + delete filedata.video + filedata.image.width = imageinfo.width + filedata.image.height = imageinfo.height + filedata.image.location = imageinfo.path + } else { + delete filedata.image + } + return filedata +} diff --git a/uni_modules/uni-file-picker/package.json b/uni_modules/uni-file-picker/package.json new file mode 100644 index 0000000..d659bb5 --- /dev/null +++ b/uni_modules/uni-file-picker/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-file-picker", + "displayName": "uni-file-picker 文件选择上传", + "version": "1.0.1", + "description": "文件选择上传组件,可以选择图片、视频等任意文件并上传到当前绑定的服务空间", + "keywords": [ + "uni-ui", + "uniui", + "图片上传", + "文件上传" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-file-picker/readme.md b/uni_modules/uni-file-picker/readme.md new file mode 100644 index 0000000..c8399a5 --- /dev/null +++ b/uni_modules/uni-file-picker/readme.md @@ -0,0 +1,11 @@ + +## FilePicker 文件选择上传 + +> **组件名:uni-file-picker** +> 代码块: `uFilePicker` + + +文件选择上传组件,可以选择图片、视频等任意文件并上传到当前绑定的服务空间 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-file-picker) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-forms/changelog.md b/uni_modules/uni-forms/changelog.md new file mode 100644 index 0000000..26e120b --- /dev/null +++ b/uni_modules/uni-forms/changelog.md @@ -0,0 +1,60 @@ +## 1.3.2(2021-12-09) +- +## 1.3.1(2021-11-19) +- 修复 label 插槽不生效的bug +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-forms](https://uniapp.dcloud.io/component/uniui/uni-forms) +## 1.2.7(2021-08-13) +- 修复 没有添加校验规则的字段依然报错的Bug +## 1.2.6(2021-08-11) +- 修复 重置表单错误信息无法清除的问题 +## 1.2.5(2021-08-11) +- 优化 组件文档 +## 1.2.4(2021-08-11) +- 修复 表单验证只生效一次的问题 +## 1.2.3(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.2.2(2021-07-26) +- 修复 vue2 下条件编译导致destroyed生命周期失效的Bug +- 修复 1.2.1 引起的示例在小程序平台报错的Bug +## 1.2.1(2021-07-22) +- 修复 动态校验表单,默认值为空的情况下校验失效的Bug +- 修复 不指定name属性时,运行报错的Bug +- 优化 label默认宽度从65调整至70,使required为true且四字时不换行 +- 优化 组件示例,新增动态校验示例代码 +- 优化 组件文档,使用方式更清晰 +## 1.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.2(2021-06-25) +- 修复 pattern 属性在微信小程序平台无效的问题 +## 1.1.1(2021-06-22) +- 修复 validate-trigger属性为submit且err-show-type属性为toast时不能弹出的Bug +## 1.1.0(2021-06-22) +- 修复 只写setRules方法而导致校验不生效的Bug +- 修复 由上个办法引发的错误提示文字错位的Bug +## 1.0.48(2021-06-21) +- 修复 不设置 label 属性 ,无法设置label插槽的问题 +## 1.0.47(2021-06-21) +- 修复 不设置label属性,label-width属性不生效的bug +- 修复 setRules 方法与rules属性冲突的问题 +## 1.0.46(2021-06-04) +- 修复 动态删减数据导致报错的问题 +## 1.0.45(2021-06-04) +- 新增 modelValue 属性 ,value 即将废弃 +## 1.0.44(2021-06-02) +- 新增 uni-forms-item 可以设置单独的 rules +- 新增 validate 事件增加 keepitem 参数,可以选择那些字段不过滤 +- 优化 submit 事件重命名为 validate +## 1.0.43(2021-05-12) +- 新增 组件示例地址 +## 1.0.42(2021-04-30) +- 修复 自定义检验器失效的问题 +## 1.0.41(2021-03-05) +- 更新 校验器 +- 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug +## 1.0.40(2021-03-04) +- 修复 动态显示uni-forms-item的情况下,submit 方法获取值错误的Bug +## 1.0.39(2021-02-05) +- 调整为uni_modules目录规范 +- 修复 校验器传入 int 等类型 ,返回String类型的Bug diff --git a/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue b/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue new file mode 100644 index 0000000..679b12f --- /dev/null +++ b/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue @@ -0,0 +1,509 @@ + + + + + diff --git a/uni_modules/uni-forms/components/uni-forms/uni-forms.vue b/uni_modules/uni-forms/components/uni-forms/uni-forms.vue new file mode 100644 index 0000000..dff823b --- /dev/null +++ b/uni_modules/uni-forms/components/uni-forms/uni-forms.vue @@ -0,0 +1,472 @@ + + + + + diff --git a/uni_modules/uni-forms/components/uni-forms/validate.js b/uni_modules/uni-forms/components/uni-forms/validate.js new file mode 100644 index 0000000..c29ef7f --- /dev/null +++ b/uni_modules/uni-forms/components/uni-forms/validate.js @@ -0,0 +1,486 @@ +var pattern = { + email: /^\S+?@\S+?\.\S+?$/, + idcard: /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, + url: new RegExp( + "^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$", + 'i') +}; + +const FORMAT_MAPPING = { + "int": 'integer', + "bool": 'boolean', + "double": 'number', + "long": 'number', + "password": 'string' + // "fileurls": 'array' +} + +function formatMessage(args, resources = '') { + var defaultMessage = ['label'] + defaultMessage.forEach((item) => { + if (args[item] === undefined) { + args[item] = '' + } + }) + + let str = resources + for (let key in args) { + let reg = new RegExp('{' + key + '}') + str = str.replace(reg, args[key]) + } + return str +} + +function isEmptyValue(value, type) { + if (value === undefined || value === null) { + return true; + } + + if (typeof value === 'string' && !value) { + return true; + } + + if (Array.isArray(value) && !value.length) { + return true; + } + + if (type === 'object' && !Object.keys(value).length) { + return true; + } + + return false; +} + +const types = { + integer(value) { + return types.number(value) && parseInt(value, 10) === value; + }, + string(value) { + return typeof value === 'string'; + }, + number(value) { + if (isNaN(value)) { + return false; + } + return typeof value === 'number'; + }, + "boolean": function(value) { + return typeof value === 'boolean'; + }, + "float": function(value) { + return types.number(value) && !types.integer(value); + }, + array(value) { + return Array.isArray(value); + }, + object(value) { + return typeof value === 'object' && !types.array(value); + }, + date(value) { + return value instanceof Date; + }, + timestamp(value) { + if (!this.integer(value) || Math.abs(value).toString().length > 16) { + return false + } + return true; + }, + file(value) { + return typeof value.url === 'string'; + }, + email(value) { + return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255; + }, + url(value) { + return typeof value === 'string' && !!value.match(pattern.url); + }, + pattern(reg, value) { + try { + return new RegExp(reg).test(value); + } catch (e) { + return false; + } + }, + method(value) { + return typeof value === 'function'; + }, + idcard(value) { + return typeof value === 'string' && !!value.match(pattern.idcard); + }, + 'url-https'(value) { + return this.url(value) && value.startsWith('https://'); + }, + 'url-scheme'(value) { + return value.startsWith('://'); + }, + 'url-web'(value) { + return false; + } +} + +class RuleValidator { + + constructor(message) { + this._message = message + } + + async validateRule(fieldKey, fieldValue, value, data, allData) { + var result = null + + let rules = fieldValue.rules + + let hasRequired = rules.findIndex((item) => { + return item.required + }) + if (hasRequired < 0) { + if (value === null || value === undefined) { + return result + } + if (typeof value === 'string' && !value.length) { + return result + } + } + + var message = this._message + + if (rules === undefined) { + return message['default'] + } + + for (var i = 0; i < rules.length; i++) { + let rule = rules[i] + let vt = this._getValidateType(rule) + + Object.assign(rule, { + label: fieldValue.label || `["${fieldKey}"]` + }) + + if (RuleValidatorHelper[vt]) { + result = RuleValidatorHelper[vt](rule, value, message) + if (result != null) { + break + } + } + + if (rule.validateExpr) { + let now = Date.now() + let resultExpr = rule.validateExpr(value, allData, now) + if (resultExpr === false) { + result = this._getMessage(rule, rule.errorMessage || this._message['default']) + break + } + } + + if (rule.validateFunction) { + result = await this.validateFunction(rule, value, data, allData, vt) + if (result !== null) { + break + } + } + } + + if (result !== null) { + result = message.TAG + result + } + + return result + } + + async validateFunction(rule, value, data, allData, vt) { + let result = null + try { + let callbackMessage = null + const res = await rule.validateFunction(rule, value, allData || data, (message) => { + callbackMessage = message + }) + if (callbackMessage || (typeof res === 'string' && res) || res === false) { + result = this._getMessage(rule, callbackMessage || res, vt) + } + } catch (e) { + result = this._getMessage(rule, e.message, vt) + } + return result + } + + _getMessage(rule, message, vt) { + return formatMessage(rule, message || rule.errorMessage || this._message[vt] || message['default']) + } + + _getValidateType(rule) { + var result = '' + if (rule.required) { + result = 'required' + } else if (rule.format) { + result = 'format' + } else if (rule.arrayType) { + result = 'arrayTypeFormat' + } else if (rule.range) { + result = 'range' + } else if (rule.maximum !== undefined || rule.minimum !== undefined) { + result = 'rangeNumber' + } else if (rule.maxLength !== undefined || rule.minLength !== undefined) { + result = 'rangeLength' + } else if (rule.pattern) { + result = 'pattern' + } else if (rule.validateFunction) { + result = 'validateFunction' + } + return result + } +} + +const RuleValidatorHelper = { + required(rule, value, message) { + if (rule.required && isEmptyValue(value, rule.format || typeof value)) { + return formatMessage(rule, rule.errorMessage || message.required); + } + + return null + }, + + range(rule, value, message) { + const { + range, + errorMessage + } = rule; + + let list = new Array(range.length); + for (let i = 0; i < range.length; i++) { + const item = range[i]; + if (types.object(item) && item.value !== undefined) { + list[i] = item.value; + } else { + list[i] = item; + } + } + + let result = false + if (Array.isArray(value)) { + result = (new Set(value.concat(list)).size === list.length); + } else { + if (list.indexOf(value) > -1) { + result = true; + } + } + + if (!result) { + return formatMessage(rule, errorMessage || message['enum']); + } + + return null + }, + + rangeNumber(rule, value, message) { + if (!types.number(value)) { + return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); + } + + let { + minimum, + maximum, + exclusiveMinimum, + exclusiveMaximum + } = rule; + let min = exclusiveMinimum ? value <= minimum : value < minimum; + let max = exclusiveMaximum ? value >= maximum : value > maximum; + + if (minimum !== undefined && min) { + return formatMessage(rule, rule.errorMessage || message['number'][exclusiveMinimum ? + 'exclusiveMinimum' : 'minimum' + ]) + } else if (maximum !== undefined && max) { + return formatMessage(rule, rule.errorMessage || message['number'][exclusiveMaximum ? + 'exclusiveMaximum' : 'maximum' + ]) + } else if (minimum !== undefined && maximum !== undefined && (min || max)) { + return formatMessage(rule, rule.errorMessage || message['number'].range) + } + + return null + }, + + rangeLength(rule, value, message) { + if (!types.string(value) && !types.array(value)) { + return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); + } + + let min = rule.minLength; + let max = rule.maxLength; + let val = value.length; + + if (min !== undefined && val < min) { + return formatMessage(rule, rule.errorMessage || message['length'].minLength) + } else if (max !== undefined && val > max) { + return formatMessage(rule, rule.errorMessage || message['length'].maxLength) + } else if (min !== undefined && max !== undefined && (val < min || val > max)) { + return formatMessage(rule, rule.errorMessage || message['length'].range) + } + + return null + }, + + pattern(rule, value, message) { + if (!types['pattern'](rule.pattern, value)) { + return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); + } + + return null + }, + + format(rule, value, message) { + var customTypes = Object.keys(types); + var format = FORMAT_MAPPING[rule.format] ? FORMAT_MAPPING[rule.format] : (rule.format || rule.arrayType); + + if (customTypes.indexOf(format) > -1) { + if (!types[format](value)) { + return formatMessage(rule, rule.errorMessage || message.typeError); + } + } + + return null + }, + + arrayTypeFormat(rule, value, message) { + if (!Array.isArray(value)) { + return formatMessage(rule, rule.errorMessage || message.typeError); + } + + for (let i = 0; i < value.length; i++) { + const element = value[i]; + let formatResult = this.format(rule, element, message) + if (formatResult !== null) { + return formatResult + } + } + + return null + } +} + +class SchemaValidator extends RuleValidator { + + constructor(schema, options) { + super(SchemaValidator.message); + + this._schema = schema + this._options = options || null + } + + updateSchema(schema) { + this._schema = schema + } + + async validate(data, allData) { + let result = this._checkFieldInSchema(data) + if (!result) { + result = await this.invokeValidate(data, false, allData) + } + return result.length ? result[0] : null + } + + async validateAll(data, allData) { + let result = this._checkFieldInSchema(data) + if (!result) { + result = await this.invokeValidate(data, true, allData) + } + return result + } + + async validateUpdate(data, allData) { + let result = this._checkFieldInSchema(data) + if (!result) { + result = await this.invokeValidateUpdate(data, false, allData) + } + return result.length ? result[0] : null + } + + async invokeValidate(data, all, allData) { + let result = [] + let schema = this._schema + for (let key in schema) { + let value = schema[key] + let errorMessage = await this.validateRule(key, value, data[key], data, allData) + if (errorMessage != null) { + result.push({ + key, + errorMessage + }) + if (!all) break + } + } + return result + } + + async invokeValidateUpdate(data, all, allData) { + let result = [] + for (let key in data) { + let errorMessage = await this.validateRule(key, this._schema[key], data[key], data, allData) + if (errorMessage != null) { + result.push({ + key, + errorMessage + }) + if (!all) break + } + } + return result + } + + _checkFieldInSchema(data) { + var keys = Object.keys(data) + var keys2 = Object.keys(this._schema) + if (new Set(keys.concat(keys2)).size === keys2.length) { + return '' + } + + var noExistFields = keys.filter((key) => { + return keys2.indexOf(key) < 0; + }) + var errorMessage = formatMessage({ + field: JSON.stringify(noExistFields) + }, SchemaValidator.message.TAG + SchemaValidator.message['defaultInvalid']) + return [{ + key: 'invalid', + errorMessage + }] + } +} + +function Message() { + return { + TAG: "", + default: '验证错误', + defaultInvalid: '提交的字段{field}在数据库中并不存在', + validateFunction: '验证无效', + required: '{label}必填', + 'enum': '{label}超出范围', + timestamp: '{label}格式无效', + whitespace: '{label}不能为空', + typeError: '{label}类型无效', + date: { + format: '{label}日期{value}格式无效', + parse: '{label}日期无法解析,{value}无效', + invalid: '{label}日期{value}无效' + }, + length: { + minLength: '{label}长度不能少于{minLength}', + maxLength: '{label}长度不能超过{maxLength}', + range: '{label}必须介于{minLength}和{maxLength}之间' + }, + number: { + minimum: '{label}不能小于{minimum}', + maximum: '{label}不能大于{maximum}', + exclusiveMinimum: '{label}不能小于等于{minimum}', + exclusiveMaximum: '{label}不能大于等于{maximum}', + range: '{label}必须介于{minimum}and{maximum}之间' + }, + pattern: { + mismatch: '{label}格式不匹配' + } + }; +} + + +SchemaValidator.message = new Message(); + +export default SchemaValidator diff --git a/uni_modules/uni-forms/package.json b/uni_modules/uni-forms/package.json new file mode 100644 index 0000000..dfa7af4 --- /dev/null +++ b/uni_modules/uni-forms/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-forms", + "displayName": "uni-forms 表单", + "version": "1.3.2", + "description": "由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据", + "keywords": [ + "uni-ui", + "表单", + "校验", + "表单校验", + "表单验证" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-forms/readme.md b/uni_modules/uni-forms/readme.md new file mode 100644 index 0000000..63d5a04 --- /dev/null +++ b/uni_modules/uni-forms/readme.md @@ -0,0 +1,23 @@ + + +## Forms 表单 + +> **组件名:uni-forms** +> 代码块: `uForms`、`uni-forms-item` +> 关联组件:`uni-forms-item`、`uni-easyinput`、`uni-data-checkbox`、`uni-group`。 + + +uni-app的内置组件已经有了 ``组件,用于提交表单内容。 + +然而几乎每个表单都需要做表单验证,为了方便做表单验证,减少重复开发,`uni ui` 又基于 ``组件封装了 ``组件,内置了表单验证功能。 + +`` 提供了 `rules`属性来描述校验规则、``子组件来包裹具体的表单项,以及给原生或三方组件提供了 `binddata()` 来设置表单值。 + +每个要校验的表单项,不管input还是checkbox,都必须放在``组件中,且一个``组件只能放置一个表单项。 + +``组件内部预留了显示error message的区域,默认是在表单项的底部。 + +另外,``组件下面的各个表单项,可以通过``包裹为不同的分组。同一``下的不同表单项目将聚拢在一起,同其他group保持垂直间距。``仅影响视觉效果。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-forms) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-goods-nav/changelog.md b/uni_modules/uni-goods-nav/changelog.md new file mode 100644 index 0000000..d970649 --- /dev/null +++ b/uni_modules/uni-goods-nav/changelog.md @@ -0,0 +1,16 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-goods-nav](https://uniapp.dcloud.io/component/uniui/uni-goods-nav) +## 1.1.1(2021-08-24) +- 新增 支持国际化 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.5(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json new file mode 100644 index 0000000..94f1868 --- /dev/null +++ b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json @@ -0,0 +1,6 @@ +{ + "uni-goods-nav.options.shop": "shop", + "uni-goods-nav.options.cart": "cart", + "uni-goods-nav.buttonGroup.addToCart": "add to cart", + "uni-goods-nav.buttonGroup.buyNow": "buy now" +} diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js new file mode 100644 index 0000000..d2afd08 --- /dev/null +++ b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json new file mode 100644 index 0000000..84243b0 --- /dev/null +++ b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json @@ -0,0 +1,6 @@ +{ + "uni-goods-nav.options.shop": "店铺", + "uni-goods-nav.options.cart": "购物车", + "uni-goods-nav.buttonGroup.addToCart": "加入购物车", + "uni-goods-nav.buttonGroup.buyNow": "立即购买" +} diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json new file mode 100644 index 0000000..bfd405e --- /dev/null +++ b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json @@ -0,0 +1,6 @@ +{ + "uni-goods-nav.options.shop": "店鋪", + "uni-goods-nav.options.cart": "購物車", + "uni-goods-nav.buttonGroup.addToCart": "加入購物車", + "uni-goods-nav.buttonGroup.buyNow": "立即購買" +} diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue b/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue new file mode 100644 index 0000000..24c7eca --- /dev/null +++ b/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/uni_modules/uni-goods-nav/package.json b/uni_modules/uni-goods-nav/package.json new file mode 100644 index 0000000..99cd567 --- /dev/null +++ b/uni_modules/uni-goods-nav/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-goods-nav", + "displayName": "uni-goods-nav 商品导航", + "version": "1.2.0", + "description": "商品导航组件主要用于电商类应用底部导航,可自定义加入购物车,购买等操作", + "keywords": [ + "uni-ui", + "uniui", + "商品导航" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-goods-nav/readme.md b/uni_modules/uni-goods-nav/readme.md new file mode 100644 index 0000000..07df93f --- /dev/null +++ b/uni_modules/uni-goods-nav/readme.md @@ -0,0 +1,10 @@ + + +## GoodsNav 商品导航 +> **组件名:uni-goods-nav** +> 代码块: `uGoodsNav` + +商品加入购物车,立即购买等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-goods-nav) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-grid/changelog.md b/uni_modules/uni-grid/changelog.md new file mode 100644 index 0000000..d301166 --- /dev/null +++ b/uni_modules/uni-grid/changelog.md @@ -0,0 +1,13 @@ +## 1.4.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-grid](https://uniapp.dcloud.io/component/uniui/uni-grid) +## 1.3.2(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.3.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.3.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.2.4(2021-05-12) +- 新增 组件示例地址 +## 1.2.3(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue b/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue new file mode 100644 index 0000000..de66c45 --- /dev/null +++ b/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/uni_modules/uni-grid/components/uni-grid/uni-grid.vue b/uni_modules/uni-grid/components/uni-grid/uni-grid.vue new file mode 100644 index 0000000..cd49be0 --- /dev/null +++ b/uni_modules/uni-grid/components/uni-grid/uni-grid.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/uni_modules/uni-grid/package.json b/uni_modules/uni-grid/package.json new file mode 100644 index 0000000..ccb2c91 --- /dev/null +++ b/uni_modules/uni-grid/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-grid", + "displayName": "uni-grid 宫格", + "version": "1.4.0", + "description": "Grid 宫格组件,提供移动端常见的宫格布局,如九宫格。", + "keywords": [ + "uni-ui", + "uniui", + "九宫格", + "表格" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-icons"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-grid/readme.md b/uni_modules/uni-grid/readme.md new file mode 100644 index 0000000..0aa44cc --- /dev/null +++ b/uni_modules/uni-grid/readme.md @@ -0,0 +1,11 @@ + + +## Grid 宫格 +> **组件名:uni-grid** +> 代码块: `uGrid` + + +宫格组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-grid) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-group/changelog.md b/uni_modules/uni-group/changelog.md new file mode 100644 index 0000000..5bb3559 --- /dev/null +++ b/uni_modules/uni-group/changelog.md @@ -0,0 +1,14 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-group](https://uniapp.dcloud.io/component/uniui/uni-group) +## 1.1.7(2021-11-08) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +- 优化 组件文档 +## 1.0.3(2021-05-12) +- 新增 组件示例地址 +## 1.0.2(2021-02-05) +- 调整为uni_modules目录规范 +- 优化 兼容 nvue 页面 diff --git a/uni_modules/uni-group/components/uni-group/uni-group.vue b/uni_modules/uni-group/components/uni-group/uni-group.vue new file mode 100644 index 0000000..fbbedbf --- /dev/null +++ b/uni_modules/uni-group/components/uni-group/uni-group.vue @@ -0,0 +1,130 @@ + + + + diff --git a/uni_modules/uni-group/package.json b/uni_modules/uni-group/package.json new file mode 100644 index 0000000..532dd15 --- /dev/null +++ b/uni_modules/uni-group/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-group", + "displayName": "uni-group 分组", + "version": "1.2.1", + "description": "分组组件可用于将组件用于分组,添加间隔,以产生明显的区块", + "keywords": [ + "uni-ui", + "uniui", + "group", + "分组", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-group/readme.md b/uni_modules/uni-group/readme.md new file mode 100644 index 0000000..bae67f4 --- /dev/null +++ b/uni_modules/uni-group/readme.md @@ -0,0 +1,9 @@ + +## Group 分组 +> **组件名:uni-group** +> 代码块: `uGroup` + +分组组件可用于将组件分组,添加间隔,以产生明显的区块。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-group) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-icons/changelog.md b/uni_modules/uni-icons/changelog.md new file mode 100644 index 0000000..6449885 --- /dev/null +++ b/uni_modules/uni-icons/changelog.md @@ -0,0 +1,22 @@ +## 1.3.5(2022-01-24) +- 优化 size 属性可以传入不带单位的字符串数值 +## 1.3.4(2022-01-24) +- 优化 size 支持其他单位 +## 1.3.3(2022-01-17) +- 修复 nvue 有些图标不显示的bug,兼容老版本图标 +## 1.3.2(2021-12-01) +- 优化 示例可复制图标名称 +## 1.3.1(2021-11-23) +- 优化 兼容旧组件 type 值 +## 1.3.0(2021-11-19) +- 新增 更多图标 +- 优化 自定义图标使用方式 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons) +## 1.1.7(2021-11-08) +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.5(2021-05-12) +- 新增 组件示例地址 +## 1.1.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-icons/components/uni-icons/icons.js b/uni_modules/uni-icons/components/uni-icons/icons.js new file mode 100644 index 0000000..7889936 --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/icons.js @@ -0,0 +1,1169 @@ +export default { + "id": "2852637", + "name": "uniui图标库", + "font_family": "uniicons", + "css_prefix_text": "uniui-", + "description": "", + "glyphs": [ + { + "icon_id": "25027049", + "name": "yanse", + "font_class": "color", + "unicode": "e6cf", + "unicode_decimal": 59087 + }, + { + "icon_id": "25027048", + "name": "wallet", + "font_class": "wallet", + "unicode": "e6b1", + "unicode_decimal": 59057 + }, + { + "icon_id": "25015720", + "name": "settings-filled", + "font_class": "settings-filled", + "unicode": "e6ce", + "unicode_decimal": 59086 + }, + { + "icon_id": "25015434", + "name": "shimingrenzheng-filled", + "font_class": "auth-filled", + "unicode": "e6cc", + "unicode_decimal": 59084 + }, + { + "icon_id": "24934246", + "name": "shop-filled", + "font_class": "shop-filled", + "unicode": "e6cd", + "unicode_decimal": 59085 + }, + { + "icon_id": "24934159", + "name": "staff-filled-01", + "font_class": "staff-filled", + "unicode": "e6cb", + "unicode_decimal": 59083 + }, + { + "icon_id": "24932461", + "name": "VIP-filled", + "font_class": "vip-filled", + "unicode": "e6c6", + "unicode_decimal": 59078 + }, + { + "icon_id": "24932462", + "name": "plus_circle_fill", + "font_class": "plus-filled", + "unicode": "e6c7", + "unicode_decimal": 59079 + }, + { + "icon_id": "24932463", + "name": "folder_add-filled", + "font_class": "folder-add-filled", + "unicode": "e6c8", + "unicode_decimal": 59080 + }, + { + "icon_id": "24932464", + "name": "yanse-filled", + "font_class": "color-filled", + "unicode": "e6c9", + "unicode_decimal": 59081 + }, + { + "icon_id": "24932465", + "name": "tune-filled", + "font_class": "tune-filled", + "unicode": "e6ca", + "unicode_decimal": 59082 + }, + { + "icon_id": "24932455", + "name": "a-rilidaka-filled", + "font_class": "calendar-filled", + "unicode": "e6c0", + "unicode_decimal": 59072 + }, + { + "icon_id": "24932456", + "name": "notification-filled", + "font_class": "notification-filled", + "unicode": "e6c1", + "unicode_decimal": 59073 + }, + { + "icon_id": "24932457", + "name": "wallet-filled", + "font_class": "wallet-filled", + "unicode": "e6c2", + "unicode_decimal": 59074 + }, + { + "icon_id": "24932458", + "name": "paihangbang-filled", + "font_class": "medal-filled", + "unicode": "e6c3", + "unicode_decimal": 59075 + }, + { + "icon_id": "24932459", + "name": "gift-filled", + "font_class": "gift-filled", + "unicode": "e6c4", + "unicode_decimal": 59076 + }, + { + "icon_id": "24932460", + "name": "fire-filled", + "font_class": "fire-filled", + "unicode": "e6c5", + "unicode_decimal": 59077 + }, + { + "icon_id": "24928001", + "name": "refreshempty", + "font_class": "refreshempty", + "unicode": "e6bf", + "unicode_decimal": 59071 + }, + { + "icon_id": "24926853", + "name": "location-ellipse", + "font_class": "location-filled", + "unicode": "e6af", + "unicode_decimal": 59055 + }, + { + "icon_id": "24926735", + "name": "person-filled", + "font_class": "person-filled", + "unicode": "e69d", + "unicode_decimal": 59037 + }, + { + "icon_id": "24926703", + "name": "personadd-filled", + "font_class": "personadd-filled", + "unicode": "e698", + "unicode_decimal": 59032 + }, + { + "icon_id": "24923351", + "name": "back", + "font_class": "back", + "unicode": "e6b9", + "unicode_decimal": 59065 + }, + { + "icon_id": "24923352", + "name": "forward", + "font_class": "forward", + "unicode": "e6ba", + "unicode_decimal": 59066 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrow-right", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrowthinright", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrow-left", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrowthinleft", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrow-up", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrowthinup", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrow-down", + "unicode": "e6be", + "unicode_decimal": 59070 + },{ + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrowthindown", + "unicode": "e6be", + "unicode_decimal": 59070 + }, + { + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "bottom", + "unicode": "e6b8", + "unicode_decimal": 59064 + },{ + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "arrowdown", + "unicode": "e6b8", + "unicode_decimal": 59064 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "right", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "arrowright", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "top", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "arrowup", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "left", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "arrowleft", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923334", + "name": "eye", + "font_class": "eye", + "unicode": "e651", + "unicode_decimal": 58961 + }, + { + "icon_id": "24923335", + "name": "eye-filled", + "font_class": "eye-filled", + "unicode": "e66a", + "unicode_decimal": 58986 + }, + { + "icon_id": "24923336", + "name": "eye-slash", + "font_class": "eye-slash", + "unicode": "e6b3", + "unicode_decimal": 59059 + }, + { + "icon_id": "24923337", + "name": "eye-slash-filled", + "font_class": "eye-slash-filled", + "unicode": "e6b4", + "unicode_decimal": 59060 + }, + { + "icon_id": "24923305", + "name": "info-filled", + "font_class": "info-filled", + "unicode": "e649", + "unicode_decimal": 58953 + }, + { + "icon_id": "24923299", + "name": "reload-01", + "font_class": "reload", + "unicode": "e6b2", + "unicode_decimal": 59058 + }, + { + "icon_id": "24923195", + "name": "mic_slash_fill", + "font_class": "micoff-filled", + "unicode": "e6b0", + "unicode_decimal": 59056 + }, + { + "icon_id": "24923165", + "name": "map-pin-ellipse", + "font_class": "map-pin-ellipse", + "unicode": "e6ac", + "unicode_decimal": 59052 + }, + { + "icon_id": "24923166", + "name": "map-pin", + "font_class": "map-pin", + "unicode": "e6ad", + "unicode_decimal": 59053 + }, + { + "icon_id": "24923167", + "name": "location", + "font_class": "location", + "unicode": "e6ae", + "unicode_decimal": 59054 + }, + { + "icon_id": "24923064", + "name": "starhalf", + "font_class": "starhalf", + "unicode": "e683", + "unicode_decimal": 59011 + }, + { + "icon_id": "24923065", + "name": "star", + "font_class": "star", + "unicode": "e688", + "unicode_decimal": 59016 + }, + { + "icon_id": "24923066", + "name": "star-filled", + "font_class": "star-filled", + "unicode": "e68f", + "unicode_decimal": 59023 + }, + { + "icon_id": "24899646", + "name": "a-rilidaka", + "font_class": "calendar", + "unicode": "e6a0", + "unicode_decimal": 59040 + }, + { + "icon_id": "24899647", + "name": "fire", + "font_class": "fire", + "unicode": "e6a1", + "unicode_decimal": 59041 + }, + { + "icon_id": "24899648", + "name": "paihangbang", + "font_class": "medal", + "unicode": "e6a2", + "unicode_decimal": 59042 + }, + { + "icon_id": "24899649", + "name": "font", + "font_class": "font", + "unicode": "e6a3", + "unicode_decimal": 59043 + }, + { + "icon_id": "24899650", + "name": "gift", + "font_class": "gift", + "unicode": "e6a4", + "unicode_decimal": 59044 + }, + { + "icon_id": "24899651", + "name": "link", + "font_class": "link", + "unicode": "e6a5", + "unicode_decimal": 59045 + }, + { + "icon_id": "24899652", + "name": "notification", + "font_class": "notification", + "unicode": "e6a6", + "unicode_decimal": 59046 + }, + { + "icon_id": "24899653", + "name": "staff", + "font_class": "staff", + "unicode": "e6a7", + "unicode_decimal": 59047 + }, + { + "icon_id": "24899654", + "name": "VIP", + "font_class": "vip", + "unicode": "e6a8", + "unicode_decimal": 59048 + }, + { + "icon_id": "24899655", + "name": "folder_add", + "font_class": "folder-add", + "unicode": "e6a9", + "unicode_decimal": 59049 + }, + { + "icon_id": "24899656", + "name": "tune", + "font_class": "tune", + "unicode": "e6aa", + "unicode_decimal": 59050 + }, + { + "icon_id": "24899657", + "name": "shimingrenzheng", + "font_class": "auth", + "unicode": "e6ab", + "unicode_decimal": 59051 + }, + { + "icon_id": "24899565", + "name": "person", + "font_class": "person", + "unicode": "e699", + "unicode_decimal": 59033 + }, + { + "icon_id": "24899566", + "name": "email-filled", + "font_class": "email-filled", + "unicode": "e69a", + "unicode_decimal": 59034 + }, + { + "icon_id": "24899567", + "name": "phone-filled", + "font_class": "phone-filled", + "unicode": "e69b", + "unicode_decimal": 59035 + }, + { + "icon_id": "24899568", + "name": "phone", + "font_class": "phone", + "unicode": "e69c", + "unicode_decimal": 59036 + }, + { + "icon_id": "24899570", + "name": "email", + "font_class": "email", + "unicode": "e69e", + "unicode_decimal": 59038 + }, + { + "icon_id": "24899571", + "name": "personadd", + "font_class": "personadd", + "unicode": "e69f", + "unicode_decimal": 59039 + }, + { + "icon_id": "24899558", + "name": "chatboxes-filled", + "font_class": "chatboxes-filled", + "unicode": "e692", + "unicode_decimal": 59026 + }, + { + "icon_id": "24899559", + "name": "contact", + "font_class": "contact", + "unicode": "e693", + "unicode_decimal": 59027 + }, + { + "icon_id": "24899560", + "name": "chatbubble-filled", + "font_class": "chatbubble-filled", + "unicode": "e694", + "unicode_decimal": 59028 + }, + { + "icon_id": "24899561", + "name": "contact-filled", + "font_class": "contact-filled", + "unicode": "e695", + "unicode_decimal": 59029 + }, + { + "icon_id": "24899562", + "name": "chatboxes", + "font_class": "chatboxes", + "unicode": "e696", + "unicode_decimal": 59030 + }, + { + "icon_id": "24899563", + "name": "chatbubble", + "font_class": "chatbubble", + "unicode": "e697", + "unicode_decimal": 59031 + }, + { + "icon_id": "24881290", + "name": "upload-filled", + "font_class": "upload-filled", + "unicode": "e68e", + "unicode_decimal": 59022 + }, + { + "icon_id": "24881292", + "name": "upload", + "font_class": "upload", + "unicode": "e690", + "unicode_decimal": 59024 + }, + { + "icon_id": "24881293", + "name": "weixin", + "font_class": "weixin", + "unicode": "e691", + "unicode_decimal": 59025 + }, + { + "icon_id": "24881274", + "name": "compose", + "font_class": "compose", + "unicode": "e67f", + "unicode_decimal": 59007 + }, + { + "icon_id": "24881275", + "name": "qq", + "font_class": "qq", + "unicode": "e680", + "unicode_decimal": 59008 + }, + { + "icon_id": "24881276", + "name": "download-filled", + "font_class": "download-filled", + "unicode": "e681", + "unicode_decimal": 59009 + }, + { + "icon_id": "24881277", + "name": "pengyouquan", + "font_class": "pyq", + "unicode": "e682", + "unicode_decimal": 59010 + }, + { + "icon_id": "24881279", + "name": "sound", + "font_class": "sound", + "unicode": "e684", + "unicode_decimal": 59012 + }, + { + "icon_id": "24881280", + "name": "trash-filled", + "font_class": "trash-filled", + "unicode": "e685", + "unicode_decimal": 59013 + }, + { + "icon_id": "24881281", + "name": "sound-filled", + "font_class": "sound-filled", + "unicode": "e686", + "unicode_decimal": 59014 + }, + { + "icon_id": "24881282", + "name": "trash", + "font_class": "trash", + "unicode": "e687", + "unicode_decimal": 59015 + }, + { + "icon_id": "24881284", + "name": "videocam-filled", + "font_class": "videocam-filled", + "unicode": "e689", + "unicode_decimal": 59017 + }, + { + "icon_id": "24881285", + "name": "spinner-cycle", + "font_class": "spinner-cycle", + "unicode": "e68a", + "unicode_decimal": 59018 + }, + { + "icon_id": "24881286", + "name": "weibo", + "font_class": "weibo", + "unicode": "e68b", + "unicode_decimal": 59019 + }, + { + "icon_id": "24881288", + "name": "videocam", + "font_class": "videocam", + "unicode": "e68c", + "unicode_decimal": 59020 + }, + { + "icon_id": "24881289", + "name": "download", + "font_class": "download", + "unicode": "e68d", + "unicode_decimal": 59021 + }, + { + "icon_id": "24879601", + "name": "help", + "font_class": "help", + "unicode": "e679", + "unicode_decimal": 59001 + }, + { + "icon_id": "24879602", + "name": "navigate-filled", + "font_class": "navigate-filled", + "unicode": "e67a", + "unicode_decimal": 59002 + }, + { + "icon_id": "24879603", + "name": "plusempty", + "font_class": "plusempty", + "unicode": "e67b", + "unicode_decimal": 59003 + }, + { + "icon_id": "24879604", + "name": "smallcircle", + "font_class": "smallcircle", + "unicode": "e67c", + "unicode_decimal": 59004 + }, + { + "icon_id": "24879605", + "name": "minus-filled", + "font_class": "minus-filled", + "unicode": "e67d", + "unicode_decimal": 59005 + }, + { + "icon_id": "24879606", + "name": "micoff", + "font_class": "micoff", + "unicode": "e67e", + "unicode_decimal": 59006 + }, + { + "icon_id": "24879588", + "name": "closeempty", + "font_class": "closeempty", + "unicode": "e66c", + "unicode_decimal": 58988 + }, + { + "icon_id": "24879589", + "name": "clear", + "font_class": "clear", + "unicode": "e66d", + "unicode_decimal": 58989 + }, + { + "icon_id": "24879590", + "name": "navigate", + "font_class": "navigate", + "unicode": "e66e", + "unicode_decimal": 58990 + }, + { + "icon_id": "24879591", + "name": "minus", + "font_class": "minus", + "unicode": "e66f", + "unicode_decimal": 58991 + }, + { + "icon_id": "24879592", + "name": "image", + "font_class": "image", + "unicode": "e670", + "unicode_decimal": 58992 + }, + { + "icon_id": "24879593", + "name": "mic", + "font_class": "mic", + "unicode": "e671", + "unicode_decimal": 58993 + }, + { + "icon_id": "24879594", + "name": "paperplane", + "font_class": "paperplane", + "unicode": "e672", + "unicode_decimal": 58994 + }, + { + "icon_id": "24879595", + "name": "close", + "font_class": "close", + "unicode": "e673", + "unicode_decimal": 58995 + }, + { + "icon_id": "24879596", + "name": "help-filled", + "font_class": "help-filled", + "unicode": "e674", + "unicode_decimal": 58996 + }, + { + "icon_id": "24879597", + "name": "plus-filled", + "font_class": "paperplane-filled", + "unicode": "e675", + "unicode_decimal": 58997 + }, + { + "icon_id": "24879598", + "name": "plus", + "font_class": "plus", + "unicode": "e676", + "unicode_decimal": 58998 + }, + { + "icon_id": "24879599", + "name": "mic-filled", + "font_class": "mic-filled", + "unicode": "e677", + "unicode_decimal": 58999 + }, + { + "icon_id": "24879600", + "name": "image-filled", + "font_class": "image-filled", + "unicode": "e678", + "unicode_decimal": 59000 + }, + { + "icon_id": "24855900", + "name": "locked-filled", + "font_class": "locked-filled", + "unicode": "e668", + "unicode_decimal": 58984 + }, + { + "icon_id": "24855901", + "name": "info", + "font_class": "info", + "unicode": "e669", + "unicode_decimal": 58985 + }, + { + "icon_id": "24855903", + "name": "locked", + "font_class": "locked", + "unicode": "e66b", + "unicode_decimal": 58987 + }, + { + "icon_id": "24855884", + "name": "camera-filled", + "font_class": "camera-filled", + "unicode": "e658", + "unicode_decimal": 58968 + }, + { + "icon_id": "24855885", + "name": "chat-filled", + "font_class": "chat-filled", + "unicode": "e659", + "unicode_decimal": 58969 + }, + { + "icon_id": "24855886", + "name": "camera", + "font_class": "camera", + "unicode": "e65a", + "unicode_decimal": 58970 + }, + { + "icon_id": "24855887", + "name": "circle", + "font_class": "circle", + "unicode": "e65b", + "unicode_decimal": 58971 + }, + { + "icon_id": "24855888", + "name": "checkmarkempty", + "font_class": "checkmarkempty", + "unicode": "e65c", + "unicode_decimal": 58972 + }, + { + "icon_id": "24855889", + "name": "chat", + "font_class": "chat", + "unicode": "e65d", + "unicode_decimal": 58973 + }, + { + "icon_id": "24855890", + "name": "circle-filled", + "font_class": "circle-filled", + "unicode": "e65e", + "unicode_decimal": 58974 + }, + { + "icon_id": "24855891", + "name": "flag", + "font_class": "flag", + "unicode": "e65f", + "unicode_decimal": 58975 + }, + { + "icon_id": "24855892", + "name": "flag-filled", + "font_class": "flag-filled", + "unicode": "e660", + "unicode_decimal": 58976 + }, + { + "icon_id": "24855893", + "name": "gear-filled", + "font_class": "gear-filled", + "unicode": "e661", + "unicode_decimal": 58977 + }, + { + "icon_id": "24855894", + "name": "home", + "font_class": "home", + "unicode": "e662", + "unicode_decimal": 58978 + }, + { + "icon_id": "24855895", + "name": "home-filled", + "font_class": "home-filled", + "unicode": "e663", + "unicode_decimal": 58979 + }, + { + "icon_id": "24855896", + "name": "gear", + "font_class": "gear", + "unicode": "e664", + "unicode_decimal": 58980 + }, + { + "icon_id": "24855897", + "name": "smallcircle-filled", + "font_class": "smallcircle-filled", + "unicode": "e665", + "unicode_decimal": 58981 + }, + { + "icon_id": "24855898", + "name": "map-filled", + "font_class": "map-filled", + "unicode": "e666", + "unicode_decimal": 58982 + }, + { + "icon_id": "24855899", + "name": "map", + "font_class": "map", + "unicode": "e667", + "unicode_decimal": 58983 + }, + { + "icon_id": "24855825", + "name": "refresh-filled", + "font_class": "refresh-filled", + "unicode": "e656", + "unicode_decimal": 58966 + }, + { + "icon_id": "24855826", + "name": "refresh", + "font_class": "refresh", + "unicode": "e657", + "unicode_decimal": 58967 + }, + { + "icon_id": "24855808", + "name": "cloud-upload", + "font_class": "cloud-upload", + "unicode": "e645", + "unicode_decimal": 58949 + }, + { + "icon_id": "24855809", + "name": "cloud-download-filled", + "font_class": "cloud-download-filled", + "unicode": "e646", + "unicode_decimal": 58950 + }, + { + "icon_id": "24855810", + "name": "cloud-download", + "font_class": "cloud-download", + "unicode": "e647", + "unicode_decimal": 58951 + }, + { + "icon_id": "24855811", + "name": "cloud-upload-filled", + "font_class": "cloud-upload-filled", + "unicode": "e648", + "unicode_decimal": 58952 + }, + { + "icon_id": "24855813", + "name": "redo", + "font_class": "redo", + "unicode": "e64a", + "unicode_decimal": 58954 + }, + { + "icon_id": "24855814", + "name": "images-filled", + "font_class": "images-filled", + "unicode": "e64b", + "unicode_decimal": 58955 + }, + { + "icon_id": "24855815", + "name": "undo-filled", + "font_class": "undo-filled", + "unicode": "e64c", + "unicode_decimal": 58956 + }, + { + "icon_id": "24855816", + "name": "more", + "font_class": "more", + "unicode": "e64d", + "unicode_decimal": 58957 + }, + { + "icon_id": "24855817", + "name": "more-filled", + "font_class": "more-filled", + "unicode": "e64e", + "unicode_decimal": 58958 + }, + { + "icon_id": "24855818", + "name": "undo", + "font_class": "undo", + "unicode": "e64f", + "unicode_decimal": 58959 + }, + { + "icon_id": "24855819", + "name": "images", + "font_class": "images", + "unicode": "e650", + "unicode_decimal": 58960 + }, + { + "icon_id": "24855821", + "name": "paperclip", + "font_class": "paperclip", + "unicode": "e652", + "unicode_decimal": 58962 + }, + { + "icon_id": "24855822", + "name": "settings", + "font_class": "settings", + "unicode": "e653", + "unicode_decimal": 58963 + }, + { + "icon_id": "24855823", + "name": "search", + "font_class": "search", + "unicode": "e654", + "unicode_decimal": 58964 + }, + { + "icon_id": "24855824", + "name": "redo-filled", + "font_class": "redo-filled", + "unicode": "e655", + "unicode_decimal": 58965 + }, + { + "icon_id": "24841702", + "name": "list", + "font_class": "list", + "unicode": "e644", + "unicode_decimal": 58948 + }, + { + "icon_id": "24841489", + "name": "mail-open-filled", + "font_class": "mail-open-filled", + "unicode": "e63a", + "unicode_decimal": 58938 + }, + { + "icon_id": "24841491", + "name": "hand-thumbsdown-filled", + "font_class": "hand-down-filled", + "unicode": "e63c", + "unicode_decimal": 58940 + }, + { + "icon_id": "24841492", + "name": "hand-thumbsdown", + "font_class": "hand-down", + "unicode": "e63d", + "unicode_decimal": 58941 + }, + { + "icon_id": "24841493", + "name": "hand-thumbsup-filled", + "font_class": "hand-up-filled", + "unicode": "e63e", + "unicode_decimal": 58942 + }, + { + "icon_id": "24841494", + "name": "hand-thumbsup", + "font_class": "hand-up", + "unicode": "e63f", + "unicode_decimal": 58943 + }, + { + "icon_id": "24841496", + "name": "heart-filled", + "font_class": "heart-filled", + "unicode": "e641", + "unicode_decimal": 58945 + }, + { + "icon_id": "24841498", + "name": "mail-open", + "font_class": "mail-open", + "unicode": "e643", + "unicode_decimal": 58947 + }, + { + "icon_id": "24841488", + "name": "heart", + "font_class": "heart", + "unicode": "e639", + "unicode_decimal": 58937 + }, + { + "icon_id": "24839963", + "name": "loop", + "font_class": "loop", + "unicode": "e633", + "unicode_decimal": 58931 + }, + { + "icon_id": "24839866", + "name": "pulldown", + "font_class": "pulldown", + "unicode": "e632", + "unicode_decimal": 58930 + }, + { + "icon_id": "24813798", + "name": "scan", + "font_class": "scan", + "unicode": "e62a", + "unicode_decimal": 58922 + }, + { + "icon_id": "24813786", + "name": "bars", + "font_class": "bars", + "unicode": "e627", + "unicode_decimal": 58919 + }, + { + "icon_id": "24813788", + "name": "cart-filled", + "font_class": "cart-filled", + "unicode": "e629", + "unicode_decimal": 58921 + }, + { + "icon_id": "24813790", + "name": "checkbox", + "font_class": "checkbox", + "unicode": "e62b", + "unicode_decimal": 58923 + }, + { + "icon_id": "24813791", + "name": "checkbox-filled", + "font_class": "checkbox-filled", + "unicode": "e62c", + "unicode_decimal": 58924 + }, + { + "icon_id": "24813794", + "name": "shop", + "font_class": "shop", + "unicode": "e62f", + "unicode_decimal": 58927 + }, + { + "icon_id": "24813795", + "name": "headphones", + "font_class": "headphones", + "unicode": "e630", + "unicode_decimal": 58928 + }, + { + "icon_id": "24813796", + "name": "cart", + "font_class": "cart", + "unicode": "e631", + "unicode_decimal": 58929 + } + ] +} diff --git a/uni_modules/uni-icons/components/uni-icons/uni-icons.vue b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue new file mode 100644 index 0000000..a87f68e --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons.css b/uni_modules/uni-icons/components/uni-icons/uniicons.css new file mode 100644 index 0000000..2f56eab --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uniicons.css @@ -0,0 +1,663 @@ +.uniui-color:before { + content: "\e6cf"; +} + +.uniui-wallet:before { + content: "\e6b1"; +} + +.uniui-settings-filled:before { + content: "\e6ce"; +} + +.uniui-auth-filled:before { + content: "\e6cc"; +} + +.uniui-shop-filled:before { + content: "\e6cd"; +} + +.uniui-staff-filled:before { + content: "\e6cb"; +} + +.uniui-vip-filled:before { + content: "\e6c6"; +} + +.uniui-plus-filled:before { + content: "\e6c7"; +} + +.uniui-folder-add-filled:before { + content: "\e6c8"; +} + +.uniui-color-filled:before { + content: "\e6c9"; +} + +.uniui-tune-filled:before { + content: "\e6ca"; +} + +.uniui-calendar-filled:before { + content: "\e6c0"; +} + +.uniui-notification-filled:before { + content: "\e6c1"; +} + +.uniui-wallet-filled:before { + content: "\e6c2"; +} + +.uniui-medal-filled:before { + content: "\e6c3"; +} + +.uniui-gift-filled:before { + content: "\e6c4"; +} + +.uniui-fire-filled:before { + content: "\e6c5"; +} + +.uniui-refreshempty:before { + content: "\e6bf"; +} + +.uniui-location-filled:before { + content: "\e6af"; +} + +.uniui-person-filled:before { + content: "\e69d"; +} + +.uniui-personadd-filled:before { + content: "\e698"; +} + +.uniui-back:before { + content: "\e6b9"; +} + +.uniui-forward:before { + content: "\e6ba"; +} + +.uniui-arrow-right:before { + content: "\e6bb"; +} + +.uniui-arrowthinright:before { + content: "\e6bb"; +} + +.uniui-arrow-left:before { + content: "\e6bc"; +} + +.uniui-arrowthinleft:before { + content: "\e6bc"; +} + +.uniui-arrow-up:before { + content: "\e6bd"; +} + +.uniui-arrowthinup:before { + content: "\e6bd"; +} + +.uniui-arrow-down:before { + content: "\e6be"; +} + +.uniui-arrowthindown:before { + content: "\e6be"; +} + +.uniui-bottom:before { + content: "\e6b8"; +} + +.uniui-arrowdown:before { + content: "\e6b8"; +} + +.uniui-right:before { + content: "\e6b5"; +} + +.uniui-arrowright:before { + content: "\e6b5"; +} + +.uniui-top:before { + content: "\e6b6"; +} + +.uniui-arrowup:before { + content: "\e6b6"; +} + +.uniui-left:before { + content: "\e6b7"; +} + +.uniui-arrowleft:before { + content: "\e6b7"; +} + +.uniui-eye:before { + content: "\e651"; +} + +.uniui-eye-filled:before { + content: "\e66a"; +} + +.uniui-eye-slash:before { + content: "\e6b3"; +} + +.uniui-eye-slash-filled:before { + content: "\e6b4"; +} + +.uniui-info-filled:before { + content: "\e649"; +} + +.uniui-reload:before { + content: "\e6b2"; +} + +.uniui-micoff-filled:before { + content: "\e6b0"; +} + +.uniui-map-pin-ellipse:before { + content: "\e6ac"; +} + +.uniui-map-pin:before { + content: "\e6ad"; +} + +.uniui-location:before { + content: "\e6ae"; +} + +.uniui-starhalf:before { + content: "\e683"; +} + +.uniui-star:before { + content: "\e688"; +} + +.uniui-star-filled:before { + content: "\e68f"; +} + +.uniui-calendar:before { + content: "\e6a0"; +} + +.uniui-fire:before { + content: "\e6a1"; +} + +.uniui-medal:before { + content: "\e6a2"; +} + +.uniui-font:before { + content: "\e6a3"; +} + +.uniui-gift:before { + content: "\e6a4"; +} + +.uniui-link:before { + content: "\e6a5"; +} + +.uniui-notification:before { + content: "\e6a6"; +} + +.uniui-staff:before { + content: "\e6a7"; +} + +.uniui-vip:before { + content: "\e6a8"; +} + +.uniui-folder-add:before { + content: "\e6a9"; +} + +.uniui-tune:before { + content: "\e6aa"; +} + +.uniui-auth:before { + content: "\e6ab"; +} + +.uniui-person:before { + content: "\e699"; +} + +.uniui-email-filled:before { + content: "\e69a"; +} + +.uniui-phone-filled:before { + content: "\e69b"; +} + +.uniui-phone:before { + content: "\e69c"; +} + +.uniui-email:before { + content: "\e69e"; +} + +.uniui-personadd:before { + content: "\e69f"; +} + +.uniui-chatboxes-filled:before { + content: "\e692"; +} + +.uniui-contact:before { + content: "\e693"; +} + +.uniui-chatbubble-filled:before { + content: "\e694"; +} + +.uniui-contact-filled:before { + content: "\e695"; +} + +.uniui-chatboxes:before { + content: "\e696"; +} + +.uniui-chatbubble:before { + content: "\e697"; +} + +.uniui-upload-filled:before { + content: "\e68e"; +} + +.uniui-upload:before { + content: "\e690"; +} + +.uniui-weixin:before { + content: "\e691"; +} + +.uniui-compose:before { + content: "\e67f"; +} + +.uniui-qq:before { + content: "\e680"; +} + +.uniui-download-filled:before { + content: "\e681"; +} + +.uniui-pyq:before { + content: "\e682"; +} + +.uniui-sound:before { + content: "\e684"; +} + +.uniui-trash-filled:before { + content: "\e685"; +} + +.uniui-sound-filled:before { + content: "\e686"; +} + +.uniui-trash:before { + content: "\e687"; +} + +.uniui-videocam-filled:before { + content: "\e689"; +} + +.uniui-spinner-cycle:before { + content: "\e68a"; +} + +.uniui-weibo:before { + content: "\e68b"; +} + +.uniui-videocam:before { + content: "\e68c"; +} + +.uniui-download:before { + content: "\e68d"; +} + +.uniui-help:before { + content: "\e679"; +} + +.uniui-navigate-filled:before { + content: "\e67a"; +} + +.uniui-plusempty:before { + content: "\e67b"; +} + +.uniui-smallcircle:before { + content: "\e67c"; +} + +.uniui-minus-filled:before { + content: "\e67d"; +} + +.uniui-micoff:before { + content: "\e67e"; +} + +.uniui-closeempty:before { + content: "\e66c"; +} + +.uniui-clear:before { + content: "\e66d"; +} + +.uniui-navigate:before { + content: "\e66e"; +} + +.uniui-minus:before { + content: "\e66f"; +} + +.uniui-image:before { + content: "\e670"; +} + +.uniui-mic:before { + content: "\e671"; +} + +.uniui-paperplane:before { + content: "\e672"; +} + +.uniui-close:before { + content: "\e673"; +} + +.uniui-help-filled:before { + content: "\e674"; +} + +.uniui-paperplane-filled:before { + content: "\e675"; +} + +.uniui-plus:before { + content: "\e676"; +} + +.uniui-mic-filled:before { + content: "\e677"; +} + +.uniui-image-filled:before { + content: "\e678"; +} + +.uniui-locked-filled:before { + content: "\e668"; +} + +.uniui-info:before { + content: "\e669"; +} + +.uniui-locked:before { + content: "\e66b"; +} + +.uniui-camera-filled:before { + content: "\e658"; +} + +.uniui-chat-filled:before { + content: "\e659"; +} + +.uniui-camera:before { + content: "\e65a"; +} + +.uniui-circle:before { + content: "\e65b"; +} + +.uniui-checkmarkempty:before { + content: "\e65c"; +} + +.uniui-chat:before { + content: "\e65d"; +} + +.uniui-circle-filled:before { + content: "\e65e"; +} + +.uniui-flag:before { + content: "\e65f"; +} + +.uniui-flag-filled:before { + content: "\e660"; +} + +.uniui-gear-filled:before { + content: "\e661"; +} + +.uniui-home:before { + content: "\e662"; +} + +.uniui-home-filled:before { + content: "\e663"; +} + +.uniui-gear:before { + content: "\e664"; +} + +.uniui-smallcircle-filled:before { + content: "\e665"; +} + +.uniui-map-filled:before { + content: "\e666"; +} + +.uniui-map:before { + content: "\e667"; +} + +.uniui-refresh-filled:before { + content: "\e656"; +} + +.uniui-refresh:before { + content: "\e657"; +} + +.uniui-cloud-upload:before { + content: "\e645"; +} + +.uniui-cloud-download-filled:before { + content: "\e646"; +} + +.uniui-cloud-download:before { + content: "\e647"; +} + +.uniui-cloud-upload-filled:before { + content: "\e648"; +} + +.uniui-redo:before { + content: "\e64a"; +} + +.uniui-images-filled:before { + content: "\e64b"; +} + +.uniui-undo-filled:before { + content: "\e64c"; +} + +.uniui-more:before { + content: "\e64d"; +} + +.uniui-more-filled:before { + content: "\e64e"; +} + +.uniui-undo:before { + content: "\e64f"; +} + +.uniui-images:before { + content: "\e650"; +} + +.uniui-paperclip:before { + content: "\e652"; +} + +.uniui-settings:before { + content: "\e653"; +} + +.uniui-search:before { + content: "\e654"; +} + +.uniui-redo-filled:before { + content: "\e655"; +} + +.uniui-list:before { + content: "\e644"; +} + +.uniui-mail-open-filled:before { + content: "\e63a"; +} + +.uniui-hand-down-filled:before { + content: "\e63c"; +} + +.uniui-hand-down:before { + content: "\e63d"; +} + +.uniui-hand-up-filled:before { + content: "\e63e"; +} + +.uniui-hand-up:before { + content: "\e63f"; +} + +.uniui-heart-filled:before { + content: "\e641"; +} + +.uniui-mail-open:before { + content: "\e643"; +} + +.uniui-heart:before { + content: "\e639"; +} + +.uniui-loop:before { + content: "\e633"; +} + +.uniui-pulldown:before { + content: "\e632"; +} + +.uniui-scan:before { + content: "\e62a"; +} + +.uniui-bars:before { + content: "\e627"; +} + +.uniui-cart-filled:before { + content: "\e629"; +} + +.uniui-checkbox:before { + content: "\e62b"; +} + +.uniui-checkbox-filled:before { + content: "\e62c"; +} + +.uniui-shop:before { + content: "\e62f"; +} + +.uniui-headphones:before { + content: "\e630"; +} + +.uniui-cart:before { + content: "\e631"; +} diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons.ttf b/uni_modules/uni-icons/components/uni-icons/uniicons.ttf new file mode 100644 index 0000000..835f33b Binary files /dev/null and b/uni_modules/uni-icons/components/uni-icons/uniicons.ttf differ diff --git a/uni_modules/uni-icons/package.json b/uni_modules/uni-icons/package.json new file mode 100644 index 0000000..d1c4e77 --- /dev/null +++ b/uni_modules/uni-icons/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-icons", + "displayName": "uni-icons 图标", + "version": "1.3.5", + "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。", + "keywords": [ + "uni-ui", + "uniui", + "icon", + "图标" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.14" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-icons/readme.md b/uni_modules/uni-icons/readme.md new file mode 100644 index 0000000..86234ba --- /dev/null +++ b/uni_modules/uni-icons/readme.md @@ -0,0 +1,8 @@ +## Icons 图标 +> **组件名:uni-icons** +> 代码块: `uIcons` + +用于展示 icons 图标 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-indexed-list/changelog.md b/uni_modules/uni-indexed-list/changelog.md new file mode 100644 index 0000000..08fa71c --- /dev/null +++ b/uni_modules/uni-indexed-list/changelog.md @@ -0,0 +1,17 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-indexed-list](https://uniapp.dcloud.io/component/uniui/uni-indexed-list) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.11(2021-05-12) +- 新增 组件示例地址 +## 1.0.10(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.9(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.8(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持 PC 端 diff --git a/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue b/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue new file mode 100644 index 0000000..a971234 --- /dev/null +++ b/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue b/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue new file mode 100644 index 0000000..dbc83b7 --- /dev/null +++ b/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue @@ -0,0 +1,367 @@ + + + diff --git a/uni_modules/uni-indexed-list/package.json b/uni_modules/uni-indexed-list/package.json new file mode 100644 index 0000000..125c0e7 --- /dev/null +++ b/uni_modules/uni-indexed-list/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-indexed-list", + "displayName": "uni-indexed-list 索引列表", + "version": "1.2.1", + "description": "索引列表组件,右侧带索引的列表,方便快速定位到具体内容,通常用于城市/机场选择等场景", + "keywords": [ + "uni-ui", + "索引列表", + "索引", + "列表" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-indexed-list/readme.md b/uni_modules/uni-indexed-list/readme.md new file mode 100644 index 0000000..44ad84b --- /dev/null +++ b/uni_modules/uni-indexed-list/readme.md @@ -0,0 +1,11 @@ + + +## IndexedList 索引列表 +> **组件名:uni-indexed-list** +> 代码块: `uIndexedList` + + +用于展示索引列表。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-indexed-list) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-link/changelog.md b/uni_modules/uni-link/changelog.md new file mode 100644 index 0000000..2cfbf59 --- /dev/null +++ b/uni_modules/uni-link/changelog.md @@ -0,0 +1,17 @@ +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-link](https://uniapp.dcloud.io/component/uniui/uni-link) +## 1.1.7(2021-11-08) +## 0.0.7(2021-09-03) +- 修复 在 nvue 下不显示的 bug +## 0.0.6(2021-07-30) +- 新增 支持自定义插槽 +## 0.0.5(2021-06-21) +- 新增 download 属性,H5平台下载文件名 +## 0.0.4(2021-05-12) +- 新增 组件示例地址 +## 0.0.3(2021-03-09) +- 新增 href 属性支持 tel:|mailto: + +## 0.0.2(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-link/components/uni-link/uni-link.vue b/uni_modules/uni-link/components/uni-link/uni-link.vue new file mode 100644 index 0000000..27c5468 --- /dev/null +++ b/uni_modules/uni-link/components/uni-link/uni-link.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/uni_modules/uni-link/package.json b/uni_modules/uni-link/package.json new file mode 100644 index 0000000..77b1986 --- /dev/null +++ b/uni_modules/uni-link/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-link", + "displayName": "uni-link 超链接", + "version": "1.0.0", + "description": "uni-link是一个外部网页超链接组件,在小程序内复制url,在app内打开外部浏览器,在h5端打", + "keywords": [ + "uni-ui", + "uniui", + "link", + "超链接", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-link/readme.md b/uni_modules/uni-link/readme.md new file mode 100644 index 0000000..7f09e94 --- /dev/null +++ b/uni_modules/uni-link/readme.md @@ -0,0 +1,11 @@ + + +## Link 链接 +> **组件名:uni-link** +> 代码块: `uLink` + + +uni-link是一个外部网页超链接组件,在小程序内复制url,在app内打开外部浏览器,在h5端打开新网页。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-link) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-list/changelog.md b/uni_modules/uni-list/changelog.md new file mode 100644 index 0000000..6aa6e4e --- /dev/null +++ b/uni_modules/uni-list/changelog.md @@ -0,0 +1,20 @@ +## 1.2.1(2022-03-30) +- 删除无用文件 +## 1.2.0(2021-11-23) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-list](https://uniapp.dcloud.io/component/uniui/uni-list) +## 1.1.3(2021-08-30) +- 修复 在vue3中to属性在发行应用的时候报错的bug +## 1.1.2(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.1.1(2021-07-21) +- 修复 与其他组件嵌套使用时,点击失效的Bug +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.17(2021-05-12) +- 新增 组件示例地址 +## 1.0.16(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.0.15(2021-02-05) +- 调整为uni_modules目录规范 +- 修复 uni-list-chat 角标显示不正常的问题 diff --git a/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue b/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue new file mode 100644 index 0000000..d145b54 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss b/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss new file mode 100644 index 0000000..7e2708f --- /dev/null +++ b/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss @@ -0,0 +1,58 @@ +/** + * 这里是 uni-list 组件内置的常用样式变量 + * 如果需要覆盖样式,这里提供了基本的组件样式变量,您可以尝试修改这里的变量,去完成样式替换,而不用去修改源码 + * + */ + +// 背景色 +$background-color : #fff; +// 分割线颜色 +$divide-line-color : #e5e5e5; + +// 默认头像大小,如需要修改此值,注意同步修改 js 中的值 const avatarWidth = xx ,目前只支持方形头像 +// nvue 页面不支持修改头像大小 +$avatar-width : 45px ; + +// 头像边框 +$avatar-border-radius: 5px; +$avatar-border-color: #eee; +$avatar-border-width: 1px; + +// 标题文字样式 +$title-size : 16px; +$title-color : #3b4144; +$title-weight : normal; + +// 描述文字样式 +$note-size : 12px; +$note-color : #999; +$note-weight : normal; + +// 右侧额外内容默认样式 +$right-text-size : 12px; +$right-text-color : #999; +$right-text-weight : normal; + +// 角标样式 +// nvue 页面不支持修改圆点位置以及大小 +// 角标在左侧时,角标的位置,默认为 0 ,负数左/下移动,正数右/上移动 +$badge-left: 0px; +$badge-top: 0px; + +// 显示圆点时,圆点大小 +$dot-width: 10px; +$dot-height: 10px; + +// 显示角标时,角标大小和字体大小 +$badge-size : 18px; +$badge-font : 12px; +// 显示角标时,角标前景色 +$badge-color : #fff; +// 显示角标时,角标背景色 +$badge-background-color : #ff5a5f; +// 显示角标时,角标左右间距 +$badge-space : 6px; + +// 状态样式 +// 选中颜色 +$hover : #f5f5f5; diff --git a/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue b/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue new file mode 100644 index 0000000..04e56b8 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue @@ -0,0 +1,538 @@ + + + + + diff --git a/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue b/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue new file mode 100644 index 0000000..2c7d9ea --- /dev/null +++ b/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue @@ -0,0 +1,454 @@ + + + + + diff --git a/uni_modules/uni-list/components/uni-list/uni-list.vue b/uni_modules/uni-list/components/uni-list/uni-list.vue new file mode 100644 index 0000000..7940afc --- /dev/null +++ b/uni_modules/uni-list/components/uni-list/uni-list.vue @@ -0,0 +1,108 @@ + + + + diff --git a/uni_modules/uni-list/components/uni-list/uni-refresh.vue b/uni_modules/uni-list/components/uni-list/uni-refresh.vue new file mode 100644 index 0000000..3b4c5a2 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list/uni-refresh.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/uni_modules/uni-list/components/uni-list/uni-refresh.wxs b/uni_modules/uni-list/components/uni-list/uni-refresh.wxs new file mode 100644 index 0000000..818a6b7 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list/uni-refresh.wxs @@ -0,0 +1,87 @@ +var pullDown = { + threshold: 95, + maxHeight: 200, + callRefresh: 'onrefresh', + callPullingDown: 'onpullingdown', + refreshSelector: '.uni-refresh' +}; + +function ready(newValue, oldValue, ownerInstance, instance) { + var state = instance.getState() + state.canPullDown = newValue; + // console.log(newValue); +} + +function touchStart(e, instance) { + var state = instance.getState(); + state.refreshInstance = instance.selectComponent(pullDown.refreshSelector); + state.canPullDown = (state.refreshInstance != null && state.refreshInstance != undefined); + if (!state.canPullDown) { + return + } + + // console.log("touchStart"); + + state.height = 0; + state.touchStartY = e.touches[0].pageY || e.changedTouches[0].pageY; + state.refreshInstance.setStyle({ + 'height': 0 + }); + state.refreshInstance.callMethod("onchange", true); +} + +function touchMove(e, ownerInstance) { + var instance = e.instance; + var state = instance.getState(); + if (!state.canPullDown) { + return + } + + var oldHeight = state.height; + var endY = e.touches[0].pageY || e.changedTouches[0].pageY; + var height = endY - state.touchStartY; + if (height > pullDown.maxHeight) { + return; + } + + var refreshInstance = state.refreshInstance; + refreshInstance.setStyle({ + 'height': height + 'px' + }); + + height = height < pullDown.maxHeight ? height : pullDown.maxHeight; + state.height = height; + refreshInstance.callMethod(pullDown.callPullingDown, { + height: height + }); +} + +function touchEnd(e, ownerInstance) { + var state = e.instance.getState(); + if (!state.canPullDown) { + return + } + + state.refreshInstance.callMethod("onchange", false); + + var refreshInstance = state.refreshInstance; + if (state.height > pullDown.threshold) { + refreshInstance.callMethod(pullDown.callRefresh); + return; + } + + refreshInstance.setStyle({ + 'height': 0 + }); +} + +function propObserver(newValue, oldValue, instance) { + pullDown = newValue; +} + +module.exports = { + touchmove: touchMove, + touchstart: touchStart, + touchend: touchEnd, + propObserver: propObserver +} diff --git a/uni_modules/uni-list/package.json b/uni_modules/uni-list/package.json new file mode 100644 index 0000000..66e8bef --- /dev/null +++ b/uni_modules/uni-list/package.json @@ -0,0 +1,91 @@ +{ + "id": "uni-list", + "displayName": "uni-list 列表", + "version": "1.2.1", + "description": "List 组件 ,帮助使用者快速构建列表。", + "keywords": [ + "", + "uni-ui", + "uniui", + "列表", + "", + "list" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-badge", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-list/readme.md b/uni_modules/uni-list/readme.md new file mode 100644 index 0000000..32c2865 --- /dev/null +++ b/uni_modules/uni-list/readme.md @@ -0,0 +1,346 @@ +## List 列表 +> **组件名:uni-list** +> 代码块: `uList`、`uListItem` +> 关联组件:`uni-list-item`、`uni-badge`、`uni-icons`、`uni-list-chat`、`uni-list-ad` + + +List 列表组件,包含基本列表样式、可扩展插槽机制、长列表性能优化、多端兼容。 + +在vue页面里,它默认使用页面级滚动。在app-nvue页面里,它默认使用原生list组件滚动。这样的长列表,在滚动出屏幕外后,系统会回收不可见区域的渲染内存资源,不会造成滚动越长手机越卡的问题。 + +uni-list组件是父容器,里面的核心是uni-list-item子组件,它代表列表中的一个可重复行,子组件可以无限循环。 + +uni-list-item有很多风格,uni-list-item组件通过内置的属性,满足一些常用的场景。当内置属性不满足需求时,可以通过扩展插槽来自定义列表内容。 + +内置属性可以覆盖的场景包括:导航列表、设置列表、小图标列表、通信录列表、聊天记录列表。 + +涉及很多大图或丰富内容的列表,比如类今日头条的新闻列表、类淘宝的电商列表,需要通过扩展插槽实现。 + +下文均有样例给出。 + +uni-list不包含下拉刷新和上拉翻页。上拉翻页另见组件:[uni-load-more](https://ext.dcloud.net.cn/plugin?id=29) + + +### 安装方式 + +本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。 + +如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55) + +> **注意事项** +> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。 +> - 组件需要依赖 `sass` 插件 ,请自行手动安装 +> - 组件内部依赖 `'uni-icons'` 、`uni-badge` 组件 +> - `uni-list` 和 `uni-list-item` 需要配套使用,暂不支持单独使用 `uni-list-item` +> - 只有开启点击反馈后,会有点击选中效果 +> - 使用插槽时,可以完全自定义内容 +> - note 、rightText 属性暂时没做限制,不支持文字溢出隐藏,使用时应该控制长度显示或通过默认插槽自行扩展 +> - 支付宝小程序平台需要在支付宝小程序开发者工具里开启 component2 编译模式,开启方式: 详情 --> 项目配置 --> 启用 component2 编译 +> - 如果需要修改 `switch`、`badge` 样式,请使用插槽自定义 +> - 在 `HBuilderX` 低版本中,可能会出现组件显示 `undefined` 的问题,请升级最新的 `HBuilderX` 或者 `cli` +> - 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + +### 基本用法 + +- 设置 `title` 属性,可以显示列表标题 +- 设置 `disabled` 属性,可以禁用当前项 + +```html + + + + + +``` + +### 多行内容显示 + +- 设置 `note` 属性 ,可以在第二行显示描述文本信息 + +```html + + + + + +``` + +### 右侧显示角标、switch + +- 设置 `show-badge` 属性 ,可以显示角标内容 +- 设置 `show-switch` 属性,可以显示 switch 开关 + +```html + + + + + +``` + +### 左侧显示略缩图、图标 + +- 设置 `thumb` 属性 ,可以在列表左侧显示略缩图 +- 设置 `show-extra-icon` 属性,并指定 `extra-icon` 可以在左侧显示图标 + +```html + + + + +``` + +### 开启点击反馈和右侧箭头 +- 设置 `clickable` 为 `true` ,则表示这是一个可点击的列表,会默认给一个点击效果,并可以监听 `click` 事件 +- 设置 `link` 属性,会自动开启点击反馈,并给列表右侧添加一个箭头 +- 设置 `to` 属性,可以跳转页面,`link` 的值表示跳转方式,如果不指定,默认为 `navigateTo` + +```html + + + + + + + +``` + + +### 聊天列表示例 +- 设置 `clickable` 为 `true` ,则表示这是一个可点击的列表,会默认给一个点击效果,并可以监听 `click` 事件 +- 设置 `link` 属性,会自动开启点击反馈,`link` 的值表示跳转方式,如果不指定,默认为 `navigateTo` +- 设置 `to` 属性,可以跳转页面 +- `time` 属性,通常会设置成时间显示,但是这个属性不仅仅可以设置时间,你可以传入任何文本,注意文本长度可能会影响显示 +- `avatar` 和 `avatarList` 属性同时只会有一个生效,同时设置的话,`avatarList` 属性的长度大于1 ,`avatar` 属性将失效 +- 可以通过默认插槽自定义列表右侧内容 + +```html + + + + + + + + + + + + + + + + + 刚刚 + + + + + + + +``` + +```javascript + +export default { + components: {}, + data() { + return { + avatarList: [{ + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }, { + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }, { + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }] + } + } +} + +``` + + +```css + +.chat-custom-right { + flex: 1; + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + flex-direction: column; + justify-content: space-between; + align-items: flex-end; +} + +.chat-custom-text { + font-size: 12px; + color: #999; +} + +``` + +## API + +### List Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +border |Boolean |true | 是否显示边框 + + +### ListItem Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +title |String |- | 标题 +note |String |- | 描述 +ellipsis |Number |0 | title 是否溢出隐藏,可选值,0:默认; 1:显示一行; 2:显示两行;【nvue 暂不支持】 +thumb |String |- | 左侧缩略图,若thumb有值,则不会显示扩展图标 +thumbSize |String |medium | 略缩图尺寸,可选值,lg:大图; medium:一般; sm:小图; +showBadge |Boolean |false | 是否显示数字角标 +badgeText |String |- | 数字角标内容 +badgeType |String |- | 数字角标类型,参考[uni-icons](https://ext.dcloud.net.cn/plugin?id=21) +badgeStyle |Object |- | 数字角标样式,使用uni-badge的custom-style参数 +rightText |String |- | 右侧文字内容 +disabled |Boolean |false | 是否禁用 +showArrow |Boolean |true | 是否显示箭头图标 +link |String |navigateTo | 新页面跳转方式,可选值见下表 +to |String |- | 新页面跳转地址,如填写此属性,click 会返回页面是否跳转成功 +clickable |Boolean |false | 是否开启点击反馈 +showSwitch |Boolean |false | 是否显示Switch +switchChecked |Boolean |false | Switch是否被选中 +showExtraIcon |Boolean |false | 左侧是否显示扩展图标 +extraIcon |Object |- | 扩展图标参数,格式为 ``{color: '#4cd964',size: '22',type: 'spinner'}``,参考 [uni-icons](https://ext.dcloud.net.cn/plugin?id=28) +direction | String |row | 排版方向,可选值,row:水平排列; column:垂直排列; 3个插槽是水平排还是垂直排,也受此属性控制 + + +#### Link Options + +属性名 | 说明 +:-: | :-: +navigateTo | 同 uni.navigateTo() +redirectTo | 同 uni.reLaunch() +reLaunch | 同 uni.reLaunch() +switchTab | 同 uni.switchTab() + +### ListItem Events + +事件称名 |说明 |返回参数 +:-: |:-: |:-: +click |点击 uniListItem 触发事件,需开启点击反馈 |- +switchChange |点击切换 Switch 时触发,需显示 switch |e={value:checked} + + + +### ListItem Slots + +名称 | 说明 +:-: | :-: +header | 左/上内容插槽,可完全自定义默认显示 +body | 中间内容插槽,可完全自定义中间内容 +footer | 右/下内容插槽,可完全自定义右侧内容 + + +> **通过插槽扩展** +> 需要注意的是当使用插槽时,内置样式将会失效,只保留排版样式,此时的样式需要开发者自己实现 +> 如果 `uni-list-item` 组件内置属性样式无法满足需求,可以使用插槽来自定义uni-list-item里的内容。 +> uni-list-item提供了3个可扩展的插槽:`header`、`body`、`footer` +> - 当 `direction` 属性为 `row` 时表示水平排列,此时 `header` 表示列表的左边部分,`body` 表示列表的中间部分,`footer` 表示列表的右边部分 +> - 当 `direction` 属性为 `column` 时表示垂直排列,此时 `header` 表示列表的上边部分,`body` 表示列表的中间部分,`footer` 表示列表的下边部分 +> 开发者可以只用1个插槽,也可以3个一起使用。在插槽中可自主编写view标签,实现自己所需的效果。 + + +**示例** + +```html + + + + + + + + + 自定义插槽 + + + + +``` + + + + + +### ListItemChat Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +title |String |- | 标题 +note |String |- | 描述 +clickable |Boolean |false | 是否开启点击反馈 +badgeText |String |- | 数字角标内容,设置为 `dot` 将显示圆点 +badgePositon |String |right | 角标位置 +link |String |navigateTo | 是否展示右侧箭头并开启点击反馈,可选值见下表 +clickable |Boolean |false | 是否开启点击反馈 +to |String |- | 跳转页面地址,如填写此属性,click 会返回页面是否跳转成功 +time |String |- | 右侧时间显示 +avatarCircle |Boolean |false | 是否显示圆形头像 +avatar |String |- | 头像地址,avatarCircle 不填时生效 +avatarList |Array |- | 头像组,格式为 [{url:''}] + +#### Link Options + +属性名 | 说明 +:-: | :-: +navigateTo | 同 uni.navigateTo() +redirectTo | 同 uni.reLaunch() +reLaunch | 同 uni.reLaunch() +switchTab | 同 uni.switchTab() + +### ListItemChat Slots + +名称 | 说明 +:- | :- +default | 自定义列表右侧内容(包括时间和角标显示) + +### ListItemChat Events +事件称名 | 说明 | 返回参数 +:-: | :-: | :-: +@click | 点击 uniListChat 触发事件 | {data:{}} ,如有 to 属性,会返回页面跳转信息 + + + + + + +## 基于uni-list扩展的页面模板 + +通过扩展插槽,可实现多种常见样式的列表 + +**新闻列表类** + +1. 云端一体混合布局:[https://ext.dcloud.net.cn/plugin?id=2546](https://ext.dcloud.net.cn/plugin?id=2546) +2. 云端一体垂直布局,大图模式:[https://ext.dcloud.net.cn/plugin?id=2583](https://ext.dcloud.net.cn/plugin?id=2583) +3. 云端一体垂直布局,多行图文混排:[https://ext.dcloud.net.cn/plugin?id=2584](https://ext.dcloud.net.cn/plugin?id=2584) +4. 云端一体垂直布局,多图模式:[https://ext.dcloud.net.cn/plugin?id=2585](https://ext.dcloud.net.cn/plugin?id=2585) +5. 云端一体水平布局,左图右文:[https://ext.dcloud.net.cn/plugin?id=2586](https://ext.dcloud.net.cn/plugin?id=2586) +6. 云端一体水平布局,左文右图:[https://ext.dcloud.net.cn/plugin?id=2587](https://ext.dcloud.net.cn/plugin?id=2587) +7. 云端一体垂直布局,无图模式,主标题+副标题:[https://ext.dcloud.net.cn/plugin?id=2588](https://ext.dcloud.net.cn/plugin?id=2588) + +**商品列表类** + +1. 云端一体列表/宫格视图互切:[https://ext.dcloud.net.cn/plugin?id=2651](https://ext.dcloud.net.cn/plugin?id=2651) +2. 云端一体列表(宫格模式):[https://ext.dcloud.net.cn/plugin?id=2671](https://ext.dcloud.net.cn/plugin?id=2671) +3. 云端一体列表(列表模式):[https://ext.dcloud.net.cn/plugin?id=2672](https://ext.dcloud.net.cn/plugin?id=2672) + +## 组件示例 + +点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/list/list](https://hellouniapp.dcloud.net.cn/pages/extUI/list/list) \ No newline at end of file diff --git a/uni_modules/uni-load-more/changelog.md b/uni_modules/uni-load-more/changelog.md new file mode 100644 index 0000000..8f03f1d --- /dev/null +++ b/uni_modules/uni-load-more/changelog.md @@ -0,0 +1,19 @@ +## 1.3.3(2022-01-20) +- 新增 showText属性 ,是否显示文本 +## 1.3.2(2022-01-19) +- 修复 nvue 平台下不显示文本的bug +## 1.3.1(2022-01-19) +- 修复 微信小程序平台样式选择器报警告的问题 +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-load-more](https://uniapp.dcloud.io/component/uniui/uni-load-more) +## 1.2.1(2021-08-24) +- 新增 支持国际化 +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.8(2021-05-12) +- 新增 组件示例地址 +## 1.1.7(2021-03-30) +- 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug +## 1.1.6(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json b/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json new file mode 100644 index 0000000..6f45b0e --- /dev/null +++ b/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "Pull up to show more", + "uni-load-more.contentrefresh": "loading...", + "uni-load-more.contentnomore": "No more data" +} diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js b/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js new file mode 100644 index 0000000..fa8f0f3 --- /dev/null +++ b/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json b/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json new file mode 100644 index 0000000..3a14ca0 --- /dev/null +++ b/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "上拉显示更多", + "uni-load-more.contentrefresh": "正在加载...", + "uni-load-more.contentnomore": "没有更多数据了" +} diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json b/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json new file mode 100644 index 0000000..ee99b06 --- /dev/null +++ b/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "上拉顯示更多", + "uni-load-more.contentrefresh": "正在加載...", + "uni-load-more.contentnomore": "沒有更多數據了" +} diff --git a/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue b/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue new file mode 100644 index 0000000..ededbc2 --- /dev/null +++ b/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue @@ -0,0 +1,399 @@ + + + + + diff --git a/uni_modules/uni-load-more/package.json b/uni_modules/uni-load-more/package.json new file mode 100644 index 0000000..2fa6f04 --- /dev/null +++ b/uni_modules/uni-load-more/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-load-more", + "displayName": "uni-load-more 加载更多", + "version": "1.3.3", + "description": "LoadMore 组件,常用在列表里面,做滚动加载使用。", + "keywords": [ + "uni-ui", + "uniui", + "加载更多", + "load-more" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-load-more/readme.md b/uni_modules/uni-load-more/readme.md new file mode 100644 index 0000000..54dc1fa --- /dev/null +++ b/uni_modules/uni-load-more/readme.md @@ -0,0 +1,14 @@ + + +### LoadMore 加载更多 +> **组件名:uni-load-more** +> 代码块: `uLoadMore` + + +用于列表中,做滚动加载使用,展示 loading 的各种状态。 + + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-load-more) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-nav-bar/changelog.md b/uni_modules/uni-nav-bar/changelog.md new file mode 100644 index 0000000..fbacca4 --- /dev/null +++ b/uni_modules/uni-nav-bar/changelog.md @@ -0,0 +1,37 @@ +## 1.3.4(2022-01-24) +- 更新 组件示例 +## 1.3.3(2022-01-24) +- 新增 left-width/right-width属性 ,可修改左右两侧的宽度 +## 1.3.2(2022-01-18) +- 修复 在vue下,标题不垂直居中的bug +## 1.3.1(2022-01-18) +- 修复 height 属性类型错误 +## 1.3.0(2022-01-18) +- 新增 height 属性,可修改组件高度 +- 新增 dark 属性可可开启暗黑模式 +- 优化 标题字数过多显示省略号 +- 优化 插槽,插入内容可完全覆盖 +## 1.2.1(2022-01-10) +- 修复 color 属性不生效的bug +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-nav-bar](https://uniapp.dcloud.io/component/uniui/uni-nav-bar) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.11(2021-05-12) +- 新增 组件示例地址 +## 1.0.10(2021-04-30) +- 修复 在nvue下fixed为true,宽度不能撑满的Bug +## 1.0.9(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.8(2021-04-14) +- uni-ui 修复 uni-nav-bar 当 fixed 属性为 true 时铺不满屏幕的 bug + +## 1.0.7(2021-02-25) +- 修复 easycom 下,找不到 uni-status-bar 的bug + +## 1.0.6(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue b/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue new file mode 100644 index 0000000..61de452 --- /dev/null +++ b/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue @@ -0,0 +1,344 @@ + + + + + diff --git a/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue b/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue new file mode 100644 index 0000000..75ce541 --- /dev/null +++ b/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/uni_modules/uni-nav-bar/package.json b/uni_modules/uni-nav-bar/package.json new file mode 100644 index 0000000..e1473ca --- /dev/null +++ b/uni_modules/uni-nav-bar/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-nav-bar", + "displayName": "uni-nav-bar 自定义导航栏", + "version": "1.3.4", + "description": "自定义导航栏组件,主要用于头部导航。", + "keywords": [ + "uni-ui", + "导航", + "导航栏", + "自定义导航栏" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-nav-bar/readme.md b/uni_modules/uni-nav-bar/readme.md new file mode 100644 index 0000000..3934b32 --- /dev/null +++ b/uni_modules/uni-nav-bar/readme.md @@ -0,0 +1,15 @@ + + +## NavBar 导航栏 +> **组件名:uni-nav-bar** +> 代码块: `uNavBar` + +导航栏组件,主要用于头部导航。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-nav-bar) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + + + diff --git a/uni_modules/uni-notice-bar/changelog.md b/uni_modules/uni-notice-bar/changelog.md new file mode 100644 index 0000000..9ee75a0 --- /dev/null +++ b/uni_modules/uni-notice-bar/changelog.md @@ -0,0 +1,16 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-notice-bar](https://uniapp.dcloud.io/component/uniui/uni-notice-bar) +## 1.1.1(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.9(2021-05-12) +- 新增 组件示例地址 +## 1.0.8(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.7(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.6(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue b/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue new file mode 100644 index 0000000..e7685c5 --- /dev/null +++ b/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue @@ -0,0 +1,395 @@ + + + + + diff --git a/uni_modules/uni-notice-bar/package.json b/uni_modules/uni-notice-bar/package.json new file mode 100644 index 0000000..97719a0 --- /dev/null +++ b/uni_modules/uni-notice-bar/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-notice-bar", + "displayName": "uni-notice-bar 通告栏", + "version": "1.2.0", + "description": "NoticeBar 通告栏组件,常用于展示公告信息,可设为滚动公告", + "keywords": [ + "uni-ui", + "uniui", + "通告栏", + "公告", + "跑马灯" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-notice-bar/readme.md b/uni_modules/uni-notice-bar/readme.md new file mode 100644 index 0000000..fb2ede2 --- /dev/null +++ b/uni_modules/uni-notice-bar/readme.md @@ -0,0 +1,13 @@ + + +## NoticeBar 通告栏 +> **组件名:uni-notice-bar** +> 代码块: `uNoticeBar` + + +通告栏组件 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-notice-bar) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-number-box/changelog.md b/uni_modules/uni-number-box/changelog.md new file mode 100644 index 0000000..5925c32 --- /dev/null +++ b/uni_modules/uni-number-box/changelog.md @@ -0,0 +1,25 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-number-box](https://uniapp.dcloud.io/component/uniui/uni-number-box) +## 1.1.2(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.1.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-04-20) +- 修复 uni-number-box 浮点数运算不精确的 bug +- 修复 uni-number-box change 事件触发不正确的 bug +- 新增 uni-number-box v-model 双向绑定 +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 + +## 1.0.7(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持 v-model +- 新增 支持 focus、blur 事件 +- 新增 支持 PC 端 diff --git a/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue b/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue new file mode 100644 index 0000000..4a735da --- /dev/null +++ b/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue @@ -0,0 +1,221 @@ + + + diff --git a/uni_modules/uni-number-box/package.json b/uni_modules/uni-number-box/package.json new file mode 100644 index 0000000..ad82336 --- /dev/null +++ b/uni_modules/uni-number-box/package.json @@ -0,0 +1,85 @@ +{ + "id": "uni-number-box", + "displayName": "uni-number-box 数字输入框", + "version": "1.2.1", + "description": "NumberBox 带加减按钮的数字输入框组件,用户可以控制每次点击增加的数值,支持小数。", + "keywords": [ + "uni-ui", + "uniui", + "数字输入框" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-number-box/readme.md b/uni_modules/uni-number-box/readme.md new file mode 100644 index 0000000..affc56f --- /dev/null +++ b/uni_modules/uni-number-box/readme.md @@ -0,0 +1,13 @@ + + +## NumberBox 数字输入框 +> **组件名:uni-number-box** +> 代码块: `uNumberBox` + + +带加减按钮的数字输入框。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-number-box) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-pagination/changelog.md b/uni_modules/uni-pagination/changelog.md new file mode 100644 index 0000000..336c2ba --- /dev/null +++ b/uni_modules/uni-pagination/changelog.md @@ -0,0 +1,20 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-pagination](https://uniapp.dcloud.io/component/uniui/uni-pagination) +## 1.1.2(2021-10-08) +- 修复 current 、value 属性未监听,导致高亮样式失效的 bug +## 1.1.1(2021-08-20) +- 新增 支持国际化 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-04-12) +- 新增 PC 和 移动端适配不同的 ui +## 1.0.5(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json new file mode 100644 index 0000000..1479581 --- /dev/null +++ b/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "prev", + "uni-pagination.nextText": "next" +} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json new file mode 100644 index 0000000..7fd8d9d --- /dev/null +++ b/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "anterior", + "uni-pagination.nextText": "próxima" +} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json new file mode 100644 index 0000000..99e8023 --- /dev/null +++ b/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "précédente", + "uni-pagination.nextText": "suivante" +} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js b/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js new file mode 100644 index 0000000..01986f1 --- /dev/null +++ b/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js @@ -0,0 +1,12 @@ +import en from './en.json' +import es from './es.json' +import fr from './fr.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + es, + fr, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json new file mode 100644 index 0000000..448daae --- /dev/null +++ b/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "上一页", + "uni-pagination.nextText": "下一页" +} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json new file mode 100644 index 0000000..39c9137 --- /dev/null +++ b/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "上一頁", + "uni-pagination.nextText": "下一頁" +} diff --git a/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue b/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue new file mode 100644 index 0000000..55dcbe6 --- /dev/null +++ b/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue @@ -0,0 +1,409 @@ + + + + + diff --git a/uni_modules/uni-pagination/package.json b/uni_modules/uni-pagination/package.json new file mode 100644 index 0000000..adce670 --- /dev/null +++ b/uni_modules/uni-pagination/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-pagination", + "displayName": "uni-pagination 分页器", + "version": "1.2.1", + "description": "Pagination 分页器组件,用于展示页码、请求数据等。", + "keywords": [ + "uni-ui", + "uniui", + "分页器", + "页码" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-icons"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-pagination/readme.md b/uni_modules/uni-pagination/readme.md new file mode 100644 index 0000000..eefa263 --- /dev/null +++ b/uni_modules/uni-pagination/readme.md @@ -0,0 +1,13 @@ + + +## Pagination 分页器 +> **组件名:uni-pagination** +> 代码块: `uPagination` + + +分页器组件,用于展示页码、请求数据等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-pagination) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-popup/changelog.md b/uni_modules/uni-popup/changelog.md new file mode 100644 index 0000000..a9e2d66 --- /dev/null +++ b/uni_modules/uni-popup/changelog.md @@ -0,0 +1,60 @@ +## 1.7.9(2022-04-02) +- 修复 弹出层内部无法滚动的bug +## 1.7.8(2022-03-28) +- 修复 小程序中高度错误的bug +## 1.7.7(2022-03-17) +- 修复 快速调用open出现问题的Bug +## 1.7.6(2022-02-14) +- 修复 safeArea 属性不能设置为false的bug +## 1.7.5(2022-01-19) +- 修复 isMaskClick 失效的bug +## 1.7.4(2022-01-19) +- 新增 cancelText \ confirmText 属性 ,可自定义文本 +- 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色 +- 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题 +## 1.7.3(2022-01-13) +- 修复 设置 safeArea 属性不生效的bug +## 1.7.2(2021-11-26) +- 优化 组件示例 +## 1.7.1(2021-11-26) +- 修复 vuedoc 文字错误 +## 1.7.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-popup](https://uniapp.dcloud.io/component/uniui/uni-popup) +## 1.6.2(2021-08-24) +- 新增 支持国际化 +## 1.6.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.6.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.5.0(2021-06-23) +- 新增 mask-click 遮罩层点击事件 +## 1.4.5(2021-06-22) +- 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +## 1.4.4(2021-06-18) +- 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +## 1.4.3(2021-06-08) +- 修复 错误的 watch 字段 +- 修复 safeArea 属性不生效的问题 +- 修复 点击内容,再点击遮罩无法关闭的Bug +## 1.4.2(2021-05-12) +- 新增 组件示例地址 +## 1.4.1(2021-04-29) +- 修复 组件内放置 input 、textarea 组件,无法聚焦的问题 +## 1.4.0 (2021-04-29) +- 新增 type 属性的 left\right 值,支持左右弹出 +- 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗 +- 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色 +- 新增 safeArea 属性,是否适配底部安全区 +- 修复 App\h5\微信小程序底部安全区占位不对的Bug +- 修复 App 端弹出等待的Bug +- 优化 提升低配设备性能,优化动画卡顿问题 +- 优化 更简单的组件自定义方式 +## 1.2.9(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.2.8(2021-02-05) +- 调整为uni_modules目录规范 +## 1.2.7(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持 PC 端 +- 新增 uni-popup-message 、uni-popup-dialog扩展组件支持 PC 端 diff --git a/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js b/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js new file mode 100644 index 0000000..a747b9f --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + this.$once('hook:beforeDestroy', () => { + document.removeEventListener('keyup', listener) + }) + }, + render: () => {} +} +// #endif diff --git a/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue b/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue new file mode 100644 index 0000000..c20df4a --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue @@ -0,0 +1,271 @@ + + + + + diff --git a/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue b/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue new file mode 100644 index 0000000..7f27a1e --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue @@ -0,0 +1,143 @@ + + + + diff --git a/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue b/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue new file mode 100644 index 0000000..ab08656 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue @@ -0,0 +1,187 @@ + + + + diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/en.json b/uni_modules/uni-popup/components/uni-popup/i18n/en.json new file mode 100644 index 0000000..8c0f5f3 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/i18n/en.json @@ -0,0 +1,7 @@ +{ + "uni-popup.cancel": "cancel", + "uni-popup.ok": "ok", + "uni-popup.placeholder": "pleace enter", + "uni-popup.title": "Hint", + "uni-popup.shareTitle": "Share to" +} diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/index.js b/uni_modules/uni-popup/components/uni-popup/i18n/index.js new file mode 100644 index 0000000..fa8f0f3 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json new file mode 100644 index 0000000..8e5b99f --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json @@ -0,0 +1,7 @@ +{ + "uni-popup.cancel": "取消", + "uni-popup.ok": "确定", + "uni-popup.placeholder": "请输入", + "uni-popup.title": "提示", + "uni-popup.shareTitle": "分享到" +} diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json new file mode 100644 index 0000000..06ce162 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json @@ -0,0 +1,7 @@ +{ + "uni-popup.cancel": "取消", + "uni-popup.ok": "確定", + "uni-popup.placeholder": "請輸入", + "uni-popup.title": "提示", + "uni-popup.shareTitle": "分享到" +} diff --git a/uni_modules/uni-popup/components/uni-popup/keypress.js b/uni_modules/uni-popup/components/uni-popup/keypress.js new file mode 100644 index 0000000..16a5818 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + // this.$once('hook:beforeDestroy', () => { + // document.removeEventListener('keyup', listener) + // }) + }, + render: () => {} +} +// #endif diff --git a/uni_modules/uni-popup/components/uni-popup/popup.js b/uni_modules/uni-popup/components/uni-popup/popup.js new file mode 100644 index 0000000..a37fb9f --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/popup.js @@ -0,0 +1,26 @@ + +export default { + data() { + return { + + } + }, + created(){ + this.popup = this.getParent() + }, + methods:{ + /** + * 获取父元素实例 + */ + getParent(name = 'uniPopup') { + let parent = this.$parent; + let parentName = parent.$options.name; + while (parentName !== name) { + parent = parent.$parent; + if (!parent) return false + parentName = parent.$options.name; + } + return parent; + }, + } +} diff --git a/uni_modules/uni-popup/components/uni-popup/uni-popup.vue b/uni_modules/uni-popup/components/uni-popup/uni-popup.vue new file mode 100644 index 0000000..a3ced3d --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/uni-popup.vue @@ -0,0 +1,474 @@ + + + + diff --git a/uni_modules/uni-popup/package.json b/uni_modules/uni-popup/package.json new file mode 100644 index 0000000..069e9ce --- /dev/null +++ b/uni_modules/uni-popup/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-popup", + "displayName": "uni-popup 弹出层", + "version": "1.7.9", + "description": " Popup 组件,提供常用的弹层", + "keywords": [ + "uni-ui", + "弹出层", + "弹窗", + "popup", + "弹框" + ], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-transition" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-popup/readme.md b/uni_modules/uni-popup/readme.md new file mode 100644 index 0000000..fdad4b3 --- /dev/null +++ b/uni_modules/uni-popup/readme.md @@ -0,0 +1,17 @@ + + +## Popup 弹出层 +> **组件名:uni-popup** +> 代码块: `uPopup` +> 关联组件:`uni-transition` + + +弹出层组件,在应用中弹出一个消息提示窗口、提示框等 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-popup) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + + + diff --git a/uni_modules/uni-rate/changelog.md b/uni_modules/uni-rate/changelog.md new file mode 100644 index 0000000..8a98a61 --- /dev/null +++ b/uni_modules/uni-rate/changelog.md @@ -0,0 +1,25 @@ +## 1.3.1(2022-02-25) +- 修复 条件判断 `NaN` 错误的 bug +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-rate](https://uniapp.dcloud.io/component/uniui/uni-rate) +## 1.2.2(2021-09-10) +- 优化 默认值修改为 0 颗星 +## 1.2.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.2(2021-05-12) +- 新增 组件示例地址 +## 1.1.1(2021-04-21) +- 修复 布局变化后 uni-rate 星星计算不准确的 bug +- 优化 添加依赖 uni-icons, 导入 uni-rate 自动下载依赖 +## 1.1.0(2021-04-16) +- 修复 uni-rate 属性 margin 值为 string 组件失效的 bug + +## 1.0.9(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.8(2021-02-05) +- 调整为uni_modules目录规范 +- 支持 pc 端 diff --git a/uni_modules/uni-rate/components/uni-rate/uni-rate.vue b/uni_modules/uni-rate/components/uni-rate/uni-rate.vue new file mode 100644 index 0000000..e535406 --- /dev/null +++ b/uni_modules/uni-rate/components/uni-rate/uni-rate.vue @@ -0,0 +1,361 @@ + + + + + diff --git a/uni_modules/uni-rate/package.json b/uni_modules/uni-rate/package.json new file mode 100644 index 0000000..64e8e33 --- /dev/null +++ b/uni_modules/uni-rate/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-rate", + "displayName": "uni-rate 评分", + "version": "1.3.1", + "description": "Rate 评分组件,可自定义评分星星图标的大小、间隔、评分数。", + "keywords": [ + "uni-ui", + "uniui", + "评分" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-rate/readme.md b/uni_modules/uni-rate/readme.md new file mode 100644 index 0000000..eae7b5c --- /dev/null +++ b/uni_modules/uni-rate/readme.md @@ -0,0 +1,12 @@ + + +## Rate 评分 +> **组件名:uni-rate** +> 代码块: `uRate` +> 关联组件:`uni-icons` + + +评分组件,多用于购买商品后,对商品进行评价等场景 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-rate) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-row/changelog.md b/uni_modules/uni-row/changelog.md new file mode 100644 index 0000000..5b465bc --- /dev/null +++ b/uni_modules/uni-row/changelog.md @@ -0,0 +1,10 @@ +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-row](https://uniapp.dcloud.io/component/uniui/uni-row) +## 0.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.0.4(2021-05-12) +- 新增 组件示例地址 +## 0.0.3(2021-02-05) +- 调整为uni_modules目录规范 +- 新增uni-row组件 diff --git a/uni_modules/uni-row/components/uni-col/uni-col.vue b/uni_modules/uni-row/components/uni-col/uni-col.vue new file mode 100644 index 0000000..d5f3728 --- /dev/null +++ b/uni_modules/uni-row/components/uni-col/uni-col.vue @@ -0,0 +1,317 @@ + + + + + diff --git a/uni_modules/uni-row/components/uni-row/uni-row.vue b/uni_modules/uni-row/components/uni-row/uni-row.vue new file mode 100644 index 0000000..c7d9370 --- /dev/null +++ b/uni_modules/uni-row/components/uni-row/uni-row.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/uni_modules/uni-row/package.json b/uni_modules/uni-row/package.json new file mode 100644 index 0000000..3f52fa6 --- /dev/null +++ b/uni_modules/uni-row/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-row", + "displayName": "uni-row 布局-行", + "version": "1.0.0", + "description": "流式栅格系统,随着屏幕或视口分为 24 份,可以迅速简便地创建布局。", + "keywords": [ + "uni-ui", + "uniui", + "栅格", + "布局", + "layout" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "u" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-row/readme.md b/uni_modules/uni-row/readme.md new file mode 100644 index 0000000..3c9c8b9 --- /dev/null +++ b/uni_modules/uni-row/readme.md @@ -0,0 +1,10 @@ +## Layout 布局 + +> **组件名 uni-row、uni-col** +> 代码块: `uRow`、`uCol` + + +流式栅格系统,随着屏幕或视口分为 24 份,可以迅速简便地创建布局。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-row) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-scss/changelog.md b/uni_modules/uni-scss/changelog.md new file mode 100644 index 0000000..b863bb0 --- /dev/null +++ b/uni_modules/uni-scss/changelog.md @@ -0,0 +1,8 @@ +## 1.0.3(2022-01-21) +- 优化 组件示例 +## 1.0.2(2021-11-22) +- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题 +## 1.0.1(2021-11-22) +- 修复 vue3中scss语法兼容问题 +## 1.0.0(2021-11-18) +- init diff --git a/uni_modules/uni-scss/index.scss b/uni_modules/uni-scss/index.scss new file mode 100644 index 0000000..1744a5f --- /dev/null +++ b/uni_modules/uni-scss/index.scss @@ -0,0 +1 @@ +@import './styles/index.scss'; diff --git a/uni_modules/uni-scss/package.json b/uni_modules/uni-scss/package.json new file mode 100644 index 0000000..7cc0ccb --- /dev/null +++ b/uni_modules/uni-scss/package.json @@ -0,0 +1,82 @@ +{ + "id": "uni-scss", + "displayName": "uni-scss 辅助样式", + "version": "1.0.3", + "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。", + "keywords": [ + "uni-scss", + "uni-ui", + "辅助样式" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "JS SDK", + "通用 SDK" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-scss/readme.md b/uni_modules/uni-scss/readme.md new file mode 100644 index 0000000..b7d1c25 --- /dev/null +++ b/uni_modules/uni-scss/readme.md @@ -0,0 +1,4 @@ +`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/index.scss b/uni_modules/uni-scss/styles/index.scss new file mode 100644 index 0000000..ffac4fe --- /dev/null +++ b/uni_modules/uni-scss/styles/index.scss @@ -0,0 +1,7 @@ +@import './setting/_variables.scss'; +@import './setting/_border.scss'; +@import './setting/_color.scss'; +@import './setting/_space.scss'; +@import './setting/_radius.scss'; +@import './setting/_text.scss'; +@import './setting/_styles.scss'; diff --git a/uni_modules/uni-scss/styles/setting/_border.scss b/uni_modules/uni-scss/styles/setting/_border.scss new file mode 100644 index 0000000..12a11c3 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_border.scss @@ -0,0 +1,3 @@ +.uni-border { + border: 1px $uni-border-1 solid; +} \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/setting/_color.scss b/uni_modules/uni-scss/styles/setting/_color.scss new file mode 100644 index 0000000..1ededd9 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_color.scss @@ -0,0 +1,66 @@ + +// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐 +// @mixin get-styles($k,$c) { +// @if $k == size or $k == weight{ +// font-#{$k}:#{$c} +// }@else{ +// #{$k}:#{$c} +// } +// } +$uni-ui-color:( + // 主色 + primary: $uni-primary, + primary-disable: $uni-primary-disable, + primary-light: $uni-primary-light, + // 辅助色 + success: $uni-success, + success-disable: $uni-success-disable, + success-light: $uni-success-light, + warning: $uni-warning, + warning-disable: $uni-warning-disable, + warning-light: $uni-warning-light, + error: $uni-error, + error-disable: $uni-error-disable, + error-light: $uni-error-light, + info: $uni-info, + info-disable: $uni-info-disable, + info-light: $uni-info-light, + // 中性色 + main-color: $uni-main-color, + base-color: $uni-base-color, + secondary-color: $uni-secondary-color, + extra-color: $uni-extra-color, + // 背景色 + bg-color: $uni-bg-color, + // 边框颜色 + border-1: $uni-border-1, + border-2: $uni-border-2, + border-3: $uni-border-3, + border-4: $uni-border-4, + // 黑色 + black:$uni-black, + // 白色 + white:$uni-white, + // 透明 + transparent:$uni-transparent +) !default; +@each $key, $child in $uni-ui-color { + .uni-#{"" + $key} { + color: $child; + } + .uni-#{"" + $key}-bg { + background-color: $child; + } +} +.uni-shadow-sm { + box-shadow: $uni-shadow-sm; +} +.uni-shadow-base { + box-shadow: $uni-shadow-base; +} +.uni-shadow-lg { + box-shadow: $uni-shadow-lg; +} +.uni-mask { + background-color:$uni-mask; +} diff --git a/uni_modules/uni-scss/styles/setting/_radius.scss b/uni_modules/uni-scss/styles/setting/_radius.scss new file mode 100644 index 0000000..9a0428b --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_radius.scss @@ -0,0 +1,55 @@ +@mixin radius($r,$d:null ,$important: false){ + $radius-value:map-get($uni-radius, $r) if($important, !important, null); + // Key exists within the $uni-radius variable + @if (map-has-key($uni-radius, $r) and $d){ + @if $d == t { + border-top-left-radius:$radius-value; + border-top-right-radius:$radius-value; + }@else if $d == r { + border-top-right-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == b { + border-bottom-left-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == l { + border-top-left-radius:$radius-value; + border-bottom-left-radius:$radius-value; + }@else if $d == tl { + border-top-left-radius:$radius-value; + }@else if $d == tr { + border-top-right-radius:$radius-value; + }@else if $d == br { + border-bottom-right-radius:$radius-value; + }@else if $d == bl { + border-bottom-left-radius:$radius-value; + } + }@else{ + border-radius:$radius-value; + } +} + +@each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $key} { + @include radius($key) + } + }@else{ + .uni-radius { + @include radius($key) + } + } +} + +@each $direction in t, r, b, l,tl, tr, br, bl { + @each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $direction}-#{"" + $key} { + @include radius($key,$direction,false) + } + }@else{ + .uni-radius-#{$direction} { + @include radius($key,$direction,false) + } + } + } +} diff --git a/uni_modules/uni-scss/styles/setting/_space.scss b/uni_modules/uni-scss/styles/setting/_space.scss new file mode 100644 index 0000000..3c89528 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_space.scss @@ -0,0 +1,56 @@ + +@mixin fn($space,$direction,$size,$n) { + @if $n { + #{$space}-#{$direction}: #{$size*$uni-space-root}px + } @else { + #{$space}-#{$direction}: #{-$size*$uni-space-root}px + } +} +@mixin get-styles($direction,$i,$space,$n){ + @if $direction == t { + @include fn($space, top,$i,$n); + } + @if $direction == r { + @include fn($space, right,$i,$n); + } + @if $direction == b { + @include fn($space, bottom,$i,$n); + } + @if $direction == l { + @include fn($space, left,$i,$n); + } + @if $direction == x { + @include fn($space, left,$i,$n); + @include fn($space, right,$i,$n); + } + @if $direction == y { + @include fn($space, top,$i,$n); + @include fn($space, bottom,$i,$n); + } + @if $direction == a { + @if $n { + #{$space}:#{$i*$uni-space-root}px; + } @else { + #{$space}:#{-$i*$uni-space-root}px; + } + } +} + +@each $orientation in m,p { + $space: margin; + @if $orientation == m { + $space: margin; + } @else { + $space: padding; + } + @for $i from 0 through 16 { + @each $direction in t, r, b, l, x, y, a { + .uni-#{$orientation}#{$direction}-#{$i} { + @include get-styles($direction,$i,$space,true); + } + .uni-#{$orientation}#{$direction}-n#{$i} { + @include get-styles($direction,$i,$space,false); + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/setting/_styles.scss b/uni_modules/uni-scss/styles/setting/_styles.scss new file mode 100644 index 0000000..689afec --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_styles.scss @@ -0,0 +1,167 @@ +/* #ifndef APP-NVUE */ + +$-color-white:#fff; +$-color-black:#000; +@mixin base-style($color) { + color: #fff; + background-color: $color; + border-color: mix($-color-black, $color, 8%); + &:not([hover-class]):active { + background: mix($-color-black, $color, 10%); + border-color: mix($-color-black, $color, 20%); + color: $-color-white; + outline: none; + } +} +@mixin is-color($color) { + @include base-style($color); + &[loading] { + @include base-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &[loading], + &:not([hover-class]):active { + color: $-color-white; + border-color: mix(darken($color,10%), $-color-white); + background-color: mix($color, $-color-white); + } + } + +} +@mixin base-plain-style($color) { + color:$color; + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 70%); + &:not([hover-class]):active { + background: mix($-color-white, $color, 80%); + color: $color; + outline: none; + border-color: mix($-color-white, $color, 50%); + } +} +@mixin is-plain($color){ + &[plain] { + @include base-plain-style($color); + &[loading] { + @include base-plain-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &:active { + color: mix($-color-white, $color, 40%); + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 80%); + } + } + } +} + + +.uni-btn { + margin: 5px; + color: #393939; + border:1px solid #ccc; + font-size: 16px; + font-weight: 200; + background-color: #F9F9F9; + // TODO 暂时处理边框隐藏一边的问题 + overflow: visible; + &::after{ + border: none; + } + + &:not([type]),&[type=default] { + color: #999; + &[loading] { + background: none; + &::before { + margin-right:5px; + } + } + + + + &[disabled]{ + color: mix($-color-white, #999, 60%); + &, + &[loading], + &:active { + color: mix($-color-white, #999, 60%); + background-color: mix($-color-white,$-color-black , 98%); + border-color: mix($-color-white, #999, 85%); + } + } + + &[plain] { + color: #999; + background: none; + border-color: $uni-border-1; + &:not([hover-class]):active { + background: none; + color: mix($-color-white, $-color-black, 80%); + border-color: mix($-color-white, $-color-black, 90%); + outline: none; + } + &[disabled]{ + &, + &[loading], + &:active { + background: none; + color: mix($-color-white, #999, 60%); + border-color: mix($-color-white, #999, 85%); + } + } + } + } + + &:not([hover-class]):active { + color: mix($-color-white, $-color-black, 50%); + } + + &[size=mini] { + font-size: 16px; + font-weight: 200; + border-radius: 8px; + } + + + + &.uni-btn-small { + font-size: 14px; + } + &.uni-btn-mini { + font-size: 12px; + } + + &.uni-btn-radius { + border-radius: 999px; + } + &[type=primary] { + @include is-color($uni-primary); + @include is-plain($uni-primary) + } + &[type=success] { + @include is-color($uni-success); + @include is-plain($uni-success) + } + &[type=error] { + @include is-color($uni-error); + @include is-plain($uni-error) + } + &[type=warning] { + @include is-color($uni-warning); + @include is-plain($uni-warning) + } + &[type=info] { + @include is-color($uni-info); + @include is-plain($uni-info) + } +} +/* #endif */ diff --git a/uni_modules/uni-scss/styles/setting/_text.scss b/uni_modules/uni-scss/styles/setting/_text.scss new file mode 100644 index 0000000..a34d08f --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_text.scss @@ -0,0 +1,24 @@ +@mixin get-styles($k,$c) { + @if $k == size or $k == weight{ + font-#{$k}:#{$c} + }@else{ + #{$k}:#{$c} + } +} + +@each $key, $child in $uni-headings { + /* #ifndef APP-NVUE */ + .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ + /* #ifdef APP-NVUE */ + .container .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ +} diff --git a/uni_modules/uni-scss/styles/setting/_variables.scss b/uni_modules/uni-scss/styles/setting/_variables.scss new file mode 100644 index 0000000..557d3d7 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_variables.scss @@ -0,0 +1,146 @@ +// @use "sass:math"; +@import '../tools/functions.scss'; +// 间距基础倍数 +$uni-space-root: 2 !default; +// 边框半径默认值 +$uni-radius-root:5px !default; +$uni-radius: () !default; +// 边框半径断点 +$uni-radius: map-deep-merge( + ( + 0: 0, + // TODO 当前版本暂时不支持 sm 属性 + // 'sm': math.div($uni-radius-root, 2), + null: $uni-radius-root, + 'lg': $uni-radius-root * 2, + 'xl': $uni-radius-root * 6, + 'pill': 9999px, + 'circle': 50% + ), + $uni-radius +); +// 字体家族 +$body-font-family: 'Roboto', sans-serif !default; +// 文本 +$heading-font-family: $body-font-family !default; +$uni-headings: () !default; +$letterSpacing: -0.01562em; +$uni-headings: map-deep-merge( + ( + 'h1': ( + size: 32px, + weight: 300, + line-height: 50px, + // letter-spacing:-0.01562em + ), + 'h2': ( + size: 28px, + weight: 300, + line-height: 40px, + // letter-spacing: -0.00833em + ), + 'h3': ( + size: 24px, + weight: 400, + line-height: 32px, + // letter-spacing: normal + ), + 'h4': ( + size: 20px, + weight: 400, + line-height: 30px, + // letter-spacing: 0.00735em + ), + 'h5': ( + size: 16px, + weight: 400, + line-height: 24px, + // letter-spacing: normal + ), + 'h6': ( + size: 14px, + weight: 500, + line-height: 18px, + // letter-spacing: 0.0125em + ), + 'subtitle': ( + size: 12px, + weight: 400, + line-height: 20px, + // letter-spacing: 0.00937em + ), + 'body': ( + font-size: 14px, + font-weight: 400, + line-height: 22px, + // letter-spacing: 0.03125em + ), + 'caption': ( + 'size': 12px, + 'weight': 400, + 'line-height': 20px, + // 'letter-spacing': 0.03333em, + // 'text-transform': false + ) + ), + $uni-headings +); + + + +// 主色 +$uni-primary: #2979ff !default; +$uni-primary-disable:lighten($uni-primary,20%) !default; +$uni-primary-light: lighten($uni-primary,25%) !default; + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37 !default; +$uni-success-disable:lighten($uni-success,20%) !default; +$uni-success-light: lighten($uni-success,25%) !default; + +$uni-warning: #f3a73f !default; +$uni-warning-disable:lighten($uni-warning,20%) !default; +$uni-warning-light: lighten($uni-warning,25%) !default; + +$uni-error: #e43d33 !default; +$uni-error-disable:lighten($uni-error,20%) !default; +$uni-error-light: lighten($uni-error,25%) !default; + +$uni-info: #8f939c !default; +$uni-info-disable:lighten($uni-info,20%) !default; +$uni-info-light: lighten($uni-info,25%) !default; + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a !default; // 主要文字 +$uni-base-color: #6a6a6a !default; // 常规文字 +$uni-secondary-color: #909399 !default; // 次要文字 +$uni-extra-color: #c7c7c7 !default; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0 !default; +$uni-border-2: #EDEDED !default; +$uni-border-3: #DCDCDC !default; +$uni-border-4: #B9B9B9 !default; + +// 常规色 +$uni-black: #000000 !default; +$uni-white: #ffffff !default; +$uni-transparent: rgba($color: #000000, $alpha: 0) !default; + +// 背景色 +$uni-bg-color: #f7f7f7 !default; + +/* 水平间距 */ +$uni-spacing-sm: 8px !default; +$uni-spacing-base: 15px !default; +$uni-spacing-lg: 30px !default; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default; +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default; +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default; + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4) !default; diff --git a/uni_modules/uni-scss/styles/tools/functions.scss b/uni_modules/uni-scss/styles/tools/functions.scss new file mode 100644 index 0000000..ac6f63e --- /dev/null +++ b/uni_modules/uni-scss/styles/tools/functions.scss @@ -0,0 +1,19 @@ +// 合并 map +@function map-deep-merge($parent-map, $child-map){ + $result: $parent-map; + @each $key, $child in $child-map { + $parent-has-key: map-has-key($result, $key); + $parent-value: map-get($result, $key); + $parent-type: type-of($parent-value); + $child-type: type-of($child); + $parent-is-map: $parent-type == map; + $child-is-map: $child-type == map; + + @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){ + $result: map-merge($result, ( $key: $child )); + }@else { + $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) )); + } + } + @return $result; +}; diff --git a/uni_modules/uni-scss/theme.scss b/uni_modules/uni-scss/theme.scss new file mode 100644 index 0000000..80ee62f --- /dev/null +++ b/uni_modules/uni-scss/theme.scss @@ -0,0 +1,31 @@ +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; +// 主色 +$uni-primary: #2979ff; +// 辅助色 +$uni-success: #4cd964; +// 警告色 +$uni-warning: #f0ad4e; +// 错误色 +$uni-error: #dd524d; +// 描述色 +$uni-info: #909399; +// 中性色 +$uni-main-color: #303133; +$uni-base-color: #606266; +$uni-secondary-color: #909399; +$uni-extra-color: #C0C4CC; +// 背景色 +$uni-bg-color: #f5f5f5; +// 边框颜色 +$uni-border-1: #DCDFE6; +$uni-border-2: #E4E7ED; +$uni-border-3: #EBEEF5; +$uni-border-4: #F2F6FC; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); diff --git a/uni_modules/uni-scss/variables.scss b/uni_modules/uni-scss/variables.scss new file mode 100644 index 0000000..1c062d4 --- /dev/null +++ b/uni_modules/uni-scss/variables.scss @@ -0,0 +1,62 @@ +@import './styles/setting/_variables.scss'; +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; + +// 主色 +$uni-primary: #2979ff; +$uni-primary-disable:mix(#fff,$uni-primary,50%); +$uni-primary-light: mix(#fff,$uni-primary,80%); + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37; +$uni-success-disable:mix(#fff,$uni-success,50%); +$uni-success-light: mix(#fff,$uni-success,80%); + +$uni-warning: #f3a73f; +$uni-warning-disable:mix(#fff,$uni-warning,50%); +$uni-warning-light: mix(#fff,$uni-warning,80%); + +$uni-error: #e43d33; +$uni-error-disable:mix(#fff,$uni-error,50%); +$uni-error-light: mix(#fff,$uni-error,80%); + +$uni-info: #8f939c; +$uni-info-disable:mix(#fff,$uni-info,50%); +$uni-info-light: mix(#fff,$uni-info,80%); + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a; // 主要文字 +$uni-base-color: #6a6a6a; // 常规文字 +$uni-secondary-color: #909399; // 次要文字 +$uni-extra-color: #c7c7c7; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0; +$uni-border-2: #EDEDED; +$uni-border-3: #DCDCDC; +$uni-border-4: #B9B9B9; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); + +// 背景色 +$uni-bg-color: #f7f7f7; + +/* 水平间距 */ +$uni-spacing-sm: 8px; +$uni-spacing-base: 15px; +$uni-spacing-lg: 30px; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5); +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2); +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5); + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4); diff --git a/uni_modules/uni-search-bar/changelog.md b/uni_modules/uni-search-bar/changelog.md new file mode 100644 index 0000000..3be48bc --- /dev/null +++ b/uni_modules/uni-search-bar/changelog.md @@ -0,0 +1,31 @@ +## 1.2.2(2022-05-06) +- 修复 vue3 input 事件不生效的bug +## 1.2.1(2022-05-06) +- 修复 多余代码导致的bug +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-search-bar](https://uniapp.dcloud.io/component/uniui/uni-search-bar) +## 1.1.2(2021-08-30) +- 修复 value 属性与 modelValue 属性不兼容的Bug +## 1.1.1(2021-08-24) +- 新增 支持国际化 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.9(2021-05-12) +- 新增 项目示例地址 +## 1.0.8(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.7(2021-04-15) +- uni-ui 新增 uni-search-bar 的 focus 事件 + +## 1.0.6(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持双向绑定 +- 更改 input 事件的返回值,e={value:Number} --> e=value +- 新增 支持图标插槽 +- 新增 支持 clear、blur 事件 +- 新增 支持 focus 属性 +- 去掉组件背景色 diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json new file mode 100644 index 0000000..0c72ffb --- /dev/null +++ b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json @@ -0,0 +1,4 @@ +{ + "uni-search-bar.cancel": "cancel", + "uni-search-bar.placeholder": "Search enter content" +} \ No newline at end of file diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js new file mode 100644 index 0000000..fa8f0f3 --- /dev/null +++ b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json new file mode 100644 index 0000000..37f5d31 --- /dev/null +++ b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json @@ -0,0 +1,4 @@ +{ + "uni-search-bar.cancel": "cancel", + "uni-search-bar.placeholder": "请输入搜索内容" +} diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json new file mode 100644 index 0000000..0cfebf2 --- /dev/null +++ b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json @@ -0,0 +1,4 @@ +{ + "uni-search-bar.cancel": "cancel", + "uni-search-bar.placeholder": "請輸入搜索內容" +} diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue b/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue new file mode 100644 index 0000000..e824350 --- /dev/null +++ b/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue @@ -0,0 +1,293 @@ + + + + + diff --git a/uni_modules/uni-search-bar/package.json b/uni_modules/uni-search-bar/package.json new file mode 100644 index 0000000..51c10fc --- /dev/null +++ b/uni_modules/uni-search-bar/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-search-bar", + "displayName": "uni-search-bar 搜索栏", + "version": "1.2.2", + "description": "搜索栏组件,通常用于搜索商品、文章等", + "keywords": [ + "uni-ui", + "uniui", + "搜索框", + "搜索栏" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-search-bar/readme.md b/uni_modules/uni-search-bar/readme.md new file mode 100644 index 0000000..253092f --- /dev/null +++ b/uni_modules/uni-search-bar/readme.md @@ -0,0 +1,14 @@ + + +## SearchBar 搜索栏 + +> **组件名:uni-search-bar** +> 代码块: `uSearchBar` + + +搜索栏组件 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-search-bar) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-segmented-control/changelog.md b/uni_modules/uni-segmented-control/changelog.md new file mode 100644 index 0000000..a44385d --- /dev/null +++ b/uni_modules/uni-segmented-control/changelog.md @@ -0,0 +1,9 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-segmented-control](https://uniapp.dcloud.io/component/uniui/uni-segmented-control) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.5(2021-05-12) +- 新增 项目示例地址 +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue b/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue new file mode 100644 index 0000000..775a3ec --- /dev/null +++ b/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/uni_modules/uni-segmented-control/package.json b/uni_modules/uni-segmented-control/package.json new file mode 100644 index 0000000..6cae41d --- /dev/null +++ b/uni_modules/uni-segmented-control/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-segmented-control", + "displayName": "uni-segmented-control 分段器", + "version": "1.2.0", + "description": "分段器由至少 2 个分段控件组成,用作不同视图的显示", + "keywords": [ + "uni-ui", + "uniui", + "分段器", + "segement", + "顶部选择" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-segmented-control/readme.md b/uni_modules/uni-segmented-control/readme.md new file mode 100644 index 0000000..3527b03 --- /dev/null +++ b/uni_modules/uni-segmented-control/readme.md @@ -0,0 +1,13 @@ + + +## SegmentedControl 分段器 +> **组件名:uni-segmented-control** +> 代码块: `uSegmentedControl` + + +用作不同视图的显示 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-segmented-control) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-steps/changelog.md b/uni_modules/uni-steps/changelog.md new file mode 100644 index 0000000..cb9d367 --- /dev/null +++ b/uni_modules/uni-steps/changelog.md @@ -0,0 +1,16 @@ +## 1.1.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.1.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-steps](https://uniapp.dcloud.io/component/uniui/uni-steps) +## 1.0.8(2021-05-12) +- 新增 项目示例地址 +## 1.0.7(2021-05-06) +- 修复 uni-steps 横向布局时,多行文字高度不合理的 bug +## 1.0.6(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.5(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-steps/components/uni-steps/uni-steps.vue b/uni_modules/uni-steps/components/uni-steps/uni-steps.vue new file mode 100644 index 0000000..284233a --- /dev/null +++ b/uni_modules/uni-steps/components/uni-steps/uni-steps.vue @@ -0,0 +1,269 @@ + + + + + diff --git a/uni_modules/uni-steps/package.json b/uni_modules/uni-steps/package.json new file mode 100644 index 0000000..c687b40 --- /dev/null +++ b/uni_modules/uni-steps/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-steps", + "displayName": "uni-steps 步骤条", + "version": "1.1.1", + "description": "步骤条组件,提供横向和纵向两种布局格式。", + "keywords": [ + "uni-ui", + "uniui", + "步骤条", + "时间轴" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-steps/readme.md b/uni_modules/uni-steps/readme.md new file mode 100644 index 0000000..da7a4bf --- /dev/null +++ b/uni_modules/uni-steps/readme.md @@ -0,0 +1,13 @@ + + +## Steps 步骤条 +> **组件名:uni-steps** +> 代码块: `uSteps` + + +步骤条,常用于显示进度 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-steps) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-swipe-action/changelog.md b/uni_modules/uni-swipe-action/changelog.md new file mode 100644 index 0000000..0ab2085 --- /dev/null +++ b/uni_modules/uni-swipe-action/changelog.md @@ -0,0 +1,33 @@ +## 1.3.3(2022-03-31) +- 修复 按钮字体大小不能设置的bug +## 1.3.2(2022-03-16) +- 修复 h5和app端下报el错误的bug +## 1.3.1(2022-03-07) +- 修复 HBuilderX 1.4.X 版本中,h5和app端下报错的bug +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-swipe-action](https://uniapp.dcloud.io/component/uniui/uni-swipe-action) +## 1.2.4(2021-08-20) +- 优化 close-all 方法 +## 1.2.3(2021-08-20) +- 新增 close-all 方法,关闭所有已打开的组件 +## 1.2.2(2021-08-17) +- 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 +- 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 +- 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 +## 1.2.1(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +- 修复 跨页面修改组件数据 ,导致不能滑动的问题 +## 1.1.10(2021-06-17) +- 修复 按钮点击执行两次的bug +## 1.1.9(2021-05-12) +- 新增 项目示例地址 +## 1.1.8(2021-03-26) +- 修复 微信小程序 nv_navigator is not defined 报错的bug +## 1.1.7(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 左侧滑动 +- 新增 插槽使用方式 +- 新增 threshold 属性,可以控制滑动缺省值 +- 优化 长列表滚动性能 +- 修复 滚动页面时触发组件滑动的Bug diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js new file mode 100644 index 0000000..fb97bb3 --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js @@ -0,0 +1,300 @@ +let bindIngXMixins = {} + +// #ifdef APP-NVUE +const BindingX = uni.requireNativePlugin('bindingx'); +const dom = uni.requireNativePlugin('dom'); +const animation = uni.requireNativePlugin('animation'); + +bindIngXMixins = { + data() { + return {} + }, + + watch: { + show(newVal) { + if (this.autoClose) return + if (this.stop) return + this.stop = true + if (newVal) { + this.open(newVal) + } else { + this.close() + } + }, + leftOptions() { + this.getSelectorQuery() + this.init() + }, + rightOptions(newVal) { + this.init() + } + }, + created() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.box = this.getEl(this.$refs['selector-box--hock']) + this.selector = this.getEl(this.$refs['selector-content--hock']); + this.leftButton = this.getEl(this.$refs['selector-left-button--hock']); + this.rightButton = this.getEl(this.$refs['selector-right-button--hock']); + this.init() + }, + // beforeDestroy() { + // this.swipeaction.children.forEach((item, index) => { + // if (item === this) { + // this.swipeaction.children.splice(index, 1) + // } + // }) + // }, + methods: { + init() { + this.$nextTick(() => { + this.x = 0 + this.button = { + show: false + } + setTimeout(() => { + this.getSelectorQuery() + }, 200) + }) + }, + onClick(index, item, position) { + this.$emit('click', { + content: item, + index, + position + }) + }, + touchstart(e) { + // 每次只触发一次,避免多次监听造成闪烁 + if (this.stop) return + this.stop = true + if (this.autoClose) { + this.swipeaction.closeOther(this) + } + + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + let expression = this.range(this.x, -rightWidth, leftWidth) + let leftExpression = this.range(this.x - leftWidth, -leftWidth, 0) + let rightExpression = this.range(this.x + rightWidth, 0, rightWidth) + + this.eventpan = BindingX.bind({ + anchor: this.box, + eventType: 'pan', + props: [{ + element: this.selector, + property: 'transform.translateX', + expression + }, { + element: this.leftButton, + property: 'transform.translateX', + expression: leftExpression + }, { + element: this.rightButton, + property: 'transform.translateX', + expression: rightExpression + }, ] + }, (e) => { + // nope + if (e.state === 'end') { + this.x = e.deltaX + this.x; + this.isclick = true + this.bindTiming(e.deltaX) + } + }); + }, + touchend(e) { + if (this.isopen !== 'none' && !this.isclick) { + this.open('none') + } + }, + bindTiming(x) { + const left = this.x + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + const threshold = this.threshold + if (!this.isopen || this.isopen === 'none') { + if (left > threshold) { + this.open('left') + } else if (left < -threshold) { + this.open('right') + } else { + this.open('none') + } + } else { + if ((x > -leftWidth && x < 0) || x > rightWidth) { + if ((x > -threshold && x < 0) || (x - rightWidth > threshold)) { + this.open('left') + } else { + this.open('none') + } + } else { + if ((x < threshold && x > 0) || (x + leftWidth < -threshold)) { + this.open('right') + } else { + this.open('none') + } + } + } + }, + + /** + * 移动范围 + * @param {Object} num + * @param {Object} mix + * @param {Object} max + */ + range(num, mix, max) { + return `min(max(x+${num}, ${mix}), ${max})` + }, + + /** + * 开启swipe + */ + open(type) { + this.animation(type) + }, + + /** + * 关闭swipe + */ + close() { + this.animation('none') + }, + + /** + * 开启关闭动画 + * @param {Object} type + */ + animation(type) { + const time = 300 + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + if (this.eventpan && this.eventpan.token) { + BindingX.unbind({ + token: this.eventpan.token, + eventType: 'pan' + }) + } + + switch (type) { + case 'left': + Promise.all([ + this.move(this.selector, leftWidth), + this.move(this.leftButton, 0), + this.move(this.rightButton, rightWidth * 2) + ]).then(() => { + this.setEmit(leftWidth, type) + }) + break + case 'right': + Promise.all([ + this.move(this.selector, -rightWidth), + this.move(this.leftButton, -leftWidth * 2), + this.move(this.rightButton, 0) + ]).then(() => { + this.setEmit(-rightWidth, type) + }) + break + default: + Promise.all([ + this.move(this.selector, 0), + this.move(this.leftButton, -leftWidth), + this.move(this.rightButton, rightWidth) + ]).then(() => { + this.setEmit(0, type) + }) + + } + }, + setEmit(x, type) { + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + this.isopen = this.isopen || 'none' + this.stop = false + this.isclick = false + // 只有状态不一致才会返回结果 + if (this.isopen !== type && this.x !== x) { + if (type === 'left' && leftWidth > 0) { + this.$emit('change', 'left') + } + if (type === 'right' && rightWidth > 0) { + this.$emit('change', 'right') + } + if (type === 'none') { + this.$emit('change', 'none') + } + } + this.x = x + this.isopen = type + }, + move(ref, value) { + return new Promise((resolve, reject) => { + animation.transition(ref, { + styles: { + transform: `translateX(${value})`, + }, + duration: 150, //ms + timingFunction: 'linear', + needLayout: false, + delay: 0 //ms + }, function(res) { + resolve(res) + }) + }) + + }, + + /** + * 获取ref + * @param {Object} el + */ + getEl(el) { + return el.ref + }, + /** + * 获取节点信息 + */ + getSelectorQuery() { + Promise.all([ + this.getDom('left'), + this.getDom('right'), + ]).then((data) => { + let show = 'none' + if (this.autoClose) { + show = 'none' + } else { + show = this.show + } + + if (show === 'none') { + // this.close() + } else { + this.open(show) + } + + }) + + }, + getDom(str) { + return new Promise((resolve, reject) => { + dom.getComponentRect(this.$refs[`selector-${str}-button--hock`], (data) => { + if (data) { + this.button[str] = data.size + resolve(data) + } else { + reject() + } + }) + }) + } + } +} + +// #endif + +export default bindIngXMixins diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js new file mode 100644 index 0000000..7f549f6 --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js @@ -0,0 +1,12 @@ +export function isPC() { + var userAgentInfo = navigator.userAgent; + var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; + var flag = true; + for (let v = 0; v < Agents.length - 1; v++) { + if (userAgentInfo.indexOf(Agents[v]) > 0) { + flag = false; + break; + } + } + return flag; +} \ No newline at end of file diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js new file mode 100644 index 0000000..ad737ce --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js @@ -0,0 +1,193 @@ +export default { + data() { + return { + x: 0, + transition: false, + width: 0, + viewWidth: 0, + swipeShow: 0 + } + }, + watch: { + show(newVal) { + if (this.autoClose) return + if (newVal && newVal !== 'none' ) { + this.transition = true + this.open(newVal) + } else { + this.close() + } + } + }, + created() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.isopen = false + setTimeout(() => { + this.getQuerySelect() + }, 50) + }, + methods: { + appTouchStart(e) { + const { + clientX + } = e.changedTouches[0] + this.clientX = clientX + this.timestamp = new Date().getTime() + }, + appTouchEnd(e, index, item, position) { + const { + clientX + } = e.changedTouches[0] + // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 + let diff = Math.abs(this.clientX - clientX) + let time = (new Date().getTime()) - this.timestamp + if (diff < 40 && time < 300) { + this.$emit('click', { + content: item, + index, + position + }) + } + }, + /** + * 移动触发 + * @param {Object} e + */ + onChange(e) { + this.moveX = e.detail.x + this.isclose = false + }, + touchstart(e) { + this.transition = false + this.isclose = true + this.autoClose && this.swipeaction.closeOther(this) + }, + touchmove(e) {}, + touchend(e) { + // 0的位置什么都不执行 + if (this.isclose && this.isopen === 'none') return + if (this.isclose && this.isopen !== 'none') { + this.transition = true + this.close() + } else { + this.move(this.moveX + this.leftWidth) + } + }, + + /** + * 移动 + * @param {Object} moveX + */ + move(moveX) { + // 打开关闭的处理逻辑不太一样 + this.transition = true + // 未打开状态 + if (!this.isopen || this.isopen === 'none') { + if (moveX > this.threshold) { + this.open('left') + } else if (moveX < -this.threshold) { + this.open('right') + } else { + this.close() + } + } else { + if (moveX < 0 && moveX < this.rightWidth) { + const rightX = this.rightWidth + moveX + if (rightX < this.threshold) { + this.open('right') + } else { + this.close() + } + } else if (moveX > 0 && moveX < this.leftWidth) { + const leftX = this.leftWidth - moveX + if (leftX < this.threshold) { + this.open('left') + } else { + this.close() + } + } + + } + + }, + + /** + * 打开 + */ + open(type) { + this.x = this.moveX + this.animation(type) + }, + + /** + * 关闭 + */ + close() { + this.x = this.moveX + // TODO 解决 x 值不更新的问题,所以会多触发一次 nextTick ,待优化 + this.$nextTick(() => { + this.x = -this.leftWidth + if(this.isopen!=='none'){ + this.$emit('change', 'none') + } + this.isopen = 'none' + }) + }, + + /** + * 执行结束动画 + * @param {Object} type + */ + animation(type) { + this.$nextTick(() => { + if (type === 'left') { + this.x = 0 + } else { + this.x = -this.rightWidth - this.leftWidth + } + + if(this.isopen!==type){ + this.$emit('change', type) + } + this.isopen = type + }) + + }, + getSlide(x) {}, + getQuerySelect() { + const query = uni.createSelectorQuery().in(this); + query.selectAll('.movable-view--hock').boundingClientRect(data => { + this.leftWidth = data[1].width + this.rightWidth = data[2].width + this.width = data[0].width + this.viewWidth = this.width + this.rightWidth + this.leftWidth + if (this.leftWidth === 0) { + // TODO 疑似bug ,初始化的时候如果x 是0,会导致移动位置错误,所以让元素超出一点 + this.x = -0.1 + } else { + this.x = -this.leftWidth + } + this.moveX = this.x + this.$nextTick(() => { + this.swipeShow = 1 + }) + + if (!this.buttonWidth) { + this.disabledView = true + } + + if (this.autoClose) return + if (this.show !== 'none') { + this.transition = true + this.open(this.shows) + } + }).exec(); + + } + } +} diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js new file mode 100644 index 0000000..581e56f --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js @@ -0,0 +1,257 @@ +let otherMixins = {} + +// #ifndef APP-PLUS|| MP-WEIXIN || H5 +const MIN_DISTANCE = 10; +otherMixins = { + data() { + // TODO 随机生生元素ID,解决百度小程序获取同一个元素位置信息的bug + const elClass = `Uni_${Math.ceil(Math.random() * 10e5).toString(36)}` + return { + uniShow: false, + left: 0, + buttonShow: 'none', + ani: false, + moveLeft:'', + elClass + } + }, + watch: { + show(newVal) { + if (this.autoClose) return + this.openState(newVal) + }, + left(){ + this.moveLeft = `translateX(${this.left}px)` + }, + buttonShow(newVal){ + if (this.autoClose) return + this.openState(newVal) + }, + leftOptions() { + this.init() + }, + rightOptions() { + this.init() + } + }, + mounted() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + this.init() + }, + methods: { + init(){ + clearTimeout(this.timer) + this.timer = setTimeout(() => { + this.getSelectorQuery() + }, 100) + // 移动距离 + this.left = 0 + this.x = 0 + }, + + closeSwipe(e) { + if (!this.autoClose) return + this.swipeaction.closeOther(this) + }, + appTouchStart(e) { + const { + clientX + } = e.changedTouches[0] + this.clientX = clientX + this.timestamp = new Date().getTime() + }, + appTouchEnd(e, index, item, position) { + const { + clientX + } = e.changedTouches[0] + // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 + let diff = Math.abs(this.clientX - clientX) + let time = (new Date().getTime()) - this.timestamp + if (diff < 40 && time < 300) { + this.$emit('click', { + content: item, + index, + position + }) + } + }, + touchstart(e) { + if (this.disabled) return + this.ani = false + this.x = this.left || 0 + this.stopTouchStart(e) + this.autoClose && this.closeSwipe() + }, + touchmove(e) { + if (this.disabled) return + // 是否可以滑动页面 + this.stopTouchMove(e); + if (this.direction !== 'horizontal') { + return; + } + this.move(this.x + this.deltaX) + return false + }, + touchend() { + if (this.disabled) return + this.moveDirection(this.left) + }, + /** + * 设置移动距离 + * @param {Object} value + */ + move(value) { + value = value || 0 + const leftWidth = this.leftWidth + const rightWidth = this.rightWidth + // 获取可滑动范围 + this.left = this.range(value, -rightWidth, leftWidth); + }, + + /** + * 获取范围 + * @param {Object} num + * @param {Object} min + * @param {Object} max + */ + range(num, min, max) { + return Math.min(Math.max(num, min), max); + }, + /** + * 移动方向判断 + * @param {Object} left + * @param {Object} value + */ + moveDirection(left) { + const threshold = this.threshold + const isopen = this.isopen || 'none' + const leftWidth = this.leftWidth + const rightWidth = this.rightWidth + if (this.deltaX === 0) { + this.openState('none') + return + } + if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > 0 && rightWidth + + left < threshold)) { + // right + this.openState('right') + } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > 0 && + leftWidth - left < threshold)) { + // left + this.openState('left') + } else { + // default + this.openState('none') + } + }, + + /** + * 开启状态 + * @param {Boolean} type + */ + openState(type) { + const leftWidth = this.leftWidth + const rightWidth = this.rightWidth + let left = '' + this.isopen = this.isopen ? this.isopen : 'none' + switch (type) { + case "left": + left = leftWidth + break + case "right": + left = -rightWidth + break + default: + left = 0 + } + + + if (this.isopen !== type) { + this.throttle = true + this.$emit('change', type) + } + + this.isopen = type + // 添加动画类 + this.ani = true + this.$nextTick(() => { + this.move(left) + }) + // 设置最终移动位置,理论上只要进入到这个函数,肯定是要打开的 + }, + close() { + this.openState('none') + }, + getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal'; + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical'; + } + return ''; + }, + + /** + * 重置滑动状态 + * @param {Object} event + */ + resetTouchStatus() { + this.direction = ''; + this.deltaX = 0; + this.deltaY = 0; + this.offsetX = 0; + this.offsetY = 0; + }, + + /** + * 设置滑动开始位置 + * @param {Object} event + */ + stopTouchStart(event) { + this.resetTouchStatus(); + const touch = event.touches[0]; + this.startX = touch.clientX; + this.startY = touch.clientY; + }, + + /** + * 滑动中,是否禁止打开 + * @param {Object} event + */ + stopTouchMove(event) { + const touch = event.touches[0]; + this.deltaX = touch.clientX - this.startX; + this.deltaY = touch.clientY - this.startY; + this.offsetX = Math.abs(this.deltaX); + this.offsetY = Math.abs(this.deltaY); + this.direction = this.direction || this.getDirection(this.offsetX, this.offsetY); + }, + + getSelectorQuery() { + const views = uni.createSelectorQuery().in(this) + views + .selectAll('.'+this.elClass) + .boundingClientRect(data => { + if(data.length === 0) return + let show = 'none' + if (this.autoClose) { + show = 'none' + } else { + show = this.show + } + this.leftWidth = data[0].width || 0 + this.rightWidth = data[1].width || 0 + this.buttonShow = show + }) + .exec() + } + } +} + +// #endif + +export default otherMixins diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js new file mode 100644 index 0000000..86c5ea9 --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js @@ -0,0 +1,86 @@ +let mpMixins = {} + +// #ifdef H5 +import { + isPC +} from "./isPC" +// #endif +// #ifdef APP-VUE|| MP-WEIXIN || H5 + +mpMixins = { + data() { + return { + is_show: 'none' + } + }, + watch: { + show(newVal) { + this.is_show = this.show + } + }, + created() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.is_show = this.show + }, + methods: { + // wxs 中调用 + closeSwipe(e) { + if (!this.autoClose) return + this.swipeaction.closeOther(this) + }, + + change(e) { + this.$emit('change', e.open) + if (this.is_show !== e.open) { + this.is_show = e.open + } + }, + + appTouchStart(e) { + let is_pc = isPC() || false + if (is_pc) return + const { + clientX + } = e.changedTouches[0] + this.clientX = clientX + this.timestamp = new Date().getTime() + }, + appTouchEnd(e, index, item, position) { + let is_pc = isPC() || false + if (is_pc) return + const { + clientX + } = e.changedTouches[0] + // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 + let diff = Math.abs(this.clientX - clientX) + let time = (new Date().getTime()) - this.timestamp + if (diff < 40 && time < 300) { + this.$emit('click', { + content: item, + index, + position + }) + } + }, + onClickForPC(index, item, position) { + + let is_pc = isPC() || false + if (is_pc) return + // #ifdef H5 + this.$emit('click', { + content: item, + index, + position + }) + // #endif + } + } +} + +// #endif +export default mpMixins diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js new file mode 100644 index 0000000..ed42f1b --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js @@ -0,0 +1,270 @@ +const MIN_DISTANCE = 10; +export default { + showWatch(newVal, oldVal, ownerInstance, instance,self) { + var state = self.state + var $el = ownerInstance.$el || ownerInstance.$vm && ownerInstance.$vm.$el + if(!$el) return + this.getDom(instance, ownerInstance,self) + if (newVal && newVal !== 'none') { + this.openState(newVal, instance, ownerInstance,self) + return + } + + if (state.left) { + this.openState('none', instance, ownerInstance,self) + } + this.resetTouchStatus(instance,self) + }, + + /** + * 开始触摸操作 + * @param {Object} e + * @param {Object} ins + */ + touchstart(e, ownerInstance, self) { + let instance = e.instance; + let disabled = instance.getDataset().disabled + let state = self.state; + this.getDom(instance, ownerInstance, self) + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = this.getDisabledType(disabled) + if (disabled) return + // 开始触摸时移除动画类 + instance.requestAnimationFrame(function() { + instance.removeClass('ani'); + ownerInstance.callMethod('closeSwipe'); + }) + + // 记录上次的位置 + state.x = state.left || 0 + // 计算滑动开始位置 + this.stopTouchStart(e, ownerInstance, self) + }, + + /** + * 开始滑动操作 + * @param {Object} e + * @param {Object} ownerInstance + */ + touchmove(e, ownerInstance, self) { + let instance = e.instance; + // 删除之后已经那不到实例了 + if(!instance) return; + let disabled = instance.getDataset().disabled + let state = self.state + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = this.getDisabledType(disabled) + if (disabled) return + // 是否可以滑动页面 + this.stopTouchMove(e, self); + if (state.direction !== 'horizontal') { + return; + } + if (e.preventDefault) { + // 阻止页面滚动 + e.preventDefault() + } + let x = state.x + state.deltaX + this.move(x, instance, ownerInstance, self) + }, + + /** + * 结束触摸操作 + * @param {Object} e + * @param {Object} ownerInstance + */ + touchend(e, ownerInstance, self) { + let instance = e.instance; + let disabled = instance.getDataset().disabled + let state = self.state + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = this.getDisabledType(disabled) + + if (disabled) return + // 滑动过程中触摸结束,通过阙值判断是开启还是关闭 + // fixed by mehaotian 定时器解决点击按钮,touchend 触发比 click 事件时机早的问题 ,主要是 ios13 + this.moveDirection(state.left, instance, ownerInstance, self) + + }, + + /** + * 设置移动距离 + * @param {Object} value + * @param {Object} instance + * @param {Object} ownerInstance + */ + move(value, instance, ownerInstance, self) { + value = value || 0 + let state = self.state + let leftWidth = state.leftWidth + let rightWidth = state.rightWidth + // 获取可滑动范围 + state.left = this.range(value, -rightWidth, leftWidth); + instance.requestAnimationFrame(function() { + instance.setStyle({ + transform: 'translateX(' + state.left + 'px)', + '-webkit-transform': 'translateX(' + state.left + 'px)' + }) + }) + + }, + + /** + * 获取元素信息 + * @param {Object} instance + * @param {Object} ownerInstance + */ + getDom(instance, ownerInstance, self) { + var state = self.state + var $el = ownerInstance.$el || ownerInstance.$vm && ownerInstance.$vm.$el + var leftDom = $el.querySelector('.button-group--left') + var rightDom = $el.querySelector('.button-group--right') + + state.leftWidth = leftDom.offsetWidth || 0 + state.rightWidth = rightDom.offsetWidth || 0 + state.threshold = instance.getDataset().threshold + }, + + getDisabledType(value) { + return (typeof(value) === 'string' ? JSON.parse(value) : value) || false; + }, + + /** + * 获取范围 + * @param {Object} num + * @param {Object} min + * @param {Object} max + */ + range(num, min, max) { + return Math.min(Math.max(num, min), max); + }, + + + /** + * 移动方向判断 + * @param {Object} left + * @param {Object} value + * @param {Object} ownerInstance + * @param {Object} ins + */ + moveDirection(left, ins, ownerInstance, self) { + var state = self.state + var threshold = state.threshold + var position = state.position + var isopen = state.isopen || 'none' + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + if (state.deltaX === 0) { + this.openState('none', ins, ownerInstance, self) + return + } + if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > 0 && + rightWidth + + left < threshold)) { + // right + this.openState('right', ins, ownerInstance, self) + } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > 0 && + leftWidth - left < threshold)) { + // left + this.openState('left', ins, ownerInstance, self) + } else { + // default + this.openState('none', ins, ownerInstance, self) + } + }, + + + /** + * 开启状态 + * @param {Boolean} type + * @param {Object} ins + * @param {Object} ownerInstance + */ + openState(type, ins, ownerInstance, self) { + let state = self.state + let leftWidth = state.leftWidth + let rightWidth = state.rightWidth + let left = '' + state.isopen = state.isopen ? state.isopen : 'none' + switch (type) { + case "left": + left = leftWidth + break + case "right": + left = -rightWidth + break + default: + left = 0 + } + + // && !state.throttle + + if (state.isopen !== type) { + state.throttle = true + ownerInstance.callMethod('change', { + open: type + }) + + } + + state.isopen = type + // 添加动画类 + ins.requestAnimationFrame(()=> { + ins.addClass('ani'); + this.move(left, ins, ownerInstance, self) + }) + }, + + + getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal'; + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical'; + } + return ''; + }, + + /** + * 重置滑动状态 + * @param {Object} event + */ + resetTouchStatus(instance, self) { + let state = self.state; + state.direction = ''; + state.deltaX = 0; + state.deltaY = 0; + state.offsetX = 0; + state.offsetY = 0; + }, + + /** + * 设置滑动开始位置 + * @param {Object} event + */ + stopTouchStart(event, ownerInstance, self) { + let instance = event.instance; + let state = self.state + this.resetTouchStatus(instance, self); + var touch = event.touches[0]; + state.startX = touch.clientX; + state.startY = touch.clientY; + }, + + /** + * 滑动中,是否禁止打开 + * @param {Object} event + */ + stopTouchMove(event, self) { + let instance = event.instance; + let state = self.state; + let touch = event.touches[0]; + + state.deltaX = touch.clientX - state.startX; + state.deltaY = touch.clientY - state.startY; + state.offsetY = Math.abs(state.deltaY); + state.offsetX = Math.abs(state.deltaX); + state.direction = state.direction || this.getDirection(state.offsetX, state.offsetY); + } +} diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue new file mode 100644 index 0000000..c3d7782 --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue @@ -0,0 +1,344 @@ + + + + + + diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs new file mode 100644 index 0000000..b394244 --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs @@ -0,0 +1,341 @@ +var MIN_DISTANCE = 10; + +/** + * 判断当前是否为H5、app-vue + */ +var IS_HTML5 = false +if (typeof window === 'object') IS_HTML5 = true + +/** + * 监听页面内值的变化,主要用于动态开关swipe-action + * @param {Object} newValue + * @param {Object} oldValue + * @param {Object} ownerInstance + * @param {Object} instance + */ +function showWatch(newVal, oldVal, ownerInstance, instance) { + var state = instance.getState() + getDom(instance, ownerInstance) + if (newVal && newVal !== 'none') { + openState(newVal, instance, ownerInstance) + return + } + + if (state.left) { + openState('none', instance, ownerInstance) + } + resetTouchStatus(instance) +} + +/** + * 开始触摸操作 + * @param {Object} e + * @param {Object} ins + */ +function touchstart(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState(); + getDom(instance, ownerInstance) + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + if (disabled) return + // 开始触摸时移除动画类 + instance.requestAnimationFrame(function() { + instance.removeClass('ani'); + ownerInstance.callMethod('closeSwipe'); + }) + + // 记录上次的位置 + state.x = state.left || 0 + // 计算滑动开始位置 + stopTouchStart(e, ownerInstance) +} + +/** + * 开始滑动操作 + * @param {Object} e + * @param {Object} ownerInstance + */ +function touchmove(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState() + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + if (disabled) return + // 是否可以滑动页面 + stopTouchMove(e); + if (state.direction !== 'horizontal') { + return; + } + + if (e.preventDefault) { + // 阻止页面滚动 + e.preventDefault() + } + + move(state.x + state.deltaX, instance, ownerInstance) +} + +/** + * 结束触摸操作 + * @param {Object} e + * @param {Object} ownerInstance + */ +function touchend(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState() + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + + if (disabled) return + // 滑动过程中触摸结束,通过阙值判断是开启还是关闭 + // fixed by mehaotian 定时器解决点击按钮,touchend 触发比 click 事件时机早的问题 ,主要是 ios13 + moveDirection(state.left, instance, ownerInstance) + +} + +/** + * 设置移动距离 + * @param {Object} value + * @param {Object} instance + * @param {Object} ownerInstance + */ +function move(value, instance, ownerInstance) { + value = value || 0 + var state = instance.getState() + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + // 获取可滑动范围 + state.left = range(value, -rightWidth, leftWidth); + instance.requestAnimationFrame(function() { + instance.setStyle({ + transform: 'translateX(' + state.left + 'px)', + '-webkit-transform': 'translateX(' + state.left + 'px)' + }) + }) + +} + +/** + * 获取元素信息 + * @param {Object} instance + * @param {Object} ownerInstance + */ +function getDom(instance, ownerInstance) { + var state = instance.getState() + var leftDom = ownerInstance.selectComponent('.button-group--left') + var rightDom = ownerInstance.selectComponent('.button-group--right') + var leftStyles = { + width: 0 + } + var rightStyles = { + width: 0 + } + leftStyles = leftDom.getBoundingClientRect() + rightStyles = rightDom.getBoundingClientRect() + + state.leftWidth = leftStyles.width || 0 + state.rightWidth = rightStyles.width || 0 + state.threshold = instance.getDataset().threshold +} + +/** + * 获取范围 + * @param {Object} num + * @param {Object} min + * @param {Object} max + */ +function range(num, min, max) { + return Math.min(Math.max(num, min), max); +} + + +/** + * 移动方向判断 + * @param {Object} left + * @param {Object} value + * @param {Object} ownerInstance + * @param {Object} ins + */ +function moveDirection(left, ins, ownerInstance) { + var state = ins.getState() + var threshold = state.threshold + var position = state.position + var isopen = state.isopen || 'none' + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + if (state.deltaX === 0) { + openState('none', ins, ownerInstance) + return + } + if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > 0 && + rightWidth + + left < threshold)) { + // right + openState('right', ins, ownerInstance) + } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > 0 && + leftWidth - left < threshold)) { + // left + openState('left', ins, ownerInstance) + } else { + // default + openState('none', ins, ownerInstance) + } +} + + +/** + * 开启状态 + * @param {Boolean} type + * @param {Object} ins + * @param {Object} ownerInstance + */ +function openState(type, ins, ownerInstance) { + var state = ins.getState() + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + var left = '' + state.isopen = state.isopen ? state.isopen : 'none' + switch (type) { + case "left": + left = leftWidth + break + case "right": + left = -rightWidth + break + default: + left = 0 + } + + // && !state.throttle + + if (state.isopen !== type) { + state.throttle = true + ownerInstance.callMethod('change', { + open: type + }) + + } + + state.isopen = type + // 添加动画类 + ins.requestAnimationFrame(function() { + ins.addClass('ani'); + move(left, ins, ownerInstance) + }) + // 设置最终移动位置,理论上只要进入到这个函数,肯定是要打开的 +} + + +function getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal'; + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical'; + } + return ''; +} + +/** + * 重置滑动状态 + * @param {Object} event + */ +function resetTouchStatus(instance) { + var state = instance.getState(); + state.direction = ''; + state.deltaX = 0; + state.deltaY = 0; + state.offsetX = 0; + state.offsetY = 0; +} + +/** + * 设置滑动开始位置 + * @param {Object} event + */ +function stopTouchStart(event) { + var instance = event.instance; + var state = instance.getState(); + resetTouchStatus(instance); + var touch = event.touches[0]; + if (IS_HTML5 && isPC()) { + touch = event; + } + state.startX = touch.clientX; + state.startY = touch.clientY; +} + +/** + * 滑动中,是否禁止打开 + * @param {Object} event + */ +function stopTouchMove(event) { + var instance = event.instance; + var state = instance.getState(); + var touch = event.touches[0]; + if (IS_HTML5 && isPC()) { + touch = event; + } + state.deltaX = touch.clientX - state.startX; + state.deltaY = touch.clientY - state.startY; + state.offsetY = Math.abs(state.deltaY); + state.offsetX = Math.abs(state.deltaX); + state.direction = state.direction || getDirection(state.offsetX, state.offsetY); +} + +function isPC() { + var userAgentInfo = navigator.userAgent; + var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; + var flag = true; + for (var v = 0; v < Agents.length - 1; v++) { + if (userAgentInfo.indexOf(Agents[v]) > 0) { + flag = false; + break; + } + } + return flag; +} + +var movable = false + +function mousedown(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + touchstart(e, ins) + movable = true +} + +function mousemove(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + if (!movable) return + touchmove(e, ins) +} + +function mouseup(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + touchend(e, ins) + movable = false +} + +function mouseleave(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + movable = false +} + +module.exports = { + showWatch: showWatch, + touchstart: touchstart, + touchmove: touchmove, + touchend: touchend, + mousedown: mousedown, + mousemove: mousemove, + mouseup: mouseup, + mouseleave: mouseleave +} diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue b/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue new file mode 100644 index 0000000..87e5572 --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/uni_modules/uni-swipe-action/package.json b/uni_modules/uni-swipe-action/package.json new file mode 100644 index 0000000..7938097 --- /dev/null +++ b/uni_modules/uni-swipe-action/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-swipe-action", + "displayName": "uni-swipe-action 滑动操作", + "version": "1.3.3", + "description": "SwipeAction 滑动操作操作组件", + "keywords": [ + "", + "uni-ui", + "uniui", + "滑动删除", + "侧滑删除" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-swipe-action/readme.md b/uni_modules/uni-swipe-action/readme.md new file mode 100644 index 0000000..93a5cac --- /dev/null +++ b/uni_modules/uni-swipe-action/readme.md @@ -0,0 +1,11 @@ + + +## SwipeAction 滑动操作 +> **组件名:uni-swipe-action** +> 代码块: `uSwipeAction`、`uSwipeActionItem` + + +通过滑动触发选项的容器 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-swipe-action) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-swiper-dot/changelog.md b/uni_modules/uni-swiper-dot/changelog.md new file mode 100644 index 0000000..85cf54d --- /dev/null +++ b/uni_modules/uni-swiper-dot/changelog.md @@ -0,0 +1,12 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-swiper-dot](https://uniapp.dcloud.io/component/uniui/uni-swiper-dot) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.6(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的Bug +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 clickItem 事件,支持指示点控制轮播 +- 新增 支持 pc 可用 diff --git a/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue b/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue new file mode 100644 index 0000000..e240ff5 --- /dev/null +++ b/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue @@ -0,0 +1,218 @@ + + + + + diff --git a/uni_modules/uni-swiper-dot/package.json b/uni_modules/uni-swiper-dot/package.json new file mode 100644 index 0000000..f2dd8d2 --- /dev/null +++ b/uni_modules/uni-swiper-dot/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-swiper-dot", + "displayName": "uni-swiper-dot 轮播图指示点", + "version": "1.2.0", + "description": "自定义轮播图指示点组件", + "keywords": [ + "uni-ui", + "uniui", + "轮播图指示点", + "dot", + "swiper" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-swiper-dot/readme.md b/uni_modules/uni-swiper-dot/readme.md new file mode 100644 index 0000000..7d397e2 --- /dev/null +++ b/uni_modules/uni-swiper-dot/readme.md @@ -0,0 +1,11 @@ + + +## SwiperDot 轮播图指示点 +> **组件名:uni-swiper-dot** +> 代码块: `uSwiperDot` + + +自定义轮播图指示点 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-swiper-dot) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-table/changelog.md b/uni_modules/uni-table/changelog.md new file mode 100644 index 0000000..b7aada3 --- /dev/null +++ b/uni_modules/uni-table/changelog.md @@ -0,0 +1,21 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-table](https://uniapp.dcloud.io/component/uniui/uni-table) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-07-08) +- 新增 uni-th 支持 date 日期筛选范围 +## 1.0.6(2021-07-05) +- 新增 uni-th 支持 range 筛选范围 +## 1.0.5(2021-06-28) +- 新增 uni-th 筛选功能 +## 1.0.4(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的Bug +## 1.0.3(2021-04-16) +- 新增 sortable 属性,是否开启单列排序 +- 优化 表格多选逻辑 +## 1.0.2(2021-03-22) +- uni-tr 添加 disabled 属性,用于 type=selection 时,设置某行是否可由全选按钮控制 +## 1.0.1(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-table/components/uni-table/uni-table.vue b/uni_modules/uni-table/components/uni-table/uni-table.vue new file mode 100644 index 0000000..d8d49db --- /dev/null +++ b/uni_modules/uni-table/components/uni-table/uni-table.vue @@ -0,0 +1,455 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue b/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue new file mode 100644 index 0000000..1d808b3 --- /dev/null +++ b/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-td/uni-td.vue b/uni_modules/uni-table/components/uni-td/uni-td.vue new file mode 100644 index 0000000..e0d743b --- /dev/null +++ b/uni_modules/uni-table/components/uni-td/uni-td.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-th/filter-dropdown.vue b/uni_modules/uni-table/components/uni-th/filter-dropdown.vue new file mode 100644 index 0000000..bc9a0e3 --- /dev/null +++ b/uni_modules/uni-table/components/uni-th/filter-dropdown.vue @@ -0,0 +1,503 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-th/uni-th.vue b/uni_modules/uni-table/components/uni-th/uni-th.vue new file mode 100644 index 0000000..df2a7fe --- /dev/null +++ b/uni_modules/uni-table/components/uni-th/uni-th.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-thead/uni-thead.vue b/uni_modules/uni-table/components/uni-thead/uni-thead.vue new file mode 100644 index 0000000..a12078a --- /dev/null +++ b/uni_modules/uni-table/components/uni-thead/uni-thead.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-tr/table-checkbox.vue b/uni_modules/uni-table/components/uni-tr/table-checkbox.vue new file mode 100644 index 0000000..7c31560 --- /dev/null +++ b/uni_modules/uni-table/components/uni-tr/table-checkbox.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-tr/uni-tr.vue b/uni_modules/uni-table/components/uni-tr/uni-tr.vue new file mode 100644 index 0000000..d5cdee6 --- /dev/null +++ b/uni_modules/uni-table/components/uni-tr/uni-tr.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/uni_modules/uni-table/i18n/en.json b/uni_modules/uni-table/i18n/en.json new file mode 100644 index 0000000..e32023c --- /dev/null +++ b/uni_modules/uni-table/i18n/en.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Reset", + "filter-dropdown.search": "Search", + "filter-dropdown.submit": "Submit", + "filter-dropdown.filter": "Filter", + "filter-dropdown.gt": "Greater or equal to", + "filter-dropdown.lt": "Less than or equal to", + "filter-dropdown.date": "Date" +} diff --git a/uni_modules/uni-table/i18n/es.json b/uni_modules/uni-table/i18n/es.json new file mode 100644 index 0000000..9afd04b --- /dev/null +++ b/uni_modules/uni-table/i18n/es.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Reiniciar", + "filter-dropdown.search": "Búsqueda", + "filter-dropdown.submit": "Entregar", + "filter-dropdown.filter": "Filtrar", + "filter-dropdown.gt": "Mayor o igual a", + "filter-dropdown.lt": "Menos que o igual a", + "filter-dropdown.date": "Fecha" +} diff --git a/uni_modules/uni-table/i18n/fr.json b/uni_modules/uni-table/i18n/fr.json new file mode 100644 index 0000000..b006237 --- /dev/null +++ b/uni_modules/uni-table/i18n/fr.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Réinitialiser", + "filter-dropdown.search": "Chercher", + "filter-dropdown.submit": "Soumettre", + "filter-dropdown.filter": "Filtre", + "filter-dropdown.gt": "Supérieur ou égal à", + "filter-dropdown.lt": "Inférieur ou égal à", + "filter-dropdown.date": "Date" +} diff --git a/uni_modules/uni-table/i18n/index.js b/uni_modules/uni-table/i18n/index.js new file mode 100644 index 0000000..2469dd0 --- /dev/null +++ b/uni_modules/uni-table/i18n/index.js @@ -0,0 +1,12 @@ +import en from './en.json' +import es from './es.json' +import fr from './fr.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + es, + fr, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-table/i18n/zh-Hans.json b/uni_modules/uni-table/i18n/zh-Hans.json new file mode 100644 index 0000000..862af17 --- /dev/null +++ b/uni_modules/uni-table/i18n/zh-Hans.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "重置", + "filter-dropdown.search": "搜索", + "filter-dropdown.submit": "确定", + "filter-dropdown.filter": "筛选", + "filter-dropdown.gt": "大于等于", + "filter-dropdown.lt": "小于等于", + "filter-dropdown.date": "日期范围" +} diff --git a/uni_modules/uni-table/i18n/zh-Hant.json b/uni_modules/uni-table/i18n/zh-Hant.json new file mode 100644 index 0000000..64f8061 --- /dev/null +++ b/uni_modules/uni-table/i18n/zh-Hant.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "重置", + "filter-dropdown.search": "搜索", + "filter-dropdown.submit": "確定", + "filter-dropdown.filter": "篩選", + "filter-dropdown.gt": "大於等於", + "filter-dropdown.lt": "小於等於", + "filter-dropdown.date": "日期範圍" +} diff --git a/uni_modules/uni-table/package.json b/uni_modules/uni-table/package.json new file mode 100644 index 0000000..754e753 --- /dev/null +++ b/uni_modules/uni-table/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-table", + "displayName": "uni-table 表格", + "version": "1.2.0", + "description": "表格组件,多用于展示多条结构类似的数据,如", + "keywords": [ + "uni-ui", + "uniui", + "table", + "表格" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-datetime-picker"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "n", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-table/readme.md b/uni_modules/uni-table/readme.md new file mode 100644 index 0000000..bb08c79 --- /dev/null +++ b/uni_modules/uni-table/readme.md @@ -0,0 +1,13 @@ + + +## Table 表单 +> 组件名:``uni-table``,代码块: `uTable`。 + +用于展示多条结构类似的数据 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-table) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + + diff --git a/uni_modules/uni-tag/changelog.md b/uni_modules/uni-tag/changelog.md new file mode 100644 index 0000000..c0c5839 --- /dev/null +++ b/uni_modules/uni-tag/changelog.md @@ -0,0 +1,21 @@ +## 2.1.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-tag](https://uniapp.dcloud.io/component/uniui/uni-tag) +## 2.0.0(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +- 移除 插槽 +- 移除 type 属性的 royal 选项 +## 1.1.1(2021-08-11) +- type 不是 default 时,size 为 small 字体大小显示不正确 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-06-18) +- 修复 uni-tag 在字节跳动小程序上 css 类名编译错误的 bug +## 1.0.6(2021-06-04) +- 修复 未定义 sass 变量 "$uni-color-royal" 的bug +## 1.0.5(2021-05-10) +- 修复 royal 类型无效的bug +- 修复 uni-tag 宽度不自适应的bug +- 新增 uni-tag 支持属性 custom-style 自定义样式 +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-tag/components/uni-tag/uni-tag.vue b/uni_modules/uni-tag/components/uni-tag/uni-tag.vue new file mode 100644 index 0000000..04bd568 --- /dev/null +++ b/uni_modules/uni-tag/components/uni-tag/uni-tag.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/uni_modules/uni-tag/package.json b/uni_modules/uni-tag/package.json new file mode 100644 index 0000000..1878088 --- /dev/null +++ b/uni_modules/uni-tag/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-tag", + "displayName": "uni-tag 标签", + "version": "2.1.0", + "description": "Tag 组件,用于展示1个或多个文字标签,可点击切换选中、不选中的状态。", + "keywords": [ + "uni-ui", + "uniui", + "", + "tag", + "标签" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-tag/readme.md b/uni_modules/uni-tag/readme.md new file mode 100644 index 0000000..6e78ff5 --- /dev/null +++ b/uni_modules/uni-tag/readme.md @@ -0,0 +1,13 @@ + + +## Tag 标签 +> **组件名:uni-tag** +> 代码块: `uTag` + + +用于展示1个或多个文字标签,可点击切换选中、不选中的状态 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-tag) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-test/changelog.md b/uni_modules/uni-test/changelog.md new file mode 100644 index 0000000..2f3b102 --- /dev/null +++ b/uni_modules/uni-test/changelog.md @@ -0,0 +1,39 @@ +## 2.0.13(2021-11-18) +邱 +## 2.0.12(2021-11-18) +123123 +## 2.0.11(2021-11-18) +0000 +## 2.0.10(2021-11-18) +111234 +## 2.0.9(2021-11-18) +3333 +## 2.0.8(2021-11-18) +=== +## 2.0.7(2021-11-18) +111 +## 2.0.6(2021-05-26) +- test +## 0.0.37(2021-03-23) +- uni-forms 更新 校验器 +- uni-forms 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug + + +## 0.0.36(2021-03-23) +- uni-forms 更新 校验器 +- uni-forms 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug + + +## 0.0.35(2021-03-23) +- uni-forms 更新 校验器 +- uni-forms 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug + + +## 0.0.34(2021-03-23) +- 测试新同步插件 +## 0.0.33(2021-03-09) +- test +## 0.0.32(2021-02-24) +- 更新 read 2 +## 0.0.31(2021-02-24) +- 同步 readme.md diff --git a/uni_modules/uni-test/components/uni-test/uni-test.vue b/uni_modules/uni-test/components/uni-test/uni-test.vue new file mode 100644 index 0000000..9ea8aaf --- /dev/null +++ b/uni_modules/uni-test/components/uni-test/uni-test.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/uni_modules/uni-test/package.json b/uni_modules/uni-test/package.json new file mode 100644 index 0000000..9a3c4c4 --- /dev/null +++ b/uni_modules/uni-test/package.json @@ -0,0 +1,83 @@ +{ + "id": "uni-test", + "displayName": "Test 测试插件", + "version": "2.0.13", + "description": "测试插件 ", + "keywords": [ + "test" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.3" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-test/readme.md b/uni_modules/uni-test/readme.md new file mode 100644 index 0000000..ddb24c6 --- /dev/null +++ b/uni_modules/uni-test/readme.md @@ -0,0 +1,10 @@ + + +## DataCheckbox 数据驱动的单选复选框 +> **组件名:uni-data-checkbox** +> 代码块: `uDataCheckbox` + + +本组件是基于uni-app基础组件checkbox的封装。本组件要解决问题包括: + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-card) \ No newline at end of file diff --git a/uni_modules/uni-title/changelog.md b/uni_modules/uni-title/changelog.md new file mode 100644 index 0000000..f0f1d67 --- /dev/null +++ b/uni_modules/uni-title/changelog.md @@ -0,0 +1,8 @@ +## 1.1.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-title](https://uniapp.dcloud.io/component/uniui/uni-title) +## 1.0.2(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的Bug +## 1.0.1(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-title/components/uni-title/uni-title.vue b/uni_modules/uni-title/components/uni-title/uni-title.vue new file mode 100644 index 0000000..d68fd78 --- /dev/null +++ b/uni_modules/uni-title/components/uni-title/uni-title.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/uni_modules/uni-title/package.json b/uni_modules/uni-title/package.json new file mode 100644 index 0000000..3b37082 --- /dev/null +++ b/uni_modules/uni-title/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-title", + "displayName": "uni-title 章节标题", + "version": "1.1.0", + "description": "章节标题,通常用于记录页面标题,使用当前组件,uni-app 如果开启统计,将会自动统计页面标题", + "keywords": [ + "uni-ui", + "uniui", + "标题", + "章节", + "章节标题", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-title/readme.md b/uni_modules/uni-title/readme.md new file mode 100644 index 0000000..ad1b4bf --- /dev/null +++ b/uni_modules/uni-title/readme.md @@ -0,0 +1,14 @@ + + +## Title 章节标题 +> **组件名:uni-title** +> 代码块: `uTitle` + + +章节标题,通常用于记录页面标题,使用当前组件,uni-app 如果开启统计,将会自动统计页面标题 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-title) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + diff --git a/uni_modules/uni-tooltip/changelog.md b/uni_modules/uni-tooltip/changelog.md new file mode 100644 index 0000000..1e0ca85 --- /dev/null +++ b/uni_modules/uni-tooltip/changelog.md @@ -0,0 +1,8 @@ +## 0.2.0(2022-05-07) +**注意:破坏性更新** +- 更新 text 属性变更为 content +- 更新 移除 width 属性 +## 0.1.1(2022-04-27) +- 修复 组件根 text 嵌套组件 warning +## 0.1.0(2022-04-21) +- 初始化 diff --git a/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue b/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue new file mode 100644 index 0000000..8f9a6f2 --- /dev/null +++ b/uni_modules/uni-tooltip/components/uni-tooltip/uni-tooltip.vue @@ -0,0 +1,68 @@ + + + + + + diff --git a/uni_modules/uni-tooltip/package.json b/uni_modules/uni-tooltip/package.json new file mode 100644 index 0000000..e7e2659 --- /dev/null +++ b/uni_modules/uni-tooltip/package.json @@ -0,0 +1,84 @@ +{ + "id": "uni-tooltip", + "displayName": "uni-tooltip", + "version": "0.2.0", + "description": "uni-tooltip", + "keywords": [ + "uni-tooltip", + "uni-ui", + "tooltip", + "tip", + "文字提示" +], + "repository": "", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + } + } + } + } +} diff --git a/uni_modules/uni-tooltip/readme.md b/uni_modules/uni-tooltip/readme.md new file mode 100644 index 0000000..faafa2e --- /dev/null +++ b/uni_modules/uni-tooltip/readme.md @@ -0,0 +1,8 @@ +## Badge 数字角标 +> **组件名:uni-tooltip** +> 代码块: `uTooltip` + +数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景, + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-tooltip) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-transition/changelog.md b/uni_modules/uni-transition/changelog.md new file mode 100644 index 0000000..b1a824b --- /dev/null +++ b/uni_modules/uni-transition/changelog.md @@ -0,0 +1,20 @@ +## 1.3.1(2021-11-23) +- 修复 init 方法初始化问题 +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-transition](https://uniapp.dcloud.io/component/uniui/uni-transition) +## 1.2.1(2021-09-27) +- 修复 init 方法不生效的 Bug +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.1(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的 Bug +## 1.1.0(2021-04-22) +- 新增 通过方法自定义动画 +- 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式 +- 优化 动画触发逻辑,使动画更流畅 +- 优化 支持单独的动画类型 +- 优化 文档示例 +## 1.0.2(2021-02-05) +- 调整为 uni_modules 目录规范 diff --git a/uni_modules/uni-transition/components/uni-transition/createAnimation.js b/uni_modules/uni-transition/components/uni-transition/createAnimation.js new file mode 100644 index 0000000..af47dbc --- /dev/null +++ b/uni_modules/uni-transition/components/uni-transition/createAnimation.js @@ -0,0 +1,128 @@ +// const defaultOption = { +// duration: 300, +// timingFunction: 'linear', +// delay: 0, +// transformOrigin: '50% 50% 0' +// } +// #ifdef APP-NVUE +const nvueAnimation = uni.requireNativePlugin('animation') +// #endif +class MPAnimation { + constructor(options, _this) { + this.options = options + this.animation = uni.createAnimation(options) + this.currentStepAnimates = {} + this.next = 0 + this.$ = _this + + } + + _nvuePushAnimates(type, args) { + let aniObj = this.currentStepAnimates[this.next] + let styles = {} + if (!aniObj) { + styles = { + styles: {}, + config: {} + } + } else { + styles = aniObj + } + if (animateTypes1.includes(type)) { + if (!styles.styles.transform) { + styles.styles.transform = '' + } + let unit = '' + if(type === 'rotate'){ + unit = 'deg' + } + styles.styles.transform += `${type}(${args+unit}) ` + } else { + styles.styles[type] = `${args}` + } + this.currentStepAnimates[this.next] = styles + } + _animateRun(styles = {}, config = {}) { + let ref = this.$.$refs['ani'].ref + if (!ref) return + return new Promise((resolve, reject) => { + nvueAnimation.transition(ref, { + styles, + ...config + }, res => { + resolve() + }) + }) + } + + _nvueNextAnimate(animates, step = 0, fn) { + let obj = animates[step] + if (obj) { + let { + styles, + config + } = obj + this._animateRun(styles, config).then(() => { + step += 1 + this._nvueNextAnimate(animates, step, fn) + }) + } else { + this.currentStepAnimates = {} + typeof fn === 'function' && fn() + this.isEnd = true + } + } + + step(config = {}) { + // #ifndef APP-NVUE + this.animation.step(config) + // #endif + // #ifdef APP-NVUE + this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config) + this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin + this.next++ + // #endif + return this + } + + run(fn) { + // #ifndef APP-NVUE + this.$.animationData = this.animation.export() + this.$.timer = setTimeout(() => { + typeof fn === 'function' && fn() + }, this.$.durationTime) + // #endif + // #ifdef APP-NVUE + this.isEnd = false + let ref = this.$.$refs['ani'] && this.$.$refs['ani'].ref + if(!ref) return + this._nvueNextAnimate(this.currentStepAnimates, 0, fn) + this.next = 0 + // #endif + } +} + + +const animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', + 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', + 'translateZ' +] +const animateTypes2 = ['opacity', 'backgroundColor'] +const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'] +animateTypes1.concat(animateTypes2, animateTypes3).forEach(type => { + MPAnimation.prototype[type] = function(...args) { + // #ifndef APP-NVUE + this.animation[type](...args) + // #endif + // #ifdef APP-NVUE + this._nvuePushAnimates(type, args) + // #endif + return this + } +}) + +export function createAnimation(option, _this) { + if(!_this) return + clearTimeout(_this.timer) + return new MPAnimation(option, _this) +} diff --git a/uni_modules/uni-transition/components/uni-transition/uni-transition.vue b/uni_modules/uni-transition/components/uni-transition/uni-transition.vue new file mode 100644 index 0000000..be5e794 --- /dev/null +++ b/uni_modules/uni-transition/components/uni-transition/uni-transition.vue @@ -0,0 +1,277 @@ + + + + + diff --git a/uni_modules/uni-transition/package.json b/uni_modules/uni-transition/package.json new file mode 100644 index 0000000..d15fdf0 --- /dev/null +++ b/uni_modules/uni-transition/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-transition", + "displayName": "uni-transition 过渡动画", + "version": "1.3.1", + "description": "元素的简单过渡动画", + "keywords": [ + "uni-ui", + "uniui", + "动画", + "过渡", + "过渡动画" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-transition/readme.md b/uni_modules/uni-transition/readme.md new file mode 100644 index 0000000..2f8a77e --- /dev/null +++ b/uni_modules/uni-transition/readme.md @@ -0,0 +1,11 @@ + + +## Transition 过渡动画 +> **组件名:uni-transition** +> 代码块: `uTransition` + + +元素过渡动画 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-transition) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-ui/changelog.md b/uni_modules/uni-ui/changelog.md new file mode 100644 index 0000000..5cf423d --- /dev/null +++ b/uni_modules/uni-ui/changelog.md @@ -0,0 +1,391 @@ +## 1.4.15(2022-05-07) +- uni-data-picker 修复 字节小程序 本地数据无法选择下一级的Bug +- uni-data-select 新增 记住上次的选项(仅 collection 存在时有效) +- uni-search-bar 修复 vue3 input 事件不生效的bug +- uni-search-bar 修复 多余代码导致的bug +- uni-tooltip 更新 text 属性变更为 content +- uni-tooltip 更新 移除 width 属性 +- uni-tooltip 修复 组件根 text 嵌套组件 warning +## 1.4.14(2022-04-18) +- uni-datetime-picker 修复 Vue3 下动态赋值,单选类型未响应的 bug +- uni-easyinput 修复 默认值不生效的bug +## 1.4.13(2022-04-02) +- uni-calendar 修复 条件编译 nvue 不支持的 css 样式 +- uni-calendar 修复 startDate、 endDate 属性失效的 bug +- uni-data-picker 修复 nvue 不支持的 v-show 的 bug +- uni-data-picker 修复 条件编译 nvue 不支持的 css 样式 +- uni-datetime-picker 修复 Vue3 下动态赋值未响应的 bug +- uni-easyinput 修复 value不能为0的bug +- uni-popup 修复 弹出层内部无法滚动的bug +- uni-popup 修复 小程序中高度错误的bug +- uni-popup 修复 快速调用open出现问题的Bug +- uni-rate 修复 条件判断 `NaN` 错误的 bug +- uni-swipe-action 修复 按钮字体大小不能设置的bug +- uni-swipe-action 修复 h5和app端下报el错误的bug +- uni-swipe-action 修复 HBuilderX 1.4.X 版本中,h5和app端下报错的bug +## 1.4.12(2022-02-19) +- uni-collapse 修复 初始化的时候 ,open 属性失效的bug +- uni-data-checkbox 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug +- uni-icons 优化 size 属性可以传入不带单位的字符串数值 +- uni-icons 优化 size 支持其他单位 +- uni-nav-bar 新增 left-width/right-width属性 ,可修改左右两侧的宽度 +- uni-popup 修复 safeArea 属性不能设置为false的bug +## 1.4.11(2022-01-21) +- uni-collapse 修复 微信小程序resize后组件收起的bug +- uni-countdown 修复 在微信小程序中样式不生效的bug +- uni-countdown 新增 update 方法 ,在动态更新时间后,刷新组件 +- uni-load-more 新增 showText属性 ,是否显示文本 +- uni-load-more 修复 nvue 平台下不显示文本的bug +- uni-load-more 修复 微信小程序平台样式选择器报警告的问题 +- uni-nav-bar 修复 在vue下,标题不垂直居中的bug +- uni-nav-bar 修复 height 属性类型错误 +- uni-nav-bar 新增 height 属性,可修改组件高度 +- uni-nav-bar 新增 dark 属性可可开启暗黑模式 +- uni-nav-bar 优化 标题字数过多显示省略号 +- uni-nav-bar 优化 插槽,插入内容可完全覆盖 +- uni-popup 修复 isMaskClick 失效的bug +- uni-popup 新增 cancelText \ confirmText 属性 ,可自定义文本 +- uni-popup 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色 +- uni-popup 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题 + +## 1.4.10(2022-01-17) +- uni-card 修复 在vue页面下略缩图显示不正常的bug +- uni-datetime-picker 修复 clear-icon 属性在小程序平台不生效的 bug +- uni-datetime-picker 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的 bug +- uni-fab 更新 组件依赖 +- +- uni-icons 修复 nvue 有些图标不显示的bug,兼容老版本图标 +- uni-icons 优化 示例可复制图标名称 +- uni-nav-bar 修复 color 属性不生效的bug +- uni-popup 修复 设置 safeArea 属性不生效的bug +- uni-popup 优化 组件示例 +- uni-popup 修复 vuedoc 文字错误 +## 1.4.9(2021-11-23) +- uni-ui 修复 vue3中某些scss变量无法找到的问题 +- uni-combox 优化 label、label-width 属性 +- uni-data-picker 修复 由上个版本引发的map、v-model等属性不生效的bug +- uni-file-picker 修复 参数为对象的情况下,url在某些情况显示错误的bug +- uni-icons 优化 兼容旧组件 type 值 +- uni-list 修复 在vue3中to属性在发行应用的时候报错的bug +- uni-scss 修复 vue3中scss语法兼容问题 +- uni-transition 修复 init 方法初始化问题 +## 1.4.8(2021-11-19) +- uni-fab 修复 阴影颜色不正确的bug +## 1.4.7(2021-11-19) +- uni-ui 新增 支持国际化 +- uni-ui 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- uni-ui 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-ui](https://uniapp.dcloud.io/component/uniui/uni-ui) +- uni-badge 修改 size 属性默认值调整为 small +- uni-badge 修改 type 属性,默认值调整为 error,info 替换 default +- uni-badge 修复 在字节小程序上样式不生效的 bug +- uni-calendar 修复 弹出层被 tabbar 遮盖 bug +- uni-card 重构插槽的用法 ,header 替换为 title +- uni-card 新增 actions 插槽 +- uni-card 新增 cover 封面图属性和插槽 +- uni-card 新增 padding 内容默认内边距离 +- uni-card 新增 margin 卡片默认外边距离 +- uni-card 新增 spacing 卡片默认内边距 +- uni-card 新增 shadow 卡片阴影属性 +- uni-card 取消 mode 属性,可使用组合插槽代替 +- uni-card 取消 note 属性 ,使用actions插槽代替 +- uni-collapse 优化 show-arrow 属性默认为true +- uni-collapse 新增 show-arrow 属性,控制是否显示右侧箭头 +- uni-countdown 新增 font-size 支持自定义字体大小 +- uni-data-checkbox 修复 在uni-forms中 modelValue 中不存在当前字段,当前字段必填写也不参与校验的问题 +- uni-data-checkbox 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 +- uni-data-checkbox 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-dateformat 优化 默认时间不再是当前时间,而是显示'-'字符 +- uni-datetime-picker 修复 hide-second 在移动端的 bug +- uni-datetime-picker 修复 单选赋默认值时,赋值日期未高亮的 bug +- uni-datetime-picker 修复 赋默认值时,移动端未正确显示时间的 bug +- uni-datetime-picker 新增 hide-second 属性,支持只使用时分,隐藏秒 +- uni-datetime-picker 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次 +- uni-datetime-picker 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法 +- uni-datetime-picker 优化 调整字号大小,美化日历界面 +- uni-datetime-picker 优化 范围选择器在 pc 端过宽的问题 +- uni-datetime-picker 新增 支持作为 uni-forms 子组件相关功能 +- uni-datetime-picker 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug +- uni-datetime-picker 修复 type 属性动态赋值无效的 bug +- uni-datetime-picker 修复 ‘确认’按钮被 tabbar 遮盖 bug +- uni-datetime-picker 修复 组件未赋值时范围选左、右日历相同的 bug +- uni-datetime-picker 修复 范围选未正确显示当前值的 bug +- uni-datetime-picker 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug +- uni-easyinput 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug +- uni-easyinput 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-file-picker 新增 参数中返回 fileID 字段 +- uni-file-picker 修复 腾讯云传入fileID 不能回显的bug +- uni-file-picker 修复 选择图片后,不能放大的问题 +- uni-file-picker 修复 由于 0.2.11 版本引起的不能回显图片的Bug +- uni-file-picker 新增 clearFiles(index) 方法,可以手动删除指定文件 +- uni-file-picker 修复 v-model 值设为 null 报错的Bug +- uni-file-picker 修复 return-type="object" 时,无法删除文件的Bug +- uni-file-picker 修复 auto-upload 属性失效的Bug +- uni-forms 修复 label 插槽不生效的bug +- uni-forms 修复 没有添加校验规则的字段依然报错的Bug +- uni-forms 修复 重置表单错误信息无法清除的问题 +- uni-forms 修复 表单验证只生效一次的问题 +- uni-icons 新增 更多图标 +- uni-icons 优化 自定义图标使用方式 +- uni-link 修复 在 nvue 下不显示的 bug +- uni-pagination 修复 current 、value 属性未监听,导致高亮样式失效的 bug +- uni-rate 优化 默认值修改为 0 颗星 +- uni-search-bar 修复 value 属性与 modelValue 属性不兼容的Bug +- uni-swipe-action 新增 close-all 方法,关闭所有已打开的组件 +- uni-swipe-action 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 +- uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 +- uni-swipe-action 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 +- uni-tag 新增 提供组件设计资源,组件样式调整 +- uni-tag 移除 插槽 +- uni-tag 移除 type 属性的 royal 选项 +- uni-tag type 不是 default 时,size 为 small 字体大小显示不正确 +## 1.4.2(2021-08-20) +- 新增 uni-ui 组件支持国际化 i18n +- uni-collapse 优化 show-arrow 属性默认为true +- uni-collapse 新增 show-arrow 属性,控制是否显示右侧箭头 +- uni-data-checkbox 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 +- uni-easyinput 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug +- uni-file-picker 修复 由于 0.2.11 版本引起的不能回显图片的Bug +- uni-file-picker 新增 clearFiles(index) 方法,可以手动删除指定文件 +- uni-file-picker 修复 v-model 值设为 null 报错的Bug +- uni-swipe-action 新增 close-all 方法,关闭所有已打开的组件 +- uni-swipe-action 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 +- uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 +- uni-swipe-action 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 +## 1.4.0(2021-08-13) +- uni-calendar 修复 弹出层被 tabbar 遮盖 bug +- uni-data-checkbox 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-dateformat 调整 默认时间不再是当前时间,而是显示'-'字符 +- uni-datetime-picker 新增 适配 vue3 +- uni-datetime-picker 新增 支持作为 uni-forms 子组件相关功能 +- uni-datetime-picker 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug +- uni-datetime-picker 修复 type 属性动态赋值无效的 bug +- uni-datetime-picker 修复 ‘确认’按钮被 tabbar 遮盖 bug +- uni-datetime-picker 修复 组件未赋值时范围选左、右日历相同的 bug +- uni-datetime-picker 修复 范围选未正确显示当前值的 bug +- uni-datetime-picker 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug +- uni-easyinput 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-file-picker 修复 return-type="object" 时,无法删除文件的Bug +- uni-file-picker 修复 auto-upload 属性失效的Bug +- uni-forms 修复 没有添加校验规则的字段依然报错的Bug +- uni-forms 修复 重置表单错误信息无法清除的问题 +- uni-forms 优化 组件文档 +- uni-forms 修复 表单验证只生效一次的问题 +- uni-tag type 不是 default 时,size 为 small 字体大小显示不正确 +## 1.3.9(2021-08-02) +- uni-datetime-picker 新增 return-type 属性支持返回 date 日期对象 +- uni-file-picker 修复 fileExtname属性不指定值报错的Bug +- uni-file-picker 修复 在某种场景下图片不回显的Bug +- uni-link 支持自定义插槽 +## 1.3.8(2021-07-31) +- uni-ui 组件兼容 vue3 +- uni-collapse 修复 由1.2.0版本引起的 change 事件返回 undefined 的Bug +- uni-collapse 优化 组件示例 +- uni-collapse 新增 组件折叠动画 +- uni-collapse 新增 value\v-model 属性 ,动态修改面板折叠状态 +- uni-collapse 新增 title 插槽 ,可定义面板标题 +- uni-collapse 新增 border 属性 ,显示隐藏面板内容分隔线 +- uni-collapse 新增 title-border 属性 ,显示隐藏面板标题分隔线 +- uni-collapse 修复 resize 方法失效的Bug +- uni-collapse 修复 change 事件返回参数不正确的Bug +- uni-collapse 优化 H5、App 平台自动更具内容更新高度,无需调用 reszie() 方法 +- uni-data-checkbox 优化 在uni-forms组件,与label不对齐的问题 +- uni-data-checkbox 修复 单选默认值为0不能选中的Bug +- uni-easyinput 优化 errorMessage 属性支持 Boolean 类型 +- uni-file-picker 修复 return-type为object下,返回值不正确的Bug +- uni-file-picker 修复(重要) H5 平台下如果和uni-forms组件一同使用导致页面卡死的问题 +- uni-file-picker 优化 h5平台下上传文件导致页面卡死的问题 +- uni-forms 修复 vue2 下条件编译导致destroyed生命周期失效的Bug +- uni-forms 修复 1.2.1 引起的示例在小程序平台报错的Bug +- uni-forms 修复 动态校验表单,默认值为空的情况下校验失效的Bug +- uni-forms 修复 不指定name属性时,运行报错的Bug +- uni-forms 优化 label默认宽度从65调整至70,使required为true且四字时不换行 +- uni-forms 优化 组件示例,新增动态校验示例代码 +- uni-forms 优化 组件文档,使用方式更清晰 +- uni-list 修复 与其他组件嵌套使用时,点击失效的Bug +- uni-swipe-action 修复 跨页面修改组件数据 ,导致不能滑动的问题 +## 1.3.7(2021-07-16) +- uni-ui 兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +- uni-datetime-picker 修复 单选日期类型,初始赋值后不在当前日历的 bug +- uni-datetime-picker 新增 clearIcon 属性,显示框的清空按钮可配置显示隐藏(仅 pc 有效) +- uni-datetime-picker 优化 移动端移除显示框的清空按钮,无实际用途 +- uni-datetime-picker 修复 组件赋值为空,界面未更新的 bug +- uni-datetime-picker 修复 start 和 end 不能动态赋值的 bug +- uni-datetime-picker 修复 范围选类型,用户选择后再次选择右侧日历(结束日期)显示不正确的 bug +## 1.3.6(2021-07-09) +- uni-data-checkbox 优化 删除无用日志 +- uni-data-checkbox 修复 由 0.1.9 引起的非 nvue 端图标不显示的问题 +- uni-data-checkbox 修复 nvue 黑框样式问题 +- uni-datetime-picker 修复 范围选择不能动态赋值的 bug +- uni-datetime-picker 修复 范围选择的初始时间在一个月内时,造成无法选择的bug +- uni-datetime-picker 优化 弹出层在超出视窗边缘定位不准确的问题 +- uni-datetime-picker 修复 范围起始点样式的背景色与今日样式的字体前景色融合,导致日期字体看不清的 bug +- uni-datetime-picker 优化 弹出层在超出视窗边缘被遮盖的问题 +- uni-datetime-picker 新增 maskClick 事件 +- uni-datetime-picker 修复 特殊情况日历 rpx 布局错误的 bug,rpx -> px +- uni-datetime-picker 修复 范围选择时清空返回值不合理的bug,['', ''] -> [] +- uni-datetime-picker 新增 日期时间显示框支持插槽 +- uni-file-picker 修复 sourceType 缺少默认值导致 ios 无法选择文件 +- uni-file-picker 优化 解耦与uniCloud的强绑定关系 ,如不绑定服务空间,默认autoUpload为false且不可更改 +- uni-table 新增 uni-th 支持 date 日期筛选范围 +- uni-table 新增 uni-th 支持 range 筛选范围 +- uni-table 新增 uni-th 筛选功能 +## 1.3.5(2021-07-02) +- uni-card 优化 图文卡片无图片加载时,提供占位图标 +- uni-card 新增 header 插槽,自定义卡片头部( 图文卡片 mode="style" 时,不支持) +- uni-card 修复 thumbnail 不存在仍然占位的 bug +- uni-data-checkbox 修复 selectedTextColor 属性不生效的Bug +- uni-datetime-picker 优化 添加 uni-icons 依赖 +- uni-easyinput 修复 confirmType 属性(仅 type="text" 生效)导致多行文本框无法换行的 bug +- uni-file-picker 修复 由 0.0.10 版本引发的 returnType 属性失效的问题 +- uni-file-picker 优化 文件上传后进度条消失时机 +- uni-file-picker 修复 在uni-forms 中,删除文件 ,获取的值不对的Bug +- uni-forms 修复 pattern 属性在微信小程序平台无效的问题 +## 1.3.4(2021-06-25) +- uni-badge 优化 示例项目 +- uni-countdown 修复 uni-countdown 重复赋值跳两秒的 bug +- uni-easyinput 修复 passwordIcon 属性拼写错误的 bug +- uni-forms 修复 validate-trigger属性为submit且err-show-type属性为toast时不能弹出的Bug +- uni-forms 修复 只写setRules方法而导致校验不生效的Bug +- uni-forms 修复 由上个办法引发的错误提示文字错位的Bug +- uni-forms 修复 不设置 label 属性 ,无法设置label插槽的问题 +- uni-forms 修复 不设置label属性,label-width属性不生效的bug +- uni-forms 修复 setRules 方法与rules属性冲突的问题 +- uni-link 新增 download 属性,H5平台下载文件名 +- uni-popup 新增 mask-click 遮罩层点击事件 +- uni-popup 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +- uni-tag 修复 uni-tag 在字节跳动小程序上 css 类名编译错误的 bug +## 1.3.3(2021-06-18) +- uni-easyinput 新增 passwordIcon 属性,当type=password时是否显示小眼睛图标 +- uni-easyinput 修复 confirmType 属性不生效的问题 +- uni-easyinput 修复 disabled 状态可清出内容的 bug +- uni-file-picker 修复 删除文件时无法触发 v-model 的Bug +- uni-popup 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +- uni-popup 修复 错误的 watch 字段 +- uni-popup 修复 safeArea 属性不生效的问题 +- uni-popup 修复 点击内容,再点击遮罩无法关闭的Bug +## 1.3.2(2021-06-04) +- uni-data-checkbox 新增 map 属性,可以方便映射text/value属性 +- uni-data-checkbox 修复 不关联服务空间的情况下组件报错的Bug +- uni-data-picker 修复 上个版本引出的本地数据无法选择带有children的2级节点 +- uni-forms 修复 动态删减数据导致报错的问题 +- uni-forms 新增 modelValue 属性 ,value 即将废弃 +- uni-forms 新增 uni-forms-item 可以设置单独的 rules +- uni-forms 新增 validate 事件增加 keepitem 参数,可以选择那些字段不过滤 +- uni-forms 优化 submit 事件重命名为 validate +- uni-data-picker 修复 无法加载云端数据的问题 +- uni-data-picker 修复 v-model无效问题 +- uni-data-picker 修复 loaddata 为空数据组时加载时间过长问题 +- uni-datetime-picker 修复 图标在小程序上不显示的 bug +- uni-datetime-picker 优化 重命名引用组件,避免潜在组件命名冲突 +- uni-datetime-picker 优化 代码目录扁平化 +- uni-tag 修复 未定义 sass 变量 "$uni-color-royal" 的bug +## 1.3.1(2021-05-14) +- uni-badge 新增 uni-badge 的 absolute 属性,支持定位 +- uni-badge 新增 uni-badge 的 offset 属性,支持定位偏移 +- uni-badge 新增 uni-badge 的 is-dot 属性,支持仅显示有一个小点 +- uni-badge 新增 uni-badge 的 max-num 属性,支持自定义封顶的数字值,超过 99 显示99+ +- uni-badge 优化 uni-badge 属性 custom-style, 支持以对象形式自定义样式 +- uni-badge 修复 uni-badge 在 App 端,数字小于10时不是圆形的bug +- uni-badge 修复 uni-badge 在父元素不是 flex 布局时,宽度缩小的bug +- uni-badge 新增 uni-badge 属性 custom-style, 支持自定义样式 +- uni-datetime-picker 修复 ios 下不识别 '-' 日期格式的 bug +- uni-datetime-picker 优化 pc 下弹出层添加边框和阴影 +- uni-datetime-picker 修复 在 admin 中获取弹出层定位错误的bug +- uni-datetime-picker 修复 type 属性向下兼容,默认值从 date 变更为 datetime +- uni-datetime-picker 支持日历形式的日期+时间的范围选择 +- uni-steps 修复 uni-steps 横向布局时,多行文字高度不合理的 bug +- uni-countdown 修复 uni-countdown 不能控制倒计时的 bug +- uni-tag 修复 royal 类型无效的bug +- uni-tag 修复 uni-tag 宽度不自适应的bug +- uni-tag 新增 uni-tag 支持属性 custom-style 自定义样式 +- uni-link 新增 href 属性支持 tel:|mailto: +- uni-popup 修复 组件内放置 input 、textarea 组件,无法聚焦的问题 +- uni-popup 新增 type 属性的 left\right 值,支持左右弹出 +- uni-popup 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗 +- uni-popup 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色 +- uni-popup 新增 safeArea 属性,是否适配底部安全区 +- uni-popup 修复 App\h5\微信小程序底部安全区占位不对的Bug +- uni-popup 修复 App 端弹出等待的Bug +- uni-popup 优化 提升低配设备性能,优化动画卡顿问题 +- uni-popup 优化 更简单的组件自定义方式 +- uni-table 修复 示例项目缺少组件的Bug +- uni-forms 修复 自定义检验器失效的问题 +- uni-title 修复 示例项目缺少组件的Bug +- uni-transition 修复 示例项目缺少组件的Bug +- uni-swiper-dot 修复 示例项目缺少组件的Bug +- uni-ui 新增 组件示例地址 +## 1.3.0(2021-04-23) +- uni-combox 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-data-picker 修复 非树形数据有 where 属性查询报错的问题 +- uni-fav 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-goods-nav 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-nav-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-notice-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-number-box 修复 uni-number-box 浮点数运算不精确的 bug +- uni-number-box 修复 uni-number-box change 事件触发不正确的 bug +- uni-number-box 新增 uni-number-box v-model 双向绑定 +- uni-rate 修复 布局变化后 uni-rate 星星计算不准确的 bug +- uni-rate 优化 添加依赖 uni-icons, 导入 uni-rate 自动下载依赖 +- uni-search-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-steps 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-transition 新增 通过方法自定义动画 +- uni-transition 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式 +- uni-transition 优化 动画触发逻辑,使动画更流畅 +- uni-transition 优化 支持单独的动画类型 +- uni-transition 优化 文档示例 +## 1.2.13(2021-04-16) +- uni-ui 新增 uni-data-picker 支持云端非树形表结构数据 +- uni-ui 修复 uni-data-checkbox nvue 下无法选中的问题 +- uni-ui 修复 uni-data-picker 根节点 parent_field 字段等于null时选择界面错乱问题 +- uni-ui 修复 uni-file-picker 选择的文件非 file-extname 字段指定的扩展名报错的Bug +- uni-ui 修复 uni-swipe-action 报错 nv_navigator is not defined 的bug +- uni-ui 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug +- uni-ui 优化 uni-file-picker file-extname 字段支持字符串写法,多个扩展名需要用逗号分隔 +- uni-ui 优化 uni-pagination PC 和 移动端适配不同的 ui +- uni-ui 更新 uni-file-picker 组件示例 +- uni-ui 修复 uni-nav-bar 当 fixed 属性为 true 时铺不满屏幕的 bug +- uni-ui 新增 uni-search-bar 的 focus 事件 +- uni-ui 修复 uni-rate 属性 margin 值为 string 组件失效的 bug +- uni-data-picker 修复 本地数据概率无法回显时问题 +- uni-table 新增 sortable 属性,是否开启单列排序 +- uni-table 优化 表格多选逻辑 +## 1.2.12(2021-03-23) +- uni-ui 新增 uni-datetime-picker 的 hide-second 属性、border 属性; +- uni-ui 修复 uni-datetime-picker 选择跟显示的日期不一样的 bug, +- uni-ui 修复 uni-datetime-picker change事件触发2次的 bug +- uni-ui 修复 uni-datetime-picker 分、秒 end 范围错误的 bug +- uni-ui 新增 uni-tr selectable 属性,用于 type=selection 时,设置某行是否可由全选按钮控制 +- uni-ui 新增 uni-data-checkbox 新增 disabled属性,支持nvue +- uni-ui 优化 uni-data-checkbox 无选项时提示“暂无数据” +- uni-ui 优化 uni-data-checkbox 默认颜色显示 +- uni-ui 新增 uni-link href 属性支持 tel:|mailto: +- uni-ui 新增 uni-table 示例demo +- uni-ui 修复 uni-data-picker 微信小程序某些情况下无法选择的问题,事件无法触发的问题 +- uni-ui 修复 uni-nav-bar easycom 下,找不到 uni-status-bar 的bug +- uni-ui 修复 uni-easyinput 示例在 qq 小程序上的bug +- uni-ui 修复 uni-forms 动态显示uni-forms-item的情况下,submit 方法获取值错误的Bug +- uni-ui 调整 cli 项目 建议使用 easycom 方式引用组件,如使用按需引用,需手动维护组件内部引用 + +## 1.2.11(2021-02-24) +- 调整为uni_modules目录规范 +- uni-data-picker 新增 数据驱动的picker选择器 +- uni-file-picker 新增 文件选择上传 +- uni-row 新增 栅格系统 +- uni-data-checkbox 优化 支持 nvue +- uni-forms 修复 偶发性获取表单值错误的Bug +- uni-forms 修复 校验 uni-data-picker value 为 0 时,返回值错误的Bug +- uni-forms 修复 uni-forms-item 组件隐藏时依然触发校验的bug +- uni-forms 优化 实时校验 +- uni-forms 优化 兼容nvue页面 +- uni-easyinput 优化 兼容nvue页面 +- uni-group 优化 兼容nvue页面 +- uni-popup 优化 组件适配 PC +- uni-fab 优化 适配 PC +- uni-swiper-dot 优化 适配 PC +- uni-rate 优化 适配 PC +- uni-notice-bar 优化 适配 PC +- uni-indexed-list 优化 适配 PC +- uni-combox 优化 适配 PC +- uni-transition 优化 适配 PC +- uni-nav-bar 优化 适配 PC +- uni-swipe-action 优化 适配 PC diff --git a/uni_modules/uni-ui/components/uni-ui/uni-ui.vue b/uni_modules/uni-ui/components/uni-ui/uni-ui.vue new file mode 100644 index 0000000..0970892 --- /dev/null +++ b/uni_modules/uni-ui/components/uni-ui/uni-ui.vue @@ -0,0 +1,7 @@ + + + diff --git a/uni_modules/uni-ui/package.json b/uni_modules/uni-ui/package.json new file mode 100644 index 0000000..0fba2bf --- /dev/null +++ b/uni_modules/uni-ui/package.json @@ -0,0 +1,128 @@ +{ + "id": "uni-ui", + "displayName": "uni-ui", + "version": "1.4.15", + "description": "uni-ui 是基于uni-app的、全端兼容的、高性能UI框架", + "keywords": [ + "uni-ui", + "uniui", + "UI组件库", + "ui框架", + "ui库" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.10" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-badge", + "uni-calendar", + "uni-card", + "uni-collapse", + "uni-combox", + "uni-countdown", + "uni-data-checkbox", + "uni-data-picker", + "uni-dateformat", + "uni-datetime-picker", + "uni-drawer", + "uni-easyinput", + "uni-fab", + "uni-fav", + "uni-file-picker", + "uni-forms", + "uni-goods-nav", + "uni-grid", + "uni-group", + "uni-icons", + "uni-indexed-list", + "uni-link", + "uni-list", + "uni-load-more", + "uni-nav-bar", + "uni-notice-bar", + "uni-number-box", + "uni-pagination", + "uni-popup", + "uni-rate", + "uni-row", + "uni-search-bar", + "uni-segmented-control", + "uni-steps", + "uni-swipe-action", + "uni-swiper-dot", + "uni-table", + "uni-tag", + "uni-title", + "uni-transition" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-ui/readme.md b/uni_modules/uni-ui/readme.md new file mode 100644 index 0000000..5541b22 --- /dev/null +++ b/uni_modules/uni-ui/readme.md @@ -0,0 +1,248 @@ +> 当前插件不包含示例页面 ,如需示例请在 HBuiderX 中新建 `hello uni-app > 扩展组件` 中查看 +> +> 代码示例地址 :[https://ext.dcloud.net.cn/plugin?id=4941](https://ext.dcloud.net.cn/plugin?id=4941) +> +> 组件演示地址:[https://hellouniapp.dcloud.net.cn](https://hellouniapp.dcloud.net.cn/pages/extUI/badge/badge) +> +> 组件文档地址:[https://uniapp.dcloud.io/component/uniui/uni-ui](https://uniapp.dcloud.io/component/uniui/uni-ui) + +# uni-ui 介绍 + +## uni-ui产品特点 + +### 1. 高性能 + +目前为止,在小程序和混合app领域,暂时还没有比 `uni-ui` 更高性能的框架。 +- 自动差量更新数据 + +虽然uni-app支持小程序自定义组件,所有小程序的ui库都可以用。但小程序自定义组件的ui库都需要使用setData手动更新数据,在大数据量时、或高频更新数据时,很容易产生性能问题。 + +而 `uni-ui` 属于vue组件,uni-app引擎底层自动diff更新数据。当然其实插件市场里众多vue组件都具备这个特点。 +- 优化逻辑层和视图层通讯折损 + +非H5,不管是小程序还是App,不管是app的webview渲染还是原生渲染,全都是逻辑层和视图层分离的。这里就有一个逻辑层和视图层通讯的折损问题。 +比如在视图层拖动一个可跟手的组件,由于通讯的损耗,用js监听很难做到实时跟手。 + +这时就需要使用css动画以及平台底层提供的wxs、bindingx等技术。不过这些技术都比较复杂,所以 `uni-ui` 里做了封装,在需要跟手式操作的ui组件,比如swiperaction列表项左滑菜单,就在底层使用了这些技术,实现了高性能的交互体验 +- 背景停止 + +很多ui组件是会一直动的,比如轮播图、跑马灯。即便这个窗体被新窗体挡住,它在背景层仍然在消耗着硬件资源。在Android的webview版本为chrome66以上,背景操作ui会引发很严重的性能问题,造成前台界面明显卡顿。 + +而 `uni-ui` 的组件,会自动判断自己的显示状态,在组件不再可见时,不会再消耗硬件资源。 + +### 2. 全端 + + `uni-ui` 的组件都是多端自适应的,底层会抹平很多小程序平台的差异或bug。 + +比如导航栏navbar组件,会自动处理不同端的状态栏。 +比如swiperaction组件,在app和微信小程序上会使用交互体验更好的wxs技术,但在不支持wxs的其他小程序端会使用js模拟类似效果。 + + `uni-ui` 还支持nvue原生渲染,[详见](https://github.com/dcloudio/uni-ui/tree/nvue-uni-ui) + +未来 `uni-ui` 还会支持pc等大屏设备。 + +### 3. 与uni统计自动集成实现免打点 + +uni统计是优秀的多端统计平台,见[tongji.dcloud.net.cn](https://tongji.dcloud.net.cn)。 + +除了一张报表看全端,它的另一个重要特点是免打点。 +比如使用 `uni-ui` 的navbar标题栏、收藏、购物车等组件,均可实现自动打点,统计页面标题等各种行为数据。 +当然你也可以关闭uni统计,这不是强制的。 + +### 4. 主题扩展 + + `uni-ui` 支持[uni.scss](https://uniapp.dcloud.io/collocation/uni-scss),可以方便的切换App的风格。 + +ui是一种需求非常发散的产品,DCloud官方也无意用 `uni-ui` 压制第三方ui插件的空间,但官方有义务在性能和多端方面提供一个开源的标杆给大家。 + +我们欢迎更多优秀的ui组件出现,也欢迎更多人贡献 `uni-ui` 的主题风格,满足更多用户的需求。 + + +## 快速开始 + +uni-ui支持 HBuilderX直接新建项目模板、npm安装和单独导入个别组件等多种使用方式 + +### 在HBuilderX 新建uni-app项目的模板中,选择uni-ui模板 +![HBuilderX内创建uni-ui项目](https://img.cdn.aliyun.dcloud.net.cn/uni-app/doc/create-uni-ui-project.jpg) + +由于uni-app独特的[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)技术,可以免引用、注册,直接使用各种符合规则的vue组件。 + +在代码区键入`u`,拉出各种内置或uni-ui的组件列表,选择其中一个,即可使用该组件。 + +光标放在组件名称上,按F1,可以查阅组件的文档。 + +![uni-ui代码块](https://img.cdn.aliyun.dcloud.net.cn/uni-app/doc/uni-ui-snippet.jpg) + +### 通过 uni_modules 单独安装组件 +如果你没有创建uni-ui项目模板,也可以在你的工程里,通过 uni_modules 单独安装需要的某个组件。下表为uni-ui的扩展组件清单,点击每个组件在详情页面可以导入组件到项目下,导入后直接使用即可,无需import和注册。 + +|组件名|组件说明| +|---|---| +|uni-badge|[数字角标](https://ext.dcloud.net.cn/plugin?name=uni-badge)| +|uni-calendar|[日历](https://ext.dcloud.net.cn/plugin?name=uni-calendar)| +|uni-card|[卡片](https://ext.dcloud.net.cn/plugin?name=uni-card)| +|uni-collapse|[折叠面板](https://ext.dcloud.net.cn/plugin?name=uni-collapse)| +|uni-combox|[组合框](https://ext.dcloud.net.cn/plugin?name=uni-combox)| +|uni-countdown|[倒计时](https://ext.dcloud.net.cn/plugin?name=uni-countdown)| +|uni-data-checkbox|[数据选择器](https://ext.dcloud.net.cn/plugin?name=uni-data-checkbox)| +|uni-data-picker|[数据驱动的picker选择器](https://ext.dcloud.net.cn/plugin?name=uni-data-picker)| +|uni-dateformat|[日期格式化](https://ext.dcloud.net.cn/plugin?name=uni-dateformat)| +|uni-datetime-picker|[日期选择器](https://ext.dcloud.net.cn/plugin?name=uni-datetime-picker)| +|uni-drawer|[抽屉](https://ext.dcloud.net.cn/plugin?name=uni-drawer)| +|uni-easyinput|[增强输入框](https://ext.dcloud.net.cn/plugin?name=uni-easyinput)| +|uni-fab|[悬浮按钮](https://ext.dcloud.net.cn/plugin?name=uni-fab)| +|uni-fav|[收藏按钮](https://ext.dcloud.net.cn/plugin?name=uni-fav)| +|uni-file-picker|[文件选择上传](https://ext.dcloud.net.cn/plugin?name=uni-file-picker)| +|uni-forms|[表单](https://ext.dcloud.net.cn/plugin?name=uni-forms)| +|uni-goods-nav|[商品导航](https://ext.dcloud.net.cn/plugin?name=uni-goods-nav)| +|uni-grid|[宫格](https://ext.dcloud.net.cn/plugin?name=uni-grid)| +|uni-group|[分组](https://ext.dcloud.net.cn/plugin?name=uni-group)| +|uni-icons|[图标](https://ext.dcloud.net.cn/plugin?name=uni-icons)| +|uni-indexed-list|[索引列表](https://ext.dcloud.net.cn/plugin?name=uni-indexed-list)| +|uni-link|[超链接](https://ext.dcloud.net.cn/plugin?name=uni-link)| +|uni-list|[列表](https://ext.dcloud.net.cn/plugin?name=uni-list)| +|uni-load-more|[加载更多](https://ext.dcloud.net.cn/plugin?name=uni-load-more)| +|uni-nav-bar|[自定义导航栏](https://ext.dcloud.net.cn/plugin?name=uni-nav-bar)| +|uni-notice-bar|[通告栏](https://ext.dcloud.net.cn/plugin?name=uni-notice-bar)| +|uni-number-box|[数字输入框](https://ext.dcloud.net.cn/plugin?name=uni-number-box)| +|uni-pagination|[分页器](https://ext.dcloud.net.cn/plugin?name=uni-pagination)| +|uni-popup|[弹出层](https://ext.dcloud.net.cn/plugin?name=uni-popup)| +|uni-rate|[评分](https://ext.dcloud.net.cn/plugin?name=uni-rate)| +|uni-row|[布局-行](https://ext.dcloud.net.cn/plugin?name=uni-row)| +|uni-search-bar|[搜索栏](https://ext.dcloud.net.cn/plugin?name=uni-search-bar)| +|Section|[标题栏](https://ext.dcloud.net.cn/plugin?name=uni-section)| +|uni-segmented-control|[分段器](https://ext.dcloud.net.cn/plugin?name=uni-segmented-control)| +|uni-steps|[步骤条](https://ext.dcloud.net.cn/plugin?name=uni-steps)| +|uni-swipe-action|[滑动操作](https://ext.dcloud.net.cn/plugin?name=uni-swipe-action)| +|uni-swiper-dot|[轮播图指示点](https://ext.dcloud.net.cn/plugin?name=uni-swiper-dot)| +|uni-table|[表格](https://ext.dcloud.net.cn/plugin?name=uni-table)| +|uni-tag|[标签](https://ext.dcloud.net.cn/plugin?name=uni-tag)| +|uni-title|[章节标题](https://ext.dcloud.net.cn/plugin?name=uni-title)| +|uni-transition|[过渡动画](https://ext.dcloud.net.cn/plugin?name=uni-transition)| + + +使用 `uni_modules` 方式安装组件库,可以直接通过插件市场导入,通过右键菜单快速更新组件,不需要引用、注册,直接在页面中使用 `uni-ui` 组件。[点击安装 uni-ui 组件库](https://ext.dcloud.net.cn/plugin?id=55) + +**注意:下载最新的组件目前仅支持 uni_modules ,非 uni_modules 版本最高支持到组件的1.2.10版本** + +如不能升级到 `uni_modules` 版本,可以使用 `uni_modules` 安装好对应组件,将组件拷贝到对应目录。 + +例如需更新 `uni-list`和`uni-badge` ,将 `uni_modules>uni-list>components`和`uni_modules>uni-badege>components`下所有目录拷贝到如下目录即可: + + +**目录示例** + +```json +┌─components 组件目录 +│ ├─uni-list list 列表目录 +│ │ └─uni-list.vue list 组件文件 +│ ├─uni-list-item list-item 列表目录 +│ │ └─uni-list-item.vue list 组件文件 +│ ├─uni-badge badge 角标目录 +│ │ └─uni-badge.vue badge 组件文件 +│ └─ //.... 更多组件文件 +├─pages 业务页面文件存放的目录 +│ ├─index +│ │ └─index.vue index示例页面 +├─main.js Vue初始化入口文件 +├─App.vue 应用配置,用来配置App全局样式以及监听 应用生命周期 +├─manifest.json 配置应用名称、appid、logo、版本等打包信息,详见 +└─pages.json 配置页 + +``` + +### 通过 `uni_modules` 导入全部组件 +如果想一次把所有uni-ui组件导入到项目中,只需要导入一个 `uni-ui` 组件即可 [点击去导入](https://ext.dcloud.net.cn/plugin?id=55)。 + +如果没有自动导入其他组件,可以在 uni-ui 组件目录上右键选择 `安装三方插件依赖` 即可。 + + + +### npm安装 +在 `vue-cli` 项目中可以使用 `npm` 安装 `uni-ui` 库 ,或者直接在 `HBuilderX` 项目中使用 `npm` 。 + +> **注意** +> cli 项目默认是不编译 `node_modules` 下的组件的,导致条件编译等功能失效 ,导致组件异常 +> 需要在根目录创建 `vue.config.js` 文件 ,增加 `@dcloudio/uni-ui` 包的编译即可正常 +> ```javascript +> // vue.config.js +> module.exports = { +> transpileDependencies:['@dcloudio/uni-ui'] +> } +> ``` + + + +**准备 sass** + +`vue-cli` 项目请先安装 sass 及 sass-loader,如在 HBuliderX 中使用,可跳过此步。 + +- 安装 sass +``` + npm i sass -D 或 yarn add sass -D +``` + +- 安装 sass-loader +``` +npm i sass-loader@10.1.1 -D 或 yarn add sass-loader@10.1.1 -D +``` + +> 如果 `node` 版本小于 16 ,sass-loader 请使用低于 @11.0.0 的版本,[sass-loader@11.0.0 不支持 vue@2.6.12 ](https://stackoverflow.com/questions/66082397/typeerror-this-getoptions-is-not-a-function) +> 如果 `node` 版本大于 16 , `sass-loader` 建议使用 `v8.x` 版本 + +**安装 uni-ui** + +``` +npm i @dcloudio/uni-ui 或 yarn add @dcloudio/uni-ui +``` + + + +**配置easycom** + +使用 `npm` 安装好 `uni-ui` 之后,需要配置 `easycom` 规则,让 `npm` 安装的组件支持 `easycom` + +打开项目根目录下的 `pages.json` 并添加 `easycom` 节点: + +```javascript +// pages.json +{ + "easycom": { + "autoscan": true, + "custom": { + // uni-ui 规则如下配置 + "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue" + } + }, + + // 其他内容 + pages:[ + // ... + ] +} + +``` + +在 ``template`` 中使用组件: + +```html + + + +``` + + **注意** + - uni-ui 现在只推荐使用 `easycom` ,如自己引用组件,可能会出现组件找不到的问题 + - 使用 npm 安装的组件,默认情况下 babel-loader 会忽略所有 node_modules 中的文件 ,导致条件编译失效,需要通过配置 `vue.config.js` 解决: + ```javascript + // 在根目录创建 vue.config.js 文件,并配置如下 + module.exports = { + transpileDependencies: ['@dcloudio/uni-ui'] + } + ``` + - uni-ui 是uni-app内置组件的扩展。注意与web开发不同,uni-ui不包括基础组件,它是基础组件的补充。web开发中有的开发者习惯用一个ui库完成所有开发,但在uni-app体系中,推荐开发者首先使用性能更高的基础组件,然后按需引入必要的扩展组件。 + - `uni-ui` 不支持使用 `Vue.use()` 的方式安装 + + +### 贡献代码 +在使用 `uni-ui` 中,如遇到无法解决的问题,请提 [Issues](https://github.com/dcloudio/uni-ui/issues) 给我们,假如您有更好的点子或更好的实现方式,也欢迎给我们提交 [PR](https://github.com/dcloudio/uni-ui/pulls) \ No newline at end of file diff --git a/unpackage/dist/build/.automator/mp-weixin/.automator.json b/unpackage/dist/build/.automator/mp-weixin/.automator.json new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/build/mp-weixin/app.js b/unpackage/dist/build/mp-weixin/app.js new file mode 100644 index 0000000..2bb776e --- /dev/null +++ b/unpackage/dist/build/mp-weixin/app.js @@ -0,0 +1,4 @@ + +require('./common/runtime.js') +require('./common/vendor.js') +require('./common/main.js') \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/app.json b/unpackage/dist/build/mp-weixin/app.json new file mode 100644 index 0000000..b7e7cbc --- /dev/null +++ b/unpackage/dist/build/mp-weixin/app.json @@ -0,0 +1,79 @@ +{ + "pages": [ + "pages/index/index", + "pages/qushi/qushi", + "pages/shopCart/shopCart", + "pages/shopCart/confirmOrder", + "pages/me/me", + "pages/index/pagesOne/mall/mall", + "pages/index/pagesOne/mall/cateMall/cateMall", + "pages/index/pagesOne/mall/mallDet/mallDet", + "pages/login/login", + "pages/index/pagesOne/zhiNan/zhiNan", + "pages/index/pagesOne/zhiNan/zhiNanDet", + "pages/qushi/quDet", + "pages/qushi/pushQuShi", + "pages/index/pagesOne/mall/mallDet/confirmOrder", + "pages/me/pagesOne/address/addressEdit/addressEdit", + "pages/me/pagesOne/address/newAddress/newAddress", + "pages/me/pagesOne/set/set", + "pages/me/pagesOne/set/xieYi", + "pages/me/pagesOne/feedBack/feedBack", + "pages/me/pagesOne/order/order", + "pages/me/pagesOne/order/orderDet", + "pages/me/pagesOne/collect/collect", + "pages/me/pagesOne/shopJoin/shopJoin", + "pages/me/pagesOne/userInfoChange/userInfoChange", + "pages/me/pagesOne/tui/tui", + "pages/me/pagesOne/couponList/couponList" + ], + "subPackages": [], + "window": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "uni-app", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#FFFFFF" + }, + "tabBar": { + "color": "#9AA2B5", + "selectedColor": "#809c76", + "backgroundColor": "#FFFFFF", + "list": [ + { + "pagePath": "pages/index/index", + "iconPath": "static/icnon-shuye.png", + "selectedIconPath": "static/icnon-shuye_fill.png", + "text": "首页" + }, + { + "pagePath": "pages/qushi/qushi", + "iconPath": "static/icon_qushi.png", + "selectedIconPath": "static/icon_qushi_fill.png", + "text": "趣事" + }, + { + "pagePath": "pages/shopCart/shopCart", + "iconPath": "static/icon-gouwuche.png", + "selectedIconPath": "static/icon-gouwuche_fill.png", + "text": "购物车" + }, + { + "pagePath": "pages/me/me", + "iconPath": "static/icon-wode.png", + "selectedIconPath": "static/icon-wode_fill.png", + "text": "我的" + } + ] + }, + "requiredPrivateInfos": [ + "getLocation", + "chooseLocation" + ], + "permission": { + "scope.userLocation": { + "desc": "用于获取您附近的商家" + } + }, + "usingComponents": {}, + "sitemapLocation": "sitemap.json" +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/app.wxss b/unpackage/dist/build/mp-weixin/app.wxss new file mode 100644 index 0000000..705b297 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/app.wxss @@ -0,0 +1,3 @@ +@import './common/main.wxss'; + +[data-custom-hidden="true"],[bind-data-custom-hidden="true"]{display: none !important;} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/common/main.js b/unpackage/dist/build/mp-weixin/common/main.js new file mode 100644 index 0000000..7048029 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/common/main.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["common/main"],{"54aa":function(e,t,o){"use strict";o.r(t);var n=o("7be1"),a=o.n(n);for(var r in n)["default"].indexOf(r)<0&&function(e){o.d(t,e,(function(){return n[e]}))}(r);t["default"]=a.a},"5a5f":function(e,t,o){"use strict";var n=o("ecf6"),a=o.n(n);a.a},"6ec6":function(e,t,o){"use strict";o.r(t);var n=o("54aa");for(var a in n)["default"].indexOf(a)<0&&function(e){o.d(t,e,(function(){return n[e]}))}(a);o("5a5f");var r=o("f0c5"),c=Object(r["a"])(n["default"],void 0,void 0,!1,null,null,null,!1,void 0,void 0);t["default"]=c.exports},"7be1":function(e,t,o){"use strict";(function(e){var n=o("4ea4");Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=n(o("9523"));function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function c(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:2;return new Promise((function(a,r){o.$vm.$tools.axiosFrom("POST","order/orderPayment",{paytype:n,order_no:t,openid:e.getStorageSync("openId")}).then((function(e){console.log(e,"支付参数"),1==n?o.payFn("alipay",e.data).then((function(e){a(e)})).catch((function(e){r(e)})):2==n&&o.payFn("wxpay",e.data).then((function(e){a(e)})).catch((function(e){r(e)}))}))}))},payFn:function(t,o){return console.log(o,"支付参数"),new Promise((function(n,a){e.requestPayment(c(c({provider:t},o),{},{success:function(t){e.showToast({icon:"success",title:"支付成功"}),n(t)},fail:function(t){e.showToast({icon:"error",title:"支付失败"}),a(t)}}))}))}}};t.default=i}).call(this,o("543d")["default"])},aaf2:function(e,t,o){"use strict";(function(e){var t=o("4ea4"),n=t(o("9523"));o("0178");var a=t(o("66fd")),r=t(o("6ec6")),c=t(o("8132")),i=t(o("7b1c")),s=t(o("7661"));t(o("5221"));function u(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}wx.__webpack_require_UNI_MP_PLUGIN__=o,a.default.prototype.$tools=i.default,a.default.prototype.$amapwx=s.default,a.default.mixin(c.default),r.default.mpType="app";var l=new a.default(function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0;if("string"!==typeof e){var a=[t,e];e=a[0],t=a[1]}"string"!==typeof e&&(e=O());"string"!==typeof n&&(n="undefined"!==typeof __uniConfig&&__uniConfig.fallbackLocale||"en");var r=new w({locale:e,fallbackLocale:n,messages:t,watcher:o}),i=function(e,t){if("function"!==typeof getApp)i=function(e,t){return r.t(e,t)};else{var n=!1;i=function(e,t){var o=getApp().$vm;return o&&(o.$locale,n||(n=!0,x(o,r))),r.t(e,t)}}return i(e,t)};return{i18n:r,f:function(e,t,n){return r.f(e,t,n)},t:function(e,t){return i(e,t)},add:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return r.add(e,t,n)},watch:function(e){return r.watchLocale(e)},getLocale:function(){return r.getLocale()},setLocale:function(e){return r.setLocale(e)}}},t.isI18nStr=$,t.isString=void 0,t.normalizeLocale=b,t.parseI18nJson=function e(t,n,o){k||(k=new d);return S(t,(function(t,a){var r=t[a];A(r)?$(r,o)&&(t[a]=P(r,n,o)):e(r,n,o)})),t},t.resolveLocale=function(e){return function(t){return t?(t=b(t)||t,function(e){var t=[],n=e.split("-");while(n.length)t.push(n.join("-")),n.pop();return t}(t).find((function(t){return e.indexOf(t)>-1}))):t}};var r=a(n("278c")),i=a(n("970b")),c=a(n("5bc3")),s=a(n("7037")),u=Array.isArray,l=function(e){return null!==e&&"object"===(0,s.default)(e)},f=["{","}"],d=function(){function e(){(0,i.default)(this,e),this._caches=Object.create(null)}return(0,c.default)(e,[{key:"interpolate",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f;if(!t)return[e];var o=this._caches[e];return o||(o=m(e,n),this._caches[e]=o),v(o,t)}}]),e}();t.Formatter=d;var p=/^(?:\d)+/,h=/^(?:\w)+/;function m(e,t){var n=(0,r.default)(t,2),o=n[0],a=n[1],i=[],c=0,s="";while(c-1?"zh-Hans":e.indexOf("-hant")>-1||function(e,t){return!!t.find((function(t){return-1!==e.indexOf(t)}))}(e,["-tw","-hk","-mo","-cht"])?"zh-Hant":"zh-Hans";var n=function(e,t){return t.find((function(t){return 0===e.indexOf(t)}))}(e,["en","fr","es"]);return n||void 0}}var w=function(){function e(t){var n=t.locale,o=t.fallbackLocale,a=t.messages,r=t.watcher,c=t.formater;(0,i.default)(this,e),this.locale="en",this.fallbackLocale="en",this.message={},this.messages={},this.watchers=[],o&&(this.fallbackLocale=o),this.formater=c||y,this.messages=a||{},this.setLocale(n||"en"),r&&this.watchLocale(r)}return(0,c.default)(e,[{key:"setLocale",value:function(e){var t=this,n=this.locale;this.locale=b(e,this.messages)||this.fallbackLocale,this.messages[this.locale]||(this.messages[this.locale]={}),this.message=this.messages[this.locale],n!==this.locale&&this.watchers.forEach((function(e){e(t.locale,n)}))}},{key:"getLocale",value:function(){return this.locale}},{key:"watchLocale",value:function(e){var t=this,n=this.watchers.push(e)-1;return function(){t.watchers.splice(n,1)}}},{key:"add",value:function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=this.messages[e];o?n?Object.assign(o,t):Object.keys(t).forEach((function(e){g(o,e)||(o[e]=t[e])})):this.messages[e]=t}},{key:"f",value:function(e,t,n){return this.formater.interpolate(e,t,n).join("")}},{key:"t",value:function(e,t,n){var o=this.message;return"string"===typeof t?(t=b(t,this.messages),t&&(o=this.messages[t])):n=t,g(o,e)?this.formater.interpolate(o[e],n).join(""):(console.warn("Cannot translate the value of keypath ".concat(e,". Use the value of keypath as default.")),e)}}]),e}();function x(e,t){e.$watchLocale?e.$watchLocale((function(e){t.setLocale(e)})):e.$watch((function(){return e.$locale}),(function(e){t.setLocale(e)}))}function O(){return"undefined"!==typeof e&&e.getLocale?e.getLocale():"undefined"!==typeof o&&o.getLocale?o.getLocale():"en"}t.I18n=w;var k,A=function(e){return"string"===typeof e};function $(e,t){return e.indexOf(t[0])>-1}function P(e,t,n){return k.interpolate(e,t,n).join("")}function j(e,t,n){return S(e,(function(e,o){(function(e,t,n,o){var a=e[t];if(A(a)){if($(a,o)&&(e[t]=P(a,n[0].values,o),n.length>1)){var r=e[t+"Locales"]={};n.forEach((function(e){r[e.locale]=P(a,e.values,o)}))}}else j(a,n,o)})(e,o,t,n)})),e}function S(e,t){if(u(e)){for(var n=0;n>16&255):64===o?String.fromCharCode(t>>16&255,t>>8&255):String.fromCharCode(t>>16&255,t>>8&255,255&t);return a}:atob;var _=Object.prototype.toString,g=Object.prototype.hasOwnProperty;function y(e){return"function"===typeof e}function b(e){return"string"===typeof e}function w(e){return"[object Object]"===_.call(e)}function x(e,t){return g.call(e,t)}function O(){}function k(e){var t=Object.create(null);return function(n){var o=t[n];return o||(t[n]=e(n))}}var A=/-(\w)/g,$=k((function(e){return e.replace(A,(function(e,t){return t?t.toUpperCase():""}))}));function P(e){var t={};return w(e)&&Object.keys(e).sort().forEach((function(n){t[n]=e[n]})),Object.keys(t)?t:e}var j=["invoke","success","fail","complete","returnValue"],S={},C={};function E(e,t){Object.keys(t).forEach((function(n){-1!==j.indexOf(n)&&y(t[n])&&(e[n]=function(e,t){var n=t?e?e.concat(t):Array.isArray(t)?t:[t]:e;return n?function(e){for(var t=[],n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return["success","fail","complete"].forEach((function(n){if(Array.isArray(e[n])){var o=t[n];t[n]=function(t){D(e[n],t).then((function(e){return y(o)&&o(e)||e}))}}})),t}function N(e,t){var n=[];Array.isArray(S.returnValue)&&n.push.apply(n,(0,s.default)(S.returnValue));var o=C[e];return o&&Array.isArray(o.returnValue)&&n.push.apply(n,(0,s.default)(o.returnValue)),n.forEach((function(e){t=e(t)||t})),t}function R(e){var t=Object.create(null);Object.keys(S).forEach((function(e){"returnValue"!==e&&(t[e]=S[e].slice())}));var n=C[e];return n&&Object.keys(n).forEach((function(e){"returnValue"!==e&&(t[e]=(t[e]||[]).concat(n[e]))})),t}function B(e,t,n){for(var o=arguments.length,a=new Array(o>3?o-3:0),r=3;r0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length,a=new Array(o>1?o-1:0),r=1;r-1?"zh-Hans":e.indexOf("-hant")>-1||function(e,t){return!!t.find((function(t){return-1!==e.indexOf(t)}))}(e,["-tw","-hk","-mo","-cht"])?"zh-Hant":"zh-Hans";var n=function(e,t){return t.find((function(t){return 0===e.indexOf(t)}))}(e,["en","fr","es"]);return n||void 0}}function re(){var e=getApp({allowDefault:!0});return e&&e.$vm?e.$vm.$locale:ae(wx.getSystemInfoSync().language)||"en"}var ie=[];"undefined"!==typeof e&&(e.getLocale=re);var ce={promiseInterceptor:V},se=Object.freeze({__proto__:null,upx2px:function(e,t){if(0===Y&&function(){var e=wx.getSystemInfoSync(),t=e.platform,n=e.pixelRatio,o=e.windowWidth;Y=o,Q=n,Z="ios"===t}(),e=Number(e),0===e)return 0;var n=e/750*(t||Y);return n<0&&(n=-n),n=Math.floor(n+1e-4),0===n&&(n=1!==Q&&Z?.5:1),e<0?-n:n},getLocale:re,setLocale:function(e){var t=getApp();if(!t)return!1;var n=t.$vm.$locale;return n!==e&&(t.$vm.$locale=e,ie.forEach((function(t){return t({locale:e})})),!0)},onLocaleChange:function(e){-1===ie.indexOf(e)&&ie.push(e)},addInterceptor:function(e,t){"string"===typeof e&&w(t)?E(C[e]||(C[e]={}),t):w(e)&&E(S,e)},removeInterceptor:function(e,t){"string"===typeof e?w(t)?T(C[e],t):delete C[e]:w(e)&&T(S,e)},interceptors:ce});var ue,le={name:function(e){return"back"===e.exists&&e.delta?"navigateBack":"redirectTo"},args:function(e){if("back"===e.exists&&e.url){var t=function(e){var t=getCurrentPages(),n=t.length;while(n--){var o=t[n];if(o.$page&&o.$page.fullPath===e)return n}return-1}(e.url);if(-1!==t){var n=getCurrentPages().length-1-t;n>0&&(e.delta=n)}}}},fe={args:function(e){var t=parseInt(e.current);if(!isNaN(t)){var n=e.urls;if(Array.isArray(n)){var o=n.length;if(o)return t<0?t=0:t>=o&&(t=o-1),t>0?(e.current=n[t],e.urls=n.filter((function(e,o){return!(o2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(w(t)){var r=!0===a?t:{};for(var i in y(n)&&(n=n(t,r)||{}),t)if(x(n,i)){var c=n[i];y(c)&&(c=c(t[i],t,r)),c?b(c)?r[c]=t[i]:w(c)&&(r[c.name?c.name:i]=c.value):console.warn("The '".concat(e,"' method of platform '微信小程序' does not support option '").concat(i,"'"))}else-1!==ke.indexOf(i)?y(t[i])&&(r[i]=Ae(e,t[i],o)):a||(r[i]=t[i]);return r}return y(t)&&(t=Ae(e,t,o)),t}function Pe(e,t,n){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return y(Oe.returnValue)&&(t=Oe.returnValue(e,t)),$e(e,t,n,{},o)}function je(e,t){if(x(Oe,e)){var n=Oe[e];return n?function(t,o){var a=n;y(n)&&(a=n(t)),t=$e(e,t,a.args,a.returnValue);var r=[t];"undefined"!==typeof o&&r.push(o),y(a.name)?e=a.name(t):b(a.name)&&(e=a.name);var i=wx[e].apply(wx,r);return W(e)?Pe(e,i,a.returnValue,G(e)):i}:function(){console.error("Platform '微信小程序' does not support '".concat(e,"'."))}}return t}var Se=Object.create(null);["onTabBarMidButtonTap","subscribePush","unsubscribePush","onPush","offPush","share"].forEach((function(e){Se[e]=function(e){return function(t){var n=t.fail,o=t.complete,a={errMsg:"".concat(e,":fail method '").concat(e,"' not supported")};y(n)&&n(a),y(o)&&o(a)}}(e)}));var Ce={oauth:["weixin"],share:["weixin"],payment:["wxpay"],push:["weixin"]};var Ee=Object.freeze({__proto__:null,getProvider:function(e){var t=e.service,n=e.success,o=e.fail,a=e.complete,r=!1;Ce[t]?(r={errMsg:"getProvider:ok",service:t,provider:Ce[t]},y(n)&&n(r)):(r={errMsg:"getProvider:fail service not found"},y(o)&&o(r)),y(a)&&a(r)}}),Te=function(){var e;return function(){return e||(e=new f.default),e}}();function Me(e,t,n){return e[t].apply(e,n)}var Le,De,Ie,Ne=Object.freeze({__proto__:null,$on:function(){return Me(Te(),"$on",Array.prototype.slice.call(arguments))},$off:function(){return Me(Te(),"$off",Array.prototype.slice.call(arguments))},$once:function(){return Me(Te(),"$once",Array.prototype.slice.call(arguments))},$emit:function(){return Me(Te(),"$emit",Array.prototype.slice.call(arguments))}});function Re(e){return function(){try{return e.apply(e,arguments)}catch(t){console.error(t)}}}function Be(e){try{return JSON.parse(e)}catch(t){}return e}var Ve=[];function Fe(e,t){Ve.forEach((function(n){n(e,t)})),Ve.length=0}var ze=[],He=Object.freeze({__proto__:null,getPushClientId:function(e){w(e)||(e={});var t=function(e){var t={};for(var n in e){var o=e[n];y(o)&&(t[n]=Re(o),delete e[n])}return t}(e),n=t.success,o=t.fail,a=t.complete,r=y(n),i=y(o),c=y(a);Promise.resolve().then((function(){"undefined"===typeof Ie&&(Ie=!1,Le="",De="uniPush is not enabled"),Ve.push((function(e,t){var s;e?(s={errMsg:"getPushClientId:ok",cid:e},r&&n(s)):(s={errMsg:"getPushClientId:fail"+(t?" "+t:"")},i&&o(s)),c&&a(s)})),"undefined"!==typeof Le&&Fe(Le,De)}))},onPushMessage:function(e){-1===ze.indexOf(e)&&ze.push(e)},offPushMessage:function(e){if(e){var t=ze.indexOf(e);t>-1&&ze.splice(t,1)}else ze.length=0},invokePushCallback:function(e){if("enabled"===e.type)Ie=!0;else if("clientId"===e.type)Le=e.cid,De=e.errMsg,Fe(Le,e.errMsg);else if("pushMsg"===e.type)for(var t={type:"receive",data:Be(e.message)},n=0;n=0;r--){var i=a[r];if(i.$scope._$vueId===n)return i}for(var c=a.length-1;c>=0;c--)if(o=e(a[c],n),o)return o}(this.$vm,o)),t||(t=this.$vm),a.parent=t}function Ke(e){return Object.defineProperty(e,"__v_isMPComponent",{configurable:!0,enumerable:!1,value:!0}),e}function Ze(e){return function(e){return null!==e&&"object"===(0,u.default)(e)}(e)&&Object.isExtensible(e)&&Object.defineProperty(e,"__ob__",{configurable:!0,enumerable:!1,value:(0,i.default)({},"__v_skip",!0)}),e}var Ye=Page,Qe=Component,et=/:/g,tt=k((function(e){return $(e.replace(et,"-"))}));function nt(e){var t=e.triggerEvent,n=function(e){for(var n=arguments.length,o=new Array(n>1?n-1:0),a=1;a0&&void 0!==arguments[0]?arguments[0]:{};return ot("onLoad",e),Ye(e)},Page.after=Ye.after,Component=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ot("created",e),Qe(e)});function at(e,t,n){t.forEach((function(t){(function e(t,n){if(!n)return!0;if(f.default.options&&Array.isArray(f.default.options[t]))return!0;if(n=n.default||n,y(n))return!!y(n.extendOptions[t])||!!(n.super&&n.super.options&&Array.isArray(n.super.options[t]));if(y(n[t])||Array.isArray(n[t]))return!0;var o=n.mixins;return Array.isArray(o)?!!o.find((function(n){return e(t,n)})):void 0})(t,n)&&(e[t]=function(e){return this.$vm&&this.$vm.__call_hook(t,e)})}))}function rt(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];it(t).forEach((function(t){return ct(e,t,n)}))}function it(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return e&&Object.keys(e).forEach((function(n){0===n.indexOf("on")&&y(e[n])&&t.push(n)})),t}function ct(e,t,n){-1!==n.indexOf(t)||x(e,t)||(e[t]=function(e){return this.$vm&&this.$vm.__call_hook(t,e)})}function st(e,t){var n;return t=t.default||t,n=y(t)?t:e.extend(t),t=n.options,[n,t]}function ut(e,t){if(Array.isArray(t)&&t.length){var n=Object.create(null);t.forEach((function(e){n[e]=!0})),e.$scopedSlots=e.$slots=n}}function lt(e,t){e=(e||"").split(",");var n=e.length;1===n?t._$vueId=e[0]:2===n&&(t._$vueId=e[0],t._$vuePid=e[1])}function ft(e,t){var n=e.data||{},o=e.methods||{};if("function"===typeof n)try{n=n.call(t)}catch(a){Object({NODE_ENV:"production",VUE_APP_DARK_MODE:"false",VUE_APP_NAME:"太极",VUE_APP_PLATFORM:"mp-weixin",BASE_URL:"/"}).VUE_APP_DEBUG&&console.warn("根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。",n)}else try{n=JSON.parse(JSON.stringify(n))}catch(a){}return w(n)||(n={}),Object.keys(o).forEach((function(e){-1!==t.__lifecycle_hooks__.indexOf(e)||x(n,e)||(n[e]=o[e])})),n}var dt=[String,Number,Boolean,Object,Array,null];function pt(e){return function(t,n){this.$vm&&(this.$vm[e]=t)}}function ht(e,t){var n=e.behaviors,o=e.extends,a=e.mixins,r=e.props;r||(e.props=r=[]);var i=[];return Array.isArray(n)&&n.forEach((function(e){i.push(e.replace("uni://","wx".concat("://"))),"uni://form-field"===e&&(Array.isArray(r)?(r.push("name"),r.push("value")):(r.name={type:String,default:""},r.value={type:[String,Number,Boolean,Array,Object,Date],default:""}))})),w(o)&&o.props&&i.push(t({properties:vt(o.props,!0)})),Array.isArray(a)&&a.forEach((function(e){w(e)&&e.props&&i.push(t({properties:vt(e.props,!0)}))})),i}function mt(e,t,n,o){return Array.isArray(t)&&1===t.length?t[0]:t}function vt(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>3?arguments[3]:void 0,o={};return t||(o.vueId={type:String,value:""},n.virtualHost&&(o.virtualHostStyle={type:null,value:""},o.virtualHostClass={type:null,value:""}),o.scopedSlotsCompiler={type:String,value:""},o.vueSlots={type:null,value:[],observer:function(e,t){var n=Object.create(null);e.forEach((function(e){n[e]=!0})),this.setData({$slots:n})}}),Array.isArray(e)?e.forEach((function(e){o[e]={type:null,observer:pt(e)}})):w(e)&&Object.keys(e).forEach((function(t){var n=e[t];if(w(n)){var a=n.default;y(a)&&(a=a()),n.type=mt(0,n.type),o[t]={type:-1!==dt.indexOf(n.type)?n.type:null,value:a,observer:pt(t)}}else{var r=mt(0,n);o[t]={type:-1!==dt.indexOf(r)?r:null,observer:pt(t)}}})),o}function _t(e,t,n,o){var a={};return Array.isArray(t)&&t.length&&t.forEach((function(t,r){"string"===typeof t?t?"$event"===t?a["$"+r]=n:"arguments"===t?a["$"+r]=n.detail&&n.detail.__args__||o:0===t.indexOf("$event.")?a["$"+r]=e.__get_value(t.replace("$event.",""),n):a["$"+r]=e.__get_value(t):a["$"+r]=e:a["$"+r]=function(e,t){var n=e;return t.forEach((function(t){var o=t[0],a=t[2];if(o||"undefined"!==typeof a){var r,i=t[1],c=t[3];Number.isInteger(o)?r=o:o?"string"===typeof o&&o&&(r=0===o.indexOf("#s#")?o.substr(3):e.__get_value(o,n)):r=n,Number.isInteger(r)?n=a:i?Array.isArray(r)?n=r.find((function(t){return e.__get_value(i,t)===a})):w(r)?n=Object.keys(r).find((function(t){return e.__get_value(i,r[t])===a})):console.error("v-for 暂不支持循环数据:",r):n=r[a],c&&(n=e.__get_value(c,n))}})),n}(e,t)})),a}function gt(e){for(var t={},n=1;n2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=arguments.length>4?arguments[4]:void 0,r=arguments.length>5?arguments[5]:void 0,i=!1,c=w(t.detail)&&t.detail.__args__||[t.detail];if(a&&(i=t.currentTarget&&t.currentTarget.dataset&&"wx"===t.currentTarget.dataset.comType,!n.length))return i?[t]:c;var s=_t(e,o,t,c),u=[];return n.forEach((function(e){"$event"===e?"__set_model"!==r||a?a&&!i?u.push(c[0]):u.push(t):u.push(t.target.value):Array.isArray(e)&&"o"===e[0]?u.push(gt(e)):"string"===typeof e&&x(s,e)?u.push(s[e]):u.push(e)})),u}function bt(e){var t=this;e=function(e){try{e.mp=JSON.parse(JSON.stringify(e))}catch(t){}return e.stopPropagation=O,e.preventDefault=O,e.target=e.target||{},x(e,"detail")||(e.detail={}),x(e,"markerId")&&(e.detail="object"===(0,u.default)(e.detail)?e.detail:{},e.detail.markerId=e.markerId),w(e.detail)&&(e.target=Object.assign({},e.target,e.detail)),e}(e);var n=(e.currentTarget||e.target).dataset;if(!n)return console.warn("事件信息不存在");var o=n.eventOpts||n["event-opts"];if(!o)return console.warn("事件信息不存在");var a=e.type,r=[];return o.forEach((function(n){var o=n[0],i=n[1],c="^"===o.charAt(0);o=c?o.slice(1):o;var s="~"===o.charAt(0);o=s?o.slice(1):o,i&&function(e,t){return e===t||"regionchange"===t&&("begin"===e||"end"===e)}(a,o)&&i.forEach((function(n){var o=n[0];if(o){var a=t.$vm;if(a.$options.generic&&(a=function(e){var t=e.$parent;while(t&&t.$parent&&(t.$options.generic||t.$parent.$options.generic||t.$scope._$vuePid))t=t.$parent;return t&&t.$parent}(a)||a),"$emit"===o)return void a.$emit.apply(a,yt(t.$vm,e,n[1],n[2],c,o));var i=a[o];if(!y(i)){var u="page"===t.$vm.mpType?"Page":"Component",l=t.route||t.is;throw new Error("".concat(u,' "').concat(l,'" does not have a method "').concat(o,'"'))}if(s){if(i.once)return;i.once=!0}var f=yt(t.$vm,e,n[1],n[2],c,o);f=Array.isArray(f)?f:[],/=\s*\S+\.eventParams\s*\|\|\s*\S+\[['"]event-params['"]\]/.test(i.toString())&&(f=f.concat([,,,,,,,,,,e])),r.push(i.apply(a,f))}}))})),"input"===a&&1===r.length&&"undefined"!==typeof r[0]?r[0]:void 0}var wt={},xt=[];var Ot=["onShow","onHide","onError","onPageNotFound","onThemeChange","onUnhandledRejection"];function kt(){f.default.prototype.getOpenerEventChannel=function(){return this.$scope.getOpenerEventChannel()};var e=f.default.prototype.__call_hook;f.default.prototype.__call_hook=function(t,n){return"onLoad"===t&&n&&n.__id__&&(this.__eventChannel__=function(e){if(e){var t=wt[e];return delete wt[e],t}return xt.shift()}(n.__id__),delete n.__id__),e.call(this,t,n)}}function At(e,t){var n=t.mocks,o=t.initRefs;kt(),function(){var e={},t={};f.default.prototype.$hasScopedSlotsParams=function(n){var o=e[n];return o||(t[n]=this,this.$on("hook:destroyed",(function(){delete t[n]}))),o},f.default.prototype.$getScopedSlotsParams=function(n,o,a){var r=e[n];if(r){var i=r[o]||{};return a?i[a]:i}t[n]=this,this.$on("hook:destroyed",(function(){delete t[n]}))},f.default.prototype.$setScopedSlotsParams=function(n,o){var a=this.$options.propsData.vueId;if(a){var r=a.split(",")[0],i=e[r]=e[r]||{};i[n]=o,t[r]&&t[r].$forceUpdate()}},f.default.mixin({destroyed:function(){var n=this.$options.propsData,o=n&&n.vueId;o&&(delete e[o],delete t[o])}})}(),e.$options.store&&(f.default.prototype.$store=e.$options.store),function(e){e.prototype.uniIDHasRole=function(e){var t=v(),n=t.role;return n.indexOf(e)>-1},e.prototype.uniIDHasPermission=function(e){var t=v(),n=t.permission;return this.uniIDHasRole("admin")||n.indexOf(e)>-1},e.prototype.uniIDTokenValid=function(){var e=v(),t=e.tokenExpired;return t>Date.now()}}(f.default),f.default.prototype.mpHost="mp-weixin",f.default.mixin({beforeCreate:function(){if(this.$options.mpType){if(this.mpType=this.$options.mpType,this.$mp=(0,i.default)({data:{}},this.mpType,this.$options.mpInstance),this.$scope=this.$options.mpInstance,delete this.$options.mpType,delete this.$options.mpInstance,"page"===this.mpType&&"function"===typeof getApp){var e=getApp();e.$vm&&e.$vm.$i18n&&(this._i18n=e.$vm.$i18n)}"app"!==this.mpType&&(o(this),function(e,t){var n=e.$mp[e.mpType];t.forEach((function(t){x(n,t)&&(e[t]=n[t])}))}(this,n))}}});var a={onLaunch:function(t){this.$vm||(wx.canIUse&&!wx.canIUse("nextTick")&&console.error("当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上"),this.$vm=e,this.$vm.$mp={app:this},this.$vm.$scope=this,this.$vm.globalData=this.globalData,this.$vm._isMounted=!0,this.$vm.__call_hook("mounted",t),this.$vm.__call_hook("onLaunch",t))}};a.globalData=e.$options.globalData||{};var r=e.$options.methods;return r&&Object.keys(r).forEach((function(e){a[e]=r[e]})),function(e,t,n){var o=e.observable({locale:n||ne.getLocale()}),a=[];t.$watchLocale=function(e){a.push(e)},Object.defineProperty(t,"$locale",{get:function(){return o.locale},set:function(e){o.locale=e,a.forEach((function(t){return t(e)}))}})}(f.default,e,ae(wx.getSystemInfoSync().language)||"en"),at(a,Ot),rt(a,e.$options),a}function $t(e){return At(e,{mocks:Ue,initRefs:Je})}function Pt(e){return App($t(e)),e}var jt=/[!'()*]/g,St=function(e){return"%"+e.charCodeAt(0).toString(16)},Ct=/%2C/g,Et=function(e){return encodeURIComponent(e).replace(jt,St).replace(Ct,",")};function Tt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Et,n=e?Object.keys(e).map((function(n){var o=e[n];if(void 0===o)return"";if(null===o)return t(n);if(Array.isArray(o)){var a=[];return o.forEach((function(e){void 0!==e&&(null===e?a.push(t(n)):a.push(t(n)+"="+t(e)))})),a.join("&")}return t(n)+"="+t(o)})).filter((function(e){return e.length>0})).join("&"):null;return n?"?".concat(n):""}function Mt(e,t){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.isPage,o=t.initRelation,a=arguments.length>2?arguments[2]:void 0,i=st(f.default,e),c=(0,r.default)(i,2),s=c[0],u=c[1],l=p({multipleSlots:!0,addGlobalClass:!0},u.options||{});u["mp-weixin"]&&u["mp-weixin"].options&&Object.assign(l,u["mp-weixin"].options);var d={options:l,data:ft(u,f.default.prototype),behaviors:ht(u,qe),properties:vt(u.props,!1,u.__file,l),lifetimes:{attached:function(){var e=this.properties,t={mpType:n.call(this)?"page":"component",mpInstance:this,propsData:e};lt(e.vueId,this),o.call(this,{vuePid:this._$vuePid,vueOptions:t}),this.$vm=new s(t),ut(this.$vm,e.vueSlots),this.$vm.$mount()},ready:function(){this.$vm&&(this.$vm._isMounted=!0,this.$vm.__call_hook("mounted"),this.$vm.__call_hook("onReady"))},detached:function(){this.$vm&&this.$vm.$destroy()}},pageLifetimes:{show:function(e){this.$vm&&this.$vm.__call_hook("onPageShow",e)},hide:function(){this.$vm&&this.$vm.__call_hook("onPageHide")},resize:function(e){this.$vm&&this.$vm.__call_hook("onPageResize",e)}},methods:{__l:Xe,__e:bt}};return u.externalClasses&&(d.externalClasses=u.externalClasses),Array.isArray(u.wxsCallMethods)&&u.wxsCallMethods.forEach((function(e){d.methods[e]=function(t){return this.$vm[e](t)}})),a?[d,u,s]:n?d:[d,s]}(e,{isPage:Ge,initRelation:We},t)}var Lt=["onShow","onHide","onUnload"];function Dt(e){return function(e){var t=Mt(e,!0),n=(0,r.default)(t,2),o=n[0],a=n[1];return at(o.methods,Lt,a),o.methods.onLoad=function(e){this.options=e;var t=Object.assign({},e);delete t.__id__,this.$page={fullPath:"/"+(this.route||this.is)+Tt(t)},this.$vm.$mp.query=e,this.$vm.__call_hook("onLoad",e)},rt(o.methods,e,["onReady"]),o}(e)}function It(e){return Component(Dt(e))}function Nt(e){return Component(Mt(e))}function Rt(e){var t=$t(e),n=getApp({allowDefault:!0});e.$scope=n;var o=n.globalData;if(o&&Object.keys(t.globalData).forEach((function(e){x(o,e)||(o[e]=t.globalData[e])})),Object.keys(t).forEach((function(e){x(n,e)||(n[e]=t[e])})),y(t.onShow)&&wx.onAppShow&&wx.onAppShow((function(){for(var t=arguments.length,n=new Array(t),o=0;oe.length)&&(t=e.length);for(var n=0,o=new Array(t);n=0&&Math.floor(t)===t&&isFinite(e)}function f(e){return a(e)&&"function"===typeof e.then&&"function"===typeof e.catch}function d(e){return null==e?"":Array.isArray(e)||u(e)&&e.toString===s?JSON.stringify(e,null,2):String(e)}function p(e){var t=parseFloat(e);return isNaN(t)?e:t}function h(e,t){for(var n=Object.create(null),o=e.split(","),a=0;a-1)return e.splice(n,1)}}var _=Object.prototype.hasOwnProperty;function g(e,t){return _.call(e,t)}function y(e){var t=Object.create(null);return function(n){var o=t[n];return o||(t[n]=e(n))}}var b=/-(\w)/g,w=y((function(e){return e.replace(b,(function(e,t){return t?t.toUpperCase():""}))})),x=y((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),O=/\B([A-Z])/g,k=y((function(e){return e.replace(O,"-$1").toLowerCase()}));var A=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var o=arguments.length;return o?o>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function $(e,t){t=t||0;var n=e.length-t,o=new Array(n);while(n--)o[n]=e[n+t];return o}function P(e,t){for(var n in t)e[n]=t[n];return e}function j(e){for(var t={},n=0;n0),K=(W&&W.indexOf("android"),W&&/iphone|ipad|ipod|ios/.test(W)||"ios"===G),Z=(W&&/chrome\/\d+/.test(W),W&&/phantomjs/.test(W),W&&W.match(/firefox\/(\d+)/),{}.watch);if(U)try{var Y={};Object.defineProperty(Y,"passive",{get:function(){}}),window.addEventListener("test-passive",null,Y)}catch(Nn){}var Q=function(){return void 0===z&&(z=!U&&!q&&"undefined"!==typeof e&&(e["process"]&&"server"===e["process"].env.VUE_ENV)),z},ee=U&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function te(e){return"function"===typeof e&&/native code/.test(e.toString())}var ne,oe="undefined"!==typeof Symbol&&te(Symbol)&&"undefined"!==typeof Reflect&&te(Reflect.ownKeys);ne="undefined"!==typeof Set&&te(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var ae=S,re=0,ie=function(){this.id=re++,this.subs=[]};function ce(e){ie.SharedObject.targetStack.push(e),ie.SharedObject.target=e,ie.target=e}function se(){ie.SharedObject.targetStack.pop(),ie.SharedObject.target=ie.SharedObject.targetStack[ie.SharedObject.targetStack.length-1],ie.target=ie.SharedObject.target}ie.prototype.addSub=function(e){this.subs.push(e)},ie.prototype.removeSub=function(e){v(this.subs,e)},ie.prototype.depend=function(){ie.SharedObject.target&&ie.SharedObject.target.addDep(this)},ie.prototype.notify=function(){var e=this.subs.slice();for(var t=0,n=e.length;t-1)if(r&&!g(a,"default"))i=!1;else if(""===i||i===k(e)){var s=Ie(String,a.type);(s<0||c0&&(s=e(s,(n||"")+"_"+c),ot(s[0])&&ot(l)&&(f[u]=de(l.text+s[0].text),s.shift()),f.push.apply(f,s)):i(s)?ot(l)?f[u]=de(l.text+s):""!==s&&f.push(de(s)):ot(s)&&ot(l)?f[u]=de(l.text+s.text):(r(t._isVList)&&a(s.tag)&&o(s.key)&&a(n)&&(s.key="__vlist"+n+"_"+c+"__"),f.push(s)));return f}(e):void 0}function ot(e){return a(e)&&a(e.text)&&function(e){return!1===e}(e.isComment)}function at(e){var t=e.$options.provide;t&&(e._provided="function"===typeof t?t.call(e):t)}function rt(e){var t=it(e.$options.inject,e);t&&(_e(!1),Object.keys(t).forEach((function(n){we(e,n,t[n])})),_e(!0))}function it(e,t){if(e){for(var n=Object.create(null),o=oe?Reflect.ownKeys(e):Object.keys(e),a=0;a0,i=e?!!e.$stable:!r,c=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(i&&o&&o!==n&&c===o.$key&&!r&&!o.$hasNormal)return o;for(var s in a={},e)e[s]&&"$"!==s[0]&&(a[s]=lt(t,s,e[s]))}else a={};for(var u in t)u in a||(a[u]=ft(t,u));return e&&Object.isExtensible(e)&&(e._normalized=a),V(a,"$stable",i),V(a,"$key",c),V(a,"$hasNormal",r),a}function lt(e,t,n){var o=function(){var e=arguments.length?n.apply(null,arguments):n({});return e=e&&"object"===typeof e&&!Array.isArray(e)?[e]:nt(e),e&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:o,enumerable:!0,configurable:!0}),o}function ft(e,t){return function(){return e[t]}}function dt(e,t){var n,o,r,i,s;if(Array.isArray(e)||"string"===typeof e)for(n=new Array(e.length),o=0,r=e.length;odocument.createEvent("Event").timeStamp&&(Qt=function(){return en.now()})}function tn(){var e,t;for(Qt(),Zt=!0,Wt.sort((function(e,t){return e.id-t.id})),Yt=0;YtYt&&Wt[n].id>e.id)n--;Wt.splice(n+1,0,e)}else Wt.push(e);Kt||(Kt=!0,Xe(tn))}}(this)},on.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||c(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(Nn){Ne(Nn,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},on.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},on.prototype.depend=function(){var e=this.deps.length;while(e--)this.deps[e].depend()},on.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||v(this.vm._watchers,this);var e=this.deps.length;while(e--)this.deps[e].removeSub(this);this.active=!1}};var an={enumerable:!0,configurable:!0,get:S,set:S};function rn(e,t,n){an.get=function(){return this[t][n]},an.set=function(e){this[t][n]=e},Object.defineProperty(e,n,an)}function cn(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},o=e._props={},a=e.$options._propKeys=[],r=!e.$parent;r||_e(!1);var i=function(r){a.push(r);var i=Me(r,t,n,e);we(o,r,i),r in e||rn(e,"_props",r)};for(var c in t)i(c);_e(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]="function"!==typeof t[n]?S:A(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;t=e._data="function"===typeof t?function(e,t){ce();try{return e.call(t,t)}catch(Nn){return Ne(Nn,t,"data()"),{}}finally{se()}}(t,e):t||{},u(t)||(t={});var n=Object.keys(t),o=e.$options.props,a=(e.$options.methods,n.length);while(a--){var r=n[a];0,o&&g(o,r)||B(r)||rn(e,"_data",r)}be(t,!0)}(e):be(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),o=Q();for(var a in t){var r=t[a],i="function"===typeof r?r:r.get;0,o||(n[a]=new on(e,i||S,S,sn)),a in e||un(e,a,r)}}(e,t.computed),t.watch&&t.watch!==Z&&function(e,t){for(var n in t){var o=t[n];if(Array.isArray(o))for(var a=0;a-1:"string"===typeof e?e.split(",").indexOf(t)>-1:!!function(e){return"[object RegExp]"===s.call(e)}(e)&&e.test(t)}function yn(e,t){var n=e.cache,o=e.keys,a=e._vnode;for(var r in n){var i=n[r];if(i){var c=_n(i.componentOptions);c&&!t(c)&&bn(n,r,o,a)}}}function bn(e,t,n,o){var a=e[t];!a||o&&a.tag===o.tag||a.componentInstance.$destroy(),e[t]=null,v(n,t)}(function(e){e.prototype._init=function(e){var t=this;t._uid=pn++,t._isVue=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),o=t._parentVnode;n.parent=t.parent,n._parentVnode=o;var a=o.componentOptions;n.propsData=a.propsData,n._parentListeners=a.listeners,n._renderChildren=a.children,n._componentTag=a.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=Ee(hn(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){while(n.$options.abstract&&n.$parent)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&zt(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,o=e.$vnode=t._parentVnode,a=o&&o.context;e.$slots=ct(t._renderChildren,a),e.$scopedSlots=n,e._c=function(t,n,o,a){return Lt(e,t,n,o,a,!1)},e.$createElement=function(t,n,o,a){return Lt(e,t,n,o,a,!0)};var r=o&&o.data;we(e,"$attrs",r&&r.attrs||n,null,!0),we(e,"$listeners",t._parentListeners||n,null,!0)}(t),Gt(t,"beforeCreate"),!t._$fallback&&rt(t),cn(t),!t._$fallback&&at(t),!t._$fallback&&Gt(t,"created"),t.$options.el&&t.$mount(t.$options.el)}})(mn),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=xe,e.prototype.$delete=Oe,e.prototype.$watch=function(e,t,n){if(u(t))return dn(this,e,t,n);n=n||{},n.user=!0;var o=new on(this,e,t,n);if(n.immediate)try{t.call(this,o.value)}catch(a){Ne(a,this,'callback for immediate watcher "'+o.expression+'"')}return function(){o.teardown()}}}(mn),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var o=this;if(Array.isArray(e))for(var a=0,r=e.length;a1?$(n):n;for(var o=$(arguments,1),a='event handler for "'+e+'"',r=0,i=n.length;rparseInt(this.max)&&bn(c,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}},On={KeepAlive:xn};(function(e){var t={get:function(){return N}};Object.defineProperty(e,"config",t),e.util={warn:ae,extend:P,mergeOptions:Ee,defineReactive:we},e.set=xe,e.delete=Oe,e.nextTick=Xe,e.observable=function(e){return be(e),e},e.options=Object.create(null),D.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,P(e.options.components,On),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=$(arguments,1);return n.unshift(this),"function"===typeof e.install?e.install.apply(e,n):"function"===typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=Ee(this.options,e),this}}(e),vn(e),function(e){D.forEach((function(t){e[t]=function(e,n){return n?("component"===t&&u(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"===typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}))}(e)})(mn),Object.defineProperty(mn.prototype,"$isServer",{get:Q}),Object.defineProperty(mn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(mn,"FunctionalRenderContext",{value:Pt}),mn.version="2.6.11";var kn="[object Array]",An="[object Object]";function $n(e,t){var n={};return function e(t,n){if(t===n)return;var o=jn(t),a=jn(n);if(o==An&&a==An){if(Object.keys(t).length>=Object.keys(n).length)for(var r in n){var i=t[r];void 0===i?t[r]=null:e(i,n[r])}}else o==kn&&a==kn&&t.length>=n.length&&n.forEach((function(n,o){e(t[o],n)}))}(e,t),function e(t,n,o,a){if(t===n)return;var r=jn(t),i=jn(n);if(r==An)if(i!=An||Object.keys(t).length1&&(t[o[0].trim()]=o[1].trim())}})),t}));var Dn=["createSelectorQuery","createIntersectionObserver","selectAllComponents","selectComponent"];var In=["onLaunch","onShow","onHide","onUniNViewMessage","onPageNotFound","onThemeChange","onError","onUnhandledRejection","onInit","onLoad","onReady","onUnload","onPullDownRefresh","onReachBottom","onTabItemTap","onAddToFavorites","onShareTimeline","onShareAppMessage","onResize","onPageScroll","onNavigationBarButtonTap","onBackPress","onNavigationBarSearchInputChanged","onNavigationBarSearchInputConfirmed","onNavigationBarSearchInputClicked","onPageShow","onPageHide","onPageResize","onUploadDouyinVideo"];mn.prototype.__patch__=function(e,t){var n=this;if(null!==t&&("page"===this.mpType||"component"===this.mpType)){var o=this.$scope,a=Object.create(null);try{a=function(e){var t=Object.create(null),n=[].concat(Object.keys(e._data||{}),Object.keys(e._computedWatchers||{}));n.reduce((function(t,n){return t[n]=e[n],t}),t);var o=e.__composition_api_state__||e.__secret_vfa_state__,a=o&&o.rawBindings;return a&&Object.keys(a).forEach((function(n){t[n]=e[n]})),Object.assign(t,e.$mp.data||{}),Array.isArray(e.$options.behaviors)&&-1!==e.$options.behaviors.indexOf("uni://form-field")&&(t["name"]=e.name,t["value"]=e.value),JSON.parse(JSON.stringify(t,En))}(this)}catch(c){console.error(c)}a.__webviewId__=o.data.__webviewId__;var r=Object.create(null);Object.keys(a).forEach((function(e){r[e]=o.data[e]}));var i=!1===this.$shouldDiffData?a:$n(a,r);Object.keys(i).length?(Object({NODE_ENV:"production",VUE_APP_DARK_MODE:"false",VUE_APP_NAME:"太极",VUE_APP_PLATFORM:"mp-weixin",BASE_URL:"/"}).VUE_APP_DEBUG&&console.log("["+ +new Date+"]["+(o.is||o.route)+"]["+this._uid+"]差量更新",JSON.stringify(i)),this.__next_tick_pending=!0,o.setData(i,(function(){n.__next_tick_pending=!1,Sn(n)}))):Sn(this)}},mn.prototype.$mount=function(e,t){return function(e,t,n){return e.mpType?("app"===e.mpType&&(e.$options.render=Tn),e.$options.render||(e.$options.render=Tn),!e._$fallback&&Gt(e,"beforeMount"),new on(e,(function(){e._update(e._render(),n)}),S,{before:function(){e._isMounted&&!e._isDestroyed&&Gt(e,"beforeUpdate")}},!0),n=!1,e):e}(this,0,t)},function(e){var t=e.extend;e.extend=function(e){e=e||{};var n=e.methods;return n&&Object.keys(n).forEach((function(t){-1!==In.indexOf(t)&&(e[t]=n[t],delete n[t])})),t.call(this,e)};var n=e.config.optionMergeStrategies,o=n.created;In.forEach((function(e){n[e]=o})),e.prototype.__lifecycle_hooks__=In}(mn),function(e){e.config.errorHandler=function(t,n,o){e.util.warn("Error in "+o+': "'+t.toString()+'"',n),console.error(t);var a="function"===typeof getApp&&getApp();a&&a.onError&&a.onError(t)};var t=e.prototype.$emit;e.prototype.$emit=function(e){if(this.$scope&&e){var n=this.$scope["_triggerEvent"]||this.$scope["triggerEvent"];if(n)try{n.call(this.$scope,e,{__args__:$(arguments,1)})}catch(o){}}return t.apply(this,arguments)},e.prototype.$nextTick=function(e){return Cn(this,e)},Dn.forEach((function(t){e.prototype[t]=function(e){return this.$scope&&this.$scope[t]?this.$scope[t](e):"undefined"!==typeof my?"createSelectorQuery"===t?my.createSelectorQuery(e):"createIntersectionObserver"===t?my.createIntersectionObserver(e):void 0:void 0}})),e.prototype.__init_provide=at,e.prototype.__init_injections=rt,e.prototype.__call_hook=function(e,t){var n=this;ce();var o,a=n.$options[e],r=e+" hook";if(a)for(var i=0,c=a.length;i0&&e.showToast({title:t,duration:2e3,icon:n||"none"})},showload:function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t&&t.length>0&&e.showLoading({title:t,mask:n})},goNext:function(t){e.navigateTo({url:t})},goBack:function(t){e.navigateBack({delta:t})},goSwitchTab:function(t){e.switchTab({url:t})},goReLaunch:function(t){e.reLaunch({url:t})},goRedirectTo:function(t){e.redirectTo({url:t})},axios:function(t,n,o,a){var r=this;return a&&e.showLoading({title:a}),new Promise((function(i,c){e.request({url:r.httpOne+n,data:o,method:t,header:{"Content-Type":"application/json;charset=utf-8"},success:function(t){a&&e.hideLoading(),i(t.data)},fail:function(e){c(e)},complete:function(){}})}))},throttle:function(e,t){var n=this;clearTimeout(this.timeout);var o=this.tabs[this.current].id;this.timeout=setTimeout((function(){n.getList(o,n.current)}),450)},axiosFrom:function(t,n,o,a){var r=this,i=e.getStorageSync("token")?e.getStorageSync("token"):"";return a&&e.showLoading({title:a}),new Promise((function(c,s){e.request({url:r.httpOne+n,method:t,data:o,header:{"content-Type":"application/x-www-form-urlencoded",token:i},success:function(t){a&&e.hideLoading(),c(t.data)},fail:function(e){console.log("err",e),s(e)},complete:function(){}})}))},axiosFromToken:function(t,n,o,a){var r=this,i=e.getStorageSync("token")?e.getStorageSync("token"):"";return a&&e.showLoading({title:a}),new Promise((function(c,s){e.request({url:r.httpOne+n,method:t,data:o,header:{"content-Type":"application/x-www-form-urlencoded",token:i},success:function(t){if(a&&e.hideLoading(),401==t.statusCode)return e.showModal({title:"温馨提示",content:"尚未登录或登录已过期,是否前往登录?",success:function(t){e.clearStorageSync(),e.navigateTo({url:"/pages/login/login"})}}),!1;c(t.data)},fail:function(e){s(e)},complete:function(){}})}))},saveImage:function(t){e.showLoading({title:"加载中"}),e.downloadFile({url:t,success:function(t){e.saveImageToPhotosAlbum({filePath:t.tempFilePath,success:function(t){e.showToast({title:"保存成功",icon:"success"}),e.hideLoading()},fail:function(t){e.showToast({title:"保存失败",icon:"error"}),e.hideLoading(),console.log("保存错误",t)}})},fail:function(e){console.log("保存错误",e)}})},lookPhoto:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;e.previewImage({current:n,urls:t,fail:function(e){}})},copyObj:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=null;if("object"==(0,r.default)(e)&&null!==e)for(var n in t=e instanceof Array?[]:{},e)t[n]=this.copyObj(e[n]);else t=e;return t},imageLook:function(t){e.previewImage({urls:t})},formInfo:function(t,n){var o=function(e){for(var t=1;t ".concat(s,", key => ").concat(c)),r=!1;break}}return r},call:function(e){},isSfz:function(t){if(""!==t)return/^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|31)|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}([0-9]|x|X)$/.test(t)||e.showToast({title:"身份证号格式不正确!",icon:"none"}),!1;e.showToast({title:"请输入身份证号",icon:"none"})},isPhone:function(t){return!(!/^(((1[3456789][0-9]{1})|(15[0-9]{1}))+\d{8})$/.test(t)||""===t)||(e.showToast({title:"手机号格式不正确",icon:"none"}),!1)},isEmail:function(e){return-1!=e.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)},data:function(){var e=new Date,t=e.getFullYear(),n=e.getMonth()+1,o=e.getDate(),a=t+"-"+(n<10?"0"+n:n)+"-"+(o<10?"0"+o:o);return a},time:function(){var e=new Date,t=e.getFullYear(),n=e.getMonth()+1,o=e.getDate(),a=t+"-"+(n<10?"0"+n:n)+"-"+(o<10?"0"+o:o)+"-"+e.toTimeString().substr(0,8),r=t+"-"+(n<10?"0"+n:n)+"-"+(o<10?"0"+o:o)+"T"+e.toTimeString().substr(0,8);return console.log(r,"str"),a},timeTotimeStamp:function(e){var t=Date.parse(new Date(e).toString());return t},timeDifference:function(e,t){var n=new Date(e).getTime(),o=new Date(t).getTime(),a=o-n,r=Math.floor(a/864e5),i=Math.floor(a/36e5%24),c=Math.floor(a/6e4%60),s=Math.floor(a/1e3%60),u={day:r,hour:i,minute:c,second:s,timeText:"".concat(r,"天").concat(i,"时").concat(c,"分").concat(s,"秒")};return u},timestampDifference:function(e,t){var n=t-e,o=Math.floor(n/86400),a=Math.floor(n/60/60%24),r=Math.floor(n/60%60),i=Math.floor(n%60),c={day:o,hour:a,minute:r,second:i,timeText:"".concat(o,"天").concat(a,"时").concat(r,"分").concat(i,"秒")};return c},timestampToTime:function(e){e*=1e3;var t=new Date(e),n=t.getFullYear()+"-",o=(t.getMonth()+1<10?"0"+(t.getMonth()+1):t.getMonth()+1)+"-",a=(t.getDate()<10?"0"+t.getDate():t.getDate())+" ";t.getHours(),t.getHours(),t.getMinutes(),t.getMinutes(),t.getSeconds(),t.getSeconds();return n+o+a},getDays:function(){for(var e=new Date,t=e.getTime(),n=[],o=0;o<7;o++){var a={date:"",text:""},r=t+864e5*o,i=new Date(r),c=i.getFullYear(),s=i.getMonth()+1;n=i.getDate();a.text="星期"+"日一二三四五六".charAt(i.getDay()),a.date=c+"-"+s+"-"+n,a.select=0,a.year=c,a.month=s,a.day=n,0==o&&(a.text="今天"),1==o&&(a.text="明天"),2==o&&(a.text="后天"),n.push(a)}return n},isChine:function(e){return!/^([u4E00-u9FA5]|[uFE30-uFFA0])*$/.test(e)},isForNumber:function(e){return e=Number(e),0==e||e>1&&e<1e4?e+"":(e/1e4).toFixed(2)+"万"},tmCheckImage:function(e){return/(gif|jpg|jpeg|png|GIF|JPG|PNG)$/gi.test(e)},tmCheckVideo:function(e){return/(mp4|mp3|flv|wav)$/gi.test(e)},isPassword:function(t){if(""!==t)return!!/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.{8,16}$/.test(t)||(e.showToast({title:"至少6位,包括大小写字母、数字、特殊字符",icon:"none"}),!1);e.showToast({title:"请输入密码",icon:"none"})},copyTextH5App:function(t){if(!t)return!1;t+="",e.setClipboardData({data:t+"",success:function(t){e.showToast({title:"复制成功"})}})}},s=c;t.default=s}).call(this,n("543d")["default"])},8132:function(e,t,n){"use strict";(function(t){var o=n("4ea4"),a=o(n("7037")),r=o(n("9523")),i=o(n("7b1c"));function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}e.exports={data:function(){return{URL:"https://pc.xiaoyuanbianjie.top",noClick:!0}},computed:{app:function(){return getApp().globalData},isVip:function(){return 0!=this.app.userInfo.membership_level}},onShow:function(){},onLoad:function(){},methods:{GetUrlParam:function(e,t){var n=e.split("?");if(n.length>1){for(var o,a=n[1].split("&"),r=0;r0&&t.showToast({title:e,duration:2e3,icon:n||"none"})},formInfo:function(e,n){var o=function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=null;if("object"==(0,a.default)(e)&&null!==e)for(var n in t=e instanceof Array?[]:{},e)t[n]=this.copyObj(e[n]);else t=e;return t},axiosFromToken:function(e,n,o,a){var r=t.getStorageSync("token")?t.getStorageSync("token"):"";return a&&t.showLoading({title:a}),new Promise((function(c,s){t.request({url:i.default.httpOne+n,method:e,data:o,header:{"content-Type":"application/x-www-form-urlencoded",token:r},success:function(e){if(a&&t.hideLoading(),401==e.statusCode)return t.showModal({title:"温馨提示",content:"尚未登录或登录已过期,是否前往登录?",success:function(e){t.clearStorageSync(),t.navigateTo({url:"/pages/login/login"})}}),!1;c(e.data)},fail:function(e){s(e)},complete:function(){}})}))}}}}).call(this,n("543d")["default"])},"852b":function(e){e.exports=JSON.parse('{"uni-popup.cancel":"cancel","uni-popup.ok":"ok","uni-popup.placeholder":"pleace enter","uni-popup.title":"Hint","uni-popup.shareTitle":"Share to"}')},9523:function(e,t,n){var o=n("a395");e.exports=function(e,t,n){return t=o(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.__esModule=!0,e.exports["default"]=e.exports},"970b":function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},e.exports.__esModule=!0,e.exports["default"]=e.exports},"9b42":function(e,t){e.exports=function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,a,r,i,c=[],s=!0,u=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(o=r.call(n)).done)&&(c.push(o.value),c.length!==t);s=!0);}catch(l){u=!0,a=l}finally{try{if(!s&&null!=n["return"]&&(i=n["return"](),Object(i)!==i))return}finally{if(u)throw a}}return c}},e.exports.__esModule=!0,e.exports["default"]=e.exports},a395:function(e,t,n){var o=n("7037")["default"],a=n("e50d");e.exports=function(e){var t=a(e,"string");return"symbol"===o(t)?t:String(t)},e.exports.__esModule=!0,e.exports["default"]=e.exports},af6c:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=[{name:"北京市",city:[{name:"北京市",area:["东城区","西城区","崇文区","宣武区","朝阳区","丰台区","石景山区","海淀区","门头沟区","房山区","通州区","顺义区","昌平区","大兴区","平谷区","怀柔区","密云县","延庆县"]}]},{name:"天津市",city:[{name:"天津市",area:["和平区","河东区","河西区","南开区","河北区","红桥区","塘沽区","汉沽区","大港区","东丽区","西青区","津南区","北辰区","武清区","宝坻区","宁河县","静海县","蓟 县"]}]},{name:"河北省",city:[{name:"石家庄市",area:["长安区","桥东区","桥西区","新华区","郊 区","井陉矿区","井陉县","正定县","栾城县","行唐县","灵寿县","高邑县","深泽县","赞皇县","无极县","平山县","元氏县","赵 县","辛集市","藁","晋州市","新乐市","鹿泉市"]},{name:"唐山市",area:["路南区","路北区","古冶区","开平区","新 区","丰润县","滦 县","滦南县","乐亭县","迁西县","玉田县","唐海县","遵化市","丰南市","迁安市"]},{name:"秦皇岛市",area:["海港区","山海关区","北戴河区","青龙满族自治县","昌黎县","抚宁县","卢龙县"]},{name:"邯郸市",area:["邯山区","丛台区","复兴区","峰峰矿区","邯郸县","临漳县","成安县","大名县","涉 县","磁 县","肥乡县","永年县","邱 县","鸡泽县","广平县","馆陶县","魏 县","曲周县","武安市"]},{name:"邢台市",area:["桥东区","桥西区","邢台县","临城县","内丘县","柏乡县","隆尧县","任 县","南和县","宁晋县","巨鹿县","新河县","广宗县","平乡县","威 县","清河县","临西县","南宫市","沙河市"]},{name:"保定市",area:["新市区","北市区","南市区","满城县","清苑县","涞水县","阜平县","徐水县","定兴县","唐 县","高阳县","容城县","涞源县","望都县","安新县","易 县","曲阳县","蠡 县","顺平县","博野","雄县","涿州市","定州市","安国市","高碑店市"]},{name:"张家口",area:["桥东区","桥西区","宣化区","下花园区","宣化县","张北县","康保县","沽源县","尚义县","蔚 县","阳原县","怀安县","万全县","怀来县","涿鹿县","赤城县","崇礼县"]},{name:"承德市",area:["双桥区","双滦区","鹰手营子矿区","承德县","兴隆县","平泉县","滦平县","隆化县","丰宁满族自治县","宽城满族自治县","围场满族蒙古族自治县"]},{name:"沧州市",area:["新华区","运河区","沧 县","青 县","东光县","海兴县","盐山县","肃宁县","南皮县","吴桥县","献 县","孟村回族自治县","泊头市","任丘市","黄骅市","河间市"]},{name:"廊坊市",area:["安次区","固安县","永清县","香河县","大城县","文安县","大厂回族自治县","霸州市","三河市"]},{name:"衡水市",area:["桃城区","枣强县","武邑县","武强县","饶阳县","安平县","故城县","景 县","阜城县","冀州市","深州市"]}]},{name:"山西省",city:[{name:"太原市",area:["小店区","迎泽区","杏花岭区","尖草坪区","万柏林区","晋源区","清徐县","阳曲县","娄烦县","古交市"]},{name:"大同市",area:["城 区","矿 区","南郊区","新荣区","阳高县","天镇县","广灵县","灵丘县","浑源县","左云县","大同县"]},{name:"阳泉市",area:["城 区","矿 区","郊 区","平定县","盂 县"]},{name:"长治市",area:["城 区","郊 区","长治县","襄垣县","屯留县","平顺县","黎城县","壶关县","长子县","武乡县","沁 县","沁源县","潞城市"]},{name:"晋城市",area:["城 区","沁水县","阳城县","陵川县","泽州县","高平市"]},{name:"朔州市",area:["朔城区","平鲁区","山阴县","应 县","右玉县","怀仁县"]},{name:"忻州市",area:["忻府区","原平市","定襄县","五台县","代 县","繁峙县","宁武县","静乐县","神池县","五寨县","岢岚县","河曲县","保德县","偏关县"]},{name:"吕梁市",area:["离石区","孝义市","汾阳市","文水县","交城县","兴 县","临 县","柳林县","石楼县","岚 县","方山县","中阳县","交口县"]},{name:"晋中市",area:["榆次市","介休市","榆社县","左权县","和顺县","昔阳县","寿阳县","太谷县","祁 县","平遥县","灵石县"]},{name:"临汾市",area:["临汾市","侯马市","霍州市","曲沃县","翼城县","襄汾县","洪洞县","古 县","安泽县","浮山县","吉 县","乡宁县","蒲 县","大宁县","永和县","隰 县","汾西县"]},{name:"运城市",area:["运城市","永济市","河津市","芮城县","临猗县","万荣县","新绛县","稷山县","闻喜县","夏 县","绛 县","平陆县","垣曲县"]}]},{name:"内蒙古",city:[{name:"呼和浩特市",area:["新城区","回民区","玉泉区","郊 区","土默特左旗","托克托县","和林格尔县","清水河县","武川县"]},{name:"包头市",area:["东河区","昆都伦区","青山区","石拐矿区","白云矿区","郊 区","土默特右旗","固阳县","达尔罕茂明安联合旗"]},{name:"乌海市",area:["海勃湾区","海南区","乌达区"]},{name:"赤峰市",area:["红山区","元宝山区","松山区","阿鲁科尔沁旗","巴林左旗","巴林右旗","林西县","克什克腾旗","翁牛特旗","喀喇沁旗","宁城县","敖汉旗"]},{name:"呼伦贝尔市",area:["海拉尔市","满洲里市","扎兰屯市","牙克石市","根河市","额尔古纳市","阿荣旗","莫力达瓦达斡尔族自治旗","鄂伦春自治旗","鄂温克族自治旗","新巴尔虎右旗","新巴尔虎左旗","陈巴尔虎旗"]},{name:"兴安盟",area:["乌兰浩特市","阿尔山市","科尔沁右翼前旗","科尔沁右翼中旗","扎赉特旗","突泉县"]},{name:"通辽市",area:["科尔沁区","霍林郭勒市","科尔沁左翼中旗","科尔沁左翼后旗","开鲁县","库伦旗","奈曼旗","扎鲁特旗"]},{name:"锡林郭勒盟",area:["二连浩特市","锡林浩特市","阿巴嘎旗","苏尼特左旗","苏尼特右旗","东乌珠穆沁旗","西乌珠穆沁旗","太仆寺旗","镶黄旗","正镶白旗","正蓝旗","多伦县"]},{name:"乌兰察布盟",area:["集宁市","丰镇市","卓资县","化德县","商都县","兴和县","凉城县","察哈尔右翼前旗","察哈尔右翼中旗","察哈尔右翼后旗","四子王旗"]},{name:"伊克昭盟",area:["东胜市","达拉特旗","准格尔旗","鄂托克前旗","鄂托克旗","杭锦旗","乌审旗","伊金霍洛旗"]},{name:"巴彦淖尔盟",area:["临河市","五原县","磴口县","乌拉特前旗","乌拉特中旗","乌拉特后旗","杭锦后旗"]},{name:"阿拉善盟",area:["阿拉善左旗","阿拉善右旗","额济纳旗"]}]},{name:"辽宁省",city:[{name:"沈阳市",area:["沈河区","皇姑区","和平区","大东区","铁西区","苏家屯区","东陵区","于洪区","新民市","法库县","辽中县","康平县","新城子区"]},{name:"大连市",area:["西岗区","中山区","沙河口区","甘井子区","旅顺口区","金州区","瓦房店市","普兰店市","庄河市","长海县"]},{name:"鞍山市",area:["铁东区","铁西区","立山区","千山区","海城市","台安县","岫岩满族自治县"]},{name:"抚顺市",area:["顺城区","新抚区","东洲区","望花区","抚顺县","清原满族自治县","新宾满族自治县"]},{name:"本溪市",area:["平山区","明山区","溪湖区","南芬区","本溪满族自治县","桓仁满族自治县"]},{name:"丹东市",area:["振兴区","元宝区","振安区","东港市","凤城市","宽甸满族自治县"]},{name:"锦州市",area:["太和区","古塔区","凌河区","凌海市","黑山县","义县","北宁市"]},{name:"营口市",area:["站前区","西市区","鲅鱼圈区","老边区","大石桥市","盖州市"]},{name:"阜新市",area:["海州区","新邱区","太平区","清河门区","细河区","彰武县","阜新蒙古族自治县"]},{name:"辽阳市",area:["白塔区","文圣区","宏伟区","太子河区","弓长岭区","灯塔市","辽阳县"]},{name:"盘锦",area:["双台子区","兴隆台区","盘山县","大洼县"]},{name:"铁岭市",area:["银州区","清河区","调兵山市","开原市","铁岭县","昌图县","西丰县"]},{name:"朝阳市",area:["双塔区","龙城区","凌源市","北票市","朝阳县","建平县","喀喇沁左翼蒙古族自治县"]},{name:"葫芦岛市",area:["龙港区","南票区","连山区","兴城市","绥中县","建昌县"]}]},{name:"吉林省",city:[{name:"长春市",area:["朝阳区","宽城区","二道区","南关区","绿园区","双阳区","九台市","榆树市","德惠市","农安县"]},{name:"吉林市",area:["船营区","昌邑区","龙潭区","丰满区","舒兰市","桦甸市","蛟河市","磐石市","永吉县"]},{name:"四平",area:["铁西区","铁东区","公主岭市","双辽市","梨树县","伊通满族自治县"]},{name:"辽源市",area:["龙山区","西安区","东辽县","东丰县"]},{name:"通化市",area:["东昌区","二道江区","梅河口市","集安市","通化县","辉南县","柳河县"]},{name:"白山市",area:["八道江区","江源区","临江市","靖宇县","抚松县","长白朝鲜族自治县"]},{name:"松原市",area:["宁江区","乾安县","长岭县","扶余县","前郭尔罗斯蒙古族自治县"]},{name:"白城市",area:["洮北区","大安市","洮南市","镇赉县","通榆县"]},{name:"延边朝鲜族自治州",area:["延吉市","图们市","敦化市","龙井市","珲春市","和龙市","安图县","汪清县"]}]},{name:"黑龙江省",city:[{name:"哈尔滨市",area:["松北区","道里区","南岗区","平房区","香坊区","道外区","呼兰区","阿城区","双城市","尚志市","五常市","宾县","方正县","通河县","巴彦县","延寿县","木兰县","依兰县"]},{name:"齐齐哈尔市",area:["龙沙区","昂昂溪区","铁锋区","建华区","富拉尔基区","碾子山区","梅里斯达斡尔族区","讷河市","富裕县","拜泉县","甘南县","依安县","克山县","泰来县","克东县","龙江县"]},{name:"鹤岗市",area:["兴山区","工农区","南山区","兴安区","向阳区","东山区","萝北县","绥滨县"]},{name:"双鸭山",area:["尖山区","岭东区","四方台区","宝山区","集贤县","宝清县","友谊县","饶河县"]},{name:"鸡西市",area:["鸡冠区","恒山区","城子河区","滴道区","梨树区","麻山区","密山市","虎林市","鸡东县"]},{name:"大庆市",area:["萨尔图区","红岗区","龙凤区","让胡路区","大同区","林甸县","肇州县","肇源县","杜尔伯特蒙古族自治县"]},{name:"伊春市",area:["伊春区","带岭区","南岔区","金山屯区","西林区","美溪区","乌马河区","翠峦区","友好区","上甘岭区","五营区","红星区","新青区","汤旺河区","乌伊岭区","铁力市","嘉荫县"]},{name:"牡丹江市",area:["爱民区","东安区","阳明区","西安区","绥芬河市","宁安市","海林市","穆棱市","林口县","东宁县"]},{name:"佳木斯市",area:["向阳区","前进区","东风区","郊区","同江市","富锦市","桦川县","抚远县","桦南县","汤原县"]},{name:"七台河市",area:["桃山区","新兴区","茄子河区","勃利县"]},{name:"黑河市",area:["爱辉区","北安市","五大连池市","逊克县","嫩江县","孙吴县"]},{name:"绥化市",area:["北林区","安达市","肇东市","海伦市","绥棱县","兰西县","明水县","青冈县","庆安县","望奎县"]},{name:"大兴安岭地区",area:["呼玛县","塔河县","漠河县","大兴安岭辖区"]}]},{name:"上海市",city:[{name:"上海市",area:["黄浦区","卢湾区","徐汇区","长宁区","静安区","普陀区","闸北区","虹口区","杨浦区","宝山区","闵行区","嘉定区","松江区","金山区","青浦区","南汇区","奉贤区","浦东新区","崇明县"]}]},{name:"江苏省",city:[{name:"南京市",area:["玄武区","白下区","秦淮区","建邺区","鼓楼区","下关区","栖霞区","雨花台区","浦口区","江宁区","六合区","溧水县","高淳县"]},{name:"苏州市",area:["金阊区","平江区","沧浪区","虎丘区","吴中区","相城区","常熟市","张家港市","昆山市","吴江市","太仓市"]},{name:"无锡市",area:["崇安区","南长区","北塘区","滨湖区","锡山区","惠山区","江阴市","宜兴市"]},{name:"常州市",area:["钟楼区","天宁区","戚墅堰区","新北区","武进区","金坛市","溧阳市"]},{name:"镇江市",area:["京口区","润州区","丹徒区","丹阳市","扬中市","句容市"]},{name:"南通市",area:["崇川区","港闸区","通州市","如皋市","海门市","启东市","海安县","如东县"]},{name:"泰州市",area:["海陵区","高港区","姜堰市","泰兴市","靖江市","兴化市"]},{name:"扬州市",area:["广陵区","维扬区","邗江区","江都市","仪征市","高邮市","宝应县"]},{name:"盐城市",area:["亭湖区","盐都区","大丰市","东台市","建湖县","射阳县","阜宁县","滨海县","响水县"]},{name:"连云港市",area:["新浦区","海州区","连云区","东海县","灌云县","赣榆县","灌南县"]},{name:"徐州市",area:["云龙区","鼓楼区","九里区","泉山区","贾汪区","邳州市","新沂市","铜山县","睢宁县","沛县","丰县"]},{name:"淮安市",area:["清河区","清浦区","楚州区","淮阴区","涟水县","洪泽县","金湖县","盱眙县"]},{name:"宿迁市",area:["宿城区","宿豫区","沭阳县","泗阳县","泗洪县"]}]},{name:"浙江省",city:[{name:"杭州市",area:["拱墅区","西湖区","上城区","下城区","江干区","滨江区","余杭区","萧山区","建德市","富阳市","临安市","桐庐县","淳安县"]},{name:"宁波市",area:["海曙区","江东区","江北区","镇海区","北仑区","鄞州区","余姚市","慈溪市","奉化市","宁海县","象山县"]},{name:"温州市",area:["鹿城区","龙湾区","瓯海区","瑞安市","乐清市","永嘉县","洞头县","平阳县","苍南县","文成县","泰顺县"]},{name:"嘉兴市",area:["秀城区","秀洲区","海宁市","平湖市","桐乡市","嘉善县","海盐县"]},{name:"湖州市",area:["吴兴区","南浔区","长兴县","德清县","安吉县"]},{name:"绍兴市",area:["越城区","诸暨市","上虞市","嵊州市","绍兴县","新昌县"]},{name:"金华市",area:["婺城区","金东区","兰溪市","义乌市","东阳市","永康市","武义县","浦江县","磐安县"]},{name:"衢州市",area:["柯城区","衢江区","江山市","龙游县","常山县","开化县"]},{name:"舟山市",area:["定海区","普陀区","岱山县","嵊泗县"]},{name:"台州市",area:["椒江区","黄岩区","路桥区","临海市","温岭市","玉环县","天台县","仙居县","三门县"]},{name:"丽水市",area:["莲都区","龙泉市","缙云县","青田县","云和县","遂昌县","松阳县","庆元县","景宁畲族自治县"]}]},{name:"安徽省",city:[{name:"合肥市",area:["庐阳区","瑶海区","蜀山区","包河区","长丰县","肥东县","肥西县"]},{name:"芜湖市",area:["镜湖区","弋江区","鸠江区","三山区","芜湖县","南陵县","繁昌县"]},{name:"蚌埠市",area:["蚌山区","龙子湖区","禹会区","淮上区","怀远县","固镇县","五河县"]},{name:"淮南市",area:["田家庵区","大通区","谢家集区","八公山区","潘集区","凤台县"]},{name:"马鞍山市",area:["雨山区","花山区","金家庄区","当涂县"]},{name:"淮北市",area:["相山区","杜集区","烈山区","濉溪县"]},{name:"铜陵市",area:["铜官山区","狮子山区","郊区","铜陵县"]},{name:"安庆市",area:["迎江区","大观区","宜秀区","桐城市","宿松县","枞阳县","太湖县","怀宁县","岳西县","望江县","潜山县"]},{name:"黄山市",area:["屯溪区","黄山区","徽州区","休宁县","歙县","祁门县","黟县"]},{name:"滁州市",area:["琅琊区","南谯区","天长市","明光市","全椒县","来安县","定远县","凤阳县"]},{name:"阜阳市",area:["颍州区","颍东区","颍泉区","界首市","临泉县","颍上县","阜南县","太和县"]},{name:"宿州市",area:["埇桥区","萧县","泗县","砀山县","灵璧县"]},{name:"巢湖市",area:["居巢区","含山县","无为县","庐江县","和县"]},{name:"六安市",area:["金安区","裕安区","寿县","霍山县","霍邱县","舒城县","金寨县"]},{name:"亳州市",area:["谯城区","利辛县","涡阳县","蒙城县"]},{name:"池州市",area:["贵池区","东至县","石台县","青阳县"]},{name:"宣城市",area:["宣州区","宁国市","广德县","郎溪县","泾县","旌德县","绩溪县"]}]},{name:"福建省",city:[{name:"福州市",area:["鼓楼区","台江区","仓山区","马尾区","晋安区","福清市","长乐市","闽侯县","闽清县","永泰县","连江县","罗源县","平潭县"]},{name:"厦门市",area:["思明区","海沧区","湖里区","集美区","同安区","翔安区"]},{name:"莆田市",area:["城厢区","涵江区","荔城区","秀屿区","仙游县"]},{name:"三明市",area:["梅列区","三元区","永安市","明溪县","将乐县","大田县","宁化县","建宁县","沙县","尤溪县","清流县","泰宁县"]},{name:"泉州市",area:["鲤城区","丰泽区","洛江区","泉港区","石狮市","晋江市","南安市","惠安县","永春县","安溪县","德化县","金门县"]},{name:"漳州市",area:["芗城区","龙文区","龙海市","平和县","南靖县","诏安县","漳浦县","华安县","东山县","长泰县","云霄县"]},{name:"南平市",area:["延平区","建瓯市","邵武市","武夷山市","建阳市","松溪县","光泽县","顺昌县","浦城县","政和县"]},{name:"龙岩市",area:["新罗区","漳平市","长汀县","武平县","上杭县","永定县","连城县"]},{name:"宁德市",area:["蕉城区","福安市","福鼎市","寿宁县","霞浦县","柘荣县","屏南县","古田县","周宁县"]}]},{name:"江西省",city:[{name:"南昌市",area:["东湖区","西湖区","青云谱区","湾里区","青山湖区","新建县","南昌县","进贤县","安义县"]},{name:"景德镇市",area:["珠山区","昌江区","乐平市","浮梁县"]},{name:"萍乡市",area:["安源区","湘东区","莲花县","上栗县","芦溪县"]},{name:"九江市",area:["浔阳区","庐山区","瑞昌市","九江县","星子县","武宁县","彭泽县","永修县","修水县","湖口县","德安县","都昌县"]},{name:"新余市",area:["渝水区","分宜县"]},{name:"鹰潭市",area:["月湖区","贵溪市","余江县"]},{name:"赣州市",area:["章贡区","瑞金市","南康市","石城县","安远县","赣县","宁都县","寻乌县","兴国县","定南县","上犹县","于都县","龙南县","崇义县","信丰县","全南县","大余县","会昌县"]},{name:"吉安市",area:["吉州区","青原区","井冈山市","吉安县","永丰县","永新县","新干县","泰和县","峡江县","遂川县","安福县","吉水县","万安县"]},{name:"宜春市",area:["袁州区","丰城市","樟树市","高安市","铜鼓县","靖安县","宜丰县","奉新县","万载县","上高县"]},{name:"抚州市",area:["临川区","南丰县","乐安县","金溪县","南城县","东乡县","资溪县","宜黄县","广昌县","黎川县","崇仁县"]},{name:"上饶市",area:["信州区","德兴市","上饶县","广丰县","鄱阳县","婺源县","铅山县","余干县","横峰县","弋阳县","玉山县","万年县"]}]},{name:"山东省",city:[{name:"济南市",area:["市中区","历下区","天桥区","槐荫区","历城区","长清区","章丘市","平阴县","济阳县","商河县"]},{name:"青岛市",area:["市南区","市北区","城阳区","四方区","李沧区","黄岛区","崂山区","胶南市","胶州市","平度市","莱西市","即墨市"]},{name:"淄博市",area:["张店区","临淄区","淄川区","博山区","周村区","桓台县","高青县","沂源县"]},{name:"枣庄市",area:["市中区","山亭区","峄城区","台儿庄区","薛城区","滕州市"]},{name:"东营市",area:["东营区","河口区","垦利县","广饶县","利津县"]},{name:"烟台市",area:["芝罘区","福山区","牟平区","莱山区","龙口市","莱阳市","莱州市","招远市","蓬莱市","栖霞市","海阳市","长岛县"]},{name:"潍坊市",area:["潍城区","寒亭区","坊子区","奎文区","青州市","诸城市","寿光市","安丘市","高密市","昌邑市","昌乐县","临朐县"]},{name:"济宁市",area:["市中区","任城区","曲阜市","兖州市","邹城市","鱼台县","金乡县","嘉祥县","微山县","汶上县","泗水县","梁山县"]},{name:"泰安市",area:["泰山区","岱岳区","新泰市","肥城市","宁阳县","东平县"]},{name:"威海市",area:["环翠区","乳山市","文登市","荣成市"]},{name:"日照市",area:["东港区","岚山区","五莲县","莒县"]},{name:"莱芜市",area:["莱城区","钢城区"]},{name:"临沂市",area:["兰山区","罗庄区","河东区","沂南县","郯城县","沂水县","苍山县","费县","平邑县","莒南县","蒙阴县","临沭县"]},{name:"德州市",area:["德城区","乐陵市","禹城市","陵县","宁津县","齐河县","武城县","庆云县","平原县","夏津县","临邑县"]},{name:"聊城市",area:["东昌府区","临清市","高唐县","阳谷县","茌平县","莘县","东阿县","冠县"]},{name:"滨州市",area:["滨城区","邹平县","沾化县","惠民县","博兴县","阳信县","无棣县"]},{name:"菏泽市",area:["牡丹区","鄄城县","单县","郓城县","曹县","定陶县","巨野县","东明县","成武县"]}]},{name:"河南省",city:[{name:"郑州市",area:["中原区","金水区","二七区","管城回族区","上街区","惠济区","巩义市","新郑市","新密市","登封市","荥阳市","中牟县"]},{name:"开封市",area:["鼓楼区","龙亭区","顺河回族区","禹王台区","金明区","开封县","尉氏县","兰考县","杞县","通许县"]},{name:"洛阳市",area:["西工区","老城区","涧西区","瀍河回族区","洛龙区","吉利区","偃师市","孟津县","汝阳县","伊川县","洛宁县","嵩县","宜阳县","新安县","栾川县"]},{name:"平顶山市",area:["新华区","卫东区","湛河区","石龙区","汝州市","舞钢市","宝丰县","叶县","郏县","鲁山县"]},{name:"安阳市",area:["北关区","文峰区","殷都区","龙安区","林州市","安阳县","滑县","内黄县","汤阴县"]},{name:"鹤壁市",area:["淇滨区","山城区","鹤山区","浚县","淇县"]},{name:"新乡市",area:["卫滨区","红旗区","凤泉区","牧野区","卫辉市","辉县市","新乡县","获嘉县","原阳县","长垣县","封丘县","延津县"]},{name:"焦作市",area:["解放区","中站区","马村区","山阳区","沁阳市","孟州市","修武县","温县","武陟县","博爱县"]},{name:"濮阳市",area:["华龙区","濮阳县","南乐县","台前县","清丰县","范县"]},{name:"许昌市",area:["魏都区","禹州市","长葛市","许昌县","鄢陵县","襄城县"]},{name:"漯河市",area:["源汇区","郾城区","召陵区","临颍县","舞阳县"]},{name:"三门峡市",area:["湖滨区","义马市","灵宝市","渑池县","卢氏县","陕县"]},{name:"南阳市",area:["卧龙区","宛城区","邓州市","桐柏县","方城县","淅川县","镇平县","唐河县","南召县","内乡县","新野县","社旗县","西峡县"]},{name:"商丘市",area:["梁园区","睢阳区","永城市","宁陵县","虞城县","民权县","夏邑县","柘城县","睢县"]},{name:"信阳市",area:["浉河区","平桥区","潢川县","淮滨县","息县","新县","商城县","固始县","罗山县","光山县"]},{name:"周口市",area:["川汇区","项城市","商水县","淮阳县","太康县","鹿邑县","西华县","扶沟县","沈丘县","郸城县"]},{name:"驻马店市",area:["驿城区","确山县","新蔡县","上蔡县","西平县","泌阳县","平舆县","汝南县","遂平县","正阳县"]},{name:"焦作市",area:["济源市"]}]},{name:"湖北省",city:[{name:"武汉市",area:["江岸区","武昌区","江汉区","硚口区","汉阳区","青山区","洪山区","东西湖区","汉南区","蔡甸区","江夏区","黄陂区","新洲区"]},{name:"黄石市",area:["黄石港区","西塞山区","下陆区","铁山区","大冶市","阳新县"]},{name:"十堰市",area:["张湾区","茅箭区","丹江口市","郧县","竹山县","房县","郧西县","竹溪县"]},{name:"荆州市",area:["沙市区","荆州区","洪湖市","石首市","松滋市","监利县","公安县","江陵县"]},{name:"宜昌市",area:["西陵区","伍家岗区","点军区","猇亭区","夷陵区","宜都市","当阳市","枝江市","秭归县","远安县","兴山县","五峰土家族自治县","长阳土家族自治县"]},{name:"襄樊市",area:["襄城区","樊城区","襄阳区","老河口市","枣阳市","宜城市","南漳县","谷城县","保康县"]},{name:"鄂州市",area:["鄂城区","华容区","梁子湖区"]},{name:"荆门市",area:["东宝区","掇刀区","钟祥市","京山县","沙洋县"]},{name:"孝感市",area:["孝南区","应城市","安陆市","汉川市","云梦县","大悟县","孝昌县"]},{name:"黄冈市",area:["黄州区","麻城市","武穴市","红安县","罗田县","浠水县","蕲春县","黄梅县","英山县","团风县"]},{name:"咸宁市",area:["咸安区","赤壁市","嘉鱼县","通山县","崇阳县","通城县"]},{name:"随州市",area:["曾都区","广水市"]},{name:"恩施土家族苗族自治州",area:["恩施市","利川市","建始县","来凤县","巴东县","鹤峰县","宣恩县","咸丰县"]},{name:"仙桃市",area:["仙桃"]},{name:"天门市",area:["天门"]},{name:"潜江市",area:["潜江"]},{name:"神农架林区",area:["神农架林区"]}]},{name:"湖南省",city:[{name:"长沙市",area:["岳麓区","芙蓉区","天心区","开福区","雨花区","浏阳市","长沙县","望城县","宁乡县"]},{name:"株洲市",area:["天元区","荷塘区","芦淞区","石峰区","醴陵市","株洲县","炎陵县","茶陵县","攸县"]},{name:"湘潭市",area:["岳塘区","雨湖区","湘乡市","韶山市","湘潭县"]},{name:"衡阳市",area:["雁峰区","珠晖区","石鼓区","蒸湘区","南岳区","耒阳市","常宁市","衡阳县","衡东县","衡山县","衡南县","祁东县"]},{name:"邵阳市",area:["双清区","大祥区","北塔区","武冈市","邵东县","洞口县","新邵县","绥宁县","新宁县","邵阳县","隆回县","城步苗族自治县"]},{name:"岳阳市",area:["岳阳楼区","云溪区","君山区","临湘市","汨罗市","岳阳县","湘阴县","平江县","华容县"]},{name:"常德市",area:["武陵区","鼎城区","津市市","澧县","临澧县","桃源县","汉寿县","安乡县","石门县"]},{name:"张家界市",area:["永定区","武陵源区","慈利县","桑植县"]},{name:"益阳市",area:["赫山区","资阳区","沅江市","桃江县","南县","安化县"]},{name:"郴州市",area:["北湖区","苏仙区","资兴市","宜章县","汝城县","安仁县","嘉禾县","临武县","桂东县","永兴县","桂阳县"]},{name:"永州市",area:["冷水滩区","零陵区","祁阳县","蓝山县","宁远县","新田县","东安县","江永县","道县","双牌县","江华瑶族自治县"]},{name:"怀化市",area:["鹤城区","洪江市","会同县","沅陵县","辰溪县","溆浦县","中方县","新晃侗族自治县","芷江侗族自治县","通道侗族自治县","靖州苗族侗族自治县","麻阳苗族自治县"]},{name:"娄底市",area:["娄星区","冷水江市","涟源市","新化县","双峰县"]},{name:"湘西土家族苗族自治州",area:["吉首市","古丈县","龙山县","永顺县","凤凰县","泸溪县","保靖县","花垣县"]}]},{name:"广东省",city:[{name:"广州市",area:["越秀区","荔湾区","海珠区","天河区","白云区","黄埔区","番禺区","花都区","南沙区","萝岗区","增城市","从化市"]},{name:"深圳市",area:["福田区","罗湖区","南山区","宝安区","龙岗区","盐田区"]},{name:"东莞市",area:["莞城","常平","塘厦","塘厦","塘厦"]},{name:"中山市",area:["中山"]},{name:"潮州市",area:["湘桥区","潮安县","饶平县"]},{name:"揭阳市",area:["榕城区","揭东县","揭西县","惠来县","普宁市"]},{name:"云浮市",area:["云城区","新兴县","郁南县","云安县","罗定市"]},{name:"珠海市",area:["香洲区","斗门区","金湾区"]},{name:"汕头市",area:["金平区","濠江区","龙湖区","潮阳区","潮南区","澄海区","南澳县"]},{name:"韶关市",area:["浈江区","武江区","曲江区","乐昌市","南雄市","始兴县","仁化县","翁源县","新丰县","乳源瑶族自治县"]},{name:"佛山市",area:["禅城区","南海区","顺德区","三水区","高明区"]},{name:"江门市",area:["蓬江区","江海区","新会区","恩平市","台山市","开平市","鹤山市"]},{name:"湛江市",area:["赤坎区","霞山区","坡头区","麻章区","吴川市","廉江市","雷州市","遂溪县","徐闻县"]},{name:"茂名市",area:["茂南区","茂港区","化州市","信宜市","高州市","电白县"]},{name:"肇庆市",area:["端州区","鼎湖区","高要市","四会市","广宁县","怀集县","封开县","德庆县"]},{name:"惠州市",area:["惠城区","惠阳区","博罗县","惠东县","龙门县"]},{name:"梅州市",area:["梅江区","兴宁市","梅县","大埔县","丰顺县","五华县","平远县","蕉岭县"]},{name:"汕尾市",area:["城区","陆丰市","海丰县","陆河县"]},{name:"河源市",area:["源城区","紫金县","龙川县","连平县","和平县","东源县"]},{name:"阳江市",area:["江城区","阳春市","阳西县","阳东县"]},{name:"清远市",area:["清城区","英德市","连州市","佛冈县","阳山县","清新县","连山壮族瑶族自治县","连南瑶族自治县"]}]},{name:"广西",city:[{name:"南宁市",area:["青秀区","兴宁区","西乡塘区","良庆区","江南区","邕宁区","武鸣县","隆安县","马山县","上林县","宾阳县","横县"]},{name:"柳州市",area:["城中区","鱼峰区","柳北区","柳南区","柳江县","柳城县","鹿寨县","融安县","融水苗族自治县","三江侗族自治县"]},{name:"桂林市",area:["象山区","秀峰区","叠彩区","七星区","雁山区","阳朔县","临桂县","灵川县","全州县","平乐县","兴安县","灌阳县","荔浦县","资源县","永福县","龙胜各族自治县","恭城瑶族自治县"]},{name:"梧州市",area:["万秀区","蝶山区","长洲区","岑溪市","苍梧县","藤县","蒙山县"]},{name:"北海市",area:["海城区","银海区","铁山港区","合浦县"]},{name:"防城港市",area:["港口区","防城区","东兴市","上思县"]},{name:"钦州市",area:["钦南区","钦北区","灵山县","浦北县"]},{name:"贵港市",area:["港北区","港南区","覃塘区","桂平市","平南县"]},{name:"玉林市",area:["玉州区","北流市","容县","陆川县","博白县","兴业县"]},{name:"百色市",area:["右江区","凌云县","平果县","西林县","乐业县","德保县","田林县","田阳县","靖西县","田东县","那坡县","隆林各族自治县"]},{name:"贺州市",area:["八步区","钟山县","昭平县","富川瑶族自治县"]},{name:"河池市",area:["金城江区","宜州市","天峨县","凤山县","南丹县","东兰县","都安瑶族自治县","罗城仫佬族自治县","巴马瑶族自治县","环江毛南族自治县","大化瑶族自治县"]},{name:"来宾市",area:["兴宾区","合山市","象州县","武宣县","忻城县","金秀瑶族自治县"]},{name:"崇左市",area:["江州区","凭祥市","宁明县","扶绥县","龙州县","大新县","天等县"]}]},{name:"海南省",city:[{name:"海口市",area:["龙华区","秀英区","琼山区","美兰区"]},{name:"三亚市",area:["三亚市"]},{name:"五指山市",area:["五指山"]},{name:"琼海市",area:["琼海"]},{name:"儋州市",area:["儋州"]},{name:"文昌市",area:["文昌"]},{name:"万宁市",area:["万宁"]},{name:"东方市",area:["东方"]},{name:"澄迈县",area:["澄迈县"]},{name:"定安县",area:["定安县"]},{name:"屯昌县",area:["屯昌县"]},{name:"临高县",area:["临高县"]},{name:"白沙黎族自治县",area:["白沙黎族自治县"]},{name:"昌江黎族自治县",area:["昌江黎族自治县"]},{name:"乐东黎族自治县",area:["乐东黎族自治县"]},{name:"陵水黎族自治县",area:["陵水黎族自治县"]},{name:"保亭黎族苗族自治县",area:["保亭黎族苗族自治县"]},{name:"琼中黎族苗族自治县",area:["琼中黎族苗族自治县"]}]},{name:"重庆市",city:[{name:"重庆市",area:["渝中区","大渡口区","江北区","南岸区","北碚区","渝北区","巴南区","长寿区","双桥区","沙坪坝区","万盛区","万州区","涪陵区","黔江区","永川区","合川区","江津区","九龙坡区","南川区","綦江县","潼南县","荣昌县","璧山县","大足县","铜梁县","梁平县","开县","忠县","城口县","垫江县","武隆县","丰都县","奉节县","云阳县","巫溪县","巫山县","石柱土家族自治县","秀山土家族苗族自治县","酉阳土家族苗族自治县","彭水苗族土家族自治县"]}]},{name:"四川省",city:[{name:"成都市",area:["青羊区","锦江区","金牛区","武侯区","成华区","龙泉驿区","青白江区","新都区","温江区","都江堰市","彭州市","邛崃市","崇州市","金堂县","郫县","新津县","双流县","蒲江县","大邑县"]},{name:"自贡市",area:["大安区","自流井区","贡井区","沿滩区","荣县","富顺县"]},{name:"攀枝花市",area:["仁和区","米易县","盐边县","东区","西区"]},{name:"泸州市",area:["江阳区","纳溪区","龙马潭区","泸县","合江县","叙永县","古蔺县"]},{name:"德阳市",area:["旌阳区","广汉市","什邡市","绵竹市","罗江县","中江县"]},{name:"绵阳市",area:["涪城区","游仙区","江油市","盐亭县","三台县","平武县","安县","梓潼县","北川羌族自治县"]},{name:"广元市",area:["元坝区","朝天区","青川县","旺苍县","剑阁县","苍溪县","市中区"]},{name:"遂宁市",area:["船山区","安居区","射洪县","蓬溪县","大英县"]},{name:"内江市",area:["市中区","东兴区","资中县","隆昌县","威远县"]},{name:"乐山市",area:["市中区","五通桥区","沙湾区","金口河区","峨眉山市","夹江县","井研县","犍为县","沐川县","马边彝族自治县","峨边彝族自治县"]},{name:"南充",area:["顺庆区","高坪区","嘉陵区","阆中市","营山县","蓬安县","仪陇县","南部县","西充县"]},{name:"眉山市",area:["东坡区","仁寿县","彭山县","洪雅县","丹棱县","青神县"]},{name:"宜宾市",area:["翠屏区","宜宾县","兴文县","南溪县","珙县","长宁县","高县","江安县","筠连县","屏山县"]},{name:"广安市",area:["广安区","华蓥市","岳池县","邻水县","武胜县"]},{name:"达州市",area:["通川区","万源市","达县","渠县","宣汉县","开江县","大竹县"]},{name:"雅安市",area:["雨城区","芦山县","石棉县","名山县","天全县","荥经县","宝兴县","汉源县"]},{name:"巴中市",area:["巴州区","南江县","平昌县","通江县"]},{name:"资阳市",area:["雁江区","简阳市","安岳县","乐至县"]},{name:"阿坝藏族羌族自治州",area:["马尔康县","九寨沟县","红原县","汶川县","阿坝县","理县","若尔盖县","小金县","黑水县","金川县","松潘县","壤塘县","茂县"]},{name:"甘孜藏族自治州",area:["康定县","丹巴县","炉霍县","九龙县","甘孜县","雅江县","新龙县","道孚县","白玉县","理塘县","德格县","乡城县","石渠县","稻城县","色达县","巴塘县","泸定县","得荣县"]},{name:"凉山彝族自治州",area:["西昌市","美姑县","昭觉县","金阳县","甘洛县","布拖县","雷波县","普格县","宁南县","喜德县","会东县","越西县","会理县","盐源县","德昌县","冕宁县","木里藏族自治县"]}]},{name:"贵州省",city:[{name:"贵阳市",area:["南明区","云岩区","花溪区","乌当区","白云区","小河区","清镇市","开阳县","修文县","息烽县"]},{name:"六盘水市",area:["钟山区","水城县","盘县","六枝特区"]},{name:"遵义市",area:["红花岗区","汇川区","赤水市","仁怀市","遵义县","绥阳县","桐梓县","习水县","凤冈县","正安县","余庆县","湄潭县","道真仡佬族苗族自治县","务川仡佬族苗族自治县"]},{name:"安顺市",area:["西秀区","普定县","平坝县","镇宁布依族苗族自治县","紫云苗族布依族自治县","关岭布依族苗族自治县"]},{name:"铜仁地区",area:["铜仁市","德江县","江口县","思南县","石阡县","玉屏侗族自治县","松桃苗族自治县","印江土家族苗族自治县","沿河土家族自治县","万山特区"]},{name:"毕节地区",area:["毕节市","黔西县","大方县","织金县","金沙县","赫章县","纳雍县","威宁彝族回族苗族自治县"]},{name:"黔西南布依族苗族自治州",area:["兴义市","望谟县","兴仁县","普安县","册亨县","晴隆县","贞丰县","安龙县"]},{name:"黔东南苗族侗族自治州",area:["凯里市","施秉县","从江县","锦屏县","镇远县","麻江县","台江县","天柱县","黄平县","榕江县","剑河县","三穗县","雷山县","黎平县","岑巩县","丹寨县"]},{name:"黔南布依族苗族自治州",area:["都匀市","福泉市","贵定县","惠水县","罗甸县","瓮安县","荔波县","龙里县","平塘县","长顺县","独山县","三都水族自治县"]}]},{name:"云南省",city:[{name:"昆明市",area:["盘龙区","五华区","官渡区","西山区","东川区","安宁市","呈贡县","晋宁县","富民县","宜良县","嵩明县","石林彝族自治县","禄劝彝族苗族自治县","寻甸回族彝族自治县"]},{name:"曲靖市",area:["麒麟区","宣威市","马龙县","沾益县","富源县","罗平县","师宗县","陆良县","会泽县"]},{name:"玉溪市",area:["红塔区","江川县","澄江县","通海县","华宁县","易门县","峨山彝族自治县","新平彝族傣族自治县","元江哈尼族彝族傣族自治县"]},{name:"保山市",area:["隆阳区","施甸县","腾冲县","龙陵县","昌宁县"]},{name:"昭通市",area:["昭阳区","鲁甸县","巧家县","盐津县","大关县","永善县","绥江县","镇雄县","彝良县","威信县","水富县"]},{name:"丽江市",area:["古城区","永胜县","华坪县","玉龙纳西族自治县","宁蒗彝族自治县"]},{name:"普洱市",area:["思茅区","普洱哈尼族彝族自治县","墨江哈尼族自治县","景东彝族自治县","景谷傣族彝族自治县","镇沅彝族哈尼族拉祜族自治县","江城哈尼族彝族自治县","孟连傣族拉祜族佤族自治县","澜沧拉祜族自治县","西盟佤族自治县"]},{name:"临沧市",area:["临翔区","凤庆县","云县","永德县","镇康县","双江拉祜族佤族布朗族傣族自治县","耿马傣族佤族自治县","沧源佤族自治县"]},{name:"德宏傣族景颇族自治州",area:["潞西市","瑞丽市","梁河县","盈江县","陇川县"]},{name:"怒江傈僳族自治州",area:["泸水县","福贡县","贡山独龙族怒族自治县","兰坪白族普米族自治县"]},{name:"迪庆藏族自治州",area:["香格里拉县","德钦县","维西傈僳族自治县"]},{name:"大理白族自治州",area:["大理市","祥云县","宾川县","弥渡县","永平县","云龙县","洱源县","剑川县","鹤庆县","漾濞彝族自治县","南涧彝族自治县","巍山彝族回族自治县"]},{name:"楚雄彝族自治州",area:["楚雄市","双柏县","牟定县","南华县","姚安县","大姚县","永仁县","元谋县","武定县","禄丰县"]},{name:"红河哈尼族彝族自治州",area:["蒙自县","个旧市","开远市","绿春县","建水县","石屏县","弥勒县","泸西县","元阳县","红河县","金平苗族瑶族傣族自治县","河口瑶族自治县","屏边苗族自治县"]},{name:"文山壮族苗族自治州",area:["文山县","砚山县","西畴县","麻栗坡县","马关县","丘北县","广南县","富宁县"]},{name:"西双版纳傣族自治州",area:["景洪市","勐海县","勐腊县"]}]},{name:"西藏",city:[{name:"拉萨市",area:["城关区","林周县","当雄县","尼木县","曲水县","堆龙德庆县","达孜县","墨竹工卡县"]},{name:"那曲地区",area:["那曲县","嘉黎县","比如县","聂荣县","安多县","申扎县","索县","班戈县","巴青县","尼玛县"]},{name:"昌都地区",area:["昌都县","江达县","贡觉县","类乌齐县","丁青县","察雅县","八宿县","左贡县","芒康县","洛隆县","边坝县"]},{name:"林芝地区",area:["林芝县","工布江达县","米林县","墨脱县","波密县","察隅县","朗县"]},{name:"山南地区",area:["乃东县","扎囊县","贡嘎县","桑日县","琼结县","曲松县","措美县","洛扎县","加查县","隆子县","错那县","浪卡子县"]},{name:"日喀则地区",area:["日喀则市","南木林县","江孜县","定日县","萨迦县","拉孜县","昂仁县","谢通门县","白朗县","仁布县","康马县","定结县","仲巴县","亚东县","吉隆县","聂拉木县","萨嘎县","岗巴县"]},{name:"阿里地区",area:["噶尔县","普兰县","札达县","日土县","革吉县","改则县","措勤县"]}]},{name:"陕西省",city:[{name:"西安市",area:["莲湖区","新城区","碑林区","雁塔区","灞桥区","未央区","阎良区","临潼区","长安区","高陵县","蓝田县","户县","周至县"]},{name:"铜川市",area:["耀州区","王益区","印台区","宜君县"]},{name:"宝鸡市",area:["渭滨区","金台区","陈仓区","岐山县","凤翔县","陇县","太白县","麟游县","扶风县","千阳县","眉县","凤县"]},{name:"咸阳市",area:["秦都区","渭城区","杨陵区","兴平市","礼泉县","泾阳县","永寿县","三原县","彬县","旬邑县","长武县","乾县","武功县","淳化县"]},{name:"渭南市",area:["临渭区","韩城市","华阴市","蒲城县","潼关县","白水县","澄城县","华县","合阳县","富平县","大荔县"]},{name:"延安市",area:["宝塔区","安塞县","洛川县","子长县","黄陵县","延川县","富县","延长县","甘泉县","宜川县","志丹县","黄龙县","吴起县"]},{name:"汉中市",area:["汉台区","留坝县","镇巴县","城固县","南郑县","洋县","宁强县","佛坪县","勉县","西乡县","略阳县"]},{name:"榆林市",area:["榆阳区","清涧县","绥德县","神木县","佳县","府谷县","子洲县","靖边县","横山县","米脂县","吴堡县","定边县"]},{name:"安康市",area:["汉滨区","紫阳县","岚皋县","旬阳县","镇坪县","平利县","石泉县","宁陕县","白河县","汉阴县"]},{name:"商洛市",area:["商州区","镇安县","山阳县","洛南县","商南县","丹凤县","柞水县"]}]},{name:"甘肃省",city:[{name:"兰州市",area:["城关区","七里河区","西固区","安宁区","红古区","永登县","皋兰县","榆中县"]},{name:"嘉峪关市",area:["嘉峪关市"]},{name:"金昌市",area:["金川区","永昌县"]},{name:"白银市",area:["白银区","平川区","靖远县","会宁县","景泰县"]},{name:"天水市",area:["清水县","秦安县","甘谷县","武山县","张家川回族自治县","北道区","秦城区"]},{name:"武威市",area:["凉州区","民勤县","古浪县","天祝藏族自治县"]},{name:"酒泉市",area:["肃州区","玉门市","敦煌市","金塔县","肃北蒙古族自治县","阿克塞哈萨克族自治县","安西县"]},{name:"张掖市",area:["甘州区","民乐县","临泽县","高台县","山丹县","肃南裕固族自治县"]},{name:"庆阳市",area:["西峰区","庆城县","环县","华池县","合水县","正宁县","宁县","镇原县"]},{name:"平凉市",area:["崆峒区","泾川县","灵台县","崇信县","华亭县","庄浪县","静宁县"]},{name:"定西市",area:["安定区","通渭县","临洮县","漳县","岷县","渭源县","陇西县"]},{name:"陇南市",area:["武都区","成县","宕昌县","康县","文县","西和县","礼县","两当县","徽县"]},{name:"临夏回族自治州",area:["临夏市","临夏县","康乐县","永靖县","广河县","和政县","东乡族自治县","积石山保安族东乡族撒拉族自治县"]},{name:"甘南藏族自治州",area:["合作市","临潭县","卓尼县","舟曲县","迭部县","玛曲县","碌曲县","夏河县"]}]},{name:"青海省",city:[{name:"西宁市",area:["城中区","城东区","城西区","城北区","湟源县","湟中县","大通回族土族自治县"]},{name:"海东地区",area:["平安县","乐都县","民和回族土族自治县","互助土族自治县","化隆回族自治县","循化撒拉族自治县"]},{name:"海北藏族自治州",area:["海晏县","祁连县","刚察县","门源回族自治县"]},{name:"海南藏族自治州",area:["共和县","同德县","贵德县","兴海县","贵南县"]},{name:"黄南藏族自治州",area:["同仁县","尖扎县","泽库县","河南蒙古族自治县"]},{name:"果洛藏族自治州",area:["玛沁县","班玛县","甘德县","达日县","久治县","玛多县"]},{name:"玉树藏族自治州",area:["玉树县","杂多县","称多县","治多县","囊谦县","曲麻莱县"]},{name:"海西蒙古族藏族自治州",area:["德令哈市","格尔木市","乌兰县","都兰县","天峻县"]}]},{name:"宁夏",city:[{name:"银川市",area:["兴庆区","西夏区","金凤区","灵武市","永宁县","贺兰县"]},{name:"石嘴山市",area:["大武口区","惠农区","平罗县"]},{name:"吴忠市",area:["利通区","青铜峡市","盐池县","同心县"]},{name:"固原市",area:["原州区","西吉县","隆德县","泾源县","彭阳县"]},{name:"中卫市",area:["沙坡头区","中宁县","海原县"]}]},{name:"新疆",city:[{name:"乌鲁木齐市",area:["天山区","沙依巴克区","新市区","水磨沟区","头屯河区","达坂城区","东山区","乌鲁木齐县"]},{name:"克拉玛依市",area:["克拉玛依区","独山子区","白碱滩区","乌尔禾区"]},{name:"吐鲁番地区",area:["吐鲁番市","托克逊县","鄯善县"]},{name:"哈密地区",area:["哈密市","伊吾县","巴里坤哈萨克自治县"]},{name:"和田地区",area:["和田市","和田县","洛浦县","民丰县","皮山县","策勒县","于田县","墨玉县"]},{name:"阿克苏地区",area:["阿克苏市","温宿县","沙雅县","拜城县","阿瓦提县","库车县","柯坪县","新和县","乌什县"]},{name:"喀什地区",area:["喀什市","巴楚县","泽普县","伽师县","叶城县","岳普湖县","疏勒县","麦盖提县","英吉沙县","莎车县","疏附县","塔什库尔干塔吉克自治县"]},{name:"克孜勒苏柯尔克孜自治州",area:["阿图什市","阿合奇县","乌恰县","阿克陶县"]},{name:"巴音郭楞蒙古自治州",area:["库尔勒市","和静县","尉犁县","和硕县","且末县","博湖县","轮台县","若羌县","焉耆回族自治县"]},{name:"昌吉回族自治州",area:["昌吉市","阜康市","奇台县","玛纳斯县","吉木萨尔县","呼图壁县","木垒哈萨克自治县","米泉市"]},{name:"博尔塔拉蒙古自治州",area:["博乐市","精河县","温泉县"]},{name:"石河子",area:["石河子"]},{name:"阿拉尔",area:["阿拉尔"]},{name:"图木舒克",area:["图木舒克"]},{name:"五家渠",area:["五家渠"]},{name:"伊犁哈萨克自治州",area:["伊宁市","奎屯市","伊宁县","特克斯县","尼勒克县","昭苏县","新源县","霍城县","巩留县","察布查尔锡伯自治县","塔城地区","阿勒泰地区"]}]},{name:"台湾省",city:[{name:"台北市",area:["内湖区","南港区","中正区","万华区","大同区","中山区","松山区","大安区","信义区","文山区","士林区","北投区"]},{name:"新北市",area:["板桥区","汐止区","新店区"]},{name:"桃园市",area:["其他"]},{name:"台中市",area:["其他"]},{name:"台南市",area:["其他"]},{name:"高雄市",area:["其他"]}]},{name:"澳门",city:[{name:"澳门",area:["花地玛堂区","圣安多尼堂区","大堂区","望德堂区","风顺堂区","嘉模堂区","圣方济各堂区","路凼"]}]},{name:"香港",city:[{name:"香港",area:["深水埗区","油尖旺区","九龙城区","黄大仙区","观塘区","北区","大埔区","沙田区","西贡区","元朗区","屯门区","荃湾区","葵青区","离岛区","中西区","湾仔区","东区","南区"]}]}]},b17c:function(e,t,n){var o=n("4a4b"),a=n("6f8f");function r(t,n,i){return a()?(e.exports=r=Reflect.construct.bind(),e.exports.__esModule=!0,e.exports["default"]=e.exports):(e.exports=r=function(e,t,n){var a=[null];a.push.apply(a,t);var r=Function.bind.apply(e,a),i=new r;return n&&o(i,n.prototype),i},e.exports.__esModule=!0,e.exports["default"]=e.exports),r.apply(null,arguments)}e.exports=r,e.exports.__esModule=!0,e.exports["default"]=e.exports},c135:function(e,t){e.exports=function(e){if(Array.isArray(e))return e},e.exports.__esModule=!0,e.exports["default"]=e.exports},c238:function(e){e.exports=JSON.parse('{"uni-popup.cancel":"取消","uni-popup.ok":"确定","uni-popup.placeholder":"请输入","uni-popup.title":"提示","uni-popup.shareTitle":"分享到"}')},c240:function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports["default"]=e.exports},c8ba:function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(o){"object"===typeof window&&(n=window)}e.exports=n},d1f6:function(e,t,n){"use strict";(function(e){var o=n("4ea4");Object.defineProperty(t,"__esModule",{value:!0}),t.createAnimation=function(e,t){if(!t)return;return clearTimeout(t.timer),new u(e,t)};var a=o(n("9523")),r=o(n("970b")),i=o(n("5bc3"));function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.$.$refs["ani"].ref;if(n)return new Promise((function(o,a){nvueAnimation.transition(n,s({styles:e},t),(function(e){o()}))}))}},{key:"_nvueNextAnimate",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,o=arguments.length>2?arguments[2]:void 0,a=e[n];if(a){var r=a.styles,i=a.config;this._animateRun(r,i).then((function(){n+=1,t._nvueNextAnimate(e,n,o)}))}else this.currentStepAnimates={},"function"===typeof o&&o(),this.isEnd=!0}},{key:"step",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.animation.step(e),this}},{key:"run",value:function(e){this.$.animationData=this.animation.export(),this.$.timer=setTimeout((function(){"function"===typeof e&&e()}),this.$.durationTime)}}]),t}(),l=["matrix","matrix3d","rotate","rotate3d","rotateX","rotateY","rotateZ","scale","scale3d","scaleX","scaleY","scaleZ","skew","skewX","skewY","translate","translate3d","translateX","translateY","translateZ"];l.concat(["opacity","backgroundColor"],["width","height","left","right","top","bottom"]).forEach((function(e){u.prototype[e]=function(){var t;return(t=this.animation)[e].apply(t,arguments),this}}))}).call(this,n("543d")["default"])},e50d:function(e,t,n){var o=n("7037")["default"];e.exports=function(e,t){if("object"!==o(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,t||"default");if("object"!==o(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports["default"]=e.exports},efd5:function(e,t,n){"use strict";(function(e){var o=n("4ea4");Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=o(n("7037")),r={};(function(){function t(e){var t,n,o;return e<128?[e]:e<2048?(t=192+(e>>6),n=128+(63&e),[t,n]):(t=224+(e>>12),n=128+(e>>6&63),o=128+(63&e),[t,n,o])}function n(e,n){this.typeNumber=-1,this.errorCorrectLevel=n,this.modules=null,this.moduleCount=0,this.dataCache=null,this.rsBlocks=null,this.totalDataCount=-1,this.data=e,this.utf8bytes=function(e){for(var n=[],o=0;o=7&&this.setupTypeNumber(!0),this.mapData(this.dataCache,e)},setupPositionProbePattern:function(e,t){for(var n=-1;n<=7;n++)if(!(e+n<=-1||this.moduleCount<=e+n))for(var o=-1;o<=7;o++)t+o<=-1||this.moduleCount<=t+o||(this.modules[e+n][t+o]=0<=n&&n<=6&&(0==o||6==o)||0<=o&&o<=6&&(0==n||6==n)||2<=n&&n<=4&&2<=o&&o<=4)},createQrcode:function(){for(var e=0,t=0,n=null,o=0;o<8;o++){this.makeImpl(o);var a=c.getLostPoint(this);(0==o||e>a)&&(e=a,t=o,n=this.modules)}this.modules=n,this.setupTypeInfo(!1,t),this.typeNumber>=7&&this.setupTypeNumber(!1)},setupTimingPattern:function(){for(var e=8;e>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=o,this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=o}},setupTypeInfo:function(e,t){for(var n=o[this.errorCorrectLevel]<<3|t,a=c.getBCHTypeInfo(n),r=0;r<15;r++){var i=!e&&1==(a>>r&1);r<6?this.modules[r][8]=i:r<8?this.modules[r+1][8]=i:this.modules[this.moduleCount-15+r][8]=i;i=!e&&1==(a>>r&1);r<8?this.modules[8][this.moduleCount-r-1]=i:r<9?this.modules[8][15-r-1+1]=i:this.modules[8][15-r-1]=i}this.modules[this.moduleCount-8][8]=!e},createData:function(){var e=new d,t=this.typeNumber>9?16:8;e.put(4,4),e.put(this.utf8bytes.length,t);for(var o=0,a=this.utf8bytes.length;o=8*this.totalDataCount)break;if(e.put(n.PAD0,8),e.length>=8*this.totalDataCount)break;e.put(n.PAD1,8)}return this.createBytes(e)},createBytes:function(e){for(var t=0,n=0,o=0,a=this.rsBlock.length/3,r=new Array,i=0;i=0?b.get(w):0}}var x=new Array(this.totalDataCount),O=0;for(i=0;i0;i-=2){6==i&&i--;while(1){for(var s=0;s<2;s++)if(null==this.modules[o][i-s]){var u=!1;r>>a&1));var l=c.getMask(t,o,i-s);l&&(u=!u),this.modules[o][i-s]=u,a--,-1==a&&(r++,a=7)}if(o+=n,o<0||this.moduleCount<=o){o-=n,n=-n;break}}}}},n.PAD0=236,n.PAD1=17;for(var o=[1,0,3,2],i={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},c={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(e){var t=e<<10;while(c.getBCHDigit(t)-c.getBCHDigit(c.G15)>=0)t^=c.G15<=0)t^=c.G18<>>=1;return t},getPatternPosition:function(e){return c.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case i.PATTERN000:return(t+n)%2==0;case i.PATTERN001:return t%2==0;case i.PATTERN010:return n%3==0;case i.PATTERN011:return(t+n)%3==0;case i.PATTERN100:return(Math.floor(t/2)+Math.floor(n/3))%2==0;case i.PATTERN101:return t*n%2+t*n%3==0;case i.PATTERN110:return(t*n%2+t*n%3)%2==0;case i.PATTERN111:return(t*n%3+(t+n)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new l([1],0),n=0;n3&&e.modules[a][c-1]&&e.modules[a][c-2]&&e.modules[a][c-3]&&e.modules[a][c-4]&&(n+=40)),a=5&&(n+=3+r-5),r=1),s&&o++}for(c=0;c3&&e.modules[a-1][c]&&e.modules[a-2][c]&&e.modules[a-3][c]&&e.modules[a-4][c]&&(n+=40)),i^s?r++:(i=s,r>=5&&(n+=3+r-5),r=1)}var l=Math.abs(100*o/t/t-50)/5;return n+=10*l,n}},s={glog:function(e){if(e<1)throw new Error("glog("+e+")");return s.LOG_TABLE[e]},gexp:function(e){while(e<0)e+=255;while(e>=256)e-=255;return s.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},u=0;u<8;u++)s.EXP_TABLE[u]=1<=n){var r=s.glog(o[0])-s.glog(e.get(0));for(a=0;a9?2:1;if(this.utf8bytes.length+c>>7-e%8&1},put:function(e,t){for(var n=0;n>>t-n-1&1)},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};var p=[];r=function(t){if(this.options={text:"",size:256,correctLevel:3,background:"#ffffff",foreground:"#000000",pdground:"#000000",image:"",imageSize:30,canvasId:t.canvasId,context:t.context,usingComponents:t.usingComponents,showLoading:t.showLoading,loadingText:t.loadingText},"string"===typeof t&&(t={text:t}),t)for(var o in t)this.options[o]=t[o];for(var r=null,i=(o=0,p.length);o1&&e.row<5&&e.col>1&&e.col<5||e.row>e.count-6&&e.row1&&e.col<5||e.row>1&&e.row<5&&e.col>e.count-6&&e.col0&&void 0!==arguments[0]?arguments[0]:"uniPopup",t=this.$parent,n=t.$options.name;while(n!==e){if(t=t.$parent,!t)return!1;n=t.$options.name}return t}}};t.default=o}}]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/lxc-count-style/lxc-count-style.js b/unpackage/dist/build/mp-weixin/components/lxc-count-style/lxc-count-style.js new file mode 100644 index 0000000..3c0fc8c --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/lxc-count-style/lxc-count-style.js @@ -0,0 +1,10 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["components/lxc-count-style/lxc-count-style"],{"05ae":function(t,e,i){"use strict";var s=i("f1e4"),a=i.n(s);a.a},1638:function(t,e,i){"use strict";i.r(e);var s=i("56fa"),a=i("32fe");for(var u in a)["default"].indexOf(u)<0&&function(t){i.d(e,t,(function(){return a[t]}))}(u);i("05ae");var n=i("f0c5"),l=Object(n["a"])(a["default"],s["b"],s["c"],!1,null,null,null,!1,s["a"],void 0);e["default"]=l.exports},"32fe":function(t,e,i){"use strict";i.r(e);var s=i("aa6f"),a=i.n(s);for(var u in s)["default"].indexOf(u)<0&&function(t){i.d(e,t,(function(){return s[t]}))}(u);e["default"]=a.a},"56fa":function(t,e,i){"use strict";i.d(e,"b",(function(){return s})),i.d(e,"c",(function(){return a})),i.d(e,"a",(function(){}));var s=function(){var t=this.$createElement;this._self._c},a=[]},aa6f:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var s={data:function(){return{myValue:0,status:!1,timer:null}},props:{value:{type:Number,default:0},max:{type:Number,default:1e4},min:{type:Number,default:0},index:{type:Number},onIndex:{type:Number,default:0},delayed:{type:Number,default:200},minValue:{type:Number,default:1},isDisable:{type:Boolean,default:!1},plusDisable:{type:Boolean,default:!1}},created:function(){this.myValue=this.value},watch:{value:function(t){this.myValue=t}},methods:{DisableTap:function(){this.$emit("disableTap")},onBlue:function(){+this.myValue>=this.max?(this.myValue=this.max,this.status=!1):+this.myValue<=this.min?(this.myValue=this.min,this.status=!1):(this.status=!0,this.myValue=+this.myValue),isNaN(this.myValue)?this.$emit("handleCount",0,this.index,this.onIndex):this.$emit("handleCount",this.myValue,this.index)},onFocus:function(){this.status=!0},add:function(){this.addPublick()},addPublick:function(){this.myValue>=this.max?(this.status=!1,this.myValue=this.max,clearInterval(this.timer)):(this.status=!0,this.myValue=this.myValue+this.minValue),this.$emit("handleCount",this.myValue,this.index,"add")},longpressAdd:function(){var t=this;this.timer=setInterval((function(){t.addPublick()}),this.delayed)},less:function(){this.lessPublick()},lessPublick:function(){this.myValue<=this.min?(clearInterval(this.timer),this.status=!1,this.myValue=this.min):(this.status=!0,this.myValue=this.myValue-this.minValue),this.$emit("handleCount",this.myValue,this.index,"less")},longpressLess:function(){var t=this;this.timer=setInterval((function(){t.lessPublick()}),this.delayed)},handletouchend:function(){clearInterval(this.timer)}}};e.default=s},f1e4:function(t,e,i){}}]); +;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([ + 'components/lxc-count-style/lxc-count-style-create-component', + { + 'components/lxc-count-style/lxc-count-style-create-component':(function(module, exports, __webpack_require__){ + __webpack_require__('543d')['createComponent'](__webpack_require__("1638")) + }) + }, + [['components/lxc-count-style/lxc-count-style-create-component']] +]); diff --git a/unpackage/dist/build/mp-weixin/components/lxc-count-style/lxc-count-style.json b/unpackage/dist/build/mp-weixin/components/lxc-count-style/lxc-count-style.json new file mode 100644 index 0000000..4575d1b --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/lxc-count-style/lxc-count-style.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "component": true +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/lxc-count-style/lxc-count-style.wxml b/unpackage/dist/build/mp-weixin/components/lxc-count-style/lxc-count-style.wxml new file mode 100644 index 0000000..bb19d72 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/lxc-count-style/lxc-count-style.wxml @@ -0,0 +1 @@ +-+{{myValue}} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/lxc-count-style/lxc-count-style.wxss b/unpackage/dist/build/mp-weixin/components/lxc-count-style/lxc-count-style.wxss new file mode 100644 index 0000000..ff93b5d --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/lxc-count-style/lxc-count-style.wxss @@ -0,0 +1 @@ +.count-box{position:relative;width:140rpx;height:50rpx;border-radius:5px;z-index:1;transition:all .3s}.count-pub{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:38rpx;height:36rpx;line-height:100%;text-align:center;font-size:22rpx;border:1rpx solid #aeaeae}.count-less{left:0}.count-add{right:0}.count-input{width:70rpx;height:100%;position:absolute;top:0;left:50%;-webkit-transform:translate(-50%);transform:translate(-50%);padding:6rpx 0rpx;box-sizing:border-box;color:grey;font-size:31rpx;text-align:center}.gray{color:#809c76;border:2prx solid #809c76!important}.light{color:#809c76;border:2prx solid #809c76!important} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/orderGoods/orderGoods.js b/unpackage/dist/build/mp-weixin/components/orderGoods/orderGoods.js new file mode 100644 index 0000000..eb84a73 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/orderGoods/orderGoods.js @@ -0,0 +1,10 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["components/orderGoods/orderGoods"],{"0a68":function(t,o,e){"use strict";Object.defineProperty(o,"__esModule",{value:!0}),o.default=void 0;var n=getApp().globalData,r={name:"orderGoods",data:function(){return{status:{1:"待付款",2:"待配送",3:"配送中",4:"已完成"}}},methods:{orderTap:function(t){this.$tools.goNext("orderDet?id=".concat(t))},cancelOrder:function(t,o){var e=this;this.$tools.axiosFromToken("POST","order/del_order_goods",{token:n.token,id:t}).then((function(t){1==t.code&&e.$emit("getOrder")}))},commitGoods:function(t){var o=this;this.axiosFromToken("POST","order/determine",{id:t}).then((function(t){1==t.code?(o.$tools.showtt("成功确认收货"),o.$emit("getOrder")):o.$tools.showtt(t.msg)}))}},props:{goods:{type:Array},scrollHeight:{type:Number}}};o.default=r},1768:function(t,o,e){"use strict";e.r(o);var n=e("0a68"),r=e.n(n);for(var i in n)["default"].indexOf(i)<0&&function(t){e.d(o,t,(function(){return n[t]}))}(i);o["default"]=r.a},"29df":function(t,o,e){"use strict";e.d(o,"b",(function(){return n})),e.d(o,"c",(function(){return r})),e.d(o,"a",(function(){}));var n=function(){var t=this.$createElement;this._self._c},r=[]},"48bc":function(t,o,e){},"5a13":function(t,o,e){"use strict";var n=e("48bc"),r=e.n(n);r.a},8928:function(t,o,e){"use strict";e.r(o);var n=e("29df"),r=e("1768");for(var i in r)["default"].indexOf(i)<0&&function(t){e.d(o,t,(function(){return r[t]}))}(i);e("5a13");var a=e("f0c5"),d=Object(a["a"])(r["default"],n["b"],n["c"],!1,null,null,null,!1,n["a"],void 0);o["default"]=d.exports}}]); +;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([ + 'components/orderGoods/orderGoods-create-component', + { + 'components/orderGoods/orderGoods-create-component':(function(module, exports, __webpack_require__){ + __webpack_require__('543d')['createComponent'](__webpack_require__("8928")) + }) + }, + [['components/orderGoods/orderGoods-create-component']] +]); diff --git a/unpackage/dist/build/mp-weixin/components/orderGoods/orderGoods.json b/unpackage/dist/build/mp-weixin/components/orderGoods/orderGoods.json new file mode 100644 index 0000000..4575d1b --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/orderGoods/orderGoods.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "component": true +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/orderGoods/orderGoods.wxml b/unpackage/dist/build/mp-weixin/components/orderGoods/orderGoods.wxml new file mode 100644 index 0000000..c3684db --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/orderGoods/orderGoods.wxml @@ -0,0 +1 @@ +{{item.business.busname}}{{status[item.status]}}{{goods.name}}{{"共"+item.goods.length+"件"}}{{"订单时间:"+item.createtime}}合计{{"¥"+item.price}}取消订单去付款催发货确认收货查看详情 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/orderGoods/orderGoods.wxss b/unpackage/dist/build/mp-weixin/components/orderGoods/orderGoods.wxss new file mode 100644 index 0000000..4a36a27 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/orderGoods/orderGoods.wxss @@ -0,0 +1 @@ +.col_22cfa2{color:#22cfa2} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/shopList/shopList.js b/unpackage/dist/build/mp-weixin/components/shopList/shopList.js new file mode 100644 index 0000000..68ae02b --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/shopList/shopList.js @@ -0,0 +1,10 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["components/shopList/shopList"],{"62b2":function(t,n,o){"use strict";o.r(n);var e=o("7de6"),i=o.n(e);for(var s in e)["default"].indexOf(s)<0&&function(t){o.d(n,t,(function(){return e[t]}))}(s);n["default"]=i.a},"7de6":function(t,n,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var e={name:"shopList",data:function(){return{onIndex:-1}},methods:{goInfoDet:function(t,n){var o=this;this.axiosFromToken("POST","index/hours",{business_id:t},"加载中").then((function(e){1==e.data.do?o.$tools.goNext("/pages/index/pagesOne/mall/mallDet/mallDet?id=".concat(t,"&name=").concat(n,"&type=").concat(o.type)):o.showtt("该店已打烊")}))},goShopDet:function(t){this.onIndex=-1,this.$tools.goNext("/pagesOne/shopDet/shopDet?id=".concat(t))},longtap:function(t){console.log(t,"长按"),this.onIndex=t},cancelLike:function(){console.log("取消收藏"),this.onIndex=-1}},props:{goodslist:{type:Array},title:{type:String},type:{}}};n.default=e},"7f50":function(t,n,o){"use strict";o.d(n,"b",(function(){return e})),o.d(n,"c",(function(){return i})),o.d(n,"a",(function(){}));var e=function(){var t=this,n=t.$createElement,o=(t._self._c,t.goodslist&&t.goodslist[0]?t.__map(t.goodslist,(function(n,o){var e=t.__get_orig(n),i=n.distance.toFixed(2);return{$orig:e,g0:i}})):null);t.$mp.data=Object.assign({},{$root:{l0:o}})},i=[]},"9aeb":function(t,n,o){"use strict";o.r(n);var e=o("7f50"),i=o("62b2");for(var s in i)["default"].indexOf(s)<0&&function(t){o.d(n,t,(function(){return i[t]}))}(s);var a=o("f0c5"),c=Object(a["a"])(i["default"],e["b"],e["c"],!1,null,null,null,!1,e["a"],void 0);n["default"]=c.exports}}]); +;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([ + 'components/shopList/shopList-create-component', + { + 'components/shopList/shopList-create-component':(function(module, exports, __webpack_require__){ + __webpack_require__('543d')['createComponent'](__webpack_require__("9aeb")) + }) + }, + [['components/shopList/shopList-create-component']] +]); diff --git a/unpackage/dist/build/mp-weixin/components/shopList/shopList.json b/unpackage/dist/build/mp-weixin/components/shopList/shopList.json new file mode 100644 index 0000000..4575d1b --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/shopList/shopList.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "component": true +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/shopList/shopList.wxml b/unpackage/dist/build/mp-weixin/components/shopList/shopList.wxml new file mode 100644 index 0000000..4c06b88 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/shopList/shopList.wxml @@ -0,0 +1 @@ +{{item.$orig.busname}}{{item.$orig.introduce}}{{"营业时间: "+item.$orig.hours}}{{item.$orig.city}}{{item.g0+"km"}}暂无相关商家 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/tki-qrcode/tki-qrcode.js b/unpackage/dist/build/mp-weixin/components/tki-qrcode/tki-qrcode.js new file mode 100644 index 0000000..0c59fbe --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/tki-qrcode/tki-qrcode.js @@ -0,0 +1,10 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["components/tki-qrcode/tki-qrcode"],{"0d07":function(t,e,n){"use strict";n.r(e);var i=n("84ca"),o=n.n(i);for(var u in i)["default"].indexOf(u)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(u);e["default"]=o.a},"1eb8":function(t,e,n){"use strict";n.r(e);var i=n("293f"),o=n("0d07");for(var u in o)["default"].indexOf(u)<0&&function(t){n.d(e,t,(function(){return o[t]}))}(u);n("68a9");var a=n("f0c5"),s=Object(a["a"])(o["default"],i["b"],i["c"],!1,null,null,null,!1,i["a"],void 0);e["default"]=s.exports},"293f":function(t,e,n){"use strict";n.d(e,"b",(function(){return i})),n.d(e,"c",(function(){return o})),n.d(e,"a",(function(){}));var i=function(){var t=this.$createElement;this._self._c},o=[]},"4e93":function(t,e,n){},"68a9":function(t,e,n){"use strict";var i=n("4e93"),o=n.n(i);o.a},"84ca":function(t,e,n){"use strict";(function(t){var i=n("4ea4");Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o,u=i(n("7037")),a=i(n("efd5")),s={name:"tki-qrcode",props:{cid:{type:String,default:"tki-qrcode-canvas"},size:{type:Number,default:200},unit:{type:String,default:"upx"},show:{type:Boolean,default:!0},val:{type:String,default:""},background:{type:String,default:"#ffffff"},foreground:{type:String,default:"#000000"},pdground:{type:String,default:"#000000"},icon:{type:String,default:""},iconSize:{type:Number,default:40},lv:{type:Number,default:3},onval:{type:Boolean,default:!1},loadMake:{type:Boolean,default:!1},usingComponents:{type:Boolean,default:!0},showLoading:{type:Boolean,default:!0},loadingText:{type:String,default:"二维码生成中"}},data:function(){return{result:""}},methods:{_makeCode:function(){var e=this;this._empty(this.val)?t.showToast({title:"二维码内容不能为空",icon:"none",duration:2e3}):o=new a.default({context:e,canvasId:e.cid,usingComponents:e.usingComponents,showLoading:e.showLoading,loadingText:e.loadingText,text:e.val,size:e.cpSize,background:e.background,foreground:e.foreground,pdground:e.pdground,correctLevel:e.lv,image:e.icon,imageSize:e.iconSize,cbResult:function(t){e._result(t)}})},_clearCode:function(){this._result(""),o.clear()},_saveCode:function(){""!=this.result&&t.saveImageToPhotosAlbum({filePath:this.result,success:function(){t.showToast({title:"二维码保存成功",icon:"success",duration:2e3})}})},_result:function(t){this.result=t,this.$emit("result",t)},_empty:function(t){var e=(0,u.default)(t),n=!1;return"number"==e&&""==String(t)||"undefined"==e?n=!0:"object"==e?"{}"!=JSON.stringify(t)&&"[]"!=JSON.stringify(t)&&null!=t||(n=!0):"string"==e?""!=t&&"undefined"!=t&&"null"!=t&&"{}"!=t&&"[]"!=t||(n=!0):"function"==e&&(n=!1),n}},watch:{size:function(t,e){var n=this;t==e||this._empty(t)||(this.cSize=t,this._empty(this.val)||setTimeout((function(){n._makeCode()}),100))},val:function(t,e){var n=this;this.onval&&(t==e||this._empty(t)||setTimeout((function(){n._makeCode()}),0))}},computed:{cpSize:function(){return"upx"==this.unit?t.upx2px(this.size):this.size}},mounted:function(){var t=this;this.loadMake&&(this._empty(this.val)||setTimeout((function(){t._makeCode()}),0))}};e.default=s}).call(this,n("543d")["default"])}}]); +;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([ + 'components/tki-qrcode/tki-qrcode-create-component', + { + 'components/tki-qrcode/tki-qrcode-create-component':(function(module, exports, __webpack_require__){ + __webpack_require__('543d')['createComponent'](__webpack_require__("1eb8")) + }) + }, + [['components/tki-qrcode/tki-qrcode-create-component']] +]); diff --git a/unpackage/dist/build/mp-weixin/components/tki-qrcode/tki-qrcode.json b/unpackage/dist/build/mp-weixin/components/tki-qrcode/tki-qrcode.json new file mode 100644 index 0000000..4575d1b --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/tki-qrcode/tki-qrcode.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "component": true +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/tki-qrcode/tki-qrcode.wxml b/unpackage/dist/build/mp-weixin/components/tki-qrcode/tki-qrcode.wxml new file mode 100644 index 0000000..9408878 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/tki-qrcode/tki-qrcode.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/tki-qrcode/tki-qrcode.wxss b/unpackage/dist/build/mp-weixin/components/tki-qrcode/tki-qrcode.wxss new file mode 100644 index 0000000..cbe7764 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/tki-qrcode/tki-qrcode.wxss @@ -0,0 +1 @@ +.tki-qrcode{position:relative}.tki-qrcode-canvas{position:fixed;top:-99999rpx;left:-99999rpx;z-index:-99999} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/uni-status-bar/uni-status-bar.js b/unpackage/dist/build/mp-weixin/components/uni-status-bar/uni-status-bar.js new file mode 100644 index 0000000..bbc0891 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/uni-status-bar/uni-status-bar.js @@ -0,0 +1,10 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["components/uni-status-bar/uni-status-bar"],{"255b":function(t,n,u){"use strict";var a=u("9157"),e=u.n(a);e.a},7639:function(t,n,u){"use strict";u.r(n);var a=u("e8c7"),e=u.n(a);for(var i in a)["default"].indexOf(i)<0&&function(t){u.d(n,t,(function(){return a[t]}))}(i);n["default"]=e.a},"7acd":function(t,n,u){"use strict";u.r(n);var a=u("a571"),e=u("7639");for(var i in e)["default"].indexOf(i)<0&&function(t){u.d(n,t,(function(){return e[t]}))}(i);u("255b");var r=u("f0c5"),c=Object(r["a"])(e["default"],a["b"],a["c"],!1,null,null,null,!1,a["a"],void 0);n["default"]=c.exports},9157:function(t,n,u){},a571:function(t,n,u){"use strict";u.d(n,"b",(function(){return a})),u.d(n,"c",(function(){return e})),u.d(n,"a",(function(){}));var a=function(){var t=this.$createElement;this._self._c},e=[]},e8c7:function(t,n,u){"use strict";(function(t){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var u={name:"UniStatusBar",data:function(){return{statusBarHeight:20}},mounted:function(){this.statusBarHeight=t.getSystemInfoSync().statusBarHeight+"px"}};n.default=u}).call(this,u("543d")["default"])}}]); +;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([ + 'components/uni-status-bar/uni-status-bar-create-component', + { + 'components/uni-status-bar/uni-status-bar-create-component':(function(module, exports, __webpack_require__){ + __webpack_require__('543d')['createComponent'](__webpack_require__("7acd")) + }) + }, + [['components/uni-status-bar/uni-status-bar-create-component']] +]); diff --git a/unpackage/dist/build/mp-weixin/components/uni-status-bar/uni-status-bar.json b/unpackage/dist/build/mp-weixin/components/uni-status-bar/uni-status-bar.json new file mode 100644 index 0000000..4575d1b --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/uni-status-bar/uni-status-bar.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "component": true +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/uni-status-bar/uni-status-bar.wxml b/unpackage/dist/build/mp-weixin/components/uni-status-bar/uni-status-bar.wxml new file mode 100644 index 0000000..ea6243e --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/uni-status-bar/uni-status-bar.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/uni-status-bar/uni-status-bar.wxss b/unpackage/dist/build/mp-weixin/components/uni-status-bar/uni-status-bar.wxss new file mode 100644 index 0000000..4d6dd52 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/uni-status-bar/uni-status-bar.wxss @@ -0,0 +1 @@ +.uni-status-bar{height:20px} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/v-tabs/v-tabs.js b/unpackage/dist/build/mp-weixin/components/v-tabs/v-tabs.js new file mode 100644 index 0000000..2b715dd --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/v-tabs/v-tabs.js @@ -0,0 +1,10 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["components/v-tabs/v-tabs"],{"12c4":function(t,e,n){"use strict";n.d(e,"b",(function(){return i})),n.d(e,"c",(function(){return r})),n.d(e,"a",(function(){}));var i=function(){var t=this.$createElement;this._self._c},r=[]},"17b0":function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n={props:{value:{},tabs:{type:Array,default:function(){return[]}},bgColor:{type:String,default:"#fff"},padding:{type:String,default:"0"},color:{type:String,default:"#333"},activeColor:{type:String,default:"#2979ff"},fontSize:{type:String,default:"28rpx"},activeFontSize:{type:String,default:"36rpx"},bold:{type:Boolean,default:!0},scroll:{type:Boolean,default:!0},height:{type:String,default:"70rpx"},lineColor:{type:String,default:"#2979ff"},lineHeight:{type:String,default:"10rpx"},lineScale:{type:Number,default:.5},lineRadius:{type:String,default:"10rpx"},pills:{type:Boolean,deafult:!1},pillsColor:{type:String,default:"#2979ff"},pillsBorderRadius:{type:String,default:"10rpx"},field:{type:String,default:""}},data:function(){return{elId:"",lineWidth:30,currentWidth:0,lineLeft:0,pillsLeft:0,scrollLeft:0,containerWidth:0,current:0}},watch:{value:function(t){var e=this;this.current=t,this.$nextTick((function(){e.getTabItemWidth()}))},current:function(t){this.$emit("input",t)},tabs:function(t){var e=this;this.$nextTick((function(){e.getTabItemWidth()}))}},methods:{randomString:function(t){t=t||32;for(var e="ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678",n=e.length,i="",r=0;r{{''+(field?v[field]:v)+''}} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/v-tabs/v-tabs.wxss b/unpackage/dist/build/mp-weixin/components/v-tabs/v-tabs.wxss new file mode 100644 index 0000000..fbb8a1c --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/v-tabs/v-tabs.wxss @@ -0,0 +1 @@ +.v-tabs.data-v-572e0eda{width:100%;box-sizing:border-box;overflow:hidden}.v-tabs__container.data-v-572e0eda{position:relative;display:inline-flex;align-items:center;white-space:nowrap;overflow:hidden}.v-tabs__container-item.data-v-572e0eda{display:flex;align-items:center;height:100%;position:relative;z-index:10;flex:1;padding:0 11px;transition:all .3s;white-space:nowrap}.v-tabs__container-line.data-v-572e0eda{position:absolute;bottom:0;transition:all .3s linear}.v-tabs__container-pills.data-v-572e0eda{position:absolute;top:0;transition:all .3s linear;z-index:9}.data-v-572e0eda ::-webkit-scrollbar{display:none} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/wangding-pickerAddress/wangding-pickerAddress.js b/unpackage/dist/build/mp-weixin/components/wangding-pickerAddress/wangding-pickerAddress.js new file mode 100644 index 0000000..0e9b7f3 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/wangding-pickerAddress/wangding-pickerAddress.js @@ -0,0 +1,10 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["components/wangding-pickerAddress/wangding-pickerAddress"],{"043f":function(e,t,a){"use strict";a.r(t);var n=a("9188"),i=a("b382");for(var r in i)["default"].indexOf(r)<0&&function(e){a.d(t,e,(function(){return i[e]}))}(r);var u=a("f0c5"),c=Object(u["a"])(i["default"],n["b"],n["c"],!1,null,null,null,!1,n["a"],void 0);t["default"]=c.exports},9175:function(e,t,a){"use strict";var n=a("4ea4");Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(a("af6c")),r=["","",""],u={name:"wangding-pickerAddress",data:function(){return{value:[0,0,0],array:[],index:0}},created:function(){this.initSelect()},methods:{initSelect:function(){this.updateSourceDate().updateAddressDate().$forceUpdate()},columnchange:function(e){this.updateSelectIndex(e.detail.column,e.detail.value).updateSourceDate().updateAddressDate().$forceUpdate()},updateSourceDate:function(){return this.array=[],this.array[0]=i.default.map((function(e){return{name:e.name}})),this.array[1]=i.default[this.value[0]].city.map((function(e){return{name:e.name}})),this.array[2]=i.default[this.value[0]].city[this.value[1]].area.map((function(e){return{name:e}})),this},updateSelectIndex:function(e,t){var a=JSON.parse(JSON.stringify(this.value));return a[e]=t,0===e&&(a[1]=0,a[2]=0),1===e&&(a[2]=0),this.value=a,this},updateAddressDate:function(){return r[0]=this.array[0][this.value[0]].name,r[1]=this.array[1][this.value[1]].name,r[2]=this.array[2][this.value[2]].name,this},bindPickerChange:function(e){return this.$emit("change",{index:this.value,data:r}),this}}};t.default=u},9188:function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"c",(function(){return i})),a.d(t,"a",(function(){}));var n=function(){var e=this.$createElement;this._self._c},i=[]},b382:function(e,t,a){"use strict";a.r(t);var n=a("9175"),i=a.n(n);for(var r in n)["default"].indexOf(r)<0&&function(e){a.d(t,e,(function(){return n[e]}))}(r);t["default"]=i.a}}]); +;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([ + 'components/wangding-pickerAddress/wangding-pickerAddress-create-component', + { + 'components/wangding-pickerAddress/wangding-pickerAddress-create-component':(function(module, exports, __webpack_require__){ + __webpack_require__('543d')['createComponent'](__webpack_require__("043f")) + }) + }, + [['components/wangding-pickerAddress/wangding-pickerAddress-create-component']] +]); diff --git a/unpackage/dist/build/mp-weixin/components/wangding-pickerAddress/wangding-pickerAddress.json b/unpackage/dist/build/mp-weixin/components/wangding-pickerAddress/wangding-pickerAddress.json new file mode 100644 index 0000000..4575d1b --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/wangding-pickerAddress/wangding-pickerAddress.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "component": true +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/components/wangding-pickerAddress/wangding-pickerAddress.wxml b/unpackage/dist/build/mp-weixin/components/wangding-pickerAddress/wangding-pickerAddress.wxml new file mode 100644 index 0000000..18e730d --- /dev/null +++ b/unpackage/dist/build/mp-weixin/components/wangding-pickerAddress/wangding-pickerAddress.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/index.js b/unpackage/dist/build/mp-weixin/pages/index/index.js new file mode 100644 index 0000000..f6e236f --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/index.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/index/index"],{"0f29":function(n,t,e){"use strict";(function(n){var t=e("4ea4");e("0178");t(e("66fd"));var i=t(e("f73f"));wx.__webpack_require_UNI_MP_PLUGIN__=e,n(i.default)}).call(this,e("543d")["createPage"])},"4c2a":function(n,t,e){"use strict";var i=e("b8dc"),a=e.n(i);a.a},a287:function(n,t,e){"use strict";e.r(t);var i=e("bb26"),a=e.n(i);for(var s in i)["default"].indexOf(s)<0&&function(n){e.d(t,n,(function(){return i[n]}))}(s);t["default"]=a.a},b8dc:function(n,t,e){},bb26:function(n,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i={data:function(){return{list1:[{path:"/pages/index/pagesOne/mall/mall?type=1",src:"/static/sangcheng.png",title:"商城"},{path:"/pages/index/pagesOne/zhiNan/zhiNan",src:"/static/zhinan.png",title:"指南"},{path:"/pages/index/pagesOne/mall/mall?type=2",src:"/static/fuwu.png",title:"服务"},{path:"/pages/qushi/qushi",src:"/static/quanzi.png",title:"圈子"}],shoplist:[],banner:[]}},onLoad:function(){var n=this;this.getBanner(),getApp().getAddress().then((function(t){n.getShoplist()}))},methods:{goPath:function(n){"/pages/qushi/qushi"!=n?this.goNext(n):this.$tools.goSwitchTab(n)},getShoplist:function(){var n=this;this.axiosFromToken("POST","index/business",{switch:1,lng:this.app.location.longitude,lat:this.app.location.latitude},"加载中").then((function(t){var e;n.shoplist=null!==(e=t.data)&&void 0!==e?e:[]}))},getBanner:function(){var n=this;this.axiosFromToken("POST","index/banner",{},"加载中").then((function(t){n.banner=t.data}))}}};t.default=i},edc3:function(n,t,e){"use strict";e.d(t,"b",(function(){return a})),e.d(t,"c",(function(){return s})),e.d(t,"a",(function(){return i}));var i={uniStatusBar:function(){return e.e("components/uni-status-bar/uni-status-bar").then(e.bind(null,"7acd"))},uniIcons:function(){return Promise.all([e.e("common/vendor"),e.e("uni_modules/uni-icons/components/uni-icons/uni-icons")]).then(e.bind(null,"aed4"))},shopList:function(){return e.e("components/shopList/shopList").then(e.bind(null,"9aeb"))}},a=function(){var n=this.$createElement;this._self._c},s=[]},f73f:function(n,t,e){"use strict";e.r(t);var i=e("edc3"),a=e("a287");for(var s in a)["default"].indexOf(s)<0&&function(n){e.d(t,n,(function(){return a[n]}))}(s);e("4c2a");var o=e("f0c5"),u=Object(o["a"])(a["default"],i["b"],i["c"],!1,null,null,null,!1,i["a"],void 0);t["default"]=u.exports}},[["0f29","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/index.json b/unpackage/dist/build/mp-weixin/pages/index/index.json new file mode 100644 index 0000000..7bd7730 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/index.json @@ -0,0 +1,8 @@ +{ + "navigationStyle": "custom", + "usingComponents": { + "uni-status-bar": "/components/uni-status-bar/uni-status-bar", + "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons", + "shop-list": "/components/shopList/shopList" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/index.wxml b/unpackage/dist/build/mp-weixin/pages/index/index.wxml new file mode 100644 index 0000000..f475dc1 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/index.wxml @@ -0,0 +1 @@ +{{app.location.Address||'未知'}}搜索{{item.title}}——————推荐商家—————— \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/index.wxss b/unpackage/dist/build/mp-weixin/pages/index/index.wxss new file mode 100644 index 0000000..4a60d98 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/index.wxss @@ -0,0 +1 @@ +page{background:#f7f6fa} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/cateMall/cateMall.js b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/cateMall/cateMall.js new file mode 100644 index 0000000..97b38f9 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/cateMall/cateMall.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/index/pagesOne/mall/cateMall/cateMall"],{"22f6":function(t,n,e){"use strict";e.r(n);var i=e("5a74"),a=e("a195");for(var s in a)["default"].indexOf(s)<0&&function(t){e.d(n,t,(function(){return a[t]}))}(s);e("3070");var u=e("f0c5"),o=Object(u["a"])(a["default"],i["b"],i["c"],!1,null,null,null,!1,i["a"],void 0);n["default"]=o.exports},3070:function(t,n,e){"use strict";var i=e("9fef"),a=e.n(i);a.a},"5a74":function(t,n,e){"use strict";e.d(n,"b",(function(){return a})),e.d(n,"c",(function(){return s})),e.d(n,"a",(function(){return i}));var i={uniNavBar:function(){return e.e("uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar").then(e.bind(null,"9df8"))},shopList:function(){return e.e("components/shopList/shopList").then(e.bind(null,"9aeb"))}},a=function(){var t=this.$createElement;this._self._c},s=[]},"5b18":function(t,n,e){"use strict";(function(t){var n=e("4ea4");e("0178");n(e("66fd"));var i=n(e("22f6"));wx.__webpack_require_UNI_MP_PLUGIN__=e,t(i.default)}).call(this,e("543d")["createPage"])},"9fef":function(t,n,e){},a195:function(t,n,e){"use strict";e.r(n);var i=e("e795"),a=e.n(i);for(var s in i)["default"].indexOf(s)<0&&function(t){e.d(n,t,(function(){return i[t]}))}(s);n["default"]=a.a},e795:function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;n.default={data:function(){return{list1:[{path:"/pages/index/pagesOne/mall/mall",src:"/static/sangcheng.png",title:"商城"},{path:"",src:"/static/zhinan.png",title:"指南"},{path:"",src:"/static/fuwu.png",title:"服务"},{path:"",src:"/static/quanzi.png",title:"圈子"}],shoplist:[],cateId:"",keyword:"",type:1}},onLoad:function(t){this.cateId=t.cateId,this.type=t.type,this.getShoplist()},methods:{search:function(){if(!this.keyword)return this.showtt("请输入有效关键词");this.getShoplist()},getShoplist:function(){var t=this;this.axiosFromToken("POST","index/business",{type:this.type,lng:this.app.location.longitude,lat:this.app.location.latitude,businesstype_id:this.cateId,keyword:this.keyword},"加载中").then((function(n){var e;t.shoplist=null!==(e=n.data)&&void 0!==e?e:[]}))}}}}},[["5b18","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/cateMall/cateMall.json b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/cateMall/cateMall.json new file mode 100644 index 0000000..a86aa87 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/cateMall/cateMall.json @@ -0,0 +1,9 @@ +{ + "navigationBarTitleText": "店铺列表", + "navigationStyle": "custom", + "enablePullDownRefresh": false, + "usingComponents": { + "uni-nav-bar": "/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar", + "shop-list": "/components/shopList/shopList" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/cateMall/cateMall.wxml b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/cateMall/cateMall.wxml new file mode 100644 index 0000000..a840a45 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/cateMall/cateMall.wxml @@ -0,0 +1 @@ +搜索 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/cateMall/cateMall.wxss b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/cateMall/cateMall.wxss new file mode 100644 index 0000000..4a60d98 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/cateMall/cateMall.wxss @@ -0,0 +1 @@ +page{background:#f7f6fa} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mall.js b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mall.js new file mode 100644 index 0000000..445d809 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mall.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/index/pagesOne/mall/mall"],{"0dfe":function(t,n,e){"use strict";(function(t){var n=e("4ea4");e("0178");n(e("66fd"));var i=n(e("3fd0"));wx.__webpack_require_UNI_MP_PLUGIN__=e,t(i.default)}).call(this,e("543d")["createPage"])},"3fd0":function(t,n,e){"use strict";e.r(n);var i=e("af0d"),o=e("ee34");for(var a in o)["default"].indexOf(a)<0&&function(t){e.d(n,t,(function(){return o[t]}))}(a);e("8c6b");var s=e("f0c5"),u=Object(s["a"])(o["default"],i["b"],i["c"],!1,null,null,null,!1,i["a"],void 0);n["default"]=u.exports},"75a8":function(t,n,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i={data:function(){return{shoplist:[],shopCate:[],type:1,keyword:"",title:"商城"}},onLoad:function(t){var n=this;this.type=t.type,2==this.type&&(this.title="服务"),this.getShopCate(),getApp().getAddress().then((function(t){n.getShoplist()}))},methods:{getShopCate:function(){var t=this;this.axiosFromToken("POST","index/businesstype",{type:this.type},"加载中").then((function(n){t.shopCate=n.data}))},search:function(){if(!this.keyword)return this.showtt("请输入有效关键词");this.getShoplist()},getShoplist:function(){var t=this;this.axiosFromToken("POST","index/business",{type:this.type,lng:this.app.location.longitude,lat:this.app.location.latitude,keyword:this.keyword},"加载中").then((function(n){var e;t.shoplist=null!==(e=n.data)&&void 0!==e?e:[]}))}}};n.default=i},"8c6b":function(t,n,e){"use strict";var i=e("d366"),o=e.n(i);o.a},af0d:function(t,n,e){"use strict";e.d(n,"b",(function(){return o})),e.d(n,"c",(function(){return a})),e.d(n,"a",(function(){return i}));var i={uniNavBar:function(){return e.e("uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar").then(e.bind(null,"9df8"))},shopList:function(){return e.e("components/shopList/shopList").then(e.bind(null,"9aeb"))}},o=function(){var t=this.$createElement;this._self._c},a=[]},d366:function(t,n,e){},ee34:function(t,n,e){"use strict";e.r(n);var i=e("75a8"),o=e.n(i);for(var a in i)["default"].indexOf(a)<0&&function(t){e.d(n,t,(function(){return i[t]}))}(a);n["default"]=o.a}},[["0dfe","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mall.json b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mall.json new file mode 100644 index 0000000..1743c8a --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mall.json @@ -0,0 +1,9 @@ +{ + "navigationBarTitleText": "商城", + "navigationStyle": "custom", + "enablePullDownRefresh": false, + "usingComponents": { + "uni-nav-bar": "/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar", + "shop-list": "/components/shopList/shopList" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mall.wxml b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mall.wxml new file mode 100644 index 0000000..6de9225 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mall.wxml @@ -0,0 +1 @@ +搜索{{item.name}} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mall.wxss b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mall.wxss new file mode 100644 index 0000000..4a60d98 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mall.wxss @@ -0,0 +1 @@ +page{background:#f7f6fa} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/confirmOrder.js b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/confirmOrder.js new file mode 100644 index 0000000..441da3f --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/confirmOrder.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/index/pagesOne/mall/mallDet/confirmOrder"],{"298e":function(t,e,n){},"64e3":function(t,e,n){"use strict";n.r(e);var s=n("b1a3"),i=n("b783");for(var o in i)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(o);n("996c");var r=n("f0c5"),a=Object(r["a"])(i["default"],s["b"],s["c"],!1,null,null,null,!1,s["a"],void 0);e["default"]=a.exports},8327:function(t,e,n){"use strict";(function(t){var e=n("4ea4");n("0178");e(n("66fd"));var s=e(n("64e3"));wx.__webpack_require_UNI_MP_PLUGIN__=n,t(s.default)}).call(this,n("543d")["createPage"])},"996c":function(t,e,n){"use strict";var s=n("298e"),i=n.n(s);i.a},b1a3:function(t,e,n){"use strict";n.d(e,"b",(function(){return i})),n.d(e,"c",(function(){return o})),n.d(e,"a",(function(){return s}));var s={uniIcons:function(){return Promise.all([n.e("common/vendor"),n.e("uni_modules/uni-icons/components/uni-icons/uni-icons")]).then(n.bind(null,"aed4"))},uniPopup:function(){return n.e("uni_modules/uni-popup/components/uni-popup/uni-popup").then(n.bind(null,"118f"))}},i=function(){var t=this.$createElement;this._self._c},o=[]},b783:function(t,e,n){"use strict";n.r(e);var s=n("c459"),i=n.n(s);for(var o in s)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return s[t]}))}(o);e["default"]=i.a},c459:function(t,e,n){"use strict";(function(t){var s=n("4ea4");Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=s(n("9523"));function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,s)}return n}function a(t){for(var e=1;e30?this.hoursList.push("".concat(n,":30-").concat(n+1,":00")):this.hoursList.push("".concat(n,":00-").concat(n,":30"));for(var s=1;s<=4;s++)this.hoursList.push("".concat(n+s,":00-").concat(n+s,":30")),this.hoursList.push("".concat(n+s,":30-").concat(n+1+s,":00"))},openTime:function(){-1==this.onHour&&(this.onHour=0),this.$refs.time.open()},closeTime:function(t){this.onHour=t,this.$refs.time.close()},getCartList:function(){var t=this;this.axiosFromToken("POST","user/sel_businesscar",{business_id:this.shopId},"加载中").then((function(e){t.cartList=e.data,t.parmas.carinfo=e.data.map((function(t){return{business_id:t.business_id,businesscar_id:t.id}}))}))},getMallDet:function(){var t=this;this.axiosFromToken("POST","index/sel_business",{id:this.shopId},"加载中").then((function(e){t.mallDet=e.data}))},onCommit:function(){var t=this;if(!this.address||!this.address.id)return this.showtt("请填写收货地址");if(this.parmas.address_id=this.address.id,this.saveImg&&this.saveImg[0]&&(this.parmas.images=this.saveImg.join(",")),2==this.parmas.type){if(-1==this.onHour)return this.showtt("请选择预约时间");this.parmas.ment=this.hoursList[i]}this.parmas.carinfo[0].coupon_id=this.onCoupon.id||"";var e=a({},this.parmas);e.carinfo=JSON.stringify(e.carinfo),this.axiosFromToken("POST","order/order_goods",e,"正在提交订单").then((function(e){t.getPayParmas(e.data.orderno||e.data)}))},getPayParmas:function(e){this.$tools.axiosFromToken("POST","pay/pay",{orderno:e},"加载中").then((function(e){getApp().payFn("wxpay",e.data).then((function(e){t.showToast({title:"支付成功!"}),setTimeout((function(){t.navigateBack({delta:1})}),1e3)}))}))},addressTap:function(){this.$tools.goNext("/pages/me/pagesOne/address/addressEdit/addressEdit?type=1")},getAddress:function(){var t=this;this.axiosFromToken("POST","user/sel_address",{},"加载中").then((function(e){e.data&&(t.address=e.data.find((function(t){return 1==t.default})))}))},detImg:function(t){this.remarksImg.splice(t,1),this.saveImg.splice(t,1)},lookImage:function(){var e=this;t.chooseImage({sizeType:["compressed"],sourceType:["album","camera"],count:1,success:function(t){t.tempFilePaths.forEach((function(t,n){e.upload(t)}))}})},upload:function(e){var n=this,s=this,i=t.getStorageSync("token");t.showLoading({title:"加载中"}),t.uploadFile({url:s.$tools.upload,header:{token:i},filePath:e,name:"file",success:function(t){t=JSON.parse(t.data),1===t.code&&(s.remarksImg.push(e),s.saveImg.push(t.data.url))},complete:function(){t.hideLoading()},fail:function(t){n.$tools.showtt("上传失败,请重试")}})}}};e.default=u}).call(this,n("543d")["default"])}},[["8327","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/confirmOrder.json b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/confirmOrder.json new file mode 100644 index 0000000..66e096b --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/confirmOrder.json @@ -0,0 +1,9 @@ +{ + "navigationBarTitleText": "提交订单", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false, + "usingComponents": { + "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons", + "uni-popup": "/uni_modules/uni-popup/components/uni-popup/uni-popup" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/confirmOrder.wxml b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/confirmOrder.wxml new file mode 100644 index 0000000..4b3ed15 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/confirmOrder.wxml @@ -0,0 +1 @@ +{{address.name}}{{address.mobile}}{{address.areas+address.address}}选择收货地址{{mallDet.busname+''}}{{item.goods.goodsname}}{{item.goods.introduce}}{{"¥"+item.goods.price}}{{"x"+item.num}}打包费{{"¥"+pickerMoney}}配送费{{"¥"+app.system.delivery}}优惠券{{onCoupon&&onCoupon.id?'满'+onCoupon.condition+'减'+onCoupon.price+'元':'暂无优惠券'}}合计:{{"¥"+totalPrice}}预约时间{{onHour==-1?'请选择预约时间':hoursList[onHour]}}备注实付:{{totalPriceCoupon}}去结算请选择预约时间{{item}} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/confirmOrder.wxss b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/confirmOrder.wxss new file mode 100644 index 0000000..c79290d --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/confirmOrder.wxss @@ -0,0 +1 @@ +page{background:#f1f1f1}.active{background:#8fc57c!important;color:#fff} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/mallDet.js b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/mallDet.js new file mode 100644 index 0000000..68a657e --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/mallDet.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/index/pagesOne/mall/mallDet/mallDet"],{4799:function(t,n,e){"use strict";e.r(n);var o=e("947b"),i=e("e662");for(var s in i)["default"].indexOf(s)<0&&function(t){e.d(n,t,(function(){return i[t]}))}(s);e("bb76");var a=e("f0c5"),u=Object(a["a"])(i["default"],o["b"],o["c"],!1,null,null,null,!1,o["a"],void 0);n["default"]=u.exports},"58ed":function(t,n,e){"use strict";(function(t){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var e={data:function(){return{busInfo:{},mallDet:{},cateList:[],scrollHeight:"",onCateIndex:0,goodslist:[],onGoods:{},onSpecIndex:0,number:1,cartList:[],type:0,searchGoods:[],keyword:""}},onLoad:function(t){this.busInfo=t,this.getScrollHeight()},onShow:function(){this.onShowGet()},computed:{cartTotal:function(){var t=this.cartList,n={price:0,num:0};return t&&t[0]&&(t.forEach((function(t){n.num+=t.num,n.price+=t.num*t.goods.price})),t.price=Number(t.price).toFixed(2)),n}},methods:{onShowGet:function(){var t=this;this.busInfo.id?(this.getMallDet(),this.getCateList(),this.getCartList()):setTimeout((function(){t.onShowGet(),console.log("等待")}),10)},goCommit:function(){this.cartList&&this.cartList[0]?this.goNext("confirmOrder?id=".concat(this.busInfo.id,"&type=").concat(this.busInfo.type)):this.showtt("请选择商品")},getSearchGoods:function(){var t=this;if(!this.keyword)return this.showtt("请输入关键字");this.axiosFromToken("POST","index/goods",{business_id:this.busInfo.id,keyword:this.keyword},"加载中").then((function(n){n.data&&n.data[0]?(t.type=1,t.searchGoods=n.data):t.showtt("暂无相关商品")}))},clearCart:function(){var t=this;if(!this.cartList[0])return this.showtt("购物车暂无商品");this.axiosFromToken("POST","user/empty_car",{business_id:this.busInfo.id},"加载中").then((function(n){1==n.code&&(t.showtt(n.msg),t.getCartList(),t.closeCart())}))},compNum:function(t,n,e){var o=this,i=this;this.axiosFromToken("POST","user/aas_businesscar",{car_id:this.cartList[n].id,type:"add"==e?1:2},"加载中").then((function(t){o.showtt(t.msg),1==t.code&&("less"==e?i.cartList[n].num--:i.cartList[n].num++)}))},numChange:function(t){this.number=t},openCart:function(){this.$refs.cart.open()},closeCart:function(){this.$refs.cart.close()},cartChange:function(t){t.show||this.getCateGoods()},openSpec:function(t){this.onGoods=t,this.$refs.spec.open()},closeSpec:function(){this.$refs.spec.close()},getCartList:function(){var t=this;this.axiosFromToken("POST","user/sel_businesscar",{business_id:this.busInfo.id},"加载中").then((function(n){t.cartList=n.data}))},addCart:function(){var t=this;this.axiosFromToken("POST","user/add_businesscar",{business_id:this.busInfo.id,goods_id:this.onGoods.id,name:this.onGoods.json[this.onSpecIndex].name,num:this.number},"加载中").then((function(n){1==n.code&&(t.closeSpec(),t.getCateGoods(),t.getCartList(),t.showtt("添加成功"),0==t.type?t.getCateGoods():t.getSearchGoods())}))},swtichCate:function(t){this.onCateIndex=t;this.cateList[t];this.getCateGoods()},getMallDet:function(){var t=this;this.axiosFromToken("POST","index/sel_business",{id:this.busInfo.id},"加载中").then((function(n){t.mallDet=n.data}))},getCateList:function(){var t=this;this.axiosFromToken("POST","index/sel_goodstype",{business_id:this.busInfo.id},"加载中").then((function(n){n.data&&n.data[0]&&(t.cateList=n.data,t.getCateGoods())}))},getCateGoods:function(){var t=this,n=this.cateList[this.onCateIndex];console.log(n,"分类"),this.axiosFromToken("POST","index/goods",{business_id:n.business_id,goodstype_id:n.id},"加载中").then((function(n){n.data&&n.data[0]&&(t.goodslist=n.data)}))},collectMall:function(){var t=this,n=this.mallDet.collection;this.axiosFromToken("POST","user/collection",{business_id:this.busInfo.id},"加载中").then((function(e){t.mallDet.collection=Number(!n),console.log(e,"收藏商品")}))},getScrollHeight:function(){var n=t.getSystemInfoSync().windowHeight,e=t.getSystemInfoSync().statusBarHeight+44;this.scrollHeight=n-e-t.upx2px(320),console.log(n)}}};n.default=e}).call(this,e("543d")["default"])},"947b":function(t,n,e){"use strict";e.d(n,"b",(function(){return i})),e.d(n,"c",(function(){return s})),e.d(n,"a",(function(){return o}));var o={uniNavBar:function(){return e.e("uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar").then(e.bind(null,"9df8"))},uniIcons:function(){return Promise.all([e.e("common/vendor"),e.e("uni_modules/uni-icons/components/uni-icons/uni-icons")]).then(e.bind(null,"aed4"))},lxcCountStyle:function(){return e.e("components/lxc-count-style/lxc-count-style").then(e.bind(null,"1638"))},uniPopup:function(){return e.e("uni_modules/uni-popup/components/uni-popup/uni-popup").then(e.bind(null,"118f"))}},i=function(){var t=this,n=t.$createElement;t._self._c;t._isMounted||(t.e0=function(n){t.type=0},t.e1=function(n,e){var o=arguments[arguments.length-1].currentTarget.dataset,i=o.eventParams||o["event-params"];e=i.index;t.onSpecIndex=e})},s=[]},bb76:function(t,n,e){"use strict";var o=e("e353"),i=e.n(o);i.a},e353:function(t,n,e){},e662:function(t,n,e){"use strict";e.r(n);var o=e("58ed"),i=e.n(o);for(var s in o)["default"].indexOf(s)<0&&function(t){e.d(n,t,(function(){return o[t]}))}(s);n["default"]=i.a},ee59:function(t,n,e){"use strict";(function(t){var n=e("4ea4");e("0178");n(e("66fd"));var o=n(e("4799"));wx.__webpack_require_UNI_MP_PLUGIN__=e,t(o.default)}).call(this,e("543d")["createPage"])}},[["ee59","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/mallDet.json b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/mallDet.json new file mode 100644 index 0000000..1d440d6 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/mallDet.json @@ -0,0 +1,11 @@ +{ + "navigationBarTitleText": "店铺详情", + "navigationStyle": "custom", + "enablePullDownRefresh": false, + "usingComponents": { + "uni-nav-bar": "/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar", + "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons", + "lxc-count-style": "/components/lxc-count-style/lxc-count-style", + "uni-popup": "/uni_modules/uni-popup/components/uni-popup/uni-popup" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/mallDet.wxml b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/mallDet.wxml new file mode 100644 index 0000000..5824641 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/mallDet.wxml @@ -0,0 +1 @@ +搜索{{onGoods.name}}{{onGoods.introduce}}规格{{item.name}}总计:{{"¥"+onGoods.json[onSpecIndex].price}}确定购物车{{"共"+cartTotal.num+"件商品"}}清空{{item.goods.goodsname}}{{item.goods.introduce}}{{item.goods.price+''}}暂无相关购物车{{''+cartTotal.num}}合计:{{"¥"+cartTotal.price}}去结算 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/mallDet.wxss b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/mallDet.wxss new file mode 100644 index 0000000..9a15410 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/mall/mallDet/mallDet.wxss @@ -0,0 +1 @@ +page{background:#f5f5f7}.active{color:#578446;font-weight:600;background-image:linear-gradient(90deg,#ddedd7,#fff)}.specItem{font-size:28rpx;background:#fafafa;border:2rpx solid #cacaca;color:#999;border-radius:10rpx;margin-right:32rpx}.specActive{color:#578446;background:#e9f4e5;border:2rpx solid #578446} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNan.js b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNan.js new file mode 100644 index 0000000..e6dd6f4 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNan.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/index/pagesOne/zhiNan/zhiNan"],{"27ab":function(n,t,e){},"2dc7":function(n,t,e){"use strict";e.r(t);var i=e("4b76"),a=e.n(i);for(var u in i)["default"].indexOf(u)<0&&function(n){e.d(t,n,(function(){return i[n]}))}(u);t["default"]=a.a},"4b76":function(n,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={data:function(){return{zhiNanList:[]}},onLoad:function(){this.getGuiDe()},methods:{getGuiDe:function(){var n=this;this.axiosFromToken("POST","index/guide",{},"加载中").then((function(t){n.zhiNanList=t.data}))}}}},a20e:function(n,t,e){"use strict";var i=e("27ab"),a=e.n(i);a.a},bccb:function(n,t,e){"use strict";e.d(t,"b",(function(){return i})),e.d(t,"c",(function(){return a})),e.d(t,"a",(function(){}));var i=function(){var n=this.$createElement;this._self._c},a=[]},bf47:function(n,t,e){"use strict";e.r(t);var i=e("bccb"),a=e("2dc7");for(var u in a)["default"].indexOf(u)<0&&function(n){e.d(t,n,(function(){return a[n]}))}(u);e("a20e");var c=e("f0c5"),o=Object(c["a"])(a["default"],i["b"],i["c"],!1,null,null,null,!1,i["a"],void 0);t["default"]=o.exports},f738:function(n,t,e){"use strict";(function(n){var t=e("4ea4");e("0178");t(e("66fd"));var i=t(e("bf47"));wx.__webpack_require_UNI_MP_PLUGIN__=e,n(i.default)}).call(this,e("543d")["createPage"])}},[["f738","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNan.json b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNan.json new file mode 100644 index 0000000..a32d3ca --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNan.json @@ -0,0 +1,5 @@ +{ + "navigationBarTitleText": "指南", + "enablePullDownRefresh": false, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNan.wxml b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNan.wxml new file mode 100644 index 0000000..b242617 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNan.wxml @@ -0,0 +1 @@ +{{item.title}}{{item.describe}} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNan.wxss b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNan.wxss new file mode 100644 index 0000000..4a60d98 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNan.wxss @@ -0,0 +1 @@ +page{background:#f7f6fa} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNanDet.js b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNanDet.js new file mode 100644 index 0000000..85ba63a --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNanDet.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/index/pagesOne/zhiNan/zhiNanDet"],{1179:function(n,t,e){"use strict";(function(n){var t=e("4ea4");e("0178");t(e("66fd"));var i=t(e("517a"));wx.__webpack_require_UNI_MP_PLUGIN__=e,n(i.default)}).call(this,e("543d")["createPage"])},2373:function(n,t,e){"use strict";e.d(t,"b",(function(){return i})),e.d(t,"c",(function(){return a})),e.d(t,"a",(function(){}));var i=function(){var n=this.$createElement;this._self._c},a=[]},"517a":function(n,t,e){"use strict";e.r(t);var i=e("2373"),a=e("ac37");for(var u in a)["default"].indexOf(u)<0&&function(n){e.d(t,n,(function(){return a[n]}))}(u);var o=e("f0c5"),c=Object(o["a"])(a["default"],i["b"],i["c"],!1,null,null,null,!1,i["a"],void 0);t["default"]=c.exports},ac37:function(n,t,e){"use strict";e.r(t);var i=e("ef44"),a=e.n(i);for(var u in i)["default"].indexOf(u)<0&&function(n){e.d(t,n,(function(){return i[n]}))}(u);t["default"]=a.a},ef44:function(n,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={data:function(){return{zhiNanDet:""}},onLoad:function(n){this.getGuiDe(n.id)},methods:{getGuiDe:function(n){var t=this;this.axiosFromToken("POST","index/guide",{id:n},"加载中").then((function(n){t.zhiNanDet=n.data.content}))}}}}},[["1179","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNanDet.json b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNanDet.json new file mode 100644 index 0000000..a32d3ca --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNanDet.json @@ -0,0 +1,5 @@ +{ + "navigationBarTitleText": "指南", + "enablePullDownRefresh": false, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNanDet.wxml b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNanDet.wxml new file mode 100644 index 0000000..29cbd61 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/index/pagesOne/zhiNan/zhiNanDet.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/login/login.js b/unpackage/dist/build/mp-weixin/pages/login/login.js new file mode 100644 index 0000000..eb01110 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/login/login.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/login/login"],{1242:function(t,e,n){"use strict";n.r(e);var o=n("3b25"),a=n.n(o);for(var i in o)["default"].indexOf(i)<0&&function(t){n.d(e,t,(function(){return o[t]}))}(i);e["default"]=a.a},"3b25":function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n={data:function(){return{userInfo:{},parmas:{openid:"",mobile:""}}},onLoad:function(e){if(e.q){var n=decodeURIComponent(e.q),o=this.GetUrlParam(n,"pid");this.parmas.user_id=o}getApp().getAddress();var a=t.getStorageSync("userInfo"),i=t.getStorageSync("token");a&&a.id&&i&&(console.log("登录"),t.switchTab({url:"/pages/index/index"}))},methods:{getIphone:function(t){var e=this;this.axiosFromToken("POST","user/getPhoneNumber",{code:t.detail.code},"加载中").then((function(t){e.parmas.mobile=t,e.getLogin()}))},getOpenId:function(){var t=this;wx.login({success:function(e){t.$tools.axios("POST","user/Wechat_openid",{code:e.code},"加载中").then((function(e){console.log(e,"openid"),t.parmas.openid=e}))},fail:function(){t.$tools.showtt("获取失败")}})},getLogin:function(){var e=this;wx.login({success:function(n){e.$tools.axios("POST","user/wechat",e.parmas,"加载中").then((function(e){1==e.code&&(t.setStorageSync("token",e.data.token),t.setStorageSync("userInfo",e.data),getApp().globalData.token=e.data.token,getApp().globalData.userInfo=e.data,t.switchTab({url:"/pages/index/index"}))}))},fail:function(){e.$tools.showtt("获取失败")}})}}};e.default=n}).call(this,n("543d")["default"])},c4d4:function(t,e,n){"use strict";(function(t){var e=n("4ea4");n("0178");e(n("66fd"));var o=e(n("d46a"));wx.__webpack_require_UNI_MP_PLUGIN__=n,t(o.default)}).call(this,n("543d")["createPage"])},d46a:function(t,e,n){"use strict";n.r(e);var o=n("fa3f"),a=n("1242");for(var i in a)["default"].indexOf(i)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(i);var c=n("f0c5"),r=Object(c["a"])(a["default"],o["b"],o["c"],!1,null,"118da8d2",null,!1,o["a"],void 0);e["default"]=r.exports},fa3f:function(t,e,n){"use strict";n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){}));var o=function(){var t=this.$createElement;this._self._c},a=[]}},[["c4d4","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/login/login.json b/unpackage/dist/build/mp-weixin/pages/login/login.json new file mode 100644 index 0000000..94796e3 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/login/login.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "登录", + "navigationStyle": "custom", + "enablePullDownRefresh": false, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/login/login.wxml b/unpackage/dist/build/mp-weixin/pages/login/login.wxml new file mode 100644 index 0000000..ce094c7 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/login/login.wxml @@ -0,0 +1 @@ +欢迎来到速达校园便利捷!一键授权信息登录一键授权手机号 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/me.js b/unpackage/dist/build/mp-weixin/pages/me/me.js new file mode 100644 index 0000000..2e5a024 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/me.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/me/me"],{"29ad":function(t,e,n){"use strict";n.r(e);var i=n("4866"),a=n.n(i);for(var o in i)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(o);e["default"]=a.a},4866:function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n={data:function(){return{onselect:0,orderList:[{id:"1",title:"待付款",image:"/static/daifukuan.png"},{id:"2",title:"待配送",image:"/static/daipeisong.png"},{id:"3",title:"配送中",image:"/static/peisongzhog.png"},{id:"4",title:"已完成",image:"/static/yiwanchceng.png"}],list:[{image:"/static/kaquan.png",title:"我的卡券",path:"/pages/me/pagesOne/couponList/couponList"},{image:"/static/yaoqing.png",title:"邀请有礼",path:"/pages/me/pagesOne/tui/tui"},{image:"/static/sangjia.png",title:"商家入驻",path:"/pages/me/pagesOne/shopJoin/shopJoin"},{image:"/static/shcang.png",title:"我的收藏",path:"/pages/me/pagesOne/collect/collect"},{image:"/static/kefu.png",title:"平台客服",path:"kefu"},{image:"/static/yijianfankl.png",title:"意见反馈",path:"pagesOne/feedBack/feedBack"}],system:{},mallList:[{title:"",id:""}]}},onLoad:function(){this.system=t.getStorageSync("system")},onShow:function(){this.getUserInfo()},methods:{selectMall:function(t){this.onselect=t.detail.value},goPath:function(e){if("kefu"==e){var n=this.app.system.service;console.log(n),t.makePhoneCall({phoneNumber:n})}else e?this.goNext(e):this.goTui()},goLogin:function(){var e=this;t.showModal({content:"请先授权登录再进行此操作",title:"未登录",success:function(t){t.confirm&&e.$tools.goNext("/pages/login/login")}})},goTui:function(){this.showtt("该功能暂未开放,敬请谅解")},goUserInfo:function(){this.$tools.goNext("pagesOne/userInfoChange/userInfoChange")},getUserInfo:function(){var e=this;this.axiosFromToken("POST","user/userinfo",{token:this.app.token}).then((function(n){1==n.code?(e.app.userInfo=n.data,t.setStorageSync("userInfo",n.data),e.$forceUpdate()):(t.removeStorageSync("userInfo"),e.$tools.showtt(n.msg))}))}}};e.default=n}).call(this,n("543d")["default"])},a633:function(t,e,n){"use strict";n.d(e,"b",(function(){return a})),n.d(e,"c",(function(){return o})),n.d(e,"a",(function(){return i}));var i={uniNavBar:function(){return n.e("uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar").then(n.bind(null,"9df8"))}},a=function(){var t=this.$createElement;this._self._c},o=[]},b2b1:function(t,e,n){},ce59:function(t,e,n){"use strict";var i=n("b2b1"),a=n.n(i);a.a},cfcb:function(t,e,n){"use strict";(function(t){var e=n("4ea4");n("0178");e(n("66fd"));var i=e(n("f6da"));wx.__webpack_require_UNI_MP_PLUGIN__=n,t(i.default)}).call(this,n("543d")["createPage"])},f6da:function(t,e,n){"use strict";n.r(e);var i=n("a633"),a=n("29ad");for(var o in a)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(o);n("ce59");var s=n("f0c5"),c=Object(s["a"])(a["default"],i["b"],i["c"],!1,null,null,null,!1,i["a"],void 0);e["default"]=c.exports}},[["cfcb","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/me.json b/unpackage/dist/build/mp-weixin/pages/me/me.json new file mode 100644 index 0000000..0a729d7 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/me.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "我的", + "navigationStyle": "custom", + "enablePullDownRefresh": false, + "usingComponents": { + "uni-nav-bar": "/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/me.wxml b/unpackage/dist/build/mp-weixin/pages/me/me.wxml new file mode 100644 index 0000000..b1702e9 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/me.wxml @@ -0,0 +1 @@ +{{app.userInfo.username}}{{app.userInfo.mobile}}未授权我的订单全部订单{{item.title}}{{item.title}} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/me.wxss b/unpackage/dist/build/mp-weixin/pages/me/me.wxss new file mode 100644 index 0000000..4a60d98 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/me.wxss @@ -0,0 +1 @@ +page{background:#f7f6fa} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/addressEdit/addressEdit.js b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/addressEdit/addressEdit.js new file mode 100644 index 0000000..6225acb --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/addressEdit/addressEdit.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/me/pagesOne/address/addressEdit/addressEdit"],{"058c":function(e,t,s){"use strict";s.r(t);var n=s("08ec"),d=s.n(n);for(var o in n)["default"].indexOf(o)<0&&function(e){s.d(t,e,(function(){return n[e]}))}(o);t["default"]=d.a},"08ec":function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={data:function(){return{address:[{name:"祝锦鹏",mobile:13184129096,area:"山东省济南市历下区",address:"经十路武警医院花样家缘",default:"1"}],type:null}},onLoad:function(e){this.type=e.type},onShow:function(){this.getAddress()},methods:{selectAddress:function(e){1==this.type&&(this.app.onAddress=e,this.goBack())},gonewAddress:function(){this.$tools.goNext("/pages/me/pagesOne/address/newAddress/newAddress")},noselectTap:function(e){var t=this;e.default=1,e.id=e.id,this.$tools.axiosFromToken("POST","index/edit_address",e).then((function(e){t.getAddress(),"1"==t.type&&t.$tools.goBack(1)}))},editAddress:function(e){this.$tools.goNext("/pages/me/pagesOne/address/newAddress/newAddress?id=".concat(e))},detletAddress:function(e,t){var s=this;this.$tools.axiosFromToken("POST","index/del_address",{id:t,type:4},"加载中").then((function(t){s.address.splice(e,1),s.getAddress()}))},getAddress:function(){var e=this;this.$tools.axiosFromToken("POST","user/sel_address",{},"加载中").then((function(t){e.address=t.data}))}}}},"0bd2":function(e,t,s){"use strict";s.d(t,"b",(function(){return n})),s.d(t,"c",(function(){return d})),s.d(t,"a",(function(){}));var n=function(){var e=this.$createElement;this._self._c},d=[]},"264c":function(e,t,s){},"2f58":function(e,t,s){"use strict";var n=s("264c"),d=s.n(n);d.a},"5d07":function(e,t,s){"use strict";s.r(t);var n=s("0bd2"),d=s("058c");for(var o in d)["default"].indexOf(o)<0&&function(e){s.d(t,e,(function(){return d[e]}))}(o);s("2f58");var i=s("f0c5"),a=Object(i["a"])(d["default"],n["b"],n["c"],!1,null,null,null,!1,n["a"],void 0);t["default"]=a.exports},"7ef6":function(e,t,s){"use strict";(function(e){var t=s("4ea4");s("0178");t(s("66fd"));var n=t(s("5d07"));wx.__webpack_require_UNI_MP_PLUGIN__=s,e(n.default)}).call(this,s("543d")["createPage"])}},[["7ef6","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/addressEdit/addressEdit.json b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/addressEdit/addressEdit.json new file mode 100644 index 0000000..2bd1611 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/addressEdit/addressEdit.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "收货地址", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/addressEdit/addressEdit.wxml b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/addressEdit/addressEdit.wxml new file mode 100644 index 0000000..86db472 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/addressEdit/addressEdit.wxml @@ -0,0 +1 @@ +{{item.name}}{{item.mobile}}{{item.areas+item.address}}设为默认地址暂无地址,快去新建一个吧+新增收货地址 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/addressEdit/addressEdit.wxss b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/addressEdit/addressEdit.wxss new file mode 100644 index 0000000..ee6c3e1 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/addressEdit/addressEdit.wxss @@ -0,0 +1 @@ +page{background:#f6f6f6} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/newAddress/newAddress.js b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/newAddress/newAddress.js new file mode 100644 index 0000000..c91589a --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/newAddress/newAddress.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/me/pagesOne/address/newAddress/newAddress"],{"25dc":function(n,t,e){"use strict";e.d(t,"b",(function(){return o})),e.d(t,"c",(function(){return i})),e.d(t,"a",(function(){}));var o=function(){var n=this.$createElement;this._self._c},i=[]},"2cbf":function(n,t,e){"use strict";(function(n){var t=e("4ea4");e("0178");t(e("66fd"));var o=t(e("cb67"));wx.__webpack_require_UNI_MP_PLUGIN__=e,n(o.default)}).call(this,e("543d")["createPage"])},"705d":function(n,t,e){"use strict";e.r(t);var o=e("d521"),i=e.n(o);for(var s in o)["default"].indexOf(s)<0&&function(n){e.d(t,n,(function(){return o[n]}))}(s);t["default"]=i.a},cb67:function(n,t,e){"use strict";e.r(t);var o=e("25dc"),i=e("705d");for(var s in i)["default"].indexOf(s)<0&&function(n){e.d(t,n,(function(){return i[n]}))}(s);var a=e("f0c5"),d=Object(a["a"])(i["default"],o["b"],o["c"],!1,null,null,null,!1,o["a"],void 0);t["default"]=d.exports},d521:function(n,t,e){"use strict";(function(n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o={data:function(){return{info:{type:1,name:"",mobile:"",areas:"",address:"",default:"1"},buttonText:"新增地址"}},components:{wangdingPickerAddress:function(){Promise.all([e.e("common/vendor"),e.e("components/wangding-pickerAddress/wangding-pickerAddress")]).then(function(){return resolve(e("043f"))}.bind(null,e)).catch(e.oe)}},onLoad:function(t){t.id&&(n.setNavigationBarTitle({title:"修改地址"}),this.buttonText="修改地址",this.getAddress(t.id)),"1"==t.type&&this.$tools.showtt("请先填写地址再下单")},methods:{chooseLocation:function(){var t=this;n.chooseLocation({success:function(n){console.log(n),t.info.lon=n.longitude,t.info.lat=n.latitude}})},newAddress:function(){var n=this,t=this;if(function(){for(var n in t.info)return""!==t.info[n]}()&&t.$tools.isPhone(t.info.mobile)){var e="user/add_address";"修改地址"==this.buttonText&&(e="index/edit_address"),t.axiosFromToken("POST",e,this.info,"请稍等").then((function(t){1==t.code&&(n.goBack(1),n.showtt(t.msg,"succesc")),n.showtt(t.msg)}))}else t.showtt("请检查信息是否填写并正确")},addressChange:function(n){this.info.areas=n.data.join()},swtichChange:function(n){this.info.default=n.detail.value?"1":"0"},getAddress:function(n){var t=this;this.$tools.axiosFromToken("POST","user/sel_address",{type:2},"加载中").then((function(e){var o=e.data.filter((function(t){return t.id==n}));t.info=o[0],t.info.id=n}))}}};t.default=o}).call(this,e("543d")["default"])}},[["2cbf","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/newAddress/newAddress.json b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/newAddress/newAddress.json new file mode 100644 index 0000000..97acdef --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/newAddress/newAddress.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "添加收货地址", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false, + "usingComponents": { + "wangding-picker-address": "/components/wangding-pickerAddress/wangding-pickerAddress" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/newAddress/newAddress.wxml b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/newAddress/newAddress.wxml new file mode 100644 index 0000000..4113e61 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/address/newAddress/newAddress.wxml @@ -0,0 +1 @@ +收货人:手机号码:省市区:{{info.areas===''?'请选择省市区':info.areas}}详细地址:设为默认地址:{{''+buttonText+''}} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/collect/collect.js b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/collect/collect.js new file mode 100644 index 0000000..380e3da --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/collect/collect.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/me/pagesOne/collect/collect"],{"1e88":function(t,e,n){"use strict";n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return c})),n.d(e,"a",(function(){}));var o=function(){var t=this,e=t.$createElement,n=(t._self._c,t.collectList&&t.collectList[0]?t.__map(t.collectList,(function(e,n){var o=t.__get_orig(e),c=e.distance.toFixed(2);return{$orig:o,g0:c}})):null);t.$mp.data=Object.assign({},{$root:{l0:n}})},c=[]},"71e4":function(t,e,n){"use strict";var o=n("ff19"),c=n.n(o);c.a},"841f":function(t,e,n){"use strict";(function(t){var e=n("4ea4");n("0178");e(n("66fd"));var o=e(n("f6fc"));wx.__webpack_require_UNI_MP_PLUGIN__=n,t(o.default)}).call(this,n("543d")["createPage"])},9873:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;e.default={data:function(){return{collectList:[]}},onShow:function(){this.getCollectList()},methods:{goInfoDet:function(t,e){var n=this;this.axiosFromToken("POST","index/hours",{business_id:e},"加载中").then((function(o){1==o.data.do?n.$tools.goNext("/pages/index/pagesOne/mall/mallDet/mallDet?id=".concat(e,"&name=").concat(t,"&type=").concat(n.type)):n.showtt("该店已打烊")}))},getCollectList:function(){var t=this;this.axiosFromToken("POST","user/my_coll",{lat:this.app.location.latitude,lng:this.app.location.longitude,token:this.app.token},"加载中").then((function(e){t.collectList=e.data}))}}}},e4ba:function(t,e,n){"use strict";n.r(e);var o=n("9873"),c=n.n(o);for(var i in o)["default"].indexOf(i)<0&&function(t){n.d(e,t,(function(){return o[t]}))}(i);e["default"]=c.a},f6fc:function(t,e,n){"use strict";n.r(e);var o=n("1e88"),c=n("e4ba");for(var i in c)["default"].indexOf(i)<0&&function(t){n.d(e,t,(function(){return c[t]}))}(i);n("71e4");var a=n("f0c5"),l=Object(a["a"])(c["default"],o["b"],o["c"],!1,null,null,null,!1,o["a"],void 0);e["default"]=l.exports},ff19:function(t,e,n){}},[["841f","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/collect/collect.json b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/collect/collect.json new file mode 100644 index 0000000..35a3d53 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/collect/collect.json @@ -0,0 +1,5 @@ +{ + "navigationBarTitleText": "我的收藏", + "enablePullDownRefresh": false, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/collect/collect.wxml b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/collect/collect.wxml new file mode 100644 index 0000000..c274d77 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/collect/collect.wxml @@ -0,0 +1 @@ +{{item.$orig.busname}}{{"收藏人数"+item.$orig.collection_num}}{{item.g0+"km"}}暂无相关收藏商家 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/collect/collect.wxss b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/collect/collect.wxss new file mode 100644 index 0000000..6fe148a --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/collect/collect.wxss @@ -0,0 +1 @@ +page{background:#f8f6f9} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/couponList/couponList.js b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/couponList/couponList.js new file mode 100644 index 0000000..c05bc90 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/couponList/couponList.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/me/pagesOne/couponList/couponList"],{"0226":function(n,t,e){"use strict";e.r(t);var o=e("548f"),u=e.n(o);for(var i in o)["default"].indexOf(i)<0&&function(n){e.d(t,n,(function(){return o[n]}))}(i);t["default"]=u.a},"548f":function(n,t,e){"use strict";(function(n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var e={data:function(){return{couponList:[],menKanMoney:null,type:2}},onLoad:function(n){this.getCoupon(),this.type=n.type||2,1==n.type&&(this.menKanMoney=n.aumont)},methods:{goHome:function(t){2==this.type?n.switchTab({url:"/pages/index/index"}):(console.log(Number(this.menKanMoney)>=Number(t.condition),Number(this.menKanMoney),Number(t.condition)),Number(this.menKanMoney)>=Number(t.condition)?Number(t.price)<=Number(this.menKanMoney)?(getApp().globalData.onCoupon=t,this.goBack()):this.showtt("优惠券金额大于订单金额,不能选择该优惠券"):this.showtt("订单金额不足使用门槛,不能选择该优惠券"))},getCoupon:function(){var n=this;this.axiosFromToken("POST","user/usercou",{status:"1"},"加载中").then((function(t){n.couponList=t.data}))}}};t.default=e}).call(this,e("543d")["default"])},"8be4":function(n,t,e){"use strict";e.r(t);var o=e("f2d9"),u=e("0226");for(var i in u)["default"].indexOf(i)<0&&function(n){e.d(t,n,(function(){return u[n]}))}(i);var a=e("f0c5"),c=Object(a["a"])(u["default"],o["b"],o["c"],!1,null,null,null,!1,o["a"],void 0);t["default"]=c.exports},ba92:function(n,t,e){"use strict";(function(n){var t=e("4ea4");e("0178");t(e("66fd"));var o=t(e("8be4"));wx.__webpack_require_UNI_MP_PLUGIN__=e,n(o.default)}).call(this,e("543d")["createPage"])},f2d9:function(n,t,e){"use strict";e.d(t,"b",(function(){return o})),e.d(t,"c",(function(){return u})),e.d(t,"a",(function(){}));var o=function(){var n=this.$createElement;this._self._c},u=[]}},[["ba92","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/couponList/couponList.json b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/couponList/couponList.json new file mode 100644 index 0000000..eedddf4 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/couponList/couponList.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "我的卡券", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/couponList/couponList.wxml b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/couponList/couponList.wxml new file mode 100644 index 0000000..aa996db --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/couponList/couponList.wxml @@ -0,0 +1 @@ +{{item.price}}.00元{{item.condition==0?'无门槛券':'满'+item.condition+'元可用'}}{{item.name}}{{item.end_time+" 到期"}} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/feedBack/feedBack.js b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/feedBack/feedBack.js new file mode 100644 index 0000000..cbab8af --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/feedBack/feedBack.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/me/pagesOne/feedBack/feedBack"],{"0ec2":function(e,t,n){},"36eb":function(e,t,n){"use strict";var a=n("0ec2"),o=n.n(a);o.a},"3aeb":function(e,t,n){"use strict";(function(e){var t=n("4ea4");n("0178");t(n("66fd"));var a=t(n("f276"));wx.__webpack_require_UNI_MP_PLUGIN__=n,e(a.default)}).call(this,n("543d")["createPage"])},"4b7f":function(e,t,n){"use strict";n.r(t);var a=n("e7d1"),o=n.n(a);for(var s in a)["default"].indexOf(s)<0&&function(e){n.d(t,e,(function(){return a[e]}))}(s);t["default"]=o.a},e7d1:function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={data:function(){return{parmas:{images:[],content:""},saveImgs:[],onImgs:[]}},methods:{confirm:function(){var e=this;this.parmas.content?(this.parmas.images=this.saveImgs.join(","),this.axiosFromToken("POST","user/feedback",this.parmas,"加载中").then((function(t){e.showtt(t.msg),1==t.code&&setTimeout((function(){e.goBack()}),1600)}))):this.showtt("请输入意见反馈")},detImg:function(e){this.parmas.images.splice(e,1),this.saveImgs.splice(e,1)},lookImage:function(){var t=this;e.chooseImage({sizeType:["compressed"],sourceType:["album","camera"],count:1,success:function(e){e.tempFilePaths.forEach((function(e,n){t.upload(e)}))}})},upload:function(t){var n=this,a=this,o=e.getStorageSync("token");e.showLoading({title:"加载中"}),e.uploadFile({url:a.$tools.upload,header:{token:o},filePath:t,name:"file",success:function(e){e=JSON.parse(e.data),1===e.code&&(a.onImgs.push(t),a.saveImgs.push(e.data.url))},complete:function(){e.hideLoading()},fail:function(e){n.$tools.showtt("上传失败,请重试")}})}}};t.default=n}).call(this,n("543d")["default"])},f276:function(e,t,n){"use strict";n.r(t);var a=n("f77e"),o=n("4b7f");for(var s in o)["default"].indexOf(s)<0&&function(e){n.d(t,e,(function(){return o[e]}))}(s);n("36eb");var i=n("f0c5"),c=Object(i["a"])(o["default"],a["b"],a["c"],!1,null,null,null,!1,a["a"],void 0);t["default"]=c.exports},f77e:function(e,t,n){"use strict";n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return o})),n.d(t,"a",(function(){}));var a=function(){var e=this.$createElement;this._self._c},o=[]}},[["3aeb","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/feedBack/feedBack.json b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/feedBack/feedBack.json new file mode 100644 index 0000000..36eadeb --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/feedBack/feedBack.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "意见反馈", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/feedBack/feedBack.wxml b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/feedBack/feedBack.wxml new file mode 100644 index 0000000..bd4820c --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/feedBack/feedBack.wxml @@ -0,0 +1 @@ +提交 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/feedBack/feedBack.wxss b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/feedBack/feedBack.wxss new file mode 100644 index 0000000..4a60d98 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/feedBack/feedBack.wxss @@ -0,0 +1 @@ +page{background:#f7f6fa} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/order.js b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/order.js new file mode 100644 index 0000000..c27fe1e --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/order.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/me/pagesOne/order/order"],{"3ac1":function(t,e,n){"use strict";n.d(e,"b",(function(){return r})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return o}));var o={vTabs:function(){return n.e("components/v-tabs/v-tabs").then(n.bind(null,"a639"))},orderGoods:function(){return n.e("components/orderGoods/orderGoods").then(n.bind(null,"8928"))}},r=function(){var t=this.$createElement,e=(this._self._c,Number(this.tabIndex));this.$mp.data=Object.assign({},{$root:{m0:e}})},a=[]},"42ac":function(t,e,n){},6016:function(t,e,n){"use strict";(function(t){var e=n("4ea4");n("0178");e(n("66fd"));var o=e(n("a7ab"));wx.__webpack_require_UNI_MP_PLUGIN__=n,t(o.default)}).call(this,n("543d")["createPage"])},"6fe4":function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=getApp().globalData,o={data:function(){return{tabIndex:0,tabBars:[{name:"全部",text:"暂无订单"},{name:"待付款",text:"暂无待付款订单"},{name:"待配送",text:"暂无待配送订单"},{name:"配送中",text:"暂无配送中订单"},{name:"已完成",text:"暂无已完成订单"}],goods:[],tabIndexArr:[0,1,2,3,4],scrollHeight:0,orderId:"",onOrder:{}}},onShow:function(){this.getmyPush(this.tabIndex)},onLoad:function(t){this.tabIndex=Number(t.value)||"",this.getmyPush(t.value),this.getScrollHeight()},methods:{getmyPush:function(t){var e=this;this.$tools.axiosFromToken("POST","order/my_order",{status:t,token:n.token},"加载中").then((function(t){e.goods=t.data||[]}))},getOrder:function(){this.getmyPush(this.tabIndex)},commitGoods:function(){var t=this;this.$tools.axiosFromToken("POST","order/signOrder",{order_id:this.orderId},"加载中").then((function(e){t.getOrder(),t.$tools.showtt(e.msg)}))},getScrollHeight:function(){var e=t.getSystemInfoSync().windowHeight;this.scrollHeight=e,console.log(e)},toggleTab:function(t){console.log(t,"点击切换"),this.tabIndex=Number(t)},tabChange:function(t){var e=Number(t.detail.current);this.tabIndex=e,this.getmyPush(e)}}};e.default=o}).call(this,n("543d")["default"])},"9c49":function(t,e,n){"use strict";n.r(e);var o=n("6fe4"),r=n.n(o);for(var a in o)["default"].indexOf(a)<0&&function(t){n.d(e,t,(function(){return o[t]}))}(a);e["default"]=r.a},a7ab:function(t,e,n){"use strict";n.r(e);var o=n("3ac1"),r=n("9c49");for(var a in r)["default"].indexOf(a)<0&&function(t){n.d(e,t,(function(){return r[t]}))}(a);n("e9be");var i=n("f0c5"),s=Object(i["a"])(r["default"],o["b"],o["c"],!1,null,null,null,!1,o["a"],void 0);e["default"]=s.exports},e9be:function(t,e,n){"use strict";var o=n("42ac"),r=n.n(o);r.a}},[["6016","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/order.json b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/order.json new file mode 100644 index 0000000..685c9dc --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/order.json @@ -0,0 +1,9 @@ +{ + "navigationBarTitleText": "订单列表", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false, + "usingComponents": { + "v-tabs": "/components/v-tabs/v-tabs", + "order-goods": "/components/orderGoods/orderGoods" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/order.wxml b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/order.wxml new file mode 100644 index 0000000..d33e514 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/order.wxml @@ -0,0 +1 @@ +{{''+content.text+''}} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/order.wxss b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/order.wxss new file mode 100644 index 0000000..faf8fab --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/order.wxss @@ -0,0 +1 @@ +.order_top{display:flex;align-items:center;justify-content:space-around}.order_centext{height:calc(100vh - 110rpx)}page{background:#f1f1f1} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/orderDet.js b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/orderDet.js new file mode 100644 index 0000000..ffd29ef --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/orderDet.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/me/pagesOne/order/orderDet"],{"8a35":function(o,t,e){"use strict";var n=e("9c40"),r=e.n(n);r.a},"9c40":function(o,t,e){},"9f6c":function(o,t,e){"use strict";e.d(t,"b",(function(){return n})),e.d(t,"c",(function(){return r})),e.d(t,"a",(function(){}));var n=function(){var o=this.$createElement;this._self._c},r=[]},b447:function(o,t,e){"use strict";e.r(t);var n=e("9f6c"),r=e("dd74");for(var i in r)["default"].indexOf(i)<0&&function(o){e.d(t,o,(function(){return r[o]}))}(i);e("8a35");var s=e("f0c5"),d=Object(s["a"])(r["default"],n["b"],n["c"],!1,null,null,null,!1,n["a"],void 0);t["default"]=d.exports},dd74:function(o,t,e){"use strict";e.r(t);var n=e("e78d"),r=e.n(n);for(var i in n)["default"].indexOf(i)<0&&function(o){e.d(t,o,(function(){return n[o]}))}(i);t["default"]=r.a},e78d:function(o,t,e){"use strict";(function(o){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var e=getApp().globalData,n={data:function(){return{orderId:"",goods:{business:{}},headerText:"",status:{1:"待付款",2:"待发货",3:"待收货",4:"待评价",5:"已完成"},orderno:""}},onLoad:function(o){this.orderId=o.id,console.log(o.id),this.getOrderDet()},onShow:function(){this.orderId&&this.getOrderDet()},computed:{pickerMoney:function(){if(!this.goods||!this.goods.pack)return 0;var o=0;return this.goods.goods.forEach((function(t){return o+=t.num})),(o*(this.goods.pack||0)).toFixed(2)}},methods:{onCommit:function(){this.$tools.goNext("/pageOne/order/payOrder/payOrder?id=".concat(this.goods.id))},addressTap:function(){this.$tools.goNext("/pageOne/address/addressEdit/addressEdit")},toShopLocation:function(){this.$tools.goNext("/pagesOne/order/lookShopLocation/lookShopLocation")},goTefund:function(o){e.orderShop=o,this.$tools.goNext("/pagesOne/order/forRefund/forRefund")},commit:function(o){var t=this;this.$tools.axiosFromToken("POST","order/signOrder",{order_id:this.goods.id},"加载中").then((function(o){1==o.code&&(t.$tools.showtt("确认收货成功"),setTimeout((function(){return t.$tools.goBack(1)}),1e3))}))},getOrderDet:function(o){var t=this;this.$tools.axiosFromToken("POST","order/sel_order_goods",{id:this.orderId},"加载中").then((function(o){t.goods=o.data,t.orderno=o.data.orderno}))},cancelOrder:function(){var o=this;this.axiosFromToken("POST","order/del_order_goods",{token:this.app.token,id:this.orderId},"加载中").then((function(t){setTimeout((function(){o.$tools.goBack()}),500),o.$tools.showtt("取消成功")}))},toComment:function(o){e.orderInfo=o,this.$tools.goNext("/pages/me/order/pushComment")},commitGoods:function(){var o=this;this.axiosFromToken("POST","order/determine",{id:this.orderId},"加载中").then((function(t){1==t.code?(setTimeout((function(){o.$tools.goBack()}),600),o.$tools.showtt("成功确认收货")):o.$tools.showtt(t.msg)}))},winxinPay:function(){var o=this;this.$tools.axiosFromToken("POST","pay/pay",{token:this.app.token,orderno:this.orderno},"加载中").then((function(t){o.payFn(t.data),console.log(t.data)}))},payFn:function(t){var e=this,n=this;o.requestPayment({provider:"wxpay",timeStamp:t.timeStamp,nonceStr:t.nonceStr,package:t.package,signType:t.signType,paySign:t.paySign,success:function(t){o.showToast({icon:"success",title:"支付成功"}),n.getOrderDet()},fail:function(t){o.showToast({icon:"error",title:"支付失败"}),console.log("fail:",t,e)}})}}};t.default=n}).call(this,e("543d")["default"])},f87e:function(o,t,e){"use strict";(function(o){var t=e("4ea4");e("0178");t(e("66fd"));var n=t(e("b447"));wx.__webpack_require_UNI_MP_PLUGIN__=e,o(n.default)}).call(this,e("543d")["createPage"])}},[["f87e","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/orderDet.json b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/orderDet.json new file mode 100644 index 0000000..047c022 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/orderDet.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "订单详情", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/orderDet.wxml b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/orderDet.wxml new file mode 100644 index 0000000..8b96d89 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/orderDet.wxml @@ -0,0 +1 @@ +{{goods.address.name}}{{goods.address.mobile}}{{goods.address.areas+goods.address.address}}暂无收货地址{{(goods.business.busname||'')+''}}{{item.name}}{{item.key}}{{"¥"+item.price}}{{"x"+item.num}}打包费{{"¥"+goods.pack}}配送费{{"¥"+goods.delivery}}优惠券-¥0合计:{{"¥"+goods.price}}备注{{goods.memo||'无备注'}}订单编号{{goods.orderno}}下单时间{{goods.createtime}}取消订单去付款催发货确认收货 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/orderDet.wxss b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/orderDet.wxss new file mode 100644 index 0000000..bc026c9 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/order/orderDet.wxss @@ -0,0 +1 @@ +.active{border-bottom:1rpx solid #eee;margin-bottom:0}page{background:#f7f7f8}.col_22cfa2{color:#22cfa2}.btnOne{border-radius:4rpx;color:#22cfa2;margin-left:20rpx;width:234rpx;height:82rpx;line-height:82rpx;border:2rpx solid #22cfa2;font-size:28rpx;border-radius:10rpx}.btnTwo{color:#fff!important;background:#22cfa2!important} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/set.js b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/set.js new file mode 100644 index 0000000..4521e92 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/set.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/me/pagesOne/set/set"],{"1b29":function(e,t,n){"use strict";n.r(t);var o=n("efac"),a=n("ff4e");for(var u in a)["default"].indexOf(u)<0&&function(e){n.d(t,e,(function(){return a[e]}))}(u);var f=n("f0c5"),r=Object(f["a"])(a["default"],o["b"],o["c"],!1,null,null,null,!1,o["a"],void 0);t["default"]=r.exports},2370:function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={data:function(){return{}},methods:{outLogin:function(){e.removeStorage({key:"token"}),e.removeStorage({key:"userInfo"}),getApp().globalData.token="",getApp().globalData.userInfo={},this.$tools.goNext("/pages/login/login/login")}}};t.default=n}).call(this,n("543d")["default"])},c31f:function(e,t,n){"use strict";(function(e){var t=n("4ea4");n("0178");t(n("66fd"));var o=t(n("1b29"));wx.__webpack_require_UNI_MP_PLUGIN__=n,e(o.default)}).call(this,n("543d")["createPage"])},efac:function(e,t,n){"use strict";n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return a})),n.d(t,"a",(function(){}));var o=function(){var e=this.$createElement;this._self._c},a=[]},ff4e:function(e,t,n){"use strict";n.r(t);var o=n("2370"),a=n.n(o);for(var u in o)["default"].indexOf(u)<0&&function(e){n.d(t,e,(function(){return o[e]}))}(u);t["default"]=a.a}},[["c31f","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/set.json b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/set.json new file mode 100644 index 0000000..5d8ffe2 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/set.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "设置", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/set.wxml b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/set.wxml new file mode 100644 index 0000000..322d03e --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/set.wxml @@ -0,0 +1 @@ +用户协议隐私政策关于我们 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/xieYi.js b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/xieYi.js new file mode 100644 index 0000000..a4e8500 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/xieYi.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/me/pagesOne/set/xieYi"],{"67b8":function(t,e,a){"use strict";a.r(e);var n=a("a5d1"),i=a("f751");for(var r in i)["default"].indexOf(r)<0&&function(t){a.d(e,t,(function(){return i[t]}))}(r);var u=a("f0c5"),c=Object(u["a"])(i["default"],n["b"],n["c"],!1,null,"94a7b398",null,!1,n["a"],void 0);e["default"]=c.exports},"8a00":function(t,e,a){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var a={data:function(){return{type:0,text:""}},onLoad:function(e){this.type=e.type;var a=t.getStorageSync("system");0==this.type?(this.text=a.user_arg,t.setNavigationBarTitle({title:"用户协议"})):1==this.type?(this.text=a.privacy_agr,t.setNavigationBarTitle({title:"隐私政策"})):(this.text=a.about_us,t.setNavigationBarTitle({title:"关于我们"}))},methods:{}};e.default=a}).call(this,a("543d")["default"])},a5d1:function(t,e,a){"use strict";a.d(e,"b",(function(){return n})),a.d(e,"c",(function(){return i})),a.d(e,"a",(function(){}));var n=function(){var t=this.$createElement;this._self._c},i=[]},b7c9:function(t,e,a){"use strict";(function(t){var e=a("4ea4");a("0178");e(a("66fd"));var n=e(a("67b8"));wx.__webpack_require_UNI_MP_PLUGIN__=a,t(n.default)}).call(this,a("543d")["createPage"])},f751:function(t,e,a){"use strict";a.r(e);var n=a("8a00"),i=a.n(n);for(var r in n)["default"].indexOf(r)<0&&function(t){a.d(e,t,(function(){return n[t]}))}(r);e["default"]=i.a}},[["b7c9","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/xieYi.json b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/xieYi.json new file mode 100644 index 0000000..b43aea7 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/xieYi.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "协议", + "navigationBarBackgroundColor": "#fff", + "enablePullDownRefresh": false, + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/xieYi.wxml b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/xieYi.wxml new file mode 100644 index 0000000..40d8ad9 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/set/xieYi.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/shopJoin/shopJoin.js b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/shopJoin/shopJoin.js new file mode 100644 index 0000000..d04cb93 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/shopJoin/shopJoin.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/me/pagesOne/shopJoin/shopJoin"],{"0a51":function(e,t,a){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a={data:function(){return{licenseEdit:!1,codeEdit:!1,savelicense:"",savecode:"",shopTypeList:["商城","服务"],address:"",parmas:{type:"",busname:"",contacts:"",mobile:"",address:"",lng:"",city:"",lat:"",licenseimages:"",idcardimages:""}}},methods:{chooseLocation:function(){var t=this;e.chooseLocation({latitude:t.app.location.latitude,longitude:t.app.location.longitude,success:function(e){t.parmas.lat=e.latitude,t.parmas.lng=e.longitude}})},confirmRecharge:function(){var e=this;this.parmas.token=this.app.token;var t=this.$tools.formInfo(this.parmas);if(!t)return this.showtt("请确保字段填写完整");this.axiosFromToken("POST","user/add_business",this.parmas,"加载中").then((function(t){if(1==t.code)e.showtt("申请成功"),setTimeout((function(){e.goBack()}),500);else{for(var a in e.showtt(t.msg),e.parmas)e.parmas[a]="",e.address="";e.savelicense="",e.savecode=""}}))},shopAddressChange:function(e){this.address=e.data.join(","),this.parmas.sheng=e.data[0],this.parmas.city=e.data[1],this.parmas.area=e.data[2]},shopTypeChange:function(e){this.parmas.type=Number(e.detail.value)+1},detImg:function(e,t){1==t?(that.savecode="",that.parmas.idcardimages=""):(that.savelicense="",that.parmas.licenseimages="")},lookImage:function(t){var a=this;e.chooseImage({sizeType:["compressed"],sourceType:["album","camera"],count:1,crop:{width:200,height:200,quality:100},success:function(e){e.tempFilePaths.forEach((function(e,n){a.upload(e,t)}))}})},upload:function(t,a){var n=this,s=this,i=e.getStorageSync("token");e.showLoading({title:"加载中"}),e.uploadFile({url:s.$tools.upload,header:{token:i},filePath:t,name:"file",success:function(e){e=JSON.parse(e.data),1===e.code&&(1===a?(s.savecode=t,s.parmas.idcardimages=e.data.url):(s.savelicense=t,s.parmas.licenseimages=e.data.url))},complete:function(){e.hideLoading()},fail:function(e){n.$tools.showtt("上传失败,请重试")}})}}};t.default=a}).call(this,a("543d")["default"])},"7ea5":function(e,t,a){"use strict";(function(e){var t=a("4ea4");a("0178");t(a("66fd"));var n=t(a("9f47"));wx.__webpack_require_UNI_MP_PLUGIN__=a,e(n.default)}).call(this,a("543d")["createPage"])},9779:function(e,t,a){"use strict";a.d(t,"b",(function(){return s})),a.d(t,"c",(function(){return i})),a.d(t,"a",(function(){return n}));var n={wangdingPickerAddress:function(){return Promise.all([a.e("common/vendor"),a.e("components/wangding-pickerAddress/wangding-pickerAddress")]).then(a.bind(null,"043f"))}},s=function(){var e=this,t=e.$createElement;e._self._c;e._isMounted||(e.e0=function(t){e.licenseEdit=!e.licenseEdit},e.e1=function(t){e.codeEdit=!e.codeEdit})},i=[]},"9f47":function(e,t,a){"use strict";a.r(t);var n=a("9779"),s=a("b027");for(var i in s)["default"].indexOf(i)<0&&function(e){a.d(t,e,(function(){return s[e]}))}(i);var o=a("f0c5"),c=Object(o["a"])(s["default"],n["b"],n["c"],!1,null,null,null,!1,n["a"],void 0);t["default"]=c.exports},b027:function(e,t,a){"use strict";a.r(t);var n=a("0a51"),s=a.n(n);for(var i in n)["default"].indexOf(i)<0&&function(e){a.d(t,e,(function(){return n[e]}))}(i);t["default"]=s.a}},[["7ea5","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/shopJoin/shopJoin.json b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/shopJoin/shopJoin.json new file mode 100644 index 0000000..03a84db --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/shopJoin/shopJoin.json @@ -0,0 +1,7 @@ +{ + "navigationBarTitleText": "商家入驻", + "enablePullDownRefresh": false, + "usingComponents": { + "wangding-picker-address": "/components/wangding-pickerAddress/wangding-pickerAddress" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/shopJoin/shopJoin.wxml b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/shopJoin/shopJoin.wxml new file mode 100644 index 0000000..44c3c8f --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/shopJoin/shopJoin.wxml @@ -0,0 +1 @@ +商家类型:{{''+(parmas.type?shopTypeList[parmas.type-1]:'请选择商家类型')+''}}商家名称:联系人:联系电话:商家地址:{{''+(parmas.city?address:'请选择商家地址')+''}}详细地址:经纬度:{{parmas.lat+","+parmas.lng}}请选择经纬度商家营业执照:上传法人身份证:确认提交 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/tui/tui.js b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/tui/tui.js new file mode 100644 index 0000000..02e70b1 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/tui/tui.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/me/pagesOne/tui/tui"],{4162:function(n,t,e){"use strict";e.r(t);var o=e("d017"),i=e.n(o);for(var u in o)["default"].indexOf(u)<0&&function(n){e.d(t,n,(function(){return o[n]}))}(u);t["default"]=i.a},8428:function(n,t,e){"use strict";(function(n){var t=e("4ea4");e("0178");t(e("66fd"));var o=t(e("e1d3"));wx.__webpack_require_UNI_MP_PLUGIN__=e,n(o.default)}).call(this,e("543d")["createPage"])},a338:function(n,t,e){},cc53:function(n,t,e){"use strict";var o=e("a338"),i=e.n(o);i.a},d017:function(n,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o={data:function(){return{numInfo:{}}},onLoad:function(){this.getInvNum()},methods:{getInvNum:function(){var n=this;this.axiosFromToken("POST","user/friends",{},"加载中").then((function(t){n.numInfo=t.data}))},openPop:function(){this.$refs.pop.open()},closePop:function(){this.$refs.pop.close()}},onShareAppMessage:function(){return{title:"欢迎来到速达校园便利捷小程序",path:"pages/login/login?pid=".concat(this.app.userInfo.id)}},onShareTimeline:function(){return{title:"欢迎来到速达校园便利捷小程序",path:"pages/login/login?pid=".concat(this.app.userInfo.id)}},computed:{qr:function(){return"".concat(this.URL,"?pid=").concat(this.app.userInfo.id)}},components:{tkiQrcode:function(){Promise.all([e.e("common/vendor"),e.e("components/tki-qrcode/tki-qrcode")]).then(function(){return resolve(e("1eb8"))}.bind(null,e)).catch(e.oe)}}};t.default=o},e1d3:function(n,t,e){"use strict";e.r(t);var o=e("fb3a"),i=e("4162");for(var u in i)["default"].indexOf(u)<0&&function(n){e.d(t,n,(function(){return i[n]}))}(u);e("cc53");var c=e("f0c5"),r=Object(c["a"])(i["default"],o["b"],o["c"],!1,null,null,null,!1,o["a"],void 0);t["default"]=r.exports},fb3a:function(n,t,e){"use strict";e.d(t,"b",(function(){return i})),e.d(t,"c",(function(){return u})),e.d(t,"a",(function(){return o}));var o={uniPopup:function(){return e.e("uni_modules/uni-popup/components/uni-popup/uni-popup").then(e.bind(null,"118f"))}},i=function(){var n=this.$createElement;this._self._c},u=[]}},[["8428","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/tui/tui.json b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/tui/tui.json new file mode 100644 index 0000000..d96265d --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/tui/tui.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "邀请好友", + "enablePullDownRefresh": false, + "usingComponents": { + "uni-popup": "/uni_modules/uni-popup/components/uni-popup/uni-popup", + "tki-qrcode": "/components/tki-qrcode/tki-qrcode" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/tui/tui.wxml b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/tui/tui.wxml new file mode 100644 index 0000000..80d5275 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/tui/tui.wxml @@ -0,0 +1 @@ +奖励进度{{numInfo.user_num}}邀请人数{{numInfo.yaoqing_num}}用户注册{{numInfo.usercou_num}}卡券奖励活动规则{{app.system.friends}}知道了活动规则 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/tui/tui.wxss b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/tui/tui.wxss new file mode 100644 index 0000000..62779ca --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/tui/tui.wxss @@ -0,0 +1 @@ +page{background:#a8df93} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/userInfoChange/userInfoChange.js b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/userInfoChange/userInfoChange.js new file mode 100644 index 0000000..1582c4a --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/userInfoChange/userInfoChange.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/me/pagesOne/userInfoChange/userInfoChange"],{"0915":function(t,n,e){},"49a6":function(t,n,e){"use strict";e.r(n);var a=e("f454"),o=e("8a39");for(var u in o)["default"].indexOf(u)<0&&function(t){e.d(n,t,(function(){return o[t]}))}(u);e("ff05");var i=e("f0c5"),r=Object(i["a"])(o["default"],a["b"],a["c"],!1,null,null,null,!1,a["a"],void 0);n["default"]=r.exports},"5e6b":function(t,n,e){"use strict";(function(t){var n=e("4ea4");e("0178");n(e("66fd"));var a=n(e("49a6"));wx.__webpack_require_UNI_MP_PLUGIN__=e,t(a.default)}).call(this,e("543d")["createPage"])},"8a39":function(t,n,e){"use strict";e.r(n);var a=e("d4f7"),o=e.n(a);for(var u in a)["default"].indexOf(u)<0&&function(t){e.d(n,t,(function(){return a[t]}))}(u);n["default"]=o.a},d4f7:function(t,n,e){"use strict";(function(t){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var e={data:function(){return{userInfo:{},avatar:"",mobile:""}},onLoad:function(){var n=t.getStorageSync("userInfo");this.avatar=this.URL+n.avatar,this.userInfo.avatar=n.avatar,this.userInfo.username=n.username,this.userInfo.token=this.app.token,this.mobile=n.mobile},methods:{setProfile:function(){var t=this,n=this.$tools.formInfo(this.userInfo);if(!n)return this.showtt("请修改会员信息");this.axiosFromToken("POST","user/updateinfo",this.userInfo,"加载中").then((function(n){1==n.code?(t.showtt("更新成功"),setTimeout((function(){t.goBack()}),400)):t.showtt(n.msg)}))},lookImage:function(){var n=this;t.chooseImage({count:1,success:function(t){n.upload(t.tempFilePaths[0])},fail:function(t){console.log(t,"选择图片")}})},upload:function(n){var e=this,a=this;t.showLoading({title:"加载中"}),t.uploadFile({url:a.$tools.httpOne+"common/upload",filePath:n,name:"file",header:{token:a.app.token},success:function(t){t=JSON.parse(t.data),a.avatar=n,a.userInfo.avatar=t.data.url},complete:function(){t.hideLoading()},fail:function(t){e.$tools.showtt("上传失败,请重试")}})}}};n.default=e}).call(this,e("543d")["default"])},f454:function(t,n,e){"use strict";e.d(n,"b",(function(){return o})),e.d(n,"c",(function(){return u})),e.d(n,"a",(function(){return a}));var a={uniNavBar:function(){return e.e("uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar").then(e.bind(null,"9df8"))}},o=function(){var t=this.$createElement;this._self._c},u=[]},ff05:function(t,n,e){"use strict";var a=e("0915"),o=e.n(a);o.a}},[["5e6b","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/userInfoChange/userInfoChange.json b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/userInfoChange/userInfoChange.json new file mode 100644 index 0000000..2966c99 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/userInfoChange/userInfoChange.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "个人信息", + "navigationStyle": "custom", + "enablePullDownRefresh": false, + "usingComponents": { + "uni-nav-bar": "/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/userInfoChange/userInfoChange.wxml b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/userInfoChange/userInfoChange.wxml new file mode 100644 index 0000000..08c2938 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/userInfoChange/userInfoChange.wxml @@ -0,0 +1 @@ +点击更换头像用户名手机号{{mobile}}保存 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/me/pagesOne/userInfoChange/userInfoChange.wxss b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/userInfoChange/userInfoChange.wxss new file mode 100644 index 0000000..f675812 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/me/pagesOne/userInfoChange/userInfoChange.wxss @@ -0,0 +1 @@ +page{background-color:#f7f6fa}input{text-align:right} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/qushi/pushQuShi.js b/unpackage/dist/build/mp-weixin/pages/qushi/pushQuShi.js new file mode 100644 index 0000000..3f8c837 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/qushi/pushQuShi.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/qushi/pushQuShi"],{1657:function(e,t,n){"use strict";n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return r})),n.d(t,"a",(function(){}));var a=function(){var e=this,t=e.$createElement;e._self._c;e._isMounted||(e.e0=function(t,n){var a=arguments[arguments.length-1].currentTarget.dataset,r=a.eventParams||a["event-params"];n=r.inex;e.parmas.type=n+1})},r=[]},"644a":function(e,t,n){"use strict";(function(e){var a=n("4ea4");Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=a(n("9523"));function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}var i={data:function(){return{quImage:[],parmas:{type:1,content:"",images:[]}}},methods:{push:function(){var e=this,t=this.$tools.formInfo(this.parmas);if(!t)return this.showtt("请填写所有信息");var n=function(e){for(var t=1;t选择类型{{''+item+''}}发布 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/qushi/pushQuShi.wxss b/unpackage/dist/build/mp-weixin/pages/qushi/pushQuShi.wxss new file mode 100644 index 0000000..06a4371 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/qushi/pushQuShi.wxss @@ -0,0 +1 @@ +page.data-v-1ee0e246{background:#f7f6fa}.item.data-v-1ee0e246{width:186rpx;height:62rpx;text-align:center;line-height:62rpx;border-radius:12rpx;background:#f3f3f3;color:#999;font-size:28rpx;margin-right:32rpx;margin-top:20rpx}.active.data-v-1ee0e246{background:#feb262!important;color:#fff} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/qushi/quDet.js b/unpackage/dist/build/mp-weixin/pages/qushi/quDet.js new file mode 100644 index 0000000..86ba099 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/qushi/quDet.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/qushi/quDet"],{"2aaf":function(n,t,e){"use strict";e.r(t);var o=e("6d68"),i=e("c094");for(var u in i)["default"].indexOf(u)<0&&function(n){e.d(t,n,(function(){return i[n]}))}(u);var s=e("f0c5"),c=Object(s["a"])(i["default"],o["b"],o["c"],!1,null,"751e2e93",null,!1,o["a"],void 0);t["default"]=c.exports},"3c9c":function(n,t,e){"use strict";(function(n){var t=e("4ea4");e("0178");t(e("66fd"));var o=t(e("2aaf"));wx.__webpack_require_UNI_MP_PLUGIN__=e,n(o.default)}).call(this,e("543d")["createPage"])},"6d68":function(n,t,e){"use strict";e.d(t,"b",(function(){return i})),e.d(t,"c",(function(){return u})),e.d(t,"a",(function(){return o}));var o={uniPopup:function(){return e.e("uni_modules/uni-popup/components/uni-popup/uni-popup").then(e.bind(null,"118f"))},uniPopupDialog:function(){return Promise.all([e.e("common/vendor"),e.e("uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog")]).then(e.bind(null,"3234"))}},i=function(){var n=this.$createElement;this._self._c},u=[]},c094:function(n,t,e){"use strict";e.r(t);var o=e("d5c0"),i=e.n(o);for(var u in o)["default"].indexOf(u)<0&&function(n){e.d(t,n,(function(){return o[n]}))}(u);t["default"]=i.a},d5c0:function(n,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={data:function(){return{quId:"",quDet:{},commentList:[],onCommentId:""}},onLoad:function(n){this.quId=n.id,this.getQuDet(),this.getComment()},methods:{dianZan:function(n){var t=this;this.axiosFromToken("POST","user/fabulous",{interesting_id:n},"加载中").then((function(n){t.showtt(n.msg),"点赞成功"==n.msg?t.quDet.fabulous_num++:t.quDet.fabulous_num--}))},writeComment:function(n){var t=this;this.axiosFromToken("POST","user/comment",{interesting_id:this.quId,pid:this.onCommentId,content:n},"加载中").then((function(n){t.showtt(n.msg),t.close(),t.getComment(),1==n.code&&t.quDet.comment_num++}))},close:function(){this.$refs.writeComment.close()},openComment:function(n){this.onCommentId=n,this.$refs.writeComment.open()},getQuDet:function(){var n=this;this.axiosFromToken("POST","index/interesting",{id:this.quId},"加载中").then((function(t){n.quDet=t.data}))},getComment:function(){var n=this;this.axiosFromToken("POST","index/comment_sel",{interesting_id:this.quId},"加载中").then((function(t){n.commentList=t.data}))}}}}},[["3c9c","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/qushi/quDet.json b/unpackage/dist/build/mp-weixin/pages/qushi/quDet.json new file mode 100644 index 0000000..c767287 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/qushi/quDet.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "趣事详情", + "enablePullDownRefresh": false, + "usingComponents": { + "uni-popup": "/uni_modules/uni-popup/components/uni-popup/uni-popup", + "uni-popup-dialog": "/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/qushi/quDet.wxml b/unpackage/dist/build/mp-weixin/pages/qushi/quDet.wxml new file mode 100644 index 0000000..589ce3e --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/qushi/quDet.wxml @@ -0,0 +1 @@ +{{quDet.username||''}}{{quDet.createtime||''}}{{quDet.content||''}}{{"("+(quDet.fabulous_num||0)+")"}}{{"("+(quDet.comment_num||0)+")"}}{{item.username}}{{item.createtime}}回复{{item.content}}{{vlaue.username}}{{vlaue.createtime}}{{vlaue.content}} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/qushi/qushi.js b/unpackage/dist/build/mp-weixin/pages/qushi/qushi.js new file mode 100644 index 0000000..ed3abd9 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/qushi/qushi.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/qushi/qushi"],{5129:function(n,t,e){"use strict";e.d(t,"b",(function(){return i})),e.d(t,"c",(function(){return r})),e.d(t,"a",(function(){return u}));var u={uniNavBar:function(){return e.e("uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar").then(e.bind(null,"9df8"))},vTabs:function(){return e.e("components/v-tabs/v-tabs").then(e.bind(null,"a639"))}},i=function(){var n=this.$createElement;this._self._c},r=[]},"63c2":function(n,t,e){"use strict";e.r(t);var u=e("5129"),i=e("78e6");for(var r in i)["default"].indexOf(r)<0&&function(n){e.d(t,n,(function(){return i[n]}))}(r);e("ab0a");var a=e("f0c5"),s=Object(a["a"])(i["default"],u["b"],u["c"],!1,null,null,null,!1,u["a"],void 0);t["default"]=s.exports},"78e6":function(n,t,e){"use strict";e.r(t);var u=e("82b9"),i=e.n(u);for(var r in u)["default"].indexOf(r)<0&&function(n){e.d(t,n,(function(){return u[n]}))}(r);t["default"]=i.a},"82b9":function(n,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var u={data:function(){return{tabs:["校园趣事","二手闲置","兼职赚钱"],quList:[],current:0,keyword:"",pages:1,isPush:!0}},onLoad:function(){this.getQuList(0)},methods:{search:function(){if(!this.keyword)return this.showtt("请输入有效关键词");this.getQuList(this.current)},dianZan:function(n,t){var e=this;this.axiosFromToken("POST","user/fabulous",{interesting_id:n},"加载中").then((function(n){e.showtt(n.msg),"点赞成功"==n.msg?e.quList[t].fabulous_num++:e.quList[t].fabulous_num--}))},getQuList:function(n){var t=this;this.current=n,this.axiosFromToken("POST","index/sel_interesting",{type:Number(this.current)+1,keyword:this.keyword},"加载中").then((function(n){t.quList=n.data}))}}};t.default=u},ab0a:function(n,t,e){"use strict";var u=e("e61f"),i=e.n(u);i.a},b1f5:function(n,t,e){"use strict";(function(n){var t=e("4ea4");e("0178");t(e("66fd"));var u=t(e("63c2"));wx.__webpack_require_UNI_MP_PLUGIN__=e,n(u.default)}).call(this,e("543d")["createPage"])},e61f:function(n,t,e){}},[["b1f5","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/qushi/qushi.json b/unpackage/dist/build/mp-weixin/pages/qushi/qushi.json new file mode 100644 index 0000000..0f434fc --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/qushi/qushi.json @@ -0,0 +1,9 @@ +{ + "navigationBarTitleText": "趣事", + "enablePullDownRefresh": false, + "navigationStyle": "custom", + "usingComponents": { + "uni-nav-bar": "/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar", + "v-tabs": "/components/v-tabs/v-tabs" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/qushi/qushi.wxml b/unpackage/dist/build/mp-weixin/pages/qushi/qushi.wxml new file mode 100644 index 0000000..b6c30f4 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/qushi/qushi.wxml @@ -0,0 +1 @@ +搜索{{item.username}}{{item.createtime}}{{item.content}}{{"("+item.fabulous_num+")"}}{{"("+item.comment_num+")"}}暂无相关趣事 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/qushi/qushi.wxss b/unpackage/dist/build/mp-weixin/pages/qushi/qushi.wxss new file mode 100644 index 0000000..4a60d98 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/qushi/qushi.wxss @@ -0,0 +1 @@ +page{background:#f7f6fa} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/shopCart/confirmOrder.js b/unpackage/dist/build/mp-weixin/pages/shopCart/confirmOrder.js new file mode 100644 index 0000000..7c318b6 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/shopCart/confirmOrder.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/shopCart/confirmOrder"],{"14d3":function(t,o,n){"use strict";n.r(o);var e=n("c68a"),i=n.n(e);for(var s in e)["default"].indexOf(s)<0&&function(t){n.d(o,t,(function(){return e[t]}))}(s);o["default"]=i.a},"3dfd":function(t,o,n){"use strict";n.r(o);var e=n("ef0b"),i=n("14d3");for(var s in i)["default"].indexOf(s)<0&&function(t){n.d(o,t,(function(){return i[t]}))}(s);n("47de");var r=n("f0c5"),a=Object(r["a"])(i["default"],e["b"],e["c"],!1,null,null,null,!1,e["a"],void 0);o["default"]=a.exports},"47de":function(t,o,n){"use strict";var e=n("c338"),i=n.n(e);i.a},c338:function(t,o,n){},c68a:function(t,o,n){"use strict";(function(t){var e=n("4ea4");Object.defineProperty(o,"__esModule",{value:!0}),o.default=void 0;var s=e(n("9523"));function r(t,o){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(t);o&&(e=e.filter((function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable}))),n.push.apply(n,e)}return n}function a(t){for(var o=1;o30?this.hoursList.push("".concat(n,":30-").concat(n+1,":00")):this.hoursList.push("".concat(n,":00-").concat(n,":30"));for(var e=1;e<=4;e++)this.hoursList.push("".concat(n+e,":00-").concat(n+e,":30")),this.hoursList.push("".concat(n+e,":30-").concat(n+1+e,":00"))},openTime:function(){-1==this.onHour&&(this.onHour=0),this.$refs.time.open()},closeTime:function(t){this.onHour=t,this.$refs.time.close()},onCommit:function(){var t=this;if(!this.address||!this.address.id)return this.showtt("请填写收货地址");if(this.parmas.address_id=this.address.id,this.parmas.carinfo.forEach((function(o,n){o.coupon_id=t.onCoupon[n].id||""})),this.saveImg&&this.saveImg[0]&&(this.parmas.images=this.saveImg.join(",")),2==this.parmas.type){if(-1==this.onHour)return this.showtt("请选择预约时间");this.parmas.ment=this.hoursList[i]}var o=a({},this.parmas);o.carinfo=JSON.stringify(o.carinfo),this.axiosFromToken("POST","order/order_goods",o,"正在提交订单").then((function(o){t.getPayParmas(o.data.orderno||o.data)}))},getPayParmas:function(o){this.$tools.axiosFromToken("POST","pay/pay",{orderno:o},"加载中").then((function(o){getApp().payFn("wxpay",o.data).then((function(o){t.showToast({title:"支付成功!"}),setTimeout((function(){t.navigateBack({delta:1})}),1e3)})).catch((function(o){t.navigateBack({delta:1})}))}))},addressTap:function(){this.$tools.goNext("/pages/me/pagesOne/address/addressEdit/addressEdit?type=1")},getAddress:function(){var t=this;this.axiosFromToken("POST","user/sel_address",{},"加载中").then((function(o){o.data&&(t.address=o.data.find((function(t){return 1==t.default})))}))},detImg:function(t){this.remarksImg.splice(t,1),this.saveImg.splice(t,1)},lookImage:function(){var o=this;t.chooseImage({sizeType:["compressed"],sourceType:["album","camera"],count:1,success:function(t){t.tempFilePaths.forEach((function(t,n){o.upload(t)}))}})},upload:function(o){var n=this,e=this,i=t.getStorageSync("token");t.showLoading({title:"加载中"}),t.uploadFile({url:e.$tools.upload,header:{token:i},filePath:o,name:"file",success:function(t){t=JSON.parse(t.data),1===t.code&&(e.remarksImg.push(o),e.saveImg.push(t.data.url))},complete:function(){t.hideLoading()},fail:function(t){n.$tools.showtt("上传失败,请重试")}})}}};o.default=u}).call(this,n("543d")["default"])},dafc:function(t,o,n){"use strict";(function(t){var o=n("4ea4");n("0178");o(n("66fd"));var e=o(n("3dfd"));wx.__webpack_require_UNI_MP_PLUGIN__=n,t(e.default)}).call(this,n("543d")["createPage"])},ef0b:function(t,o,n){"use strict";n.d(o,"b",(function(){return i})),n.d(o,"c",(function(){return s})),n.d(o,"a",(function(){return e}));var e={uniIcons:function(){return Promise.all([n.e("common/vendor"),n.e("uni_modules/uni-icons/components/uni-icons/uni-icons")]).then(n.bind(null,"aed4"))},uniPopup:function(){return n.e("uni_modules/uni-popup/components/uni-popup/uni-popup").then(n.bind(null,"118f"))}},i=function(){var t=this,o=t.$createElement,n=(t._self._c,t.__map(t.cartList,(function(o,n){var e=t.__get_orig(o),i=o.goods&&o.goods[0]?o.pack.toFixed(2):null,s=o.goods&&o.goods[0]?t.totalPrice(o):null,r=o.goods&&o.goods[0]?t.totalPrice(o):null;return{$orig:e,g0:i,m0:s,m1:r}}))),e=t.cartTotalPriceCoupon();t.$mp.data=Object.assign({},{$root:{l0:n,m2:e}})},s=[]}},[["dafc","common/runtime","common/vendor"]]]); \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/shopCart/confirmOrder.json b/unpackage/dist/build/mp-weixin/pages/shopCart/confirmOrder.json new file mode 100644 index 0000000..1200538 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/shopCart/confirmOrder.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "提交订单", + "enablePullDownRefresh": false, + "usingComponents": { + "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons", + "uni-popup": "/uni_modules/uni-popup/components/uni-popup/uni-popup" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/shopCart/confirmOrder.wxml b/unpackage/dist/build/mp-weixin/pages/shopCart/confirmOrder.wxml new file mode 100644 index 0000000..ee1c05e --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/shopCart/confirmOrder.wxml @@ -0,0 +1 @@ +{{address.name}}{{address.mobile}}{{address.areas+address.address}}选择收货地址{{value.$orig.busname}}{{item.goodsname}}{{item.introduce}}{{"¥"+item.price}}{{"x"+item.num}}打包费{{"¥"+value.g0}}配送费{{"¥"+app.system.delivery}}优惠券{{onCoupon[ind]&&onCoupon[ind].id?'满'+onCoupon[ind].condition+'减'+onCoupon[ind].price+'元':'暂无优惠券'}}合计:{{"¥"+value.m1}}预约时间{{onHour==-1?'请选择预约时间':hoursList[onHour]}}备注实付:{{$root.m2}}去结算请选择预约时间{{item}} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/shopCart/confirmOrder.wxss b/unpackage/dist/build/mp-weixin/pages/shopCart/confirmOrder.wxss new file mode 100644 index 0000000..c79290d --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/shopCart/confirmOrder.wxss @@ -0,0 +1 @@ +page{background:#f1f1f1}.active{background:#8fc57c!important;color:#fff} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/shopCart/shopCart.js b/unpackage/dist/build/mp-weixin/pages/shopCart/shopCart.js new file mode 100644 index 0000000..e34f158 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/shopCart/shopCart.js @@ -0,0 +1 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["pages/shopCart/shopCart"],{"0d5d":function(t,n,o){"use strict";(function(t){var n=o("4ea4");o("0178");n(o("66fd"));var e=n(o("193f"));wx.__webpack_require_UNI_MP_PLUGIN__=o,t(e.default)}).call(this,o("543d")["createPage"])},1532:function(t,n,o){"use strict";o.r(n);var e=o("542c"),i=o.n(e);for(var s in e)["default"].indexOf(s)<0&&function(t){o.d(n,t,(function(){return e[t]}))}(s);n["default"]=i.a},"193f":function(t,n,o){"use strict";o.r(n);var e=o("bbe1"),i=o("1532");for(var s in i)["default"].indexOf(s)<0&&function(t){o.d(n,t,(function(){return i[t]}))}(s);o("c9c7");var r=o("f0c5"),c=Object(r["a"])(i["default"],e["b"],e["c"],!1,null,null,null,!1,e["a"],void 0);n["default"]=c.exports},"542c":function(t,n,o){"use strict";var e=o("4ea4");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=e(o("448a")),s=getApp().globalData,r={data:function(){return{type:1,shopList:[],userInfo:{},token:"",collectList:[]}},onShow:function(){this.getUserCart(),this.getCollectList()},onLoad:function(){},methods:{goInfoDet:function(t,n){var o=this;this.axiosFromToken("POST","index/hours",{business_id:n},"加载中").then((function(e){1==e.data.do?o.$tools.goNext("/pages/index/pagesOne/mall/mallDet/mallDet?id=".concat(n,"&name=").concat(t,"&type=").concat(o.type)):o.showtt("该店已打烊")}))},swtichType:function(t){this.type=t,this.getUserCart()},getCollectList:function(){var t=this;this.axiosFromToken("POST","user/my_coll",{lat:this.app.location.latitude,lng:this.app.location.longitude,token:this.app.token},"加载中").then((function(n){t.collectList=n.data}))},payTap:function(){if(this.shopList[0]){var t=[];this.shopList.forEach((function(n){var o=n.goods.filter((function(t){return 1==t.onindex}));o.length>=1&&(n.goods=o,t.push(n))})),0!==t.length?(s.onGoodCart=t,this.$tools.goNext("confirmOrder?type=".concat(this.type))):this.$tools.showtt("请先选择商品")}else this.$tools.showtt("购物车无商品")},deleTap:function(){var t=this,n=[],o="";this.shopList.forEach((function(t){t.forEach((function(t){1===t.onindex&&n.push(t)}))})),n.forEach((function(t){o+=t.cart_id+=","})),console.log(o),0!==n.length?this.$tools.axiosFromToken("POST","cart/delCart",{ids:o}).then((function(n){t.getUserCart(),t.$tools.showtt("删除成功","succec")})):this.$tools.showtt("请选择商品,再进行操作")},numChange:function(t,n,o){var e=this;this.$tools.axiosFromToken("POST","order/editShoopCat",{id:this.shopList[n].goods[o].cart_id,type:t}).then((function(i){e.shopList[n].goods[o].number=t}))},getUserCart:function(){var t=this;this.axiosFromToken("POST","user/car",{type:this.type},"加载中").then((function(n){n.data[0]&&n.data.forEach((function(t){t.onindex=0,t.goods.forEach((function(t){return t.onindex=0}))})),t.shopList=n.data}))},select:function(t,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(null==o)console.log("全选"),"1"==n?(console.log("商铺全选"),console.log(this.shopList),this.shopList.forEach((function(n){n.goods[0]&&(n.onindex=t,n.goods.forEach((function(n){n.onindex=t})))}))):(this.shopList[n].onindex=t,this.shopList[n].goods.forEach((function(n){n.onindex=t})));else if("1"===o)this.shopList[n].onindex=t,this.shopList[n].goods.forEach((function(n){return n.onindex=t}));else{this.shopList[n].goods[o].onindex=t;var e=this.shopList[n].goods.every((function(t){return 1==t.onindex}));this.shopList[n].onindex=e?1:0}this.$forceUpdate()}},computed:{totol:function(){var t=[];return this.shopList.forEach((function(n){t.push.apply(t,(0,i.default)(n.goods.filter((function(t){return 1===t.onindex}))))})),t.length},totalSum:function(){if(this.shopList.length>=1){var t=[];this.shopList.forEach((function(n){t.push.apply(t,(0,i.default)(n.goods.filter((function(t){return 1===t.onindex}))))}));for(var n=0,o=0;o商城服务收藏 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/shopCart/shopCart.wxss b/unpackage/dist/build/mp-weixin/pages/shopCart/shopCart.wxss new file mode 100644 index 0000000..ce8718e --- /dev/null +++ b/unpackage/dist/build/mp-weixin/pages/shopCart/shopCart.wxss @@ -0,0 +1 @@ +page{background:#f1f1f1}.active{font-size:36rpx;font-weight:600} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/project.config.json b/unpackage/dist/build/mp-weixin/project.config.json new file mode 100644 index 0000000..15fb505 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/project.config.json @@ -0,0 +1,48 @@ +{ + "description": "项目配置文件,详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "packOptions": { + "ignore": [], + "include": [] + }, + "setting": { + "urlCheck": true, + "es6": true, + "postcss": true, + "minified": true, + "newFeature": true, + "bigPackageSizeSupport": true, + "coverView": true, + "compileHotReLoad": false, + "lazyloadPlaceholderEnable": false, + "preloadBackgroundData": false, + "autoAudits": false, + "uglifyFileName": false, + "uploadWithSourceMap": true, + "enhance": true, + "showShadowRootInWxmlPanel": true, + "packNpmManually": false, + "packNpmRelationList": [], + "minifyWXSS": true, + "disableUseStrict": false, + "ignoreUploadUnusedFiles": true, + "checkInvalidKey": true, + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + }, + "useStaticServer": true, + "showES6CompileOption": false, + "useCompilerPlugins": false, + "minifyWXML": true + }, + "compileType": "miniprogram", + "libVersion": "2.11.2", + "appid": "wxbcce181903c8097f", + "projectname": "太极", + "condition": {}, + "editorSetting": { + "tabIndent": "insertSpaces", + "tabSize": 4 + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/sitemap.json b/unpackage/dist/build/mp-weixin/sitemap.json new file mode 100644 index 0000000..cd24f35 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/sitemap.json @@ -0,0 +1,7 @@ +{ + "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html", + "rules": [{ + "action": "allow", + "page": "*" + }] +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/static/adsfa.png b/unpackage/dist/build/mp-weixin/static/adsfa.png new file mode 100644 index 0000000..a5ceb4b Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/adsfa.png differ diff --git a/unpackage/dist/build/mp-weixin/static/asdf.png b/unpackage/dist/build/mp-weixin/static/asdf.png new file mode 100644 index 0000000..c757f1b Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/asdf.png differ diff --git a/unpackage/dist/build/mp-weixin/static/asga.png b/unpackage/dist/build/mp-weixin/static/asga.png new file mode 100644 index 0000000..247e0be Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/asga.png differ diff --git a/unpackage/dist/build/mp-weixin/static/awdefa.png b/unpackage/dist/build/mp-weixin/static/awdefa.png new file mode 100644 index 0000000..40240f2 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/awdefa.png differ diff --git a/unpackage/dist/build/mp-weixin/static/bianji.png b/unpackage/dist/build/mp-weixin/static/bianji.png new file mode 100644 index 0000000..4b3d918 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/bianji.png differ diff --git a/unpackage/dist/build/mp-weixin/static/daifukuan.png b/unpackage/dist/build/mp-weixin/static/daifukuan.png new file mode 100644 index 0000000..6f88355 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/daifukuan.png differ diff --git a/unpackage/dist/build/mp-weixin/static/daipeisong.png b/unpackage/dist/build/mp-weixin/static/daipeisong.png new file mode 100644 index 0000000..6c78a17 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/daipeisong.png differ diff --git a/unpackage/dist/build/mp-weixin/static/dasfasdf.png b/unpackage/dist/build/mp-weixin/static/dasfasdf.png new file mode 100644 index 0000000..b77b0e6 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/dasfasdf.png differ diff --git a/unpackage/dist/build/mp-weixin/static/detIcon.png b/unpackage/dist/build/mp-weixin/static/detIcon.png new file mode 100644 index 0000000..9bf1a8f Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/detIcon.png differ diff --git a/unpackage/dist/build/mp-weixin/static/dianzan.png b/unpackage/dist/build/mp-weixin/static/dianzan.png new file mode 100644 index 0000000..e6664e9 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/dianzan.png differ diff --git a/unpackage/dist/build/mp-weixin/static/fabu.png b/unpackage/dist/build/mp-weixin/static/fabu.png new file mode 100644 index 0000000..62d5b33 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/fabu.png differ diff --git a/unpackage/dist/build/mp-weixin/static/fenixangusidh.png b/unpackage/dist/build/mp-weixin/static/fenixangusidh.png new file mode 100644 index 0000000..196fec2 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/fenixangusidh.png differ diff --git a/unpackage/dist/build/mp-weixin/static/fuwu.png b/unpackage/dist/build/mp-weixin/static/fuwu.png new file mode 100644 index 0000000..59bae2a Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/fuwu.png differ diff --git a/unpackage/dist/build/mp-weixin/static/gou_no.png b/unpackage/dist/build/mp-weixin/static/gou_no.png new file mode 100644 index 0000000..0461aa4 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/gou_no.png differ diff --git a/unpackage/dist/build/mp-weixin/static/gouwuche.png b/unpackage/dist/build/mp-weixin/static/gouwuche.png new file mode 100644 index 0000000..ea056a1 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/gouwuche.png differ diff --git a/unpackage/dist/build/mp-weixin/static/gouxuan.png b/unpackage/dist/build/mp-weixin/static/gouxuan.png new file mode 100644 index 0000000..edee890 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/gouxuan.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icnon-shuye.png b/unpackage/dist/build/mp-weixin/static/icnon-shuye.png new file mode 100644 index 0000000..ac35ad4 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icnon-shuye.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icnon-shuye_fill.png b/unpackage/dist/build/mp-weixin/static/icnon-shuye_fill.png new file mode 100644 index 0000000..5bc6726 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icnon-shuye_fill.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon-aa.png b/unpackage/dist/build/mp-weixin/static/icon-aa.png new file mode 100644 index 0000000..e3b593e Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon-aa.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon-aab.png b/unpackage/dist/build/mp-weixin/static/icon-aab.png new file mode 100644 index 0000000..4eba282 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon-aab.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon-aah.png b/unpackage/dist/build/mp-weixin/static/icon-aah.png new file mode 100644 index 0000000..3ce269a Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon-aah.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon-aaq.png b/unpackage/dist/build/mp-weixin/static/icon-aaq.png new file mode 100644 index 0000000..f6a2a19 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon-aaq.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon-aar.png b/unpackage/dist/build/mp-weixin/static/icon-aar.png new file mode 100644 index 0000000..9765b98 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon-aar.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon-aass.png b/unpackage/dist/build/mp-weixin/static/icon-aass.png new file mode 100644 index 0000000..1010373 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon-aass.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon-aat.png b/unpackage/dist/build/mp-weixin/static/icon-aat.png new file mode 100644 index 0000000..56d28b3 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon-aat.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon-aau.png b/unpackage/dist/build/mp-weixin/static/icon-aau.png new file mode 100644 index 0000000..89a660a Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon-aau.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon-aaww.png b/unpackage/dist/build/mp-weixin/static/icon-aaww.png new file mode 100644 index 0000000..14e923a Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon-aaww.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon-aay.png b/unpackage/dist/build/mp-weixin/static/icon-aay.png new file mode 100644 index 0000000..f2f54b6 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon-aay.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon-gouwuche.png b/unpackage/dist/build/mp-weixin/static/icon-gouwuche.png new file mode 100644 index 0000000..e8cc41d Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon-gouwuche.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon-gouwuche_fill.png b/unpackage/dist/build/mp-weixin/static/icon-gouwuche_fill.png new file mode 100644 index 0000000..227ffbb Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon-gouwuche_fill.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon-wode.png b/unpackage/dist/build/mp-weixin/static/icon-wode.png new file mode 100644 index 0000000..e41370a Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon-wode.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon-wode_fill.png b/unpackage/dist/build/mp-weixin/static/icon-wode_fill.png new file mode 100644 index 0000000..4c6b678 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon-wode_fill.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon_20.png b/unpackage/dist/build/mp-weixin/static/icon_20.png new file mode 100644 index 0000000..e1780da Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon_20.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon_qushi.png b/unpackage/dist/build/mp-weixin/static/icon_qushi.png new file mode 100644 index 0000000..a8fbd28 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon_qushi.png differ diff --git a/unpackage/dist/build/mp-weixin/static/icon_qushi_fill.png b/unpackage/dist/build/mp-weixin/static/icon_qushi_fill.png new file mode 100644 index 0000000..71e8f58 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/icon_qushi_fill.png differ diff --git a/unpackage/dist/build/mp-weixin/static/jisjkdfhg.png b/unpackage/dist/build/mp-weixin/static/jisjkdfhg.png new file mode 100644 index 0000000..e92ee8a Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/jisjkdfhg.png differ diff --git a/unpackage/dist/build/mp-weixin/static/kaquan.png b/unpackage/dist/build/mp-weixin/static/kaquan.png new file mode 100644 index 0000000..fa78865 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/kaquan.png differ diff --git a/unpackage/dist/build/mp-weixin/static/kefu.png b/unpackage/dist/build/mp-weixin/static/kefu.png new file mode 100644 index 0000000..5ab362c Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/kefu.png differ diff --git a/unpackage/dist/build/mp-weixin/static/logo.png b/unpackage/dist/build/mp-weixin/static/logo.png new file mode 100644 index 0000000..995ab09 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/logo.png differ diff --git a/unpackage/dist/build/mp-weixin/static/mv_tuhu.png b/unpackage/dist/build/mp-weixin/static/mv_tuhu.png new file mode 100644 index 0000000..3ee7b25 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/mv_tuhu.png differ diff --git a/unpackage/dist/build/mp-weixin/static/mv_tuichu.png b/unpackage/dist/build/mp-weixin/static/mv_tuichu.png new file mode 100644 index 0000000..1e4f9bc Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/mv_tuichu.png differ diff --git a/unpackage/dist/build/mp-weixin/static/mv_tuichuasef.png b/unpackage/dist/build/mp-weixin/static/mv_tuichuasef.png new file mode 100644 index 0000000..e3bdcf7 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/mv_tuichuasef.png differ diff --git a/unpackage/dist/build/mp-weixin/static/peisongzhog.png b/unpackage/dist/build/mp-weixin/static/peisongzhog.png new file mode 100644 index 0000000..79d62c9 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/peisongzhog.png differ diff --git a/unpackage/dist/build/mp-weixin/static/pingl.png b/unpackage/dist/build/mp-weixin/static/pingl.png new file mode 100644 index 0000000..526f90e Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/pingl.png differ diff --git a/unpackage/dist/build/mp-weixin/static/quanzi.png b/unpackage/dist/build/mp-weixin/static/quanzi.png new file mode 100644 index 0000000..cae6997 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/quanzi.png differ diff --git a/unpackage/dist/build/mp-weixin/static/rgsfgs.png b/unpackage/dist/build/mp-weixin/static/rgsfgs.png new file mode 100644 index 0000000..7a6a4dd Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/rgsfgs.png differ diff --git a/unpackage/dist/build/mp-weixin/static/sahnchu.png b/unpackage/dist/build/mp-weixin/static/sahnchu.png new file mode 100644 index 0000000..606a26d Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/sahnchu.png differ diff --git a/unpackage/dist/build/mp-weixin/static/sangcheng.png b/unpackage/dist/build/mp-weixin/static/sangcheng.png new file mode 100644 index 0000000..9f8fce0 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/sangcheng.png differ diff --git a/unpackage/dist/build/mp-weixin/static/sangjia.png b/unpackage/dist/build/mp-weixin/static/sangjia.png new file mode 100644 index 0000000..23bdbb5 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/sangjia.png differ diff --git a/unpackage/dist/build/mp-weixin/static/sdffgsdf.png b/unpackage/dist/build/mp-weixin/static/sdffgsdf.png new file mode 100644 index 0000000..bcd7361 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/sdffgsdf.png differ diff --git a/unpackage/dist/build/mp-weixin/static/shcang.png b/unpackage/dist/build/mp-weixin/static/shcang.png new file mode 100644 index 0000000..0c1b9cd Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/shcang.png differ diff --git a/unpackage/dist/build/mp-weixin/static/shehi.png b/unpackage/dist/build/mp-weixin/static/shehi.png new file mode 100644 index 0000000..2072e14 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/shehi.png differ diff --git a/unpackage/dist/build/mp-weixin/static/shijian.png b/unpackage/dist/build/mp-weixin/static/shijian.png new file mode 100644 index 0000000..44f0b66 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/shijian.png differ diff --git a/unpackage/dist/build/mp-weixin/static/shoucanag.png b/unpackage/dist/build/mp-weixin/static/shoucanag.png new file mode 100644 index 0000000..9d3e660 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/shoucanag.png differ diff --git a/unpackage/dist/build/mp-weixin/static/shoucang.png b/unpackage/dist/build/mp-weixin/static/shoucang.png new file mode 100644 index 0000000..1e4802a Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/shoucang.png differ diff --git a/unpackage/dist/build/mp-weixin/static/tianjiatupiab.png b/unpackage/dist/build/mp-weixin/static/tianjiatupiab.png new file mode 100644 index 0000000..0de943f Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/tianjiatupiab.png differ diff --git a/unpackage/dist/build/mp-weixin/static/top_shouye_xuanzhong.png b/unpackage/dist/build/mp-weixin/static/top_shouye_xuanzhong.png new file mode 100644 index 0000000..c5a83ad Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/top_shouye_xuanzhong.png differ diff --git a/unpackage/dist/build/mp-weixin/static/top_wode_xuanzhong.png b/unpackage/dist/build/mp-weixin/static/top_wode_xuanzhong.png new file mode 100644 index 0000000..f26be36 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/top_wode_xuanzhong.png differ diff --git a/unpackage/dist/build/mp-weixin/static/wd_gr.png b/unpackage/dist/build/mp-weixin/static/wd_gr.png new file mode 100644 index 0000000..0ea3bc4 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/wd_gr.png differ diff --git a/unpackage/dist/build/mp-weixin/static/weizhi.png b/unpackage/dist/build/mp-weixin/static/weizhi.png new file mode 100644 index 0000000..7769978 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/weizhi.png differ diff --git a/unpackage/dist/build/mp-weixin/static/yaoqing.png b/unpackage/dist/build/mp-weixin/static/yaoqing.png new file mode 100644 index 0000000..56cf949 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/yaoqing.png differ diff --git a/unpackage/dist/build/mp-weixin/static/yijianfankl.png b/unpackage/dist/build/mp-weixin/static/yijianfankl.png new file mode 100644 index 0000000..e0f0bfa Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/yijianfankl.png differ diff --git a/unpackage/dist/build/mp-weixin/static/yiquxiao.png b/unpackage/dist/build/mp-weixin/static/yiquxiao.png new file mode 100644 index 0000000..0956012 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/yiquxiao.png differ diff --git a/unpackage/dist/build/mp-weixin/static/yiwanchceng.png b/unpackage/dist/build/mp-weixin/static/yiwanchceng.png new file mode 100644 index 0000000..50661b1 Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/yiwanchceng.png differ diff --git a/unpackage/dist/build/mp-weixin/static/yzohihoahdf.png b/unpackage/dist/build/mp-weixin/static/yzohihoahdf.png new file mode 100644 index 0000000..d3bbcec Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/yzohihoahdf.png differ diff --git a/unpackage/dist/build/mp-weixin/static/zhinan.png b/unpackage/dist/build/mp-weixin/static/zhinan.png new file mode 100644 index 0000000..9f6732b Binary files /dev/null and b/unpackage/dist/build/mp-weixin/static/zhinan.png differ diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js b/unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js new file mode 100644 index 0000000..491e962 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js @@ -0,0 +1,10 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["uni_modules/uni-icons/components/uni-icons/uni-icons"],{"6d2c":function(n,t,e){"use strict";e.d(t,"b",(function(){return i})),e.d(t,"c",(function(){return u})),e.d(t,"a",(function(){}));var i=function(){var n=this.$createElement;this._self._c},u=[]},"8f29":function(n,t,e){},aed4:function(n,t,e){"use strict";e.r(t);var i=e("6d2c"),u=e("f0c8");for(var c in u)["default"].indexOf(c)<0&&function(n){e.d(t,n,(function(){return u[n]}))}(c);e("bf36");var o=e("f0c5"),r=Object(o["a"])(u["default"],i["b"],i["c"],!1,null,null,null,!1,i["a"],void 0);t["default"]=r.exports},bf36:function(n,t,e){"use strict";var i=e("8f29"),u=e.n(i);u.a},eb36:function(n,t,e){"use strict";var i=e("4ea4");Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var u=i(e("76bd")),c={name:"UniIcons",emits:["click"],props:{type:{type:String,default:""},color:{type:String,default:"#333333"},size:{type:[Number,String],default:16},customPrefix:{type:String,default:""}},data:function(){return{icons:u.default.glyphs}},computed:{unicode:function(){var n=this,t=this.icons.find((function(t){return t.font_class===n.type}));return t?unescape("%u".concat(t.unicode)):""},iconSize:function(){return function(n){return"number"===typeof n||/^[0-9]*$/g.test(n)?n+"px":n}(this.size)}},methods:{_onClick:function(){this.$emit("click")}}};t.default=c},f0c8:function(n,t,e){"use strict";e.r(t);var i=e("eb36"),u=e.n(i);for(var c in i)["default"].indexOf(c)<0&&function(n){e.d(t,n,(function(){return i[n]}))}(c);t["default"]=u.a}}]); +;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([ + 'uni_modules/uni-icons/components/uni-icons/uni-icons-create-component', + { + 'uni_modules/uni-icons/components/uni-icons/uni-icons-create-component':(function(module, exports, __webpack_require__){ + __webpack_require__('543d')['createComponent'](__webpack_require__("aed4")) + }) + }, + [['uni_modules/uni-icons/components/uni-icons/uni-icons-create-component']] +]); diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.json b/unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.json new file mode 100644 index 0000000..4575d1b --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "component": true +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxml b/unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxml new file mode 100644 index 0000000..807bb06 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxss b/unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxss new file mode 100644 index 0000000..9eca8bf --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxss @@ -0,0 +1 @@ +.uniui-color:before{content:"\e6cf"}.uniui-wallet:before{content:"\e6b1"}.uniui-settings-filled:before{content:"\e6ce"}.uniui-auth-filled:before{content:"\e6cc"}.uniui-shop-filled:before{content:"\e6cd"}.uniui-staff-filled:before{content:"\e6cb"}.uniui-vip-filled:before{content:"\e6c6"}.uniui-plus-filled:before{content:"\e6c7"}.uniui-folder-add-filled:before{content:"\e6c8"}.uniui-color-filled:before{content:"\e6c9"}.uniui-tune-filled:before{content:"\e6ca"}.uniui-calendar-filled:before{content:"\e6c0"}.uniui-notification-filled:before{content:"\e6c1"}.uniui-wallet-filled:before{content:"\e6c2"}.uniui-medal-filled:before{content:"\e6c3"}.uniui-gift-filled:before{content:"\e6c4"}.uniui-fire-filled:before{content:"\e6c5"}.uniui-refreshempty:before{content:"\e6bf"}.uniui-location-filled:before{content:"\e6af"}.uniui-person-filled:before{content:"\e69d"}.uniui-personadd-filled:before{content:"\e698"}.uniui-back:before{content:"\e6b9"}.uniui-forward:before{content:"\e6ba"}.uniui-arrow-right:before{content:"\e6bb"}.uniui-arrowthinright:before{content:"\e6bb"}.uniui-arrow-left:before{content:"\e6bc"}.uniui-arrowthinleft:before{content:"\e6bc"}.uniui-arrow-up:before{content:"\e6bd"}.uniui-arrowthinup:before{content:"\e6bd"}.uniui-arrow-down:before{content:"\e6be"}.uniui-arrowthindown:before{content:"\e6be"}.uniui-bottom:before{content:"\e6b8"}.uniui-arrowdown:before{content:"\e6b8"}.uniui-right:before{content:"\e6b5"}.uniui-arrowright:before{content:"\e6b5"}.uniui-top:before{content:"\e6b6"}.uniui-arrowup:before{content:"\e6b6"}.uniui-left:before{content:"\e6b7"}.uniui-arrowleft:before{content:"\e6b7"}.uniui-eye:before{content:"\e651"}.uniui-eye-filled:before{content:"\e66a"}.uniui-eye-slash:before{content:"\e6b3"}.uniui-eye-slash-filled:before{content:"\e6b4"}.uniui-info-filled:before{content:"\e649"}.uniui-reload:before{content:"\e6b2"}.uniui-micoff-filled:before{content:"\e6b0"}.uniui-map-pin-ellipse:before{content:"\e6ac"}.uniui-map-pin:before{content:"\e6ad"}.uniui-location:before{content:"\e6ae"}.uniui-starhalf:before{content:"\e683"}.uniui-star:before{content:"\e688"}.uniui-star-filled:before{content:"\e68f"}.uniui-calendar:before{content:"\e6a0"}.uniui-fire:before{content:"\e6a1"}.uniui-medal:before{content:"\e6a2"}.uniui-font:before{content:"\e6a3"}.uniui-gift:before{content:"\e6a4"}.uniui-link:before{content:"\e6a5"}.uniui-notification:before{content:"\e6a6"}.uniui-staff:before{content:"\e6a7"}.uniui-vip:before{content:"\e6a8"}.uniui-folder-add:before{content:"\e6a9"}.uniui-tune:before{content:"\e6aa"}.uniui-auth:before{content:"\e6ab"}.uniui-person:before{content:"\e699"}.uniui-email-filled:before{content:"\e69a"}.uniui-phone-filled:before{content:"\e69b"}.uniui-phone:before{content:"\e69c"}.uniui-email:before{content:"\e69e"}.uniui-personadd:before{content:"\e69f"}.uniui-chatboxes-filled:before{content:"\e692"}.uniui-contact:before{content:"\e693"}.uniui-chatbubble-filled:before{content:"\e694"}.uniui-contact-filled:before{content:"\e695"}.uniui-chatboxes:before{content:"\e696"}.uniui-chatbubble:before{content:"\e697"}.uniui-upload-filled:before{content:"\e68e"}.uniui-upload:before{content:"\e690"}.uniui-weixin:before{content:"\e691"}.uniui-compose:before{content:"\e67f"}.uniui-qq:before{content:"\e680"}.uniui-download-filled:before{content:"\e681"}.uniui-pyq:before{content:"\e682"}.uniui-sound:before{content:"\e684"}.uniui-trash-filled:before{content:"\e685"}.uniui-sound-filled:before{content:"\e686"}.uniui-trash:before{content:"\e687"}.uniui-videocam-filled:before{content:"\e689"}.uniui-spinner-cycle:before{content:"\e68a"}.uniui-weibo:before{content:"\e68b"}.uniui-videocam:before{content:"\e68c"}.uniui-download:before{content:"\e68d"}.uniui-help:before{content:"\e679"}.uniui-navigate-filled:before{content:"\e67a"}.uniui-plusempty:before{content:"\e67b"}.uniui-smallcircle:before{content:"\e67c"}.uniui-minus-filled:before{content:"\e67d"}.uniui-micoff:before{content:"\e67e"}.uniui-closeempty:before{content:"\e66c"}.uniui-clear:before{content:"\e66d"}.uniui-navigate:before{content:"\e66e"}.uniui-minus:before{content:"\e66f"}.uniui-image:before{content:"\e670"}.uniui-mic:before{content:"\e671"}.uniui-paperplane:before{content:"\e672"}.uniui-close:before{content:"\e673"}.uniui-help-filled:before{content:"\e674"}.uniui-paperplane-filled:before{content:"\e675"}.uniui-plus:before{content:"\e676"}.uniui-mic-filled:before{content:"\e677"}.uniui-image-filled:before{content:"\e678"}.uniui-locked-filled:before{content:"\e668"}.uniui-info:before{content:"\e669"}.uniui-locked:before{content:"\e66b"}.uniui-camera-filled:before{content:"\e658"}.uniui-chat-filled:before{content:"\e659"}.uniui-camera:before{content:"\e65a"}.uniui-circle:before{content:"\e65b"}.uniui-checkmarkempty:before{content:"\e65c"}.uniui-chat:before{content:"\e65d"}.uniui-circle-filled:before{content:"\e65e"}.uniui-flag:before{content:"\e65f"}.uniui-flag-filled:before{content:"\e660"}.uniui-gear-filled:before{content:"\e661"}.uniui-home:before{content:"\e662"}.uniui-home-filled:before{content:"\e663"}.uniui-gear:before{content:"\e664"}.uniui-smallcircle-filled:before{content:"\e665"}.uniui-map-filled:before{content:"\e666"}.uniui-map:before{content:"\e667"}.uniui-refresh-filled:before{content:"\e656"}.uniui-refresh:before{content:"\e657"}.uniui-cloud-upload:before{content:"\e645"}.uniui-cloud-download-filled:before{content:"\e646"}.uniui-cloud-download:before{content:"\e647"}.uniui-cloud-upload-filled:before{content:"\e648"}.uniui-redo:before{content:"\e64a"}.uniui-images-filled:before{content:"\e64b"}.uniui-undo-filled:before{content:"\e64c"}.uniui-more:before{content:"\e64d"}.uniui-more-filled:before{content:"\e64e"}.uniui-undo:before{content:"\e64f"}.uniui-images:before{content:"\e650"}.uniui-paperclip:before{content:"\e652"}.uniui-settings:before{content:"\e653"}.uniui-search:before{content:"\e654"}.uniui-redo-filled:before{content:"\e655"}.uniui-list:before{content:"\e644"}.uniui-mail-open-filled:before{content:"\e63a"}.uniui-hand-down-filled:before{content:"\e63c"}.uniui-hand-down:before{content:"\e63d"}.uniui-hand-up-filled:before{content:"\e63e"}.uniui-hand-up:before{content:"\e63f"}.uniui-heart-filled:before{content:"\e641"}.uniui-mail-open:before{content:"\e643"}.uniui-heart:before{content:"\e639"}.uniui-loop:before{content:"\e633"}.uniui-pulldown:before{content:"\e632"}.uniui-scan:before{content:"\e62a"}.uniui-bars:before{content:"\e627"}.uniui-cart-filled:before{content:"\e629"}.uniui-checkbox:before{content:"\e62b"}.uniui-checkbox-filled:before{content:"\e62c"}.uniui-shop:before{content:"\e62f"}.uniui-headphones:before{content:"\e630"}.uniui-cart:before{content:"\e631"}@font-face{font-family:uniicons;src:url(data:font/ttf;base64,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5nkAAOZ5AAAAVQAA5noAAOZ6AAAAVgAA5nsAAOZ7AAAAVwAA5nwAAOZ8AAAAWAAA5n0AAOZ9AAAAWQAA5n4AAOZ+AAAAWgAA5n8AAOZ/AAAASAAA5oAAAOaAAAAASQAA5oEAAOaBAAAASgAA5oIAAOaCAAAASwAA5oMAAOaDAAAAKgAA5oQAAOaEAAAATAAA5oUAAOaFAAAATQAA5oYAAOaGAAAATgAA5ocAAOaHAAAATwAA5ogAAOaIAAAAKwAA5okAAOaJAAAAUAAA5ooAAOaKAAAAUQAA5osAAOaLAAAAUgAA5owAAOaMAAAAUwAA5o0AAOaNAAAAVAAA5o4AAOaOAAAARQAA5o8AAOaPAAAALAAA5pAAAOaQAAAARgAA5pEAAOaRAAAARwAA5pIAAOaSAAAAPwAA5pMAAOaTAAAAQAAA5pQAAOaUAAAAQQAA5pUAAOaVAAAAQgAA5pYAAOaWAAAAQwAA5pcAAOaXAAAARAAA5pgAAOaYAAAAFQAA5pkAAOaZAAAAOQAA5poAAOaaAAAAOgAA5psAAOabAAAAOwAA5pwAAOacAAAAPAAA5p0AAOadAAAAFAAA5p4AAOaeAAAAPQAA5p8AAOafAAAAPgAA5qAAAOagAAAALQAA5qEAAOahAAAALgAA5qIAAOaiAAAALwAA5qMAAOajAAAAMAAA5qQAAOakAAAAMQAA5qUAAOalAAAAMgAA5qYAAOamAAAAMwAA5qcAAOanAAAANAAA5qgAAOaoAAAANQAA5qkAAOapAAAANgAA5qoAAOaqAAAANwAA5qsAAOarAAAAOAAA5qwAAOasAAAAJwAA5q0AAOatAAAAKAAA5q4AAOauAAAAKQAA5q8AAOavAAAAEwAA5rAAAOawAAAAJgAA5rEAAOaxAAAAAgAA5rIAAOayAAAAJQAA5rMAAOazAAAAIgAA5rQAAOa0AAAAIwAA5rUAAOa1AAAAHQAA5rYAAOa2AAAAHgAA5rcAAOa3AAAAHwAA5rgAAOa4AAAAHAAA5rkAAOa5AAAAFgAA5roAAOa6AAAAFwAA5rsAAOa7AAAAGAAA5rwAAOa8AAAAGQAA5r0AAOa9AAAAGgAA5r4AAOa+AAAAGwAA5r8AAOa/AAAAEgAA5sAAAObAAAAADAAA5sEAAObBAAAADQAA5sIAAObCAAAADgAA5sMAAObDAAAADwAA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ZWQLc2hvcC1maWxsZWQMc3RhZmYtZmlsbGVkCnZpcC1maWxsZWQLcGx1cy1maWxsZWQRZm9sZGVyLWFkZC1maWxsZWQMeWFuc2UtZmlsbGVkC3R1bmUtZmlsbGVkD2NhbGVuZGFyLWZpbGxlZBNub3RpZmljYXRpb24tZmlsbGVkDXdhbGxldC1maWxsZWQMbWVkYWwtZmlsbGVkC2dpZnQtZmlsbGVkC2ZpcmUtZmlsbGVkDHJlZnJlc2hlbXB0eQ9sb2NhdGlvbi1maWxsZWQNcGVyc29uLWZpbGxlZBBwZXJzb25hZGQtZmlsbGVkBGJhY2sHZm9yd2FyZAthcnJvdy1yaWdodAphcnJvdy1sZWZ0CGFycm93LXVwCmFycm93LWRvd24GYm90dG9tBXJpZ2h0A3RvcARsZWZ0A2V5ZQpleWUtZmlsbGVkCWV5ZS1zbGFzaBBleWUtc2xhc2gtZmlsbGVkC2luZm8tZmlsbGVkBnJlbG9hZA1taWNvZmYtZmlsbGVkD21hcC1waW4tZWxsaXBzZQdtYXAtcGluCGxvY2F0aW9uCHN0YXJoYWxmBHN0YXILc3Rhci1maWxsZWQIY2FsZW5kYXIEZmlyZQVtZWRhbARmb250BGdpZnQEbGluawxub3RpZmljYXRpb24Fc3RhZmYDdmlwCmZvbGRlci1hZGQEdHVuZQRhdXRoBnBlcnNvbgxlbWFpbC1maWxsZWQMcGhvbmUtZmlsbGVkBXBob25lBWVtYWlsCXBlcnNvbmFkZBBjaGF0Ym94ZXMtZmlsbGVkB2NvbnRhY3QRY2hhdGJ1YmJsZS1maWxsZWQOY29udGFjdC1maWxsZWQJY2hhdGJveGVzCmNoYXRidWJibGUNdXBsb2FkLWZpbGxlZAZ1cGxvYWQGd2VpeGluB2NvbXBvc2UCcXEPZG93bmxvYWQtZmlsbGVkA3B5cQVzb3VuZAx0cmFzaC1maWxsZWQMc291bmQtZmlsbGVkBXRyYXNoD3ZpZGVvY2FtLWZpbGxlZA1zcGlubmVyLWN5Y2xlBXdlaWJvCHZpZGVvY2FtCGRvd25sb2FkBGhlbHAPbmF2aWdhdGUtZmlsbGVkCXBsdXNlbXB0eQtzbWFsbGNpcmNsZQxtaW51cy1maWxsZWQGbWljb2ZmCmNsb3NlZW1wdHkFY2xlYXIIbmF2aWdhdGUFbWludXMFaW1hZ2UDbWljCnBhcGVycGxhbmUFY2xvc2ULaGVscC1maWxsZWQRcGFwZXJwbGFuZS1maWxsZWQEcGx1cwptaWMtZmlsbGVkDGltYWdlLWZpbGxlZA1sb2NrZWQtZmlsbGVkBGluZm8GbG9ja2VkDWNhbWVyYS1maWxsZWQLY2hhdC1maWxsZWQGY2FtZXJhBmNpcmNsZQ5jaGVja21hcmtlbXB0eQRjaGF0DWNpcmNsZS1maWxsZWQEZmxhZwtmbGFnLWZpbGxlZAtnZWFyLWZpbGxlZARob21lC2hvbWUtZmlsbGVkBGdlYXISc21hbGxjaXJjbGUtZmlsbGVkCm1hcC1maWxsZWQDbWFwDnJlZnJlc2gtZmlsbGVkB3JlZnJlc2gMY2xvdWQtdXBsb2FkFWNsb3VkLWRvd25sb2FkLWZpbGxlZA5jbG91ZC1kb3dubG9hZBNjbG91ZC11cGxvYWQtZmlsbGVkBHJlZG8NaW1hZ2VzLWZpbGxlZAt1bmRvLWZpbGxlZARtb3JlC21vcmUtZmlsbGVkBHVuZG8GaW1hZ2VzCXBhcGVyY2xpcAhzZXR0aW5ncwZzZWFyY2gLcmVkby1maWxsZWQEbGlzdBBtYWlsLW9wZW4tZmlsbGVkEGhhbmQtZG93bi1maWxsZWQJaGFuZC1kb3duDmhhbmQtdXAtZmlsbGVkB2hhbmQtdXAMaGVhcnQtZmlsbGVkCW1haWwtb3BlbgVoZWFydARsb29wCHB1bGxkb3duBHNjYW4EYmFycwtjYXJ0LWZpbGxlZAhjaGVja2JveA9jaGVja2JveC1maWxsZWQEc2hvcApoZWFkcGhvbmVzBGNhcnQAAAAA) format("truetype")}.uni-icons{font-family:uniicons;text-decoration:none;text-align:center} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.js b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.js new file mode 100644 index 0000000..2761bf2 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.js @@ -0,0 +1,10 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar"],{"2b0a":function(t,n,e){"use strict";e.d(n,"b",(function(){return o})),e.d(n,"c",(function(){return r})),e.d(n,"a",(function(){return i}));var i={uniIcons:function(){return Promise.all([e.e("common/vendor"),e.e("uni_modules/uni-icons/components/uni-icons/uni-icons")]).then(e.bind(null,"aed4"))}},o=function(){var t=this.$createElement;this._self._c},r=[]},"356f":function(t,n,e){"use strict";var i=e("36d1"),o=e.n(i);o.a},"36d1":function(t,n,e){},"9a3a":function(t,n,e){"use strict";(function(t){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=function(t){return"number"===typeof t?t+"px":t},o={name:"UniNavBar",components:{statusBar:function(){e.e("uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar").then(function(){return resolve(e("c066"))}.bind(null,e)).catch(e.oe)}},emits:["clickLeft","clickRight","clickTitle"],props:{dark:{type:Boolean,default:!1},title:{type:String,default:""},leftText:{type:String,default:""},rightText:{type:String,default:""},leftIcon:{type:String,default:""},rightIcon:{type:String,default:""},fixed:{type:[Boolean,String],default:!1},color:{type:String,default:""},backgroundColor:{type:String,default:""},statusBar:{type:[Boolean,String],default:!0},shadow:{type:[Boolean,String],default:!1},border:{type:[Boolean,String],default:!0},height:{type:[Number,String],default:44},leftWidth:{type:[Number,String],default:60},rightWidth:{type:[Number,String],default:60}},computed:{themeBgColor:function(){return this.dark?this.backgroundColor?this.backgroundColor:this.dark?"#333":"#FFF":this.backgroundColor||"#FFF"},themeColor:function(){return this.dark?this.color?this.color:this.dark?"#fff":"#333":this.color||"#333"},navbarHeight:function(){return i(this.height)},leftIconWidth:function(){return i(this.leftWidth)},rightIconWidth:function(){return i(this.rightWidth)}},mounted:function(){t.report&&""!==this.title&&t.report("title",this.title)},methods:{onClickLeft:function(){this.$emit("clickLeft")},onClickRight:function(){this.$emit("clickRight")},onClickTitle:function(){this.$emit("clickTitle")}}};n.default=o}).call(this,e("543d")["default"])},"9df8":function(t,n,e){"use strict";e.r(n);var i=e("2b0a"),o=e("c8da");for(var r in o)["default"].indexOf(r)<0&&function(t){e.d(n,t,(function(){return o[t]}))}(r);e("356f");var u=e("f0c5"),a=Object(u["a"])(o["default"],i["b"],i["c"],!1,null,"7add5bbc",null,!1,i["a"],void 0);n["default"]=a.exports},c8da:function(t,n,e){"use strict";e.r(n);var i=e("9a3a"),o=e.n(i);for(var r in i)["default"].indexOf(r)<0&&function(t){e.d(n,t,(function(){return i[t]}))}(r);n["default"]=o.a}}]); +;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([ + 'uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar-create-component', + { + 'uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar-create-component':(function(module, exports, __webpack_require__){ + __webpack_require__('543d')['createComponent'](__webpack_require__("9df8")) + }) + }, + [['uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar-create-component']] +]); diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.json b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.json new file mode 100644 index 0000000..0dc90b5 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons", + "status-bar": "/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar" + } +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.wxml b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.wxml new file mode 100644 index 0000000..031f3b5 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.wxml @@ -0,0 +1 @@ +{{leftText}}{{title}}{{rightText}} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.wxss b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.wxss new file mode 100644 index 0000000..895817f --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.wxss @@ -0,0 +1 @@ +.uni-nav-bar-text.data-v-7add5bbc{font-size:14px}.uni-nav-bar-right-text.data-v-7add5bbc{font-size:12px}.uni-navbar__content.data-v-7add5bbc{position:relative;background-color:initial}.uni-navbar-btn-text.data-v-7add5bbc{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;line-height:12px}.uni-navbar__header.data-v-7add5bbc{display:flex;padding:0 10px;flex-direction:row;height:44px;font-size:12px}.uni-navbar__header-btns.data-v-7add5bbc{overflow:hidden;display:flex;flex-wrap:nowrap;flex-direction:row;width:120rpx;justify-content:center;align-items:center}.uni-navbar__header-btns-left.data-v-7add5bbc{display:flex;width:120rpx;justify-content:flex-start;align-items:center}.uni-navbar__header-btns-right.data-v-7add5bbc{display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.uni-navbar__header-container.data-v-7add5bbc{display:flex;flex:1;padding:0 10px;overflow:hidden}.uni-navbar__header-container-inner.data-v-7add5bbc{display:flex;flex:1;flex-direction:row;align-items:center;justify-content:center;font-size:12px;overflow:hidden}.uni-navbar__placeholder-view.data-v-7add5bbc{height:44px}.uni-navbar--fixed.data-v-7add5bbc{position:fixed;z-index:998;left:0;right:0}.uni-navbar--shadow.data-v-7add5bbc{box-shadow:0 1px 6px #ccc}.uni-navbar--border.data-v-7add5bbc{border-bottom-width:1rpx;border-bottom-style:solid;border-bottom-color:#eee}.uni-ellipsis-1.data-v-7add5bbc{overflow:hidden;white-space:nowrap;text-overflow:ellipsis} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.js b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.js new file mode 100644 index 0000000..b95210e --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.js @@ -0,0 +1,10 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar"],{"01b7":function(t,n,u){"use strict";u.r(n);var a=u("7247"),e=u.n(a);for(var i in a)["default"].indexOf(i)<0&&function(t){u.d(n,t,(function(){return a[t]}))}(i);n["default"]=e.a},"50c6":function(t,n,u){},7247:function(t,n,u){"use strict";(function(t){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var u={name:"UniStatusBar",data:function(){return{statusBarHeight:20}},mounted:function(){this.statusBarHeight=t.getSystemInfoSync().statusBarHeight+"px"}};n.default=u}).call(this,u("543d")["default"])},b27b:function(t,n,u){"use strict";u.d(n,"b",(function(){return a})),u.d(n,"c",(function(){return e})),u.d(n,"a",(function(){}));var a=function(){var t=this.$createElement;this._self._c},e=[]},c066:function(t,n,u){"use strict";u.r(n);var a=u("b27b"),e=u("01b7");for(var i in e)["default"].indexOf(i)<0&&function(t){u.d(n,t,(function(){return e[t]}))}(i);u("d30d");var r=u("f0c5"),c=Object(r["a"])(e["default"],a["b"],a["c"],!1,null,null,null,!1,a["a"],void 0);n["default"]=c.exports},d30d:function(t,n,u){"use strict";var a=u("50c6"),e=u.n(a);e.a}}]); +;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([ + 'uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar-create-component', + { + 'uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar-create-component':(function(module, exports, __webpack_require__){ + __webpack_require__('543d')['createComponent'](__webpack_require__("c066")) + }) + }, + [['uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar-create-component']] +]); diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.json b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.json new file mode 100644 index 0000000..4575d1b --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "component": true +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.wxml b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.wxml new file mode 100644 index 0000000..ea6243e --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.wxss b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.wxss new file mode 100644 index 0000000..4d6dd52 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.wxss @@ -0,0 +1 @@ +.uni-status-bar{height:20px} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.js b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.js new file mode 100644 index 0000000..a5a5bee --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.js @@ -0,0 +1,10 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog"],{1346:function(t,e,n){"use strict";n.d(e,"b",(function(){return i})),n.d(e,"c",(function(){return o})),n.d(e,"a",(function(){}));var i=function(){var t=this.$createElement;this._self._c},o=[]},"257a":function(t,e,n){"use strict";var i=n("4ea4");Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=i(n("fef4")),u=n("37dc"),c=i(n("240b")),l=(0,u.initVueI18n)(c.default),a=l.t,r={name:"uniPopupDialog",mixins:[o.default],emits:["confirm","close"],props:{value:{type:[String,Number],default:""},placeholder:{type:[String,Number],default:""},type:{type:String,default:"error"},mode:{type:String,default:"base"},title:{type:String,default:""},content:{type:String,default:""},beforeClose:{type:Boolean,default:!1},cancelText:{type:String,default:""},confirmText:{type:String,default:""}},data:function(){return{dialogType:"error",focus:!1,val:""}},computed:{okText:function(){return this.confirmText||a("uni-popup.ok")},closeText:function(){return this.cancelText||a("uni-popup.cancel")},placeholderText:function(){return this.placeholder||a("uni-popup.placeholder")},titleText:function(){return this.title||a("uni-popup.title")}},watch:{type:function(t){this.dialogType=t},mode:function(t){"input"===t&&(this.dialogType="info")},value:function(t){this.val=t}},created:function(){this.popup.disableMask(),"input"===this.mode?(this.dialogType="info",this.val=this.value):this.dialogType=this.type},mounted:function(){this.focus=!0},methods:{onOk:function(){"input"===this.mode?this.$emit("confirm",this.val):this.$emit("confirm"),this.beforeClose||this.popup.close()},closeDialog:function(){this.$emit("close"),this.beforeClose||this.popup.close()},close:function(){this.popup.close()}}};e.default=r},3234:function(t,e,n){"use strict";n.r(e);var i=n("1346"),o=n("ec7f");for(var u in o)["default"].indexOf(u)<0&&function(t){n.d(e,t,(function(){return o[t]}))}(u);n("f196");var c=n("f0c5"),l=Object(c["a"])(o["default"],i["b"],i["c"],!1,null,null,null,!1,i["a"],void 0);e["default"]=l.exports},dcc0:function(t,e,n){},ec7f:function(t,e,n){"use strict";n.r(e);var i=n("257a"),o=n.n(i);for(var u in i)["default"].indexOf(u)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(u);e["default"]=o.a},f196:function(t,e,n){"use strict";var i=n("dcc0"),o=n.n(i);o.a}}]); +;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([ + 'uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog-create-component', + { + 'uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog-create-component':(function(module, exports, __webpack_require__){ + __webpack_require__('543d')['createComponent'](__webpack_require__("3234")) + }) + }, + [['uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog-create-component']] +]); diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.json b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.json new file mode 100644 index 0000000..4575d1b --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "component": true +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.wxml b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.wxml new file mode 100644 index 0000000..2e24ba5 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.wxml @@ -0,0 +1 @@ +{{titleText}}{{content}}{{closeText}}{{okText}} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.wxss b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.wxss new file mode 100644 index 0000000..b269688 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.wxss @@ -0,0 +1 @@ +.uni-popup-dialog{width:300px;border-radius:11px;background-color:#fff}.uni-dialog-title{display:flex;flex-direction:row;justify-content:center;padding-top:25px}.uni-dialog-title-text{font-size:16px;font-weight:500}.uni-dialog-content{display:flex;flex-direction:row;justify-content:center;align-items:center;padding:20px}.uni-dialog-content-text{font-size:14px;color:#6c6c6c}.uni-dialog-button-group{display:flex;flex-direction:row;border-top-color:#f5f5f5;border-top-style:solid;border-top-width:1px}.uni-dialog-button{display:flex;flex:1;flex-direction:row;justify-content:center;align-items:center;height:45px}.uni-border-left{border-left-color:#f0f0f0;border-left-style:solid;border-left-width:1px}.uni-dialog-button-text{font-size:16px;color:#333}.uni-button-color{color:#007aff}.uni-dialog-input{flex:1;font-size:14px;border:1px #eee solid;height:40px;padding:0 10px;border-radius:5px;color:#555}.uni-popup__success{color:#4cd964}.uni-popup__warn{color:#f0ad4e}.uni-popup__error{color:#dd524d}.uni-popup__info{color:#909399} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js new file mode 100644 index 0000000..c4142a5 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js @@ -0,0 +1,10 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["uni_modules/uni-popup/components/uni-popup/uni-popup"],{"118f":function(t,i,o){"use strict";o.r(i);var s=o("4d71"),n=o("cdf0");for(var e in n)["default"].indexOf(e)<0&&function(t){o.d(i,t,(function(){return n[t]}))}(e);o("4114");var a=o("f0c5"),r=Object(a["a"])(n["default"],s["b"],s["c"],!1,null,null,null,!1,s["a"],void 0);i["default"]=r.exports},4114:function(t,i,o){"use strict";var s=o("fc03"),n=o.n(s);n.a},"4d71":function(t,i,o){"use strict";o.d(i,"b",(function(){return n})),o.d(i,"c",(function(){return e})),o.d(i,"a",(function(){return s}));var s={uniTransition:function(){return Promise.all([o.e("common/vendor"),o.e("uni_modules/uni-transition/components/uni-transition/uni-transition")]).then(o.bind(null,"ede9"))}},n=function(){var t=this.$createElement;this._self._c},e=[]},9089:function(t,i,o){"use strict";(function(t){Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0;var o={name:"uniPopup",components:{},emits:["change","maskClick"],props:{animation:{type:Boolean,default:!0},type:{type:String,default:"center"},isMaskClick:{type:Boolean,default:null},maskClick:{type:Boolean,default:null},backgroundColor:{type:String,default:"none"},safeArea:{type:Boolean,default:!0},maskBackgroundColor:{type:String,default:"rgba(0, 0, 0, 0.4)"}},watch:{type:{handler:function(t){this.config[t]&&this[this.config[t]](!0)},immediate:!0},isDesktop:{handler:function(t){this.config[t]&&this[this.config[this.type]](!0)},immediate:!0},maskClick:{handler:function(t){this.mkclick=t},immediate:!0},isMaskClick:{handler:function(t){this.mkclick=t},immediate:!0},showPopup:function(t){}},data:function(){return{duration:300,ani:[],showPopup:!1,showTrans:!1,popupWidth:0,popupHeight:0,config:{top:"top",bottom:"bottom",center:"center",left:"left",right:"right",message:"top",dialog:"center",share:"bottom"},maskClass:{position:"fixed",bottom:0,top:0,left:0,right:0,backgroundColor:"rgba(0, 0, 0, 0.4)"},transClass:{position:"fixed",left:0,right:0},maskShow:!0,mkclick:!0,popupstyle:this.isDesktop?"fixforpc-top":"top"}},computed:{isDesktop:function(){return this.popupWidth>=500&&this.popupHeight>=500},bg:function(){return""===this.backgroundColor||"none"===this.backgroundColor?"transparent":this.backgroundColor}},mounted:function(){var i=this;(function(){var o=t.getSystemInfoSync(),s=o.windowWidth,n=o.windowHeight,e=o.windowTop,a=o.safeArea,r=o.screenHeight;o.safeAreaInsets;i.popupWidth=s,i.popupHeight=n+(e||0),a&&i.safeArea?i.safeAreaInsets=r-a.bottom:i.safeAreaInsets=0})()},destroyed:function(){this.setH5Visible()},created:function(){null===this.isMaskClick&&null===this.maskClick?this.mkclick=!0:this.mkclick=null!==this.isMaskClick?this.isMaskClick:this.maskClick,this.animation?this.duration=300:this.duration=0,this.messageChild=null,this.clearPropagation=!1,this.maskClass.backgroundColor=this.maskBackgroundColor},methods:{setH5Visible:function(){},closeMask:function(){this.maskShow=!1},disableMask:function(){this.mkclick=!1},clear:function(t){t.stopPropagation(),this.clearPropagation=!0},open:function(t){this.showPopup&&(clearTimeout(this.timer),this.showPopup=!1);t&&-1!==["top","center","bottom","left","right","message","dialog","share"].indexOf(t)||(t=this.type),this.config[t]?(this[this.config[t]](),this.$emit("change",{show:!0,type:t})):console.error("缺少类型:",t)},close:function(t){var i=this;this.showTrans=!1,this.$emit("change",{show:!1,type:this.type}),clearTimeout(this.timer),this.timer=setTimeout((function(){i.showPopup=!1}),300)},touchstart:function(){this.clearPropagation=!1},onTap:function(){this.clearPropagation?this.clearPropagation=!1:(this.$emit("maskClick"),this.mkclick&&this.close())},top:function(t){var i=this;this.popupstyle=this.isDesktop?"fixforpc-top":"top",this.ani=["slide-top"],this.transClass={position:"fixed",left:0,right:0,backgroundColor:this.bg},t||(this.showPopup=!0,this.showTrans=!0,this.$nextTick((function(){i.messageChild&&"message"===i.type&&i.messageChild.timerClose()})))},bottom:function(t){this.popupstyle="bottom",this.ani=["slide-bottom"],this.transClass={position:"fixed",left:0,right:0,bottom:0,paddingBottom:this.safeAreaInsets+"px",backgroundColor:this.bg},t||(this.showPopup=!0,this.showTrans=!0)},center:function(t){this.popupstyle="center",this.ani=["zoom-out","fade"],this.transClass={position:"fixed",display:"flex",flexDirection:"column",bottom:0,left:0,right:0,top:0,justifyContent:"center",alignItems:"center"},t||(this.showPopup=!0,this.showTrans=!0)},left:function(t){this.popupstyle="left",this.ani=["slide-left"],this.transClass={position:"fixed",left:0,bottom:0,top:0,backgroundColor:this.bg,display:"flex",flexDirection:"column"},t||(this.showPopup=!0,this.showTrans=!0)},right:function(t){this.popupstyle="right",this.ani=["slide-right"],this.transClass={position:"fixed",bottom:0,right:0,top:0,backgroundColor:this.bg,display:"flex",flexDirection:"column"},t||(this.showPopup=!0,this.showTrans=!0)}}};i.default=o}).call(this,o("543d")["default"])},cdf0:function(t,i,o){"use strict";o.r(i);var s=o("9089"),n=o.n(s);for(var e in s)["default"].indexOf(e)<0&&function(t){o.d(i,t,(function(){return s[t]}))}(e);i["default"]=n.a},fc03:function(t,i,o){}}]); +;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([ + 'uni_modules/uni-popup/components/uni-popup/uni-popup-create-component', + { + 'uni_modules/uni-popup/components/uni-popup/uni-popup-create-component':(function(module, exports, __webpack_require__){ + __webpack_require__('543d')['createComponent'](__webpack_require__("118f")) + }) + }, + [['uni_modules/uni-popup/components/uni-popup/uni-popup-create-component']] +]); diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.json b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.json new file mode 100644 index 0000000..0496f60 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.json @@ -0,0 +1,6 @@ +{ + "usingComponents": { + "uni-transition": "/uni_modules/uni-transition/components/uni-transition/uni-transition" + }, + "component": true +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.wxml b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.wxml new file mode 100644 index 0000000..c8dbf13 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.wxss b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.wxss new file mode 100644 index 0000000..251fb2a --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.wxss @@ -0,0 +1 @@ +.uni-popup{position:fixed;z-index:99}.uni-popup.top, .uni-popup.left, .uni-popup.right{top:0}.uni-popup .uni-popup__wrapper{display:block;position:relative}.uni-popup .uni-popup__wrapper.left, .uni-popup .uni-popup__wrapper.right{padding-top:0;flex:1}.fixforpc-z-index{z-index:999}.fixforpc-top{top:0} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js b/unpackage/dist/build/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js new file mode 100644 index 0000000..2a4f179 --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js @@ -0,0 +1,10 @@ +(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["uni_modules/uni-transition/components/uni-transition/uni-transition"],{"94a4":function(t,n,i){"use strict";var e=i("4ea4");Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var o=e(i("448a")),a=e(i("7037")),r=e(i("9523")),s=i("d1f6");function c(t,n){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(t);n&&(e=e.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),i.push.apply(i,e)}return i}function u(t){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:{};t.duration&&(this.durationTime=t.duration),this.animation=(0,s.createAnimation)(Object.assign(this.config,t),this)},onClick:function(){this.$emit("click",{detail:this.isShow})},step:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.animation){for(var i in t)try{var e;if("object"===(0,a.default)(t[i]))(e=this.animation)[i].apply(e,(0,o.default)(t[i]));else this.animation[i](t[i])}catch(r){console.error("方法 ".concat(i," 不存在"))}return this.animation.step(n),this}},run:function(t){this.animation&&this.animation.run(t)},open:function(){var t=this;clearTimeout(this.timer),this.transform="",this.isShow=!0;var n=this.styleInit(!1),i=n.opacity,e=n.transform;"undefined"!==typeof i&&(this.opacity=i),this.transform=e,this.$nextTick((function(){t.timer=setTimeout((function(){t.animation=(0,s.createAnimation)(t.config,t),t.tranfromInit(!1).step(),t.animation.run(),t.$emit("change",{detail:t.isShow})}),20)}))},close:function(t){var n=this;this.animation&&this.tranfromInit(!0).step().run((function(){n.isShow=!1,n.animationData=null,n.animation=null;var t=n.styleInit(!1),i=t.opacity,e=t.transform;n.opacity=i||1,n.transform=e,n.$emit("change",{detail:n.isShow})}))},styleInit:function(t){var n=this,i={transform:""},e=function(t,e){"fade"===e?i.opacity=n.animationType(t)[e]:i.transform+=n.animationType(t)[e]+" "};return"string"===typeof this.modeClass?e(t,this.modeClass):this.modeClass.forEach((function(n){e(t,n)})),i},tranfromInit:function(t){var n=this,i=function(t,i){var e=null;"fade"===i?e=t?0:1:(e=t?"-100%":"0","zoom-in"===i&&(e=t?.8:1),"zoom-out"===i&&(e=t?1.2:1),"slide-right"===i&&(e=t?"100%":"0"),"slide-bottom"===i&&(e=t?"100%":"0")),n.animation[n.animationMode()[i]](e)};return"string"===typeof this.modeClass?i(t,this.modeClass):this.modeClass.forEach((function(n){i(t,n)})),this.animation},animationType:function(t){return{fade:t?1:0,"slide-top":"translateY(".concat(t?"0":"-100%",")"),"slide-right":"translateX(".concat(t?"0":"100%",")"),"slide-bottom":"translateY(".concat(t?"0":"100%",")"),"slide-left":"translateX(".concat(t?"0":"-100%",")"),"zoom-in":"scaleX(".concat(t?1:.8,") scaleY(").concat(t?1:.8,")"),"zoom-out":"scaleX(".concat(t?1:1.2,") scaleY(").concat(t?1:1.2,")")}},animationMode:function(){return{fade:"opacity","slide-top":"translateY","slide-right":"translateX","slide-bottom":"translateY","slide-left":"translateX","zoom-in":"scale","zoom-out":"scale"}},toLine:function(t){return t.replace(/([A-Z])/g,"-$1").toLowerCase()}}};n.default=f},e2e1:function(t,n,i){"use strict";i.d(n,"b",(function(){return e})),i.d(n,"c",(function(){return o})),i.d(n,"a",(function(){}));var e=function(){var t=this.$createElement;this._self._c},o=[]},ede9:function(t,n,i){"use strict";i.r(n);var e=i("e2e1"),o=i("f4d5");for(var a in o)["default"].indexOf(a)<0&&function(t){i.d(n,t,(function(){return o[t]}))}(a);var r=i("f0c5"),s=Object(r["a"])(o["default"],e["b"],e["c"],!1,null,null,null,!1,e["a"],void 0);n["default"]=s.exports},f4d5:function(t,n,i){"use strict";i.r(n);var e=i("94a4"),o=i.n(e);for(var a in e)["default"].indexOf(a)<0&&function(t){i.d(n,t,(function(){return e[t]}))}(a);n["default"]=o.a}}]); +;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([ + 'uni_modules/uni-transition/components/uni-transition/uni-transition-create-component', + { + 'uni_modules/uni-transition/components/uni-transition/uni-transition-create-component':(function(module, exports, __webpack_require__){ + __webpack_require__('543d')['createComponent'](__webpack_require__("ede9")) + }) + }, + [['uni_modules/uni-transition/components/uni-transition/uni-transition-create-component']] +]); diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.json b/unpackage/dist/build/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.json new file mode 100644 index 0000000..4575d1b --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "component": true +} \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.wxml b/unpackage/dist/build/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.wxml new file mode 100644 index 0000000..35c38da --- /dev/null +++ b/unpackage/dist/build/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/unpackage/dist/dev/.automator/mp-weixin/.automator.json b/unpackage/dist/dev/.automator/mp-weixin/.automator.json new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map new file mode 100644 index 0000000..38b3cb4 --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["uni-app:///main.js","webpack:////Users/white/Desktop/煜荣酒业/App.vue?8179","webpack:////Users/white/Desktop/煜荣酒业/App.vue?0210","uni-app:///App.vue","webpack:////Users/white/Desktop/煜荣酒业/App.vue?5650"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","inter","require","Vue","prototype","$tools","tools","$amapwx","amapwx","mixin","use","uView","App","mpType","app","$mount","render","staticRenderFns","components","renderjs","component","options","__file","globalData","address","openId","token","location","system","userInfo","onAddress","onGoodCart","onCoupon","addressDetail","shoppings","onLaunch","onShow","console","onHide","methods","overShare","view","withShareTicket","menus","getSystem","uni","getUserInfo","getAddress","resolve","key","title","myAmapFun","success","that","data","fail","payFn","provider","parmas","icon","reject"],"mappings":"+IAAA,MAE2D,eAC3D,WACA,QACA,WACA,WACA,WAGA,SAGA,SAAuC,2kBAXvCA,EAAGC,kCAAoCC,EAOvC,IAAMC,EAAQC,EAAQ,IAMtBC,UAAIC,UAAUC,OAASC,UACvBH,UAAIC,UAAUG,QAAUC,UAExBL,UAAIM,MAAMA,SACVN,UAAIM,MAAMR,GACVE,UAAIO,IAAIC,WAIRC,UAAIC,OAAS,MACb,IAAMC,EAAM,IAAIX,UAAI,EAAD,GACZS,YAEP,EAAAE,GAAIC,W,8EC5BJ,yHAAIC,EAAQC,EAAmCC,EAC3CC,EADJ,QASIC,EAAY,qBACd,aACAJ,EACAC,GACA,EACA,KACA,KACA,MACA,EACAC,EACAC,GAGFC,EAAUC,QAAQC,OAAS,UACZ,aAAAF,E,yCCvBf,wHAAoyB,eAAG,G,4tBCCvyB,CACAG,YACAC,WACAC,YACAC,WACAC,YACAC,UACAC,YACAC,aACAC,cACAC,YAEAC,iBACAC,cAEAC,sBAmBAC,kBACAC,yBAEAC,kBACAD,yBAEAE,SAEAC,qBAEA1C,0BACA,wBACA2C,gBACA,GACA3C,iBACA4C,mBACAC,gDAMAC,qBAAA,WACA,wEACA,2BACAC,kCACAR,sDAIAS,uBAAA,WACA,4CACApB,8BACA,kBACA,WACAW,2BACA,6BACAQ,qCAEA,2BAIAE,sBAOA,WAqBA,kCACA,yHACAC,QACA,CACA,gCAAAC,yCACAJ,eACAK,cAEAC,YACAC,oBACAP,gBAEAQ,2BACA,0CACA,wBACAC,oBAEAA,wBAEAA,6DAEAD,oCACAL,iBAEAO,iBAEAV,gBACA,wCACAQ,sBAEAhB,uBAQAmB,oBAEA,OADAnB,sBACA,2BACAQ,sBACAY,YAEAC,OAKAN,oBACAP,aACAc,eACAT,eAEAF,MAEAO,iBACAV,aACAc,aACAT,eAEAU,eAQA,c,4EC/KA,wHAA+9C,eAAG,G","file":"common/main.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;import Vue from 'vue'\nimport App from './App'\nimport {mixin} from '@/common/mixin.js'\nimport tools from 'common/tools.js'\nimport amapwx from './common/AMapWX_SDK_V1.3.0/amap-wx.130.js'\nimport uView from 'uview-ui';\n\nconst inter = require('common/interceptor.js')\nimport interceptor from '@/common/interceptor.js' \n\n\nimport common from '@/common/common.js'\n\nVue.prototype.$tools = tools ;//工具类\nVue.prototype.$amapwx = amapwx;//高德地图类\n// 混入代码\nVue.mixin(mixin)\nVue.mixin(inter)\nVue.use(uView)\n\t\n\t\n// 工具类\nApp.mpType = 'app'\nconst app = new Vue({\n ...App,\n}) \napp.$mount()","var render, staticRenderFns, recyclableRender, components\nvar renderjs\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"App.vue\"\nexport default component.exports","import mod from \"-!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n","import mod from \"-!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=scss&\""],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map new file mode 100644 index 0000000..39d8725 --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[null],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","jsonpScriptSrc","p","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","global","oldJsonpFunction","slice"],"mappings":"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","file":"common/runtime.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"common/runtime\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"common/runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + chunkId + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map new file mode 100644 index 0000000..62e61c1 --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/wx.js?3223","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js?dd3e","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js?7ca3","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js?d551","webpack:///./node_modules/@babel/runtime/helpers/typeof.js?3b2d","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js?e6db","webpack:///./node_modules/@babel/runtime/helpers/construct.js?931d","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js?7647","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js?011a","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js?af34","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js?a708","webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/index.js?df3c","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js?b893","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js?9008","webpack:///./node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js?d3b4","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js?67ad","webpack:///./node_modules/@babel/runtime/helpers/createClass.js?0bdb","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js?3240","webpack:///(webpack)/buildin/global.js?3698","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js?828b","uni-app:///common/mixin.js","uni-app:///common/tools.js","uni-app:///common/AMapWX_SDK_V1.3.0/amap-wx.130.js","uni-app:///uview-ui/index.js","uni-app:///uview-ui/libs/mixin/mixin.js","uni-app:///uview-ui/components/u-parse/libs/MpHtmlParser.js","uni-app:///uview-ui/components/u-parse/libs/config.js","uni-app:///uview-ui/components/u-parse/libs/CssHandler.js","uni-app:///uview-ui/libs/request/index.js","uni-app:///uview-ui/libs/function/deepMerge.js","uni-app:///components/address-picker/data.js","uni-app:///uni_modules/uni-icons/components/uni-icons/icons.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js?47a9","uni-app:///uview-ui/libs/function/deepClone.js","uni-app:///uview-ui/libs/function/test.js","uni-app:///uni_modules/uni-transition/components/uni-transition/createAnimation.js","uni-app:///uview-ui/libs/function/queryParams.js","uni-app:///uview-ui/libs/function/route.js","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/@babel/runtime/regenerator/index.js?7eb4","webpack:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js?9fc1","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js?ee10","uni-app:///uview-ui/libs/function/timeFormat.js","uni-app:///uview-ui/libs/function/timeFrom.js","uni-app:///uview-ui/libs/function/colorGradient.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js?34cf","uni-app:///uview-ui/libs/function/guid.js","uni-app:///uview-ui/libs/function/color.js","uni-app:///uview-ui/libs/function/type2icon.js","uni-app:///uview-ui/libs/function/randomArray.js","uni-app:///uview-ui/libs/function/addUnit.js","uni-app:///uview-ui/libs/function/random.js","uni-app:///uview-ui/libs/function/trim.js","uni-app:///uview-ui/libs/function/toast.js","uni-app:///uview-ui/libs/function/getParent.js","uni-app:///uview-ui/libs/function/$parent.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js?ed45","uni-app:///uview-ui/libs/function/sys.js","uni-app:///uview-ui/libs/function/debounce.js","uni-app:///uview-ui/libs/function/throttle.js","uni-app:///uview-ui/libs/config/config.js","uni-app:///uview-ui/libs/config/zIndex.js","uni-app:///common/interceptor.js","uni-app:///common/common.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js?7172","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js?6382","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js?6454"],"names":["objectKeys","singlePageDisableKey","target","globalThis","this","key","join","oldWx","launchOption","getLaunchOptionsSync","isWxKey","scene","includes","indexOf","initWx","newWx","canIUse","getAppBaseInfo","getSystemInfoSync","getWindowInfo","getDeviceInfo","_nonIterableRest","TypeError","module","exports","__esModule","toPropertyKey","require","_defineProperty","obj","value","Object","defineProperty","enumerable","configurable","writable","_typeof","toPrimitive","t","i","o","Symbol","iterator","constructor","prototype","r","e","call","String","Number","setPrototypeOf","isNativeReflectConstruct","_construct","Reflect","construct","apply","arguments","push","p","bind","_setPrototypeOf","__proto__","_isNativeReflectConstruct","Boolean","valueOf","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","_toConsumableArray","arr","arrayLikeToArray","_arrayWithoutHoles","Array","isArray","realAtob","b64","b64re","b64DecodeUnicode","str","decodeURIComponent","split","map","c","charCodeAt","toString","slice","getCurrentUserInfo","userInfo","token","wx","getStorageSync","tokenArr","length","uid","role","permission","tokenExpired","JSON","parse","error","Error","message","exp","iat","uniIdMixin","Vue","uniIDHasRole","roleId","uniIDHasPermission","permissionId","uniIDTokenValid","Date","now","atob","replace","test","bitmap","r1","r2","result","charAt","fromCharCode","_toString","hasOwnProperty","isFn","fn","isStr","isObject","isPlainObject","hasOwn","noop","cached","cache","create","hit","camelizeRE","camelize","_","toUpperCase","sortObject","sortObj","keys","sort","forEach","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","dedupeHooks","hooks","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","removeInterceptorHook","addInterceptor","method","removeInterceptor","wrapperHook","params","data","isPromise","then","queue","promise","Promise","resolve","callback","wrapperOptions","options","name","oldCallback","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","scopedInterceptor","invokeApi","api","invoke","promiseInterceptor","reject","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","isSyncApi","isCallbackApi","handlePromise","catch","err","shouldPromise","promisify","success","fail","complete","assign","finally","reason","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","windowWidth","pixelRatio","platform","windowInfo","deviceInfo","upx2px","number","newDeviceWidth","Math","floor","locale","LOCALE_ZH_HANS","LOCALE_ZH_HANT","LOCALE_EN","LOCALE_FR","LOCALE_ES","messages","getLocaleLanguage","localeLanguage","appBaseInfo","language","normalizeLocale","initI18nMessages","isEnableLocale","localeKeys","__uniConfig","locales","curMessages","userMessages","i18n","initVueI18n","mixin","beforeCreate","unwatch","watchLocale","$forceUpdate","$once","methods","$$t","values","setLocale","getLocale","initAppLocale","appVm","state","observable","localeWatchers","$watchLocale","get","set","v","watch","include","parts","find","part","startsWith","trim","toLowerCase","lang","getLocale$1","getApp","app","allowDefault","$vm","$locale","setLocale$1","oldLocale","onLocaleChangeCallbacks","onLocaleChange","global","interceptors","baseApi","freeze","rpx2px","findExistsPageIndex","url","pages","getCurrentPages","len","page","$page","fullPath","deviceId","redirectTo","fromArgs","exists","delta","args","existsPageIndex","previewImage","currentIndex","parseInt","current","isNaN","urls","filter","item","indicator","loop","UUID_KEY","useDeviceId","random","setStorage","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","screenHeight","getOSInfo","system","osName","osVersion","toLocaleLowerCase","populateParameters","brand","model","theme","version","fontSizeSetting","SDKVersion","deviceOrientation","extraParam","hostVersion","deviceType","getGetDeviceType","deviceBrand","getDeviceBrand","_hostName","getHostName","_deviceOrientation","_devicePixelRatio","_SDKVersion","hostLanguage","parameters","appId","process","appName","appVersion","appVersionCode","appLanguage","getAppLanguage","uniCompileVersion","uniCompilerVersion","uniRuntimeVersion","uniPlatform","deviceModel","devicePixelRatio","hostTheme","hostName","hostSDKVersion","hostFontSizeSetting","windowTop","windowBottom","osLanguage","undefined","osTheme","ua","hostPackageName","browserName","browserVersion","isUniAppX","deviceTypeMaps","ipad","windows","mac","deviceTypeMapsKeys","_model","_m","defaultLanguage","_platform","environment","host","env","getSystemInfo","showActionSheet","alertText","title","getAppAuthorizeSetting","locationReducedAccuracy","locationAccuracy","compressImage","compressedHeight","compressHeight","compressedWidth","compressWidth","protocols","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","arg1","arg2","todoApis","TODOS","createTodoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","Emitter","ctx","$on","$off","$emit","cid","cidErrMsg","enabled","eventApi","tryCatch","getApiCallbacks","apiCallbacks","param","normalizePushMessage","invokePushCallback","type","invokeGetPushCidCallbacks","onPushMessageCallbacks","stopped","getPushCidCallbacks","getPushClientId","hasSuccess","hasFail","hasComplete","onPushMessage","offPushMessage","__f__","baseInfo","shareVideoMessage","miniapp","mocks","findVmByVueId","vm","vuePid","parentVm","$children","childVm","$scope","_$vueId","initBehavior","Behavior","isPage","route","initRelation","detail","triggerEvent","selectAllComponents","mpInstance","selector","$refs","components","component","ref","dataset","toSkip","vueGeneric","scopedComponent","syncRefs","refs","newRefs","oldKeys","Set","newKeys","oldValue","newValue","every","delete","initRefs","forComponents","handleLink","event","vueOptions","parent","markMPComponent","IS_MP","OB","SKIP","isExtensible","WORKLET_RE","initWorkletMethods","mpMethods","vueMethods","matches","match","workletName","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","oldTriggerEvent","newTriggerEvent","comType","newEvent","_triggerEvent","initHook","isComponent","oldHook","__$wrappered","after","PAGE_EVENT_HOOKS","initMocks","$mp","mpType","mock","hasHook","default","extendOptions","super","mixins","initHooks","mpOptions","__call_hook","initUnknownHooks","excludes","findHooks","initHook$1","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","_$vuePid","initData","context","VUE_APP_DEBUG","stringify","__lifecycle_hooks__","PROP_TYPES","createObserver","newVal","oldVal","initBehaviors","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","virtualHost","virtualHostStyle","virtualHostClass","scopedSlotsCompiler","observer","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","vFor","propPath","valuePath","isInteger","substr","__get_value","vForItem","vForKey","processEventExtra","extra","__args__","extraObj","getObjByArray","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","getContextVm","$parent","$options","generic","handleEvent","eventOpts","eventOpt","eventsArray","isOnce","eventArray","handlerCtx","handler","path","is","once","eventChannels","getEventChannel","id","eventChannel","initEventChannel","getOpenerEventChannel","callHook","__id__","__eventChannel__","initScopedSlotsParams","center","parents","currentId","propsData","$hasSSP","slot","$getSSP","needAll","$setSSP","$initSSP","$callSSP","destroyed","parseBaseApp","store","$store","mpHost","$i18n","_i18n","appOptions","onLaunch","globalData","_isMounted","getLocaleLanguage$1","parseApp","createApp","App","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","stringifyQuery","encodeStr","val","val2","x","parseBaseComponent","vueComponentOptions","needVueOptions","multipleSlots","addGlobalClass","componentOptions","__file","lifetimes","attached","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","externalClasses","wxsCallMethods","callMethod","parseComponent","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","copyQuery","parsePage","createPage","createComponent","createSubpackageApp","onShow","onAppShow","onHide","onAppHide","createPlugin","todoApi","canIUseApi","apiName","uni","Proxy","uni$1","_iterableToArray","iter","from","_nonIterableSpread","defaultDelimiters","BaseFormatter","_caches","delimiters","tokens","compile","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","format","startDelimiter","endDelimiter","position","text","char","sub","isClosed","compiled","mode","defaultFormatter","I18n","fallbackLocale","watcher","formater","watchers","override","interpolate","watchAppLocale","newLocale","$watch","getDefaultLocale","isWatchedAppLocale","f","add","isString","hasI18nJson","jsonObj","walkJsonObj","isI18nStr","parseI18nJson","compileStr","compileI18nJsonStr","jsonStr","localeValues","unshift","compileJsonObj","compileValue","valueLocales","localValue","walk","resolveLocale","resolveLocaleChain","chain","pop","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","emptyObject","isUndef","isDef","isTrue","isFalse","isPrimitive","toRawType","isRegExp","isValidArrayIndex","n","parseFloat","isFinite","toNumber","makeMap","expectsLowerCase","list","isBuiltInTag","isReservedAttribute","remove","capitalize","hyphenateRE","hyphenate","polyfillBind","boundFn","a","l","_length","nativeBind","Function","toArray","start","to","_from","toObject","b","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","getTime","keysA","keysB","looseIndexOf","called","ASSET_TYPES","LIFECYCLE_HOOKS","config","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","def","bailRE","RegExp","parsePath","segments","_isServer","hasProto","inBrowser","window","inWeex","WXEnvironment","weexPlatform","UA","navigator","userAgent","isIE","isEdge","nativeWatch","addEventListener","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","ownKeys","has","clear","tip","generateComponentTrace","formatComponentName","hasConsole","classifyRE","classify","msg","trace","includeFile","$root","_isVue","_componentTag","repeat","tree","currentRecursiveSequence","last","Dep","subs","pushTarget","SharedObject","targetStack","popTarget","addSub","removeSub","depend","addDep","notify","update","VNode","tag","children","elm","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","raw","isStatic","isRootInsert","isComment","isCloned","asyncMeta","isAsyncPlaceholder","prototypeAccessors","child","defineProperties","createEmptyVNode","node","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","original","inserted","ob","__ob__","observeArray","dep","arrayKeys","getOwnPropertyNames","shouldObserve","toggleObserving","Observer","vmCount","copyAugment","protoAugment","src","observe","asRootData","__v_isMPComponent","defineReactive$$1","customSetter","shallow","property","getOwnPropertyDescriptor","getter","setter","childOb","dependArray","max","del","items","strats","mergeData","toVal","fromVal","mergeDataOrFn","instanceData","defaultData","mergeAssets","assertObjectType","el","defaultStrat","key$1","inject","computed","provide","checkComponents","validateComponentName","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","directives","def$$1","mergeOptions","_base","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","prop","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","assertProp","_props","getType","required","valid","expectedTypes","assertedType","assertType","expectedType","validator","getInvalidTypeMessage","simpleCheckRE","isSameType","receivedType","expectedValue","styleValue","receivedValue","isExplicable","isBoolean","explicitTypes","some","elem","handleError","info","cur","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","_handled","logError","timerFunc","initProxy","callbacks","pending","flushCallbacks","copies","setTimeout","MutationObserver","setImmediate","counter","textNode","document","createTextNode","characterData","nextTick","cb","_resolve","allowedGlobals","warnNonPresent","warnReservedPrefix","hasProxy","isBuiltInModifier","hasHandler","isAllowed","$data","getHandler","handlers","render","_withStripped","_renderProxy","mark","measure","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","perf","clearMarks","clearMeasures","startTag","endTag","normalizeEvent","passive","once$$1","createFnInvoker","fns","invoker","arguments$1","updateListeners","on","oldOn","remove$$1","createOnceHandler","old","extractPropertiesFromVNodeData","attrs","altKey","checkProp","extractPropsFromVNodeData","keyInLowerCase","hash","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","lastIndex","shift","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","source","provideDefault","resolveSlots","slots","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","next","done","renderSlot","fallback","bindObject","nodes","scopedSlotFn","_i","$createElement","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","staticRenderFns","markStatic","markOnce","markStaticNode","bindObjectListeners","existing","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_t","_q","_f","_k","_b","_v","_e","_u","_g","_d","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","_compiled","needNormalization","listeners","injections","scopedSlots","_scopeId","_c","d","createElement","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","clone","devtoolsMeta","componentVNodeHooks","init","hydrating","_isDestroyed","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","oldVnode","updateChildComponent","insert","queueActivatedComponent","activateChildComponent","destroy","deactivateChildComponent","hooksToMerge","baseCtor","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","functional","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","merged","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","$vnode","pre","applyNS","registerDeepBindings","force","style","class","initRender","_vnode","parentVnode","_renderChildren","parentData","isUpdatingChildComponent","_parentListeners","currentRenderingInstance","renderMixin","$nextTick","_render","renderError","ensureCtor","comp","base","toStringTag","factory","errorComp","resolved","owner","owners","loading","loadingComp","sync","timerLoading","timerTimeout","forceRender","renderCompleted","clearTimeout","delay","timeout","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","_target","onceHandler","oldListeners","eventsMixin","hookRE","i$1","cbs","lowerCaseEvent","setActiveInstance","prevActiveInstance","initLifecycle","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","$el","prevVnode","restoreActiveInstance","__patch__","__vue__","teardown","_watchers","_data","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","$attrs","$listeners","propKeys","_propKeys","_$updateProperties","isInInactiveTree","direct","j","MAX_UPDATE_COUNT","activatedChildren","circular","waiting","flushing","resetSchedulerState","getNow","createEvent","timeStamp","flushSchedulerQueue","before","run","user","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","emit","queueWatcher","uid$2","Watcher","expOrFn","isRenderWatcher","deep","lazy","active","dirty","deps","newDeps","depIds","newDepIds","expression","cleanupDeps","tmp","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initComputed","initWatch","propsOptions","isRoot","_getFormData","__next_tick_pending","getData","computedWatcherOptions","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","stateMixin","dataDef","propsDef","$set","$delete","immediate","uid$3","initMixin","_init","_uid","initInternalComponent","_self","_$fallback","_name","vnodeComponentOptions","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","modified","latest","sealed","sealedOptions","initUse","use","plugin","installedPlugins","_installedPlugins","install","initMixin$1","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","definition","getComponentName","pattern","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","patternTypes","KeepAlive","exclude","created","mounted","ref$1","builtInComponents","initGlobalAPI","configDef","util","defineReactive","ssrContext","ARRAYTYPE","OBJECTTYPE","NULLTYPE","UNDEFINEDTYPE","diff","syncKeys","_diff","rootCurrentType","rootPreType","currentValue","nullOrUndefined","currentType","preType","setResult","preValue","subKey","k","flushCallbacks$1","__next_tick_callbacks","log","hasRenderWatcher","nextTick$1","mpInstance$1","clearInstance","cloneWithData","dataKeys","reduce","compositionApiState","__composition_api_state__","__secret_vfa_state__","rawBindings","patch","__webviewId__","mpData","diffData","$shouldDiffData","createEmptyRender","mountComponent$1","template","updateComponent","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleBinding","bindingStyle","MP_METHODS","getTarget","internalMixin","onError","oldEmit","my","createSelectorQuery","createIntersectionObserver","__init_provide","__init_injections","__set_model","modifiers","__set_sync","__get_orig","__get_class","__get_style","dynamicStyle","staticStyle","dynamicStyleObj","styleObj","__map","iteratee","LIFECYCLE_HOOKS$1","lifecycleMixin$1","oldExtend","strategies","g","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","renderjs","__module","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","shadowRoot","_injectStyles","originalRender","h","onShareAppMessage","view","onShareTimeline","tools","httpOne","upload","URL","showtt","icon","showToast","duration","showload","mask","showLoading","clearLoginStorage","promotionUnlocked","clearStorageSync","setStorageSync","oss","goNext","navigateTo","goBack","num","navigateBack","goSwitchTab","switchTab","goReLaunch","reLaunch","goRedirectTo","axios","showLoads","request","header","hideLoading","throttle","wait","tabs","getList","axiosFrom","axiosFromToken","statusCode","showModal","content","confirm","getScrollHeight","titleH","boundingClientRect","windowHeight","exec","downloadFile","ifOpenFile","saveFile","tempFilePath","savedFilePath","openDocument","filePath","saveImage","saveImageToPhotosAlbum","lookPhoto","copyObj","newobj","imageLook","httpImgUrl","formInfo","tel","makePhoneCall","phoneNumber","ress","isSfz","idcard","isPhone","patrn","isEmail","email","search","y","getFullYear","m","getMonth","getDate","Time","time","toTimeString","timeTotimeStamp","timestamp","timeDifference","startime","endTime","stime","etime","diffTime","day","hour","minute","second","timeText","timestampDifference","timestampToTime","date","Y","M","D","getHours","getMinutes","getSeconds","getDays","leng","nowTime","oneDayTime","dateItem","ShowTime","myDate","year","month","getDay","select","isChine","reg","isForNumber","toFixed","tmCheckImage","fileName","tmCheckVideo","isPassword","copyTextH5App","setClipboardData","AMapWX","requestConfig","s","appname","sdkversion","logversion","MeRequestConfig","serviceName","getWxLocation","getLocation","longitude","latitude","getStorage","errCode","getMEKeywordsSearch","layerId","keywords","city","sortrule","pageNum","pageSize","sig","status","code","getMEIdSearch","getMEPolygonSearch","polygon","getMEaroundSearch","radius","getGeo","extensions","address","batch","getRegeo","location","regeocode","addressComponent","roads","pois","provice","district","streetNumber","street","iconPath","width","iconWidth","height","iconHeight","desc","regeocodeData","infocode","getWeather","lives","weather","temperature","winddirection","windpower","humidity","liveData","forecasts","forecast","adcode","aois","getPoiAround","querytypes","types","querykeywords","iconPathSelected","markers","poisData","getStaticmap","zoom","scale","labels","paths","traffic","getInputtips","citylimit","tips","getDrivingRoute","origin","destination","strategy","waypoints","avoidpolygons","avoidroad","taxi_cost","getWalkingRoute","getTransitRoute","cityd","distance","transits","getRidingRoute","wranning","$u","queryParams","timeFormat","timeFrom","colorGradient","colorToRgba","guid","color","sys","os","type2icon","randomArray","http","post","put","hexToRgb","rgbToHex","deepClone","deepMerge","getParent","addUnit","toast","zIndex","debounce","openShare","mpShare","getRect","$uGetRect","all","in","rect","getParentData","parentName","preventEvent","onReachBottom","beforeDestroy","array","childrenList","emoji","cfg","blankChar","CssHandler","MpHtmlParser","tagStyle","domain","DOM","audioNum","imgNum","videoNum","prot","Text","STACK","bubble","richOnlyTags","decode","amp","en","substring","entities","getUrl","isClose","section","siblings","parseEmoji","setText","popNode","setAttr","attrName","attrVal","boolAttrs","setNode","AttrName","back","onText","flag","tagName","close","selfClosingTags","ignoreTags","href","compress","useAnchor","face","autostart","autoplay","controls","lazyLoad","colspan","rowspan","align","styles","ignore","$","highlight","handleSvg","xmlns","viewbox","getStyle","childs","blockTags","trustTags","one","ten","padding","cellpadding","spacing","cellspacing","border","colNum","row","col","trs","td","cell","autoscroll","table","isLetter","TagName","EndTag","Comment","AttrValue","errorImg","quot","apos","semi","nbsp","ensp","emsp","ndash","mdash","middot","lsquo","rsquo","ldquo","rdquo","bull","hellip","userAgentStyles","big","blockquote","caption","cite","dd","small","u","rp","parser","Space","matched","Name","Ignore","NameSpace","Content","Comma","Request","baseUrl","dataType","responseType","loadingText","loadingTime","timer","originalData","loadingMask","response","customConfig","interceptorRequest","resInterceptors","validate","_interopRequireDefault","NaN","mobile","dateISO","digits","idCard","carNo","xreg","creg","amount","chinese","letter","enOrNum","contains","range","rangeLength","landline","empty","jsonString","object","isEmpty","MPAnimation","_this","animation","createAnimation","currentStepAnimates","aniObj","animateTypes1","transform","unit","nvueAnimation","transition","animates","step","_animateRun","_nvueNextAnimate","isEnd","animationData","export","durationTime","animateTypes2","animateTypes3","isPrefix","arrayFormat","prefix","_result","_value","commaStr","Router","animationType","animationDuration","intercept","addRootPath","mergeConfig","mixinParam","routeIntercept","isNext","openPage","runtime","_regeneratorRuntime","asyncIterator","define","wrap","Generator","Context","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","defineIteratorMethods","_invoke","AsyncIterator","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","awrap","reverse","prev","stop","rval","handle","finish","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","self","dateTime","fmt","opt","padStart","maxLength","fillString","fillLength","times","ceil","startColor","endColor","startRGB","startR","startG","startB","endRGB","endR","endG","endB","sR","sG","sB","colorArr","hex","round","sColor","sColorNew","sColorChange","rgb","aColor","strHex","aNum","numHex","alpha","arrayWithHoles","iterableToArrayLimit","nonIterableRest","_slicedToArray","firstU","radix","chars","uuid","primary","primaryDark","primaryDisabled","primaryLight","bgColor","infoDark","infoDisabled","infoLight","warning","warningDark","warningDisabled","warningLight","errorDark","errorDisabled","errorLight","successDark","successDisabled","successLight","mainColor","contentColor","tipsColor","lightColor","borderColor","fill","iconName","validation","min","gab","pos","_arrayWithHoles","func","callNow","noNetwork","popup","navbar","topTips","sticky","indexListSticky","blackList","tokenList","login","noMultipleClicks","that","noClick","$utils","_iterableToArrayLimit","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr2"],"mappings":"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CA,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,IACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,OACA,OACA,UACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,OACA,MACA,KACA,KACA,MACA,MACA,MACA,SAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,SACA,MACA,MACA,MACA,MACA,MACA,UACA,UACA,eAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,UACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,UACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,OACA,OACA,MACA,SAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,OACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,OACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,MACA,MACA,OACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,QACR,KAAQ,CACN,MACA,MACA,MACA,OACA,QACA,OACA,QACA,OACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,OACA,MACA,OACA,OACA,OACA,QACA,MACA,cAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,OACA,MACA,SACA,OACA,OACA,MACA,QACA,OACA,OACA,MACA,QAGJ,CACE,KAAQ,QACR,KAAQ,CACN,OACA,OACA,OACA,OACA,MACA,QACA,MACA,cACA,SACA,UACA,SACA,SACA,UAGJ,CACE,KAAQ,MACR,KAAQ,CACN,QACA,OACA,UACA,UACA,OACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,QACA,UACA,UACA,MACA,MACA,MACA,SAGJ,CACE,KAAQ,QACR,KAAQ,CACN,QACA,QACA,OACA,QACA,QACA,SACA,SACA,OACA,MACA,OACA,MACA,QAGJ,CACE,KAAQ,QACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,UACA,UACA,UACA,SAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,OACA,OACA,QACA,OACA,MACA,MACA,UAGJ,CACE,KAAQ,QACR,KAAQ,CACN,MACA,MACA,MACA,QACA,QACA,QACA,SAGJ,CACE,KAAQ,OACR,KAAQ,CACN,QACA,QACA,WAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,SAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,OACA,OACA,OACA,MACA,OACA,OACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,UACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,UACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,KACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,OACA,MACA,OACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,OACA,MACA,MACA,aAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,OACA,OACA,MACA,QAGJ,CACE,KAAQ,KACR,KAAQ,CACN,OACA,OACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,OACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,gBAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,KACR,KAAQ,CACN,MACA,MACA,OACA,MACA,MACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,OACA,OACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,MACA,MACA,MACA,MACA,aAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,gBAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,WACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,UAKR,CACE,KAAQ,OACR,KAAQ,CACN,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,QACR,KAAQ,CACN,MACA,OACA,MACA,MACA,QACA,OACA,WACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,OACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,eAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,OACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,OACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,QACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,SACR,KAAQ,CACN,MACA,MACA,MACA,aAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,OACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,cAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,OACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,MACA,OACA,OACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,OACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,OACA,KACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,KACA,MACA,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,KACA,KACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,KACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,KACA,MACA,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,OACA,MACA,OACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACN,MACA,QAGE,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,OACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,MACA,MACA,MACA,MACA,KACA,MACA,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,KACA,MACA,KACA,MACA,MACA,MACA,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,QACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,QACA,OACA,MACA,MACA,MACA,MACA,KACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,QACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,KACA,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,KACA,KACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,OACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,OACA,KACA,MACA,KACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,aAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,SAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,QAGJ,CACE,KAAQ,aACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OAGJ,CACE,KAAQ,QACR,KAAQ,CACN,YAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,OACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,KACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,UACA,UACA,UACA,YACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,OACA,MACA,MACA,QAGJ,CACE,KAAQ,aACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,KACA,KACA,OAKJ,CACE,KAAQ,MACR,KAAQ,CACN,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,KACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,KACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,YACA,cAKR,CACE,KAAQ,KACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,UACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,UACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,KACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,OACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,KACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,MACA,MACA,MACA,MACA,MACA,UACA,WACA,UACA,WACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,QAGJ,CACE,KAAQ,UACR,KAAQ,CACN,YAGJ,CACE,KAAQ,UACR,KAAQ,CACN,YAGJ,CACE,KAAQ,UACR,KAAQ,CACN,YAGJ,CACE,KAAQ,UACR,KAAQ,CACN,YAGJ,CACE,KAAQ,YACR,KAAQ,CACN,cAGJ,CACE,KAAQ,YACR,KAAQ,CACN,gBAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,WACA,aACA,aACA,iBAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,OACA,MACA,MACA,KACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,KACA,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,OACA,KACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,OACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,UACA,YAGJ,CACE,KAAQ,KACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,KACA,MACA,KACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,KACA,KACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,QAGJ,CACE,KAAQ,YACR,KAAQ,CACN,OACA,OACA,MACA,MACA,MACA,KACA,OACA,MACA,MACA,MACA,MACA,MACA,OAGJ,CACE,KAAQ,UACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,UACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,cAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,KACA,SAGJ,CACE,KAAQ,MACR,KAAQ,CACN,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,aACA,eAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,aACA,aACA,eAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,UACA,UACA,aACA,WACA,SAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,gBAGJ,CACE,KAAQ,cACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,aACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,aACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,cAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,UACA,YACA,cAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,UACA,YACA,iBAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,WACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,aACA,WACA,UACA,YACA,gBACA,aACA,eACA,WACA,YAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,KACA,MACA,MACA,kBACA,YACA,YAGJ,CACE,KAAQ,aACR,KAAQ,CACN,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,WACR,KAAQ,CACN,MACA,MACA,aACA,eAGJ,CACE,KAAQ,UACR,KAAQ,CACN,QACA,MACA,aAGJ,CACE,KAAQ,UACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,UACA,UACA,cAGJ,CACE,KAAQ,UACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,aACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,cACA,UACA,YAGJ,CACE,KAAQ,YACR,KAAQ,CACN,MACA,MACA,MACA,OACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,YACR,KAAQ,CACN,MACA,MACA,UAKR,CACE,KAAQ,KACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,QACA,MACA,UAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,QACA,MACA,MACA,MACA,MACA,OAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,SAGJ,CACE,KAAQ,QACR,KAAQ,CACN,OACA,OACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,QAGJ,CACE,KAAQ,OACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,KACA,OAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,KACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,KACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAGJ,CACE,KAAQ,MACR,KAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,UAKR,CACE,KAAQ,MACR,KAAQ,CACN,CACE,KAAQ,MACR,KAAQ,CACN,MACA,OACA,MACA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","file":"common/vendor.js","sourcesContent":["const objectKeys = [\r\n 'qy',\r\n 'env',\r\n 'error',\r\n 'version',\r\n 'lanDebug',\r\n 'cloud',\r\n 'serviceMarket',\r\n 'router',\r\n 'worklet',\r\n '__webpack_require_UNI_MP_PLUGIN__'\r\n]\r\nconst singlePageDisableKey = [\r\n 'lanDebug',\r\n 'router',\r\n 'worklet'\r\n]\r\nconst target = typeof globalThis !== 'undefined' ? globalThis : (function () {\r\n return this\r\n})()\r\n\r\nconst key = ['w', 'x'].join('')\r\nconst oldWx = target[key]\r\nconst launchOption = oldWx.getLaunchOptionsSync ? oldWx.getLaunchOptionsSync() : null\r\n\r\nfunction isWxKey (key) {\r\n if (launchOption && launchOption.scene === 1154 && singlePageDisableKey.includes(key)) {\r\n return false\r\n }\r\n return objectKeys.indexOf(key) > -1 || typeof oldWx[key] === 'function'\r\n}\r\n\r\nfunction initWx () {\r\n const newWx = {}\r\n for (const key in oldWx) {\r\n if (isWxKey(key)) {\r\n // TODO wrapper function\r\n newWx[key] = oldWx[key]\r\n }\r\n }\r\n return newWx\r\n}\r\ntarget[key] = initWx()\r\nif (!target[key].canIUse('getAppBaseInfo')) {\r\n target[key].getAppBaseInfo = target[key].getSystemInfoSync\r\n}\r\n\r\nif (!target[key].canIUse('getWindowInfo')) {\r\n target[key].getWindowInfo = target[key].getSystemInfoSync\r\n}\r\n\r\nif (!target[key].canIUse('getDeviceInfo')) {\r\n target[key].getDeviceInfo = target[key].getSystemInfoSync\r\n}\r\nexport default target[key]\r\n","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (module.exports = _isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { initVueI18n } from '@dcloudio/uni-i18n';\nimport Vue from 'vue';\n\nlet realAtob;\n\nconst b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\n\nif (typeof atob !== 'function') {\n realAtob = function (str) {\n str = String(str).replace(/[\\t\\n\\f\\r ]+/g, '');\n if (!b64re.test(str)) { throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\") }\n\n // Adding the padding if missing, for semplicity\n str += '=='.slice(2 - (str.length & 3));\n var bitmap; var result = ''; var r1; var r2; var i = 0;\n for (; i < str.length;) {\n bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 |\n (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));\n\n result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255)\n : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255)\n : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);\n }\n return result\n };\n} else {\n // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法\n realAtob = atob;\n}\n\nfunction b64DecodeUnicode (str) {\n return decodeURIComponent(realAtob(str).split('').map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\n }).join(''))\n}\n\nfunction getCurrentUserInfo () {\n const token = ( wx).getStorageSync('uni_id_token') || '';\n const tokenArr = token.split('.');\n if (!token || tokenArr.length !== 3) {\n return {\n uid: null,\n role: [],\n permission: [],\n tokenExpired: 0\n }\n }\n let userInfo;\n try {\n userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));\n } catch (error) {\n throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message)\n }\n userInfo.tokenExpired = userInfo.exp * 1000;\n delete userInfo.exp;\n delete userInfo.iat;\n return userInfo\n}\n\nfunction uniIdMixin (Vue) {\n Vue.prototype.uniIDHasRole = function (roleId) {\n const {\n role\n } = getCurrentUserInfo();\n return role.indexOf(roleId) > -1\n };\n Vue.prototype.uniIDHasPermission = function (permissionId) {\n const {\n permission\n } = getCurrentUserInfo();\n return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1\n };\n Vue.prototype.uniIDTokenValid = function () {\n const {\n tokenExpired\n } = getCurrentUserInfo();\n return tokenExpired > Date.now()\n };\n}\n\nconst _toString = Object.prototype.toString;\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isFn (fn) {\n return typeof fn === 'function'\n}\n\nfunction isStr (str) {\n return typeof str === 'string'\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\nfunction noop () {}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n const cache = Object.create(null);\n return function cachedFn (str) {\n const hit = cache[str];\n return hit || (cache[str] = fn(str))\n }\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cached((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\n});\n\nfunction sortObject (obj) {\n const sortObj = {};\n if (isPlainObject(obj)) {\n Object.keys(obj).sort().forEach(key => {\n sortObj[key] = obj[key];\n });\n }\n return !Object.keys(sortObj) ? obj : sortObj\n}\n\nconst HOOKS = [\n 'invoke',\n 'success',\n 'fail',\n 'complete',\n 'returnValue'\n];\n\nconst globalInterceptors = {};\nconst scopedInterceptors = {};\n\nfunction mergeHook (parentVal, childVal) {\n const res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n const res = [];\n for (let i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nfunction removeHook (hooks, hook) {\n const index = hooks.indexOf(hook);\n if (index !== -1) {\n hooks.splice(index, 1);\n }\n}\n\nfunction mergeInterceptorHook (interceptor, option) {\n Object.keys(option).forEach(hook => {\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\n interceptor[hook] = mergeHook(interceptor[hook], option[hook]);\n }\n });\n}\n\nfunction removeInterceptorHook (interceptor, option) {\n if (!interceptor || !option) {\n return\n }\n Object.keys(option).forEach(hook => {\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\n removeHook(interceptor[hook], option[hook]);\n }\n });\n}\n\nfunction addInterceptor (method, option) {\n if (typeof method === 'string' && isPlainObject(option)) {\n mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);\n } else if (isPlainObject(method)) {\n mergeInterceptorHook(globalInterceptors, method);\n }\n}\n\nfunction removeInterceptor (method, option) {\n if (typeof method === 'string') {\n if (isPlainObject(option)) {\n removeInterceptorHook(scopedInterceptors[method], option);\n } else {\n delete scopedInterceptors[method];\n }\n } else if (isPlainObject(method)) {\n removeInterceptorHook(globalInterceptors, method);\n }\n}\n\nfunction wrapperHook (hook, params) {\n return function (data) {\n return hook(data, params) || data\n }\n}\n\nfunction isPromise (obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\n}\n\nfunction queue (hooks, data, params) {\n let promise = false;\n for (let i = 0; i < hooks.length; i++) {\n const hook = hooks[i];\n if (promise) {\n promise = Promise.resolve(wrapperHook(hook, params));\n } else {\n const res = hook(data, params);\n if (isPromise(res)) {\n promise = Promise.resolve(res);\n }\n if (res === false) {\n return {\n then () { }\n }\n }\n }\n }\n return promise || {\n then (callback) {\n return callback(data)\n }\n }\n}\n\nfunction wrapperOptions (interceptor, options = {}) {\n ['success', 'fail', 'complete'].forEach(name => {\n if (Array.isArray(interceptor[name])) {\n const oldCallback = options[name];\n options[name] = function callbackInterceptor (res) {\n queue(interceptor[name], res, options).then((res) => {\n /* eslint-disable no-mixed-operators */\n return isFn(oldCallback) && oldCallback(res) || res\n });\n };\n }\n });\n return options\n}\n\nfunction wrapperReturnValue (method, returnValue) {\n const returnValueHooks = [];\n if (Array.isArray(globalInterceptors.returnValue)) {\n returnValueHooks.push(...globalInterceptors.returnValue);\n }\n const interceptor = scopedInterceptors[method];\n if (interceptor && Array.isArray(interceptor.returnValue)) {\n returnValueHooks.push(...interceptor.returnValue);\n }\n returnValueHooks.forEach(hook => {\n returnValue = hook(returnValue) || returnValue;\n });\n return returnValue\n}\n\nfunction getApiInterceptorHooks (method) {\n const interceptor = Object.create(null);\n Object.keys(globalInterceptors).forEach(hook => {\n if (hook !== 'returnValue') {\n interceptor[hook] = globalInterceptors[hook].slice();\n }\n });\n const scopedInterceptor = scopedInterceptors[method];\n if (scopedInterceptor) {\n Object.keys(scopedInterceptor).forEach(hook => {\n if (hook !== 'returnValue') {\n interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\n }\n });\n }\n return interceptor\n}\n\nfunction invokeApi (method, api, options, ...params) {\n const interceptor = getApiInterceptorHooks(method);\n if (interceptor && Object.keys(interceptor).length) {\n if (Array.isArray(interceptor.invoke)) {\n const res = queue(interceptor.invoke, options);\n return res.then((options) => {\n // 重新访问 getApiInterceptorHooks, 允许 invoke 中再次调用 addInterceptor,removeInterceptor\n return api(\n wrapperOptions(getApiInterceptorHooks(method), options),\n ...params\n )\n })\n } else {\n return api(wrapperOptions(interceptor, options), ...params)\n }\n }\n return api(options, ...params)\n}\n\nconst promiseInterceptor = {\n returnValue (res) {\n if (!isPromise(res)) {\n return res\n }\n return new Promise((resolve, reject) => {\n res.then(res => {\n if (!res) {\n resolve(res);\n return\n }\n if (res[0]) {\n reject(res[0]);\n } else {\n resolve(res[1]);\n }\n });\n })\n }\n};\n\nconst SYNC_API_RE =\n /^\\$|__f__|Window$|WindowStyle$|sendHostEvent|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|rpx2px|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getLocale|setLocale|invokePushCallback|getWindowInfo|getDeviceInfo|getAppBaseInfo|getSystemSetting|getAppAuthorizeSetting|initUTS|requireUTS|registerUTS/;\n\nconst CONTEXT_API_RE = /^create|Manager$/;\n\n// Context例外情况\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\n\n// 同步例外情况\nconst ASYNC_API = ['createBLEConnection', 'createPushMessage'];\n\nconst CALLBACK_API_RE = /^on|^off/;\n\nfunction isContextApi (name) {\n return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1\n}\nfunction isSyncApi (name) {\n return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1\n}\n\nfunction isCallbackApi (name) {\n return CALLBACK_API_RE.test(name) && name !== 'onPush'\n}\n\nfunction handlePromise (promise) {\n return promise.then(data => {\n return [null, data]\n })\n .catch(err => [err])\n}\n\nfunction shouldPromise (name) {\n if (\n isContextApi(name) ||\n isSyncApi(name) ||\n isCallbackApi(name)\n ) {\n return false\n }\n return true\n}\n\n/* eslint-disable no-extend-native */\nif (!Promise.prototype.finally) {\n Promise.prototype.finally = function (callback) {\n const promise = this.constructor;\n return this.then(\n value => promise.resolve(callback()).then(() => value),\n reason => promise.resolve(callback()).then(() => {\n throw reason\n })\n )\n };\n}\n\nfunction promisify (name, api) {\n if (!shouldPromise(name) || !isFn(api)) {\n return api\n }\n return function promiseApi (options = {}, ...params) {\n if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {\n return wrapperReturnValue(name, invokeApi(name, api, Object.assign({}, options), ...params))\n }\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\n invokeApi(name, api, Object.assign({}, options, {\n success: resolve,\n fail: reject\n }), ...params);\n })))\n }\n}\n\nconst EPS = 1e-4;\nconst BASE_DEVICE_WIDTH = 750;\nlet isIOS = false;\nlet deviceWidth = 0;\nlet deviceDPR = 0;\n\nfunction checkDeviceWidth () {\n let windowWidth, pixelRatio, platform;\n\n {\n const windowInfo = typeof wx.getWindowInfo === 'function' && wx.getWindowInfo() ? wx.getWindowInfo() : wx.getSystemInfoSync();\n const deviceInfo = typeof wx.getDeviceInfo === 'function' && wx.getDeviceInfo() ? wx.getDeviceInfo() : wx.getSystemInfoSync();\n\n windowWidth = windowInfo.windowWidth;\n pixelRatio = windowInfo.pixelRatio;\n platform = deviceInfo.platform;\n }\n\n deviceWidth = windowWidth;\n deviceDPR = pixelRatio;\n isIOS = platform === 'ios';\n}\n\nfunction upx2px (number, newDeviceWidth) {\n if (deviceWidth === 0) {\n checkDeviceWidth();\n }\n\n number = Number(number);\n if (number === 0) {\n return 0\n }\n let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);\n if (result < 0) {\n result = -result;\n }\n result = Math.floor(result + EPS);\n if (result === 0) {\n if (deviceDPR === 1 || !isIOS) {\n result = 1;\n } else {\n result = 0.5;\n }\n }\n return number < 0 ? -result : result\n}\n\nconst LOCALE_ZH_HANS = 'zh-Hans';\nconst LOCALE_ZH_HANT = 'zh-Hant';\nconst LOCALE_EN = 'en';\nconst LOCALE_FR = 'fr';\nconst LOCALE_ES = 'es';\n\nconst messages = {};\n\nfunction getLocaleLanguage () {\n let localeLanguage = '';\n {\n const appBaseInfo = typeof wx.getAppBaseInfo === 'function' && wx.getAppBaseInfo() ? wx.getAppBaseInfo() : wx.getSystemInfoSync();\n const language =\n appBaseInfo && appBaseInfo.language ? appBaseInfo.language : LOCALE_EN;\n localeLanguage = normalizeLocale(language) || LOCALE_EN;\n }\n return localeLanguage\n}\n\nlet locale;\n\n{\n locale = getLocaleLanguage();\n}\n\nfunction initI18nMessages () {\n if (!isEnableLocale()) {\n return\n }\n const localeKeys = Object.keys(__uniConfig.locales);\n if (localeKeys.length) {\n localeKeys.forEach((locale) => {\n const curMessages = messages[locale];\n const userMessages = __uniConfig.locales[locale];\n if (curMessages) {\n Object.assign(curMessages, userMessages);\n } else {\n messages[locale] = userMessages;\n }\n });\n }\n}\n\ninitI18nMessages();\n\nconst i18n = initVueI18n(\n locale,\n {}\n);\nconst t = i18n.t;\nconst i18nMixin = (i18n.mixin = {\n beforeCreate () {\n const unwatch = i18n.i18n.watchLocale(() => {\n this.$forceUpdate();\n });\n this.$once('hook:beforeDestroy', function () {\n unwatch();\n });\n },\n methods: {\n $$t (key, values) {\n return t(key, values)\n }\n }\n});\nconst setLocale = i18n.setLocale;\nconst getLocale = i18n.getLocale;\n\nfunction initAppLocale (Vue, appVm, locale) {\n const state = Vue.observable({\n locale: locale || i18n.getLocale()\n });\n const localeWatchers = [];\n appVm.$watchLocale = fn => {\n localeWatchers.push(fn);\n };\n Object.defineProperty(appVm, '$locale', {\n get () {\n return state.locale\n },\n set (v) {\n state.locale = v;\n localeWatchers.forEach(watch => watch(v));\n }\n });\n}\n\nfunction isEnableLocale () {\n return typeof __uniConfig !== 'undefined' && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length\n}\n\nfunction include (str, parts) {\n return !!parts.find((part) => str.indexOf(part) !== -1)\n}\n\nfunction startsWith (str, parts) {\n return parts.find((part) => str.indexOf(part) === 0)\n}\n\nfunction normalizeLocale (locale, messages) {\n if (!locale) {\n return\n }\n locale = locale.trim().replace(/_/g, '-');\n if (messages && messages[locale]) {\n return locale\n }\n locale = locale.toLowerCase();\n if (locale === 'chinese') {\n // 支付宝\n return LOCALE_ZH_HANS\n }\n if (locale.indexOf('zh') === 0) {\n if (locale.indexOf('-hans') > -1) {\n return LOCALE_ZH_HANS\n }\n if (locale.indexOf('-hant') > -1) {\n return LOCALE_ZH_HANT\n }\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\n return LOCALE_ZH_HANT\n }\n return LOCALE_ZH_HANS\n }\n const lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);\n if (lang) {\n return lang\n }\n}\n// export function initI18n() {\n// const localeKeys = Object.keys(__uniConfig.locales || {})\n// if (localeKeys.length) {\n// localeKeys.forEach((locale) =>\n// i18n.add(locale, __uniConfig.locales[locale])\n// )\n// }\n// }\n\nfunction getLocale$1 () {\n // 优先使用 $locale\n if (isFn(getApp)) {\n const app = getApp({\n allowDefault: true\n });\n if (app && app.$vm) {\n return app.$vm.$locale\n }\n }\n return getLocaleLanguage()\n}\n\nfunction setLocale$1 (locale) {\n const app = isFn(getApp) ? getApp() : false;\n if (!app) {\n return false\n }\n const oldLocale = app.$vm.$locale;\n if (oldLocale !== locale) {\n app.$vm.$locale = locale;\n onLocaleChangeCallbacks.forEach((fn) => fn({\n locale\n }));\n return true\n }\n return false\n}\n\nconst onLocaleChangeCallbacks = [];\nfunction onLocaleChange (fn) {\n if (onLocaleChangeCallbacks.indexOf(fn) === -1) {\n onLocaleChangeCallbacks.push(fn);\n }\n}\n\nif (typeof global !== 'undefined') {\n global.getLocale = getLocale$1;\n}\n\nconst interceptors = {\n promiseInterceptor\n};\n\nvar baseApi = /*#__PURE__*/Object.freeze({\n __proto__: null,\n upx2px: upx2px,\n rpx2px: upx2px,\n getLocale: getLocale$1,\n setLocale: setLocale$1,\n onLocaleChange: onLocaleChange,\n addInterceptor: addInterceptor,\n removeInterceptor: removeInterceptor,\n interceptors: interceptors\n});\n\nfunction findExistsPageIndex (url) {\n const pages = getCurrentPages();\n let len = pages.length;\n while (len--) {\n const page = pages[len];\n if (page.$page && page.$page.fullPath === url) {\n return len\n }\n }\n return -1\n}\n\nvar redirectTo = {\n name (fromArgs) {\n if (fromArgs.exists === 'back' && fromArgs.delta) {\n return 'navigateBack'\n }\n return 'redirectTo'\n },\n args (fromArgs) {\n if (fromArgs.exists === 'back' && fromArgs.url) {\n const existsPageIndex = findExistsPageIndex(fromArgs.url);\n if (existsPageIndex !== -1) {\n const delta = getCurrentPages().length - 1 - existsPageIndex;\n if (delta > 0) {\n fromArgs.delta = delta;\n }\n }\n }\n }\n};\n\nvar previewImage = {\n args (fromArgs) {\n let currentIndex = parseInt(fromArgs.current);\n if (isNaN(currentIndex)) {\n return\n }\n const urls = fromArgs.urls;\n if (!Array.isArray(urls)) {\n return\n }\n const len = urls.length;\n if (!len) {\n return\n }\n if (currentIndex < 0) {\n currentIndex = 0;\n } else if (currentIndex >= len) {\n currentIndex = len - 1;\n }\n if (currentIndex > 0) {\n fromArgs.current = urls[currentIndex];\n fromArgs.urls = urls.filter(\n (item, index) => index < currentIndex ? item !== urls[currentIndex] : true\n );\n } else {\n fromArgs.current = urls[0];\n }\n return {\n indicator: false,\n loop: false\n }\n }\n};\n\nconst UUID_KEY = '__DC_STAT_UUID';\nlet deviceId;\nfunction useDeviceId (result) {\n deviceId = deviceId || wx.getStorageSync(UUID_KEY);\n if (!deviceId) {\n deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);\n wx.setStorage({\n key: UUID_KEY,\n data: deviceId\n });\n }\n result.deviceId = deviceId;\n}\n\nfunction addSafeAreaInsets (result) {\n if (result.safeArea) {\n const safeArea = result.safeArea;\n result.safeAreaInsets = {\n top: safeArea.top,\n left: safeArea.left,\n right: result.windowWidth - safeArea.right,\n bottom: result.screenHeight - safeArea.bottom\n };\n }\n}\n\nfunction getOSInfo (system, platform) {\n let osName = '';\n let osVersion = '';\n\n if (\n platform &&\n ( \"mp-weixin\" === 'mp-baidu')\n ) {\n osName = platform;\n osVersion = system;\n } else {\n osName = system.split(' ')[0] || platform;\n osVersion = system.split(' ')[1] || '';\n }\n\n osName = osName.toLocaleLowerCase();\n switch (osName) {\n case 'harmony': // alipay\n case 'ohos': // weixin\n case 'openharmony': // feishu\n osName = 'harmonyos';\n break\n case 'iphone os': // alipay\n osName = 'ios';\n break\n case 'mac': // weixin qq\n case 'darwin': // feishu\n osName = 'macos';\n break\n case 'windows_nt': // feishu\n osName = 'windows';\n break\n }\n\n return {\n osName,\n osVersion\n }\n}\n\nfunction populateParameters (result) {\n const {\n brand = '', model = '', system = '',\n language = '', theme, version,\n platform, fontSizeSetting,\n SDKVersion, pixelRatio, deviceOrientation\n } = result;\n // const isQuickApp = \"mp-weixin\".indexOf('quickapp-webview') !== -1\n\n const extraParam = {};\n\n // osName osVersion\n const { osName, osVersion } = getOSInfo(system, platform);\n let hostVersion = version;\n\n // deviceType\n const deviceType = getGetDeviceType(result, model);\n\n // deviceModel\n const deviceBrand = getDeviceBrand(brand);\n\n // hostName\n const _hostName = getHostName(result);\n\n // deviceOrientation\n let _deviceOrientation = deviceOrientation; // 仅 微信 百度 支持\n\n // devicePixelRatio\n let _devicePixelRatio = pixelRatio;\n\n // SDKVersion\n let _SDKVersion = SDKVersion;\n\n // hostLanguage\n const hostLanguage = (language || '').replace(/_/g, '-');\n\n // wx.getAccountInfoSync\n\n const parameters = {\n appId: process.env.UNI_APP_ID,\n appName: process.env.UNI_APP_NAME,\n appVersion: process.env.UNI_APP_VERSION_NAME,\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\n appLanguage: getAppLanguage(hostLanguage),\n uniCompileVersion: process.env.UNI_COMPILER_VERSION,\n uniCompilerVersion: process.env.UNI_COMPILER_VERSION,\n uniRuntimeVersion: process.env.UNI_COMPILER_VERSION,\n uniPlatform: process.env.UNI_SUB_PLATFORM || process.env.UNI_PLATFORM,\n deviceBrand,\n deviceModel: model,\n deviceType,\n devicePixelRatio: _devicePixelRatio,\n deviceOrientation: _deviceOrientation,\n osName: osName.toLocaleLowerCase(),\n osVersion,\n hostTheme: theme,\n hostVersion,\n hostLanguage,\n hostName: _hostName,\n hostSDKVersion: _SDKVersion,\n hostFontSizeSetting: fontSizeSetting,\n windowTop: 0,\n windowBottom: 0,\n // TODO\n osLanguage: undefined,\n osTheme: undefined,\n ua: undefined,\n hostPackageName: undefined,\n browserName: undefined,\n browserVersion: undefined,\n isUniAppX: false\n };\n\n Object.assign(result, parameters, extraParam);\n}\n\nfunction getGetDeviceType (result, model) {\n let deviceType = result.deviceType || 'phone';\n {\n const deviceTypeMaps = {\n ipad: 'pad',\n windows: 'pc',\n mac: 'pc'\n };\n const deviceTypeMapsKeys = Object.keys(deviceTypeMaps);\n const _model = model.toLocaleLowerCase();\n for (let index = 0; index < deviceTypeMapsKeys.length; index++) {\n const _m = deviceTypeMapsKeys[index];\n if (_model.indexOf(_m) !== -1) {\n deviceType = deviceTypeMaps[_m];\n break\n }\n }\n }\n return deviceType\n}\n\nfunction getDeviceBrand (brand) {\n let deviceBrand = brand;\n if (deviceBrand) {\n deviceBrand = brand.toLocaleLowerCase();\n }\n return deviceBrand\n}\n\nfunction getAppLanguage (defaultLanguage) {\n return getLocale$1\n ? getLocale$1()\n : defaultLanguage\n}\n\nfunction getHostName (result) {\n const _platform =\n 'WeChat'\n ;\n let _hostName = result.hostName || _platform; // mp-jd\n {\n if (result.environment) {\n _hostName = result.environment;\n } else if (result.host && result.host.env) {\n _hostName = result.host.env;\n }\n }\n\n return _hostName\n}\n\nvar getSystemInfo = {\n returnValue: function (result) {\n useDeviceId(result);\n addSafeAreaInsets(result);\n populateParameters(result);\n }\n};\n\nvar showActionSheet = {\n args (fromArgs) {\n if (typeof fromArgs === 'object') {\n fromArgs.alertText = fromArgs.title;\n }\n }\n};\n\nvar getAppBaseInfo = {\n returnValue: function (result) {\n const { version, language, SDKVersion, theme } = result;\n\n const _hostName = getHostName(result);\n\n const hostLanguage = (language || '').replace('_', '-');\n\n result = sortObject(Object.assign(result, {\n appId: process.env.UNI_APP_ID,\n appName: process.env.UNI_APP_NAME,\n appVersion: process.env.UNI_APP_VERSION_NAME,\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\n appLanguage: getAppLanguage(hostLanguage),\n hostVersion: version,\n hostLanguage,\n hostName: _hostName,\n hostSDKVersion: SDKVersion,\n hostTheme: theme,\n isUniAppX: false,\n uniPlatform: process.env.UNI_SUB_PLATFORM || process.env.UNI_PLATFORM,\n uniCompileVersion: process.env.UNI_COMPILER_VERSION,\n uniCompilerVersion: process.env.UNI_COMPILER_VERSION,\n uniRuntimeVersion: process.env.UNI_COMPILER_VERSION\n }));\n }\n};\n\nvar getDeviceInfo = {\n returnValue: function (result) {\n const { brand, model, system = '', platform = '' } = result;\n const deviceType = getGetDeviceType(result, model);\n const deviceBrand = getDeviceBrand(brand);\n useDeviceId(result);\n\n const { osName, osVersion } = getOSInfo(system, platform);\n\n result = sortObject(Object.assign(result, {\n deviceType,\n deviceBrand,\n deviceModel: model,\n osName,\n osVersion\n }));\n }\n};\n\nvar getWindowInfo = {\n returnValue: function (result) {\n addSafeAreaInsets(result);\n\n result = sortObject(Object.assign(result, {\n windowTop: 0,\n windowBottom: 0\n }));\n }\n};\n\nvar getAppAuthorizeSetting = {\n returnValue: function (result) {\n const { locationReducedAccuracy } = result;\n\n result.locationAccuracy = 'unsupported';\n if (locationReducedAccuracy === true) {\n result.locationAccuracy = 'reduced';\n } else if (locationReducedAccuracy === false) {\n result.locationAccuracy = 'full';\n }\n }\n};\n\n// import navigateTo from 'uni-helpers/navigate-to'\n\nconst compressImage = {\n args (fromArgs) {\n // https://developers.weixin.qq.com/community/develop/doc/000c08940c865011298e0a43256800?highLine=compressHeight\n if (fromArgs.compressedHeight && !fromArgs.compressHeight) {\n fromArgs.compressHeight = fromArgs.compressedHeight;\n }\n if (fromArgs.compressedWidth && !fromArgs.compressWidth) {\n fromArgs.compressWidth = fromArgs.compressedWidth;\n }\n }\n};\n\nconst protocols = {\n redirectTo,\n // navigateTo, // 由于在微信开发者工具的页面参数,会显示__id__参数,因此暂时关闭mp-weixin对于navigateTo的AOP\n previewImage,\n getSystemInfo,\n getSystemInfoSync: getSystemInfo,\n showActionSheet,\n getAppBaseInfo,\n getDeviceInfo,\n getWindowInfo,\n getAppAuthorizeSetting,\n compressImage\n};\nconst todos = [\n 'vibrate',\n 'preloadPage',\n 'unPreloadPage',\n 'loadSubPackage'\n];\nconst canIUses = [];\n\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\n\nfunction processCallback (methodName, method, returnValue) {\n return function (res) {\n return method(processReturnValue(methodName, res, returnValue))\n }\n}\n\nfunction processArgs (methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\n if (isPlainObject(fromArgs)) { // 一般 api 的参数解析\n const toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\n if (isFn(argsOption)) {\n argsOption = argsOption(fromArgs, toArgs) || {};\n }\n for (const key in fromArgs) {\n if (hasOwn(argsOption, key)) {\n let keyOption = argsOption[key];\n if (isFn(keyOption)) {\n keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\n }\n if (!keyOption) { // 不支持的参数\n console.warn(`The '${methodName}' method of platform '微信小程序' does not support option '${key}'`);\n } else if (isStr(keyOption)) { // 重写参数 key\n toArgs[keyOption] = fromArgs[key];\n } else if (isPlainObject(keyOption)) { // {name:newName,value:value}可重新指定参数 key:value\n toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\n }\n } else if (CALLBACKS.indexOf(key) !== -1) {\n if (isFn(fromArgs[key])) {\n toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\n }\n } else {\n if (!keepFromArgs) {\n toArgs[key] = fromArgs[key];\n }\n }\n }\n return toArgs\n } else if (isFn(fromArgs)) {\n fromArgs = processCallback(methodName, fromArgs, returnValue);\n }\n return fromArgs\n}\n\nfunction processReturnValue (methodName, res, returnValue, keepReturnValue = false) {\n if (isFn(protocols.returnValue)) { // 处理通用 returnValue\n res = protocols.returnValue(methodName, res);\n }\n return processArgs(methodName, res, returnValue, {}, keepReturnValue)\n}\n\nfunction wrapper (methodName, method) {\n if (hasOwn(protocols, methodName)) {\n const protocol = protocols[methodName];\n if (!protocol) { // 暂不支持的 api\n return function () {\n console.error(`Platform '微信小程序' does not support '${methodName}'.`);\n }\n }\n return function (arg1, arg2) { // 目前 api 最多两个参数\n let options = protocol;\n if (isFn(protocol)) {\n options = protocol(arg1);\n }\n\n arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\n\n const args = [arg1];\n if (typeof arg2 !== 'undefined') {\n args.push(arg2);\n }\n if (isFn(options.name)) {\n methodName = options.name(arg1);\n } else if (isStr(options.name)) {\n methodName = options.name;\n }\n const returnValue = wx[methodName].apply(wx, args);\n if (isSyncApi(methodName)) { // 同步 api\n return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName))\n }\n return returnValue\n }\n }\n return method\n}\n\nconst todoApis = Object.create(null);\n\nconst TODOS = [\n 'onTabBarMidButtonTap',\n 'subscribePush',\n 'unsubscribePush',\n 'onPush',\n 'offPush',\n 'share'\n];\n\nfunction createTodoApi (name) {\n return function todoApi ({\n fail,\n complete\n }) {\n const res = {\n errMsg: `${name}:fail method '${name}' not supported`\n };\n isFn(fail) && fail(res);\n isFn(complete) && complete(res);\n }\n}\n\nTODOS.forEach(function (name) {\n todoApis[name] = createTodoApi(name);\n});\n\nvar providers = {\n oauth: ['weixin'],\n share: ['weixin'],\n payment: ['wxpay'],\n push: ['weixin']\n};\n\nfunction getProvider ({\n service,\n success,\n fail,\n complete\n}) {\n let res = false;\n if (providers[service]) {\n res = {\n errMsg: 'getProvider:ok',\n service,\n provider: providers[service]\n };\n isFn(success) && success(res);\n } else {\n res = {\n errMsg: 'getProvider:fail service not found'\n };\n isFn(fail) && fail(res);\n }\n isFn(complete) && complete(res);\n}\n\nvar extraApi = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getProvider: getProvider\n});\n\nconst getEmitter = (function () {\n let Emitter;\n return function getUniEmitter () {\n if (!Emitter) {\n Emitter = new Vue();\n }\n return Emitter\n }\n})();\n\nfunction apply (ctx, method, args) {\n return ctx[method].apply(ctx, args)\n}\n\nfunction $on () {\n return apply(getEmitter(), '$on', [...arguments])\n}\nfunction $off () {\n return apply(getEmitter(), '$off', [...arguments])\n}\nfunction $once () {\n return apply(getEmitter(), '$once', [...arguments])\n}\nfunction $emit () {\n return apply(getEmitter(), '$emit', [...arguments])\n}\n\nvar eventApi = /*#__PURE__*/Object.freeze({\n __proto__: null,\n $on: $on,\n $off: $off,\n $once: $once,\n $emit: $emit\n});\n\n/**\n * 框架内 try-catch\n */\n/**\n * 开发者 try-catch\n */\nfunction tryCatch (fn) {\n return function () {\n try {\n return fn.apply(fn, arguments)\n } catch (e) {\n // TODO\n console.error(e);\n }\n }\n}\n\nfunction getApiCallbacks (params) {\n const apiCallbacks = {};\n for (const name in params) {\n const param = params[name];\n if (isFn(param)) {\n apiCallbacks[name] = tryCatch(param);\n delete params[name];\n }\n }\n return apiCallbacks\n}\n\nlet cid;\nlet cidErrMsg;\nlet enabled;\n\nfunction normalizePushMessage (message) {\n try {\n return JSON.parse(message)\n } catch (e) {}\n return message\n}\n\nfunction invokePushCallback (\n args\n) {\n if (args.type === 'enabled') {\n enabled = true;\n } else if (args.type === 'clientId') {\n cid = args.cid;\n cidErrMsg = args.errMsg;\n invokeGetPushCidCallbacks(cid, args.errMsg);\n } else if (args.type === 'pushMsg') {\n const message = {\n type: 'receive',\n data: normalizePushMessage(args.message)\n };\n for (let i = 0; i < onPushMessageCallbacks.length; i++) {\n const callback = onPushMessageCallbacks[i];\n callback(message);\n // 该消息已被阻止\n if (message.stopped) {\n break\n }\n }\n } else if (args.type === 'click') {\n onPushMessageCallbacks.forEach((callback) => {\n callback({\n type: 'click',\n data: normalizePushMessage(args.message)\n });\n });\n }\n}\n\nconst getPushCidCallbacks = [];\n\nfunction invokeGetPushCidCallbacks (cid, errMsg) {\n getPushCidCallbacks.forEach((callback) => {\n callback(cid, errMsg);\n });\n getPushCidCallbacks.length = 0;\n}\n\nfunction getPushClientId (args) {\n if (!isPlainObject(args)) {\n args = {};\n }\n const {\n success,\n fail,\n complete\n } = getApiCallbacks(args);\n const hasSuccess = isFn(success);\n const hasFail = isFn(fail);\n const hasComplete = isFn(complete);\n\n Promise.resolve().then(() => {\n if (typeof enabled === 'undefined') {\n enabled = false;\n cid = '';\n cidErrMsg = 'uniPush is not enabled';\n }\n getPushCidCallbacks.push((cid, errMsg) => {\n let res;\n if (cid) {\n res = {\n errMsg: 'getPushClientId:ok',\n cid\n };\n hasSuccess && success(res);\n } else {\n res = {\n errMsg: 'getPushClientId:fail' + (errMsg ? ' ' + errMsg : '')\n };\n hasFail && fail(res);\n }\n hasComplete && complete(res);\n });\n if (typeof cid !== 'undefined') {\n invokeGetPushCidCallbacks(cid, cidErrMsg);\n }\n });\n}\n\nconst onPushMessageCallbacks = [];\n// 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现\nconst onPushMessage = (fn) => {\n if (onPushMessageCallbacks.indexOf(fn) === -1) {\n onPushMessageCallbacks.push(fn);\n }\n};\n\nconst offPushMessage = (fn) => {\n if (!fn) {\n onPushMessageCallbacks.length = 0;\n } else {\n const index = onPushMessageCallbacks.indexOf(fn);\n if (index > -1) {\n onPushMessageCallbacks.splice(index, 1);\n }\n }\n};\n\nfunction __f__ (\n type,\n ...args\n) {\n console[type].apply(console, args);\n}\n\nlet baseInfo = wx.getAppBaseInfo && wx.getAppBaseInfo();\nif (!baseInfo) {\n baseInfo = wx.getSystemInfoSync();\n}\nconst host = baseInfo ? baseInfo.host : null;\nconst shareVideoMessage =\n host && host.env === 'SAAASDK' ? wx.miniapp.shareVideoMessage : wx.shareVideoMessage;\n\nvar api = /*#__PURE__*/Object.freeze({\n __proto__: null,\n shareVideoMessage: shareVideoMessage,\n getPushClientId: getPushClientId,\n onPushMessage: onPushMessage,\n offPushMessage: offPushMessage,\n invokePushCallback: invokePushCallback,\n __f__: __f__\n});\n\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\n\nfunction findVmByVueId (vm, vuePid) {\n const $children = vm.$children;\n // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\n for (let i = $children.length - 1; i >= 0; i--) {\n const childVm = $children[i];\n if (childVm.$scope._$vueId === vuePid) {\n return childVm\n }\n }\n // 反向递归查找\n let parentVm;\n for (let i = $children.length - 1; i >= 0; i--) {\n parentVm = findVmByVueId($children[i], vuePid);\n if (parentVm) {\n return parentVm\n }\n }\n}\n\nfunction initBehavior (options) {\n return Behavior(options)\n}\n\nfunction isPage () {\n return !!this.route\n}\n\nfunction initRelation (detail) {\n this.triggerEvent('__l', detail);\n}\n\nfunction selectAllComponents (mpInstance, selector, $refs) {\n const components = mpInstance.selectAllComponents(selector) || [];\n components.forEach(component => {\n const ref = component.dataset.ref;\n $refs[ref] = component.$vm || toSkip(component);\n {\n if (component.dataset.vueGeneric === 'scoped') {\n component.selectAllComponents('.scoped-ref').forEach(scopedComponent => {\n selectAllComponents(scopedComponent, selector, $refs);\n });\n }\n }\n });\n}\n\nfunction syncRefs (refs, newRefs) {\n const oldKeys = new Set(...Object.keys(refs));\n const newKeys = Object.keys(newRefs);\n newKeys.forEach(key => {\n const oldValue = refs[key];\n const newValue = newRefs[key];\n if (Array.isArray(oldValue) && Array.isArray(newValue) && oldValue.length === newValue.length && newValue.every(value => oldValue.includes(value))) {\n return\n }\n refs[key] = newValue;\n oldKeys.delete(key);\n });\n oldKeys.forEach(key => {\n delete refs[key];\n });\n return refs\n}\n\nfunction initRefs (vm) {\n const mpInstance = vm.$scope;\n const refs = {};\n Object.defineProperty(vm, '$refs', {\n get () {\n const $refs = {};\n selectAllComponents(mpInstance, '.vue-ref', $refs);\n // TODO 暂不考虑 for 中的 scoped\n const forComponents = mpInstance.selectAllComponents('.vue-ref-in-for') || [];\n forComponents.forEach(component => {\n const ref = component.dataset.ref;\n if (!$refs[ref]) {\n $refs[ref] = [];\n }\n $refs[ref].push(component.$vm || toSkip(component));\n });\n return syncRefs(refs, $refs)\n }\n });\n}\n\nfunction handleLink (event) {\n const {\n vuePid,\n vueOptions\n } = event.detail || event.value; // detail 是微信,value 是百度(dipatch)\n\n let parentVm;\n\n if (vuePid) {\n parentVm = findVmByVueId(this.$vm, vuePid);\n }\n\n if (!parentVm) {\n parentVm = this.$vm;\n }\n\n vueOptions.parent = parentVm;\n}\n\nfunction markMPComponent (component) {\n // 在 Vue 中标记为小程序组件\n const IS_MP = '__v_isMPComponent';\n Object.defineProperty(component, IS_MP, {\n configurable: true,\n enumerable: false,\n value: true\n });\n return component\n}\n\nfunction toSkip (obj) {\n const OB = '__ob__';\n const SKIP = '__v_skip';\n if (isObject(obj) && Object.isExtensible(obj)) {\n // 避免被 @vue/composition-api 观测\n Object.defineProperty(obj, OB, {\n configurable: true,\n enumerable: false,\n value: {\n [SKIP]: true\n }\n });\n }\n return obj\n}\n\nconst WORKLET_RE = /_(.*)_worklet_factory_/;\nfunction initWorkletMethods (mpMethods, vueMethods) {\n if (vueMethods) {\n Object.keys(vueMethods).forEach((name) => {\n const matches = name.match(WORKLET_RE);\n if (matches) {\n const workletName = matches[1];\n mpMethods[name] = vueMethods[name];\n mpMethods[workletName] = vueMethods[workletName];\n }\n });\n }\n}\n\nconst MPPage = Page;\nconst MPComponent = Component;\n\nconst customizeRE = /:/g;\n\nconst customize = cached((str) => {\n return camelize(str.replace(customizeRE, '-'))\n});\n\nfunction initTriggerEvent (mpInstance) {\n const oldTriggerEvent = mpInstance.triggerEvent;\n const newTriggerEvent = function (event, ...args) {\n // 事件名统一转驼峰格式,仅处理:当前组件为 vue 组件、当前组件为 vue 组件子组件\n if (this.$vm || (this.dataset && this.dataset.comType)) {\n event = customize(event);\n } else {\n // 针对微信/QQ小程序单独补充驼峰格式事件,以兼容历史项目\n const newEvent = customize(event);\n if (newEvent !== event) {\n oldTriggerEvent.apply(this, [newEvent, ...args]);\n }\n }\n return oldTriggerEvent.apply(this, [event, ...args])\n };\n try {\n // 京东小程序 triggerEvent 为只读\n mpInstance.triggerEvent = newTriggerEvent;\n } catch (error) {\n mpInstance._triggerEvent = newTriggerEvent;\n }\n}\n\nfunction initHook (name, options, isComponent) {\n const oldHook = options[name];\n options[name] = function (...args) {\n markMPComponent(this);\n initTriggerEvent(this);\n if (oldHook) {\n return oldHook.apply(this, args)\n }\n };\n}\nif (!MPPage.__$wrappered) {\n MPPage.__$wrappered = true;\n Page = function (options = {}) {\n initHook('onLoad', options);\n return MPPage(options)\n };\n Page.after = MPPage.after;\n\n Component = function (options = {}) {\n initHook('created', options);\n return MPComponent(options)\n };\n}\n\nconst PAGE_EVENT_HOOKS = [\n 'onPullDownRefresh',\n 'onReachBottom',\n 'onAddToFavorites',\n 'onShareTimeline',\n 'onShareAppMessage',\n 'onPageScroll',\n 'onResize',\n 'onTabItemTap'\n];\n\nfunction initMocks (vm, mocks) {\n const mpInstance = vm.$mp[vm.mpType];\n mocks.forEach(mock => {\n if (hasOwn(mpInstance, mock)) {\n vm[mock] = mpInstance[mock];\n }\n });\n}\n\nfunction hasHook (hook, vueOptions) {\n if (!vueOptions) {\n return true\n }\n\n if (Vue.options && Array.isArray(Vue.options[hook])) {\n return true\n }\n\n vueOptions = vueOptions.default || vueOptions;\n\n if (isFn(vueOptions)) {\n if (isFn(vueOptions.extendOptions[hook])) {\n return true\n }\n if (vueOptions.super &&\n vueOptions.super.options &&\n Array.isArray(vueOptions.super.options[hook])) {\n return true\n }\n return false\n }\n\n if (isFn(vueOptions[hook]) || Array.isArray(vueOptions[hook])) {\n return true\n }\n const mixins = vueOptions.mixins;\n if (Array.isArray(mixins)) {\n return !!mixins.find(mixin => hasHook(hook, mixin))\n }\n}\n\nfunction initHooks (mpOptions, hooks, vueOptions) {\n hooks.forEach(hook => {\n if (hasHook(hook, vueOptions)) {\n mpOptions[hook] = function (args) {\n return this.$vm && this.$vm.__call_hook(hook, args)\n };\n }\n });\n}\n\nfunction initUnknownHooks (mpOptions, vueOptions, excludes = []) {\n findHooks(vueOptions).forEach((hook) => initHook$1(mpOptions, hook, excludes));\n}\n\nfunction findHooks (vueOptions, hooks = []) {\n if (vueOptions) {\n Object.keys(vueOptions).forEach((name) => {\n if (name.indexOf('on') === 0 && isFn(vueOptions[name])) {\n hooks.push(name);\n }\n });\n }\n return hooks\n}\n\nfunction initHook$1 (mpOptions, hook, excludes) {\n if (excludes.indexOf(hook) === -1 && !hasOwn(mpOptions, hook)) {\n mpOptions[hook] = function (args) {\n return this.$vm && this.$vm.__call_hook(hook, args)\n };\n }\n}\n\nfunction initVueComponent (Vue, vueOptions) {\n vueOptions = vueOptions.default || vueOptions;\n let VueComponent;\n if (isFn(vueOptions)) {\n VueComponent = vueOptions;\n } else {\n VueComponent = Vue.extend(vueOptions);\n }\n vueOptions = VueComponent.options;\n return [VueComponent, vueOptions]\n}\n\nfunction initSlots (vm, vueSlots) {\n if (Array.isArray(vueSlots) && vueSlots.length) {\n const $slots = Object.create(null);\n vueSlots.forEach(slotName => {\n $slots[slotName] = true;\n });\n vm.$scopedSlots = vm.$slots = $slots;\n }\n}\n\nfunction initVueIds (vueIds, mpInstance) {\n vueIds = (vueIds || '').split(',');\n const len = vueIds.length;\n\n if (len === 1) {\n mpInstance._$vueId = vueIds[0];\n } else if (len === 2) {\n mpInstance._$vueId = vueIds[0];\n mpInstance._$vuePid = vueIds[1];\n }\n}\n\nfunction initData (vueOptions, context) {\n let data = vueOptions.data || {};\n const methods = vueOptions.methods || {};\n\n if (typeof data === 'function') {\n try {\n data = data.call(context); // 支持 Vue.prototype 上挂的数据\n } catch (e) {\n if (process.env.VUE_APP_DEBUG) {\n console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);\n }\n }\n } else {\n try {\n // 对 data 格式化\n data = JSON.parse(JSON.stringify(data));\n } catch (e) { }\n }\n\n if (!isPlainObject(data)) {\n data = {};\n }\n\n Object.keys(methods).forEach(methodName => {\n if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {\n data[methodName] = methods[methodName];\n }\n });\n\n return data\n}\n\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\n\nfunction createObserver (name) {\n return function observer (newVal, oldVal) {\n if (this.$vm) {\n this.$vm[name] = newVal; // 为了触发其他非 render watcher\n }\n }\n}\n\nfunction initBehaviors (vueOptions, initBehavior) {\n const vueBehaviors = vueOptions.behaviors;\n const vueExtends = vueOptions.extends;\n const vueMixins = vueOptions.mixins;\n\n let vueProps = vueOptions.props;\n\n if (!vueProps) {\n vueOptions.props = vueProps = [];\n }\n\n const behaviors = [];\n if (Array.isArray(vueBehaviors)) {\n vueBehaviors.forEach(behavior => {\n behaviors.push(behavior.replace('uni://', `${\"wx\"}://`));\n if (behavior === 'uni://form-field') {\n if (Array.isArray(vueProps)) {\n vueProps.push('name');\n vueProps.push('value');\n } else {\n vueProps.name = {\n type: String,\n default: ''\n };\n vueProps.value = {\n type: [String, Number, Boolean, Array, Object, Date],\n default: ''\n };\n }\n }\n });\n }\n if (isPlainObject(vueExtends) && vueExtends.props) {\n behaviors.push(\n initBehavior({\n properties: initProperties(vueExtends.props, true)\n })\n );\n }\n if (Array.isArray(vueMixins)) {\n vueMixins.forEach(vueMixin => {\n if (isPlainObject(vueMixin) && vueMixin.props) {\n behaviors.push(\n initBehavior({\n properties: initProperties(vueMixin.props, true)\n })\n );\n }\n });\n }\n return behaviors\n}\n\nfunction parsePropType (key, type, defaultValue, file) {\n // [String]=>String\n if (Array.isArray(type) && type.length === 1) {\n return type[0]\n }\n return type\n}\n\nfunction initProperties (props, isBehavior = false, file = '', options) {\n const properties = {};\n if (!isBehavior) {\n properties.vueId = {\n type: String,\n value: ''\n };\n {\n if ( options.virtualHost) {\n properties.virtualHostStyle = {\n type: null,\n value: ''\n };\n properties.virtualHostClass = {\n type: null,\n value: ''\n };\n }\n }\n // scopedSlotsCompiler auto\n properties.scopedSlotsCompiler = {\n type: String,\n value: ''\n };\n properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\n type: null,\n value: [],\n observer: function (newVal, oldVal) {\n const $slots = Object.create(null);\n newVal.forEach(slotName => {\n $slots[slotName] = true;\n });\n this.setData({\n $slots\n });\n }\n };\n }\n if (Array.isArray(props)) { // ['title']\n props.forEach(key => {\n properties[key] = {\n type: null,\n observer: createObserver(key)\n };\n });\n } else if (isPlainObject(props)) { // {title:{type:String,default:''},content:String}\n Object.keys(props).forEach(key => {\n const opts = props[key];\n if (isPlainObject(opts)) { // title:{type:String,default:''}\n let value = opts.default;\n if (isFn(value)) {\n value = value();\n }\n\n opts.type = parsePropType(key, opts.type);\n\n properties[key] = {\n type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,\n value,\n observer: createObserver(key)\n };\n } else { // content:String\n const type = parsePropType(key, opts);\n properties[key] = {\n type: PROP_TYPES.indexOf(type) !== -1 ? type : null,\n observer: createObserver(key)\n };\n }\n });\n }\n return properties\n}\n\nfunction wrapper$1 (event) {\n // TODO 又得兼容 mpvue 的 mp 对象\n try {\n event.mp = JSON.parse(JSON.stringify(event));\n } catch (e) { }\n\n event.stopPropagation = noop;\n event.preventDefault = noop;\n\n event.target = event.target || {};\n\n if (!hasOwn(event, 'detail')) {\n event.detail = {};\n }\n\n if (hasOwn(event, 'markerId')) {\n event.detail = typeof event.detail === 'object' ? event.detail : {};\n event.detail.markerId = event.markerId;\n }\n\n if (isPlainObject(event.detail)) {\n event.target = Object.assign({}, event.target, event.detail);\n }\n\n return event\n}\n\nfunction getExtraValue (vm, dataPathsArray) {\n let context = vm;\n dataPathsArray.forEach(dataPathArray => {\n const dataPath = dataPathArray[0];\n const value = dataPathArray[2];\n if (dataPath || typeof value !== 'undefined') { // ['','',index,'disable']\n const propPath = dataPathArray[1];\n const valuePath = dataPathArray[3];\n\n let vFor;\n if (Number.isInteger(dataPath)) {\n vFor = dataPath;\n } else if (!dataPath) {\n vFor = context;\n } else if (typeof dataPath === 'string' && dataPath) {\n if (dataPath.indexOf('#s#') === 0) {\n vFor = dataPath.substr(3);\n } else {\n vFor = vm.__get_value(dataPath, context);\n }\n }\n\n if (Number.isInteger(vFor)) {\n context = value;\n } else if (!propPath) {\n context = vFor[value];\n } else {\n if (Array.isArray(vFor)) {\n context = vFor.find(vForItem => {\n return vm.__get_value(propPath, vForItem) === value\n });\n } else if (isPlainObject(vFor)) {\n context = Object.keys(vFor).find(vForKey => {\n return vm.__get_value(propPath, vFor[vForKey]) === value\n });\n } else {\n console.error('v-for 暂不支持循环数据:', vFor);\n }\n }\n\n if (valuePath) {\n context = vm.__get_value(valuePath, context);\n }\n }\n });\n return context\n}\n\nfunction processEventExtra (vm, extra, event, __args__) {\n const extraObj = {};\n\n if (Array.isArray(extra) && extra.length) {\n /**\n *[\n * ['data.items', 'data.id', item.data.id],\n * ['metas', 'id', meta.id]\n *],\n *[\n * ['data.items', 'data.id', item.data.id],\n * ['metas', 'id', meta.id]\n *],\n *'test'\n */\n extra.forEach((dataPath, index) => {\n if (typeof dataPath === 'string') {\n if (!dataPath) { // model,prop.sync\n extraObj['$' + index] = vm;\n } else {\n if (dataPath === '$event') { // $event\n extraObj['$' + index] = event;\n } else if (dataPath === 'arguments') {\n extraObj['$' + index] = event.detail ? event.detail.__args__ || __args__ : __args__;\n } else if (dataPath.indexOf('$event.') === 0) { // $event.target.value\n extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);\n } else {\n extraObj['$' + index] = vm.__get_value(dataPath);\n }\n }\n } else {\n extraObj['$' + index] = getExtraValue(vm, dataPath);\n }\n });\n }\n\n return extraObj\n}\n\nfunction getObjByArray (arr) {\n const obj = {};\n for (let i = 1; i < arr.length; i++) {\n const element = arr[i];\n obj[element[0]] = element[1];\n }\n return obj\n}\n\nfunction processEventArgs (vm, event, args = [], extra = [], isCustom, methodName) {\n let isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象\n\n // fixed 用户直接触发 mpInstance.triggerEvent\n const __args__ = isPlainObject(event.detail)\n ? event.detail.__args__ || [event.detail]\n : [event.detail];\n\n if (isCustom) { // 自定义事件\n isCustomMPEvent = event.currentTarget &&\n event.currentTarget.dataset &&\n event.currentTarget.dataset.comType === 'wx';\n if (!args.length) { // 无参数,直接传入 event 或 detail 数组\n if (isCustomMPEvent) {\n return [event]\n }\n return __args__\n }\n }\n\n const extraObj = processEventExtra(vm, extra, event, __args__);\n\n const ret = [];\n args.forEach(arg => {\n if (arg === '$event') {\n if (methodName === '__set_model' && !isCustom) { // input v-model value\n ret.push(event.target.value);\n } else {\n if (isCustom && !isCustomMPEvent) {\n ret.push(__args__[0]);\n } else { // wxcomponent 组件或内置组件\n ret.push(event);\n }\n }\n } else {\n if (Array.isArray(arg) && arg[0] === 'o') {\n ret.push(getObjByArray(arg));\n } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {\n ret.push(extraObj[arg]);\n } else {\n ret.push(arg);\n }\n }\n });\n\n return ret\n}\n\nconst ONCE = '~';\nconst CUSTOM = '^';\n\nfunction isMatchEventType (eventType, optType) {\n return (eventType === optType) ||\n (\n optType === 'regionchange' &&\n (\n eventType === 'begin' ||\n eventType === 'end'\n )\n )\n}\n\nfunction getContextVm (vm) {\n let $parent = vm.$parent;\n // 父组件是 scoped slots 或者其他自定义组件时继续查找\n while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) {\n $parent = $parent.$parent;\n }\n return $parent && $parent.$parent\n}\n\nfunction handleEvent (event) {\n event = wrapper$1(event);\n\n // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]\n const dataset = (event.currentTarget || event.target).dataset;\n if (!dataset) {\n return console.warn('事件信息不存在')\n }\n const eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰\n if (!eventOpts) {\n return console.warn('事件信息不存在')\n }\n\n // [['handle',[1,2,a]],['handle1',[1,2,a]]]\n const eventType = event.type;\n\n const ret = [];\n\n eventOpts.forEach(eventOpt => {\n let type = eventOpt[0];\n const eventsArray = eventOpt[1];\n\n const isCustom = type.charAt(0) === CUSTOM;\n type = isCustom ? type.slice(1) : type;\n const isOnce = type.charAt(0) === ONCE;\n type = isOnce ? type.slice(1) : type;\n\n if (eventsArray && isMatchEventType(eventType, type)) {\n eventsArray.forEach(eventArray => {\n const methodName = eventArray[0];\n if (methodName) {\n let handlerCtx = this.$vm;\n if (handlerCtx.$options.generic) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\n handlerCtx = getContextVm(handlerCtx) || handlerCtx;\n }\n if (methodName === '$emit') {\n handlerCtx.$emit.apply(handlerCtx,\n processEventArgs(\n this.$vm,\n event,\n eventArray[1],\n eventArray[2],\n isCustom,\n methodName\n ));\n return\n }\n const handler = handlerCtx[methodName];\n if (!isFn(handler)) {\n const type = this.$vm.mpType === 'page' ? 'Page' : 'Component';\n const path = this.route || this.is;\n throw new Error(`${type} \"${path}\" does not have a method \"${methodName}\"`)\n }\n if (isOnce) {\n if (handler.once) {\n return\n }\n handler.once = true;\n }\n let params = processEventArgs(\n this.$vm,\n event,\n eventArray[1],\n eventArray[2],\n isCustom,\n methodName\n );\n params = Array.isArray(params) ? params : [];\n // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据\n if (/=\\s*\\S+\\.eventParams\\s*\\|\\|\\s*\\S+\\[['\"]event-params['\"]\\]/.test(handler.toString())) {\n // eslint-disable-next-line no-sparse-arrays\n params = params.concat([, , , , , , , , , , event]);\n }\n ret.push(handler.apply(handlerCtx, params));\n }\n });\n }\n });\n\n if (\n eventType === 'input' &&\n ret.length === 1 &&\n typeof ret[0] !== 'undefined'\n ) {\n return ret[0]\n }\n}\n\nconst eventChannels = {};\n\nfunction getEventChannel (id) {\n const eventChannel = eventChannels[id];\n delete eventChannels[id];\n return eventChannel\n}\n\nconst hooks = [\n 'onShow',\n 'onHide',\n 'onError',\n 'onPageNotFound',\n 'onThemeChange',\n 'onUnhandledRejection'\n];\n\nfunction initEventChannel () {\n Vue.prototype.getOpenerEventChannel = function () {\n // 微信小程序使用自身getOpenerEventChannel\n {\n return this.$scope.getOpenerEventChannel()\n }\n };\n const callHook = Vue.prototype.__call_hook;\n Vue.prototype.__call_hook = function (hook, args) {\n if (hook === 'onLoad' && args && args.__id__) {\n this.__eventChannel__ = getEventChannel(args.__id__);\n delete args.__id__;\n }\n return callHook.call(this, hook, args)\n };\n}\n\nfunction initScopedSlotsParams () {\n const center = {};\n const parents = {};\n\n function currentId (fn) {\n const vueIds = this.$options.propsData.vueId;\n if (vueIds) {\n const vueId = vueIds.split(',')[0];\n fn(vueId);\n }\n }\n\n Vue.prototype.$hasSSP = function (vueId) {\n const slot = center[vueId];\n if (!slot) {\n parents[vueId] = this;\n this.$on('hook:destroyed', () => {\n delete parents[vueId];\n });\n }\n return slot\n };\n\n Vue.prototype.$getSSP = function (vueId, name, needAll) {\n const slot = center[vueId];\n if (slot) {\n const params = slot[name] || [];\n if (needAll) {\n return params\n }\n return params[0]\n }\n };\n\n Vue.prototype.$setSSP = function (name, value) {\n let index = 0;\n currentId.call(this, vueId => {\n const slot = center[vueId];\n const params = slot[name] = slot[name] || [];\n params.push(value);\n index = params.length - 1;\n });\n return index\n };\n\n Vue.prototype.$initSSP = function () {\n currentId.call(this, vueId => {\n center[vueId] = {};\n });\n };\n\n Vue.prototype.$callSSP = function () {\n currentId.call(this, vueId => {\n if (parents[vueId]) {\n parents[vueId].$forceUpdate();\n }\n });\n };\n\n Vue.mixin({\n destroyed () {\n const propsData = this.$options.propsData;\n const vueId = propsData && propsData.vueId;\n if (vueId) {\n delete center[vueId];\n delete parents[vueId];\n }\n }\n });\n}\n\nfunction parseBaseApp (vm, {\n mocks,\n initRefs\n}) {\n initEventChannel();\n {\n initScopedSlotsParams();\n }\n if (vm.$options.store) {\n Vue.prototype.$store = vm.$options.store;\n }\n uniIdMixin(Vue);\n\n Vue.prototype.mpHost = \"mp-weixin\";\n\n Vue.mixin({\n beforeCreate () {\n if (!this.$options.mpType) {\n return\n }\n\n this.mpType = this.$options.mpType;\n\n this.$mp = {\n data: {},\n [this.mpType]: this.$options.mpInstance\n };\n\n this.$scope = this.$options.mpInstance;\n\n delete this.$options.mpType;\n delete this.$options.mpInstance;\n if (\n ( this.mpType === 'page') &&\n typeof getApp === 'function'\n ) { // hack vue-i18n\n const app = getApp();\n if (app.$vm && app.$vm.$i18n) {\n this._i18n = app.$vm.$i18n;\n }\n }\n if (this.mpType !== 'app') {\n initRefs(this);\n initMocks(this, mocks);\n }\n }\n });\n\n const appOptions = {\n onLaunch (args) {\n if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\n return\n }\n {\n if (wx.canIUse && !wx.canIUse('nextTick')) { // 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断\n console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');\n }\n }\n\n this.$vm = vm;\n\n this.$vm.$mp = {\n app: this\n };\n\n this.$vm.$scope = this;\n // vm 上也挂载 globalData\n this.$vm.globalData = this.globalData;\n\n this.$vm._isMounted = true;\n this.$vm.__call_hook('mounted', args);\n\n this.$vm.__call_hook('onLaunch', args);\n }\n };\n\n // 兼容旧版本 globalData\n appOptions.globalData = vm.$options.globalData || {};\n // 将 methods 中的方法挂在 getApp() 中\n const methods = vm.$options.methods;\n if (methods) {\n Object.keys(methods).forEach(name => {\n appOptions[name] = methods[name];\n });\n }\n\n initAppLocale(Vue, vm, getLocaleLanguage$1());\n\n initHooks(appOptions, hooks);\n initUnknownHooks(appOptions, vm.$options);\n\n return appOptions\n}\n\nfunction getLocaleLanguage$1 () {\n let localeLanguage = '';\n {\n const appBaseInfo = wx.getAppBaseInfo();\n const language =\n appBaseInfo && appBaseInfo.language ? appBaseInfo.language : LOCALE_EN;\n localeLanguage = normalizeLocale(language) || LOCALE_EN;\n }\n return localeLanguage\n}\n\nfunction parseApp (vm) {\n return parseBaseApp(vm, {\n mocks,\n initRefs\n })\n}\n\nfunction createApp (vm) {\n App(parseApp(vm));\n return vm\n}\n\nconst encodeReserveRE = /[!'()*]/g;\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16);\nconst commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nconst encode = str => encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ',');\n\nfunction stringifyQuery (obj, encodeStr = encode) {\n const res = obj ? Object.keys(obj).map(key => {\n const val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encodeStr(key)\n }\n\n if (Array.isArray(val)) {\n const result = [];\n val.forEach(val2 => {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encodeStr(key));\n } else {\n result.push(encodeStr(key) + '=' + encodeStr(val2));\n }\n });\n return result.join('&')\n }\n\n return encodeStr(key) + '=' + encodeStr(val)\n }).filter(x => x.length > 0).join('&') : null;\n return res ? `?${res}` : ''\n}\n\nfunction parseBaseComponent (vueComponentOptions, {\n isPage,\n initRelation\n} = {}, needVueOptions) {\n const [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);\n\n const options = {\n multipleSlots: true,\n // styleIsolation: 'apply-shared',\n addGlobalClass: true,\n ...(vueOptions.options || {})\n };\n\n {\n // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项\n if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {\n Object.assign(options, vueOptions['mp-weixin'].options);\n }\n }\n\n const componentOptions = {\n options,\n data: initData(vueOptions, Vue.prototype),\n behaviors: initBehaviors(vueOptions, initBehavior),\n properties: initProperties(vueOptions.props, false, vueOptions.__file, options),\n lifetimes: {\n attached () {\n const properties = this.properties;\n\n const options = {\n mpType: isPage.call(this) ? 'page' : 'component',\n mpInstance: this,\n propsData: properties\n };\n\n initVueIds(properties.vueId, this);\n\n // 处理父子关系\n initRelation.call(this, {\n vuePid: this._$vuePid,\n vueOptions: options\n });\n\n // 初始化 vue 实例\n this.$vm = new VueComponent(options);\n\n // 处理$slots,$scopedSlots(暂不支持动态变化$slots)\n initSlots(this.$vm, properties.vueSlots);\n\n // 触发首次 setData\n this.$vm.$mount();\n },\n ready () {\n // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\n // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\n if (this.$vm) {\n this.$vm._isMounted = true;\n this.$vm.__call_hook('mounted');\n this.$vm.__call_hook('onReady');\n }\n },\n detached () {\n this.$vm && this.$vm.$destroy();\n }\n },\n pageLifetimes: {\n show (args) {\n this.$vm && this.$vm.__call_hook('onPageShow', args);\n },\n hide () {\n this.$vm && this.$vm.__call_hook('onPageHide');\n },\n resize (size) {\n this.$vm && this.$vm.__call_hook('onPageResize', size);\n }\n },\n methods: {\n __l: handleLink,\n __e: handleEvent\n }\n };\n // externalClasses\n if (vueOptions.externalClasses) {\n componentOptions.externalClasses = vueOptions.externalClasses;\n }\n\n if (Array.isArray(vueOptions.wxsCallMethods)) {\n vueOptions.wxsCallMethods.forEach(callMethod => {\n componentOptions.methods[callMethod] = function (args) {\n return this.$vm[callMethod](args)\n };\n });\n }\n\n if (needVueOptions) {\n return [componentOptions, vueOptions, VueComponent]\n }\n if (isPage) {\n return componentOptions\n }\n return [componentOptions, VueComponent]\n}\n\nfunction parseComponent (vueComponentOptions, needVueOptions) {\n return parseBaseComponent(vueComponentOptions, {\n isPage,\n initRelation\n }, needVueOptions)\n}\n\nconst hooks$1 = [\n 'onShow',\n 'onHide',\n 'onUnload'\n];\n\nhooks$1.push(...PAGE_EVENT_HOOKS);\n\nfunction parseBasePage (vuePageOptions) {\n const [pageOptions, vueOptions] = parseComponent(vuePageOptions, true);\n\n initHooks(pageOptions.methods, hooks$1, vueOptions);\n\n pageOptions.methods.onLoad = function (query) {\n this.options = query;\n const copyQuery = Object.assign({}, query);\n delete copyQuery.__id__;\n this.$page = {\n fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery)\n };\n this.$vm.$mp.query = query; // 兼容 mpvue\n this.$vm.__call_hook('onLoad', query);\n };\n {\n initUnknownHooks(pageOptions.methods, vuePageOptions, ['onReady']);\n }\n {\n initWorkletMethods(pageOptions.methods, vueOptions.methods);\n }\n\n return pageOptions\n}\n\nfunction parsePage (vuePageOptions) {\n return parseBasePage(vuePageOptions)\n}\n\nfunction createPage (vuePageOptions) {\n {\n return Component(parsePage(vuePageOptions))\n }\n}\n\nfunction createComponent (vueOptions) {\n {\n return Component(parseComponent(vueOptions))\n }\n}\n\nfunction createSubpackageApp (vm) {\n const appOptions = parseApp(vm);\n const app = getApp({\n allowDefault: true\n });\n vm.$scope = app;\n const globalData = app.globalData;\n if (globalData) {\n Object.keys(appOptions.globalData).forEach(name => {\n if (!hasOwn(globalData, name)) {\n globalData[name] = appOptions.globalData[name];\n }\n });\n }\n Object.keys(appOptions).forEach(name => {\n if (!hasOwn(app, name)) {\n app[name] = appOptions[name];\n }\n });\n if (isFn(appOptions.onShow) && wx.onAppShow) {\n wx.onAppShow((...args) => {\n vm.__call_hook('onShow', args);\n });\n }\n if (isFn(appOptions.onHide) && wx.onAppHide) {\n wx.onAppHide((...args) => {\n vm.__call_hook('onHide', args);\n });\n }\n if (isFn(appOptions.onLaunch)) {\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\n vm.__call_hook('onLaunch', args);\n }\n return vm\n}\n\nfunction createPlugin (vm) {\n const appOptions = parseApp(vm);\n if (isFn(appOptions.onShow) && wx.onAppShow) {\n wx.onAppShow((...args) => {\n vm.__call_hook('onShow', args);\n });\n }\n if (isFn(appOptions.onHide) && wx.onAppHide) {\n wx.onAppHide((...args) => {\n vm.__call_hook('onHide', args);\n });\n }\n if (isFn(appOptions.onLaunch)) {\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\n vm.__call_hook('onLaunch', args);\n }\n return vm\n}\n\ntodos.forEach(todoApi => {\n protocols[todoApi] = false;\n});\n\ncanIUses.forEach(canIUseApi => {\n const apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name\n : canIUseApi;\n if (!wx.canIUse(apiName)) {\n protocols[canIUseApi] = false;\n }\n});\n\nlet uni = {};\n\nif (typeof Proxy !== 'undefined' && \"mp-weixin\" !== 'app-plus') {\n uni = new Proxy({}, {\n get (target, name) {\n if (hasOwn(target, name)) {\n return target[name]\n }\n if (baseApi[name]) {\n return baseApi[name]\n }\n if (api[name]) {\n return promisify(name, api[name])\n }\n {\n if (extraApi[name]) {\n return promisify(name, extraApi[name])\n }\n if (todoApis[name]) {\n return promisify(name, todoApis[name])\n }\n }\n if (eventApi[name]) {\n return eventApi[name]\n }\n return promisify(name, wrapper(name, wx[name]))\n },\n set (target, name, value) {\n target[name] = value;\n return true\n }\n });\n} else {\n Object.keys(baseApi).forEach(name => {\n uni[name] = baseApi[name];\n });\n\n {\n Object.keys(todoApis).forEach(name => {\n uni[name] = promisify(name, todoApis[name]);\n });\n Object.keys(extraApi).forEach(name => {\n uni[name] = promisify(name, extraApi[name]);\n });\n }\n\n Object.keys(eventApi).forEach(name => {\n uni[name] = eventApi[name];\n });\n\n Object.keys(api).forEach(name => {\n uni[name] = promisify(name, api[name]);\n });\n\n Object.keys(wx).forEach(name => {\n if (hasOwn(wx, name) || hasOwn(protocols, name)) {\n uni[name] = promisify(name, wrapper(name, wx[name]));\n }\n });\n}\n\nwx.createApp = createApp;\nwx.createPage = createPage;\nwx.createComponent = createComponent;\nwx.createSubpackageApp = createSubpackageApp;\nwx.createPlugin = createPlugin;\n\nvar uni$1 = uni;\n\nexport default uni$1;\nexport { createApp, createComponent, createPage, createPlugin, createSubpackageApp };\n","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","const isObject = (val) => val !== null && typeof val === 'object';\nconst defaultDelimiters = ['{', '}'];\nclass BaseFormatter {\n constructor() {\n this._caches = Object.create(null);\n }\n interpolate(message, values, delimiters = defaultDelimiters) {\n if (!values) {\n return [message];\n }\n let tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message, delimiters);\n this._caches[message] = tokens;\n }\n return compile(tokens, values);\n }\n}\nconst RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nconst RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\nfunction parse(format, [startDelimiter, endDelimiter]) {\n const tokens = [];\n let position = 0;\n let text = '';\n while (position < format.length) {\n let char = format[position++];\n if (char === startDelimiter) {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n text = '';\n let sub = '';\n char = format[position++];\n while (char !== undefined && char !== endDelimiter) {\n sub += char;\n char = format[position++];\n }\n const isClosed = char === endDelimiter;\n const type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type });\n }\n // else if (char === '%') {\n // // when found rails i18n syntax, skip text capture\n // if (format[position] !== '{') {\n // text += char\n // }\n // }\n else {\n text += char;\n }\n }\n text && tokens.push({ type: 'text', value: text });\n return tokens;\n}\nfunction compile(tokens, values) {\n const compiled = [];\n let index = 0;\n const mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') {\n return compiled;\n }\n while (index < tokens.length) {\n const token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break;\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break;\n case 'named':\n if (mode === 'named') {\n compiled.push(values[token.value]);\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);\n }\n }\n break;\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Detect 'unknown' type of token!`);\n }\n break;\n }\n index++;\n }\n return compiled;\n}\n\nconst LOCALE_ZH_HANS = 'zh-Hans';\nconst LOCALE_ZH_HANT = 'zh-Hant';\nconst LOCALE_EN = 'en';\nconst LOCALE_FR = 'fr';\nconst LOCALE_ES = 'es';\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst defaultFormatter = new BaseFormatter();\nfunction include(str, parts) {\n return !!parts.find((part) => str.indexOf(part) !== -1);\n}\nfunction startsWith(str, parts) {\n return parts.find((part) => str.indexOf(part) === 0);\n}\nfunction normalizeLocale(locale, messages) {\n if (!locale) {\n return;\n }\n locale = locale.trim().replace(/_/g, '-');\n if (messages && messages[locale]) {\n return locale;\n }\n locale = locale.toLowerCase();\n if (locale === 'chinese') {\n // 支付宝\n return LOCALE_ZH_HANS;\n }\n if (locale.indexOf('zh') === 0) {\n if (locale.indexOf('-hans') > -1) {\n return LOCALE_ZH_HANS;\n }\n if (locale.indexOf('-hant') > -1) {\n return LOCALE_ZH_HANT;\n }\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\n return LOCALE_ZH_HANT;\n }\n return LOCALE_ZH_HANS;\n }\n let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES];\n if (messages && Object.keys(messages).length > 0) {\n locales = Object.keys(messages);\n }\n const lang = startsWith(locale, locales);\n if (lang) {\n return lang;\n }\n}\nclass I18n {\n constructor({ locale, fallbackLocale, messages, watcher, formater, }) {\n this.locale = LOCALE_EN;\n this.fallbackLocale = LOCALE_EN;\n this.message = {};\n this.messages = {};\n this.watchers = [];\n if (fallbackLocale) {\n this.fallbackLocale = fallbackLocale;\n }\n this.formater = formater || defaultFormatter;\n this.messages = messages || {};\n this.setLocale(locale || LOCALE_EN);\n if (watcher) {\n this.watchLocale(watcher);\n }\n }\n setLocale(locale) {\n const oldLocale = this.locale;\n this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;\n if (!this.messages[this.locale]) {\n // 可能初始化时不存在\n this.messages[this.locale] = {};\n }\n this.message = this.messages[this.locale];\n // 仅发生变化时,通知\n if (oldLocale !== this.locale) {\n this.watchers.forEach((watcher) => {\n watcher(this.locale, oldLocale);\n });\n }\n }\n getLocale() {\n return this.locale;\n }\n watchLocale(fn) {\n const index = this.watchers.push(fn) - 1;\n return () => {\n this.watchers.splice(index, 1);\n };\n }\n add(locale, message, override = true) {\n const curMessages = this.messages[locale];\n if (curMessages) {\n if (override) {\n Object.assign(curMessages, message);\n }\n else {\n Object.keys(message).forEach((key) => {\n if (!hasOwn(curMessages, key)) {\n curMessages[key] = message[key];\n }\n });\n }\n }\n else {\n this.messages[locale] = message;\n }\n }\n f(message, values, delimiters) {\n return this.formater.interpolate(message, values, delimiters).join('');\n }\n t(key, locale, values) {\n let message = this.message;\n if (typeof locale === 'string') {\n locale = normalizeLocale(locale, this.messages);\n locale && (message = this.messages[locale]);\n }\n else {\n values = locale;\n }\n if (!hasOwn(message, key)) {\n console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);\n return key;\n }\n return this.formater.interpolate(message[key], values).join('');\n }\n}\n\nfunction watchAppLocale(appVm, i18n) {\n // 需要保证 watch 的触发在组件渲染之前\n if (appVm.$watchLocale) {\n // vue2\n appVm.$watchLocale((newLocale) => {\n i18n.setLocale(newLocale);\n });\n }\n else {\n appVm.$watch(() => appVm.$locale, (newLocale) => {\n i18n.setLocale(newLocale);\n });\n }\n}\nfunction getDefaultLocale() {\n if (typeof uni !== 'undefined' && uni.getLocale) {\n return uni.getLocale();\n }\n // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale\n if (typeof global !== 'undefined' && global.getLocale) {\n return global.getLocale();\n }\n return LOCALE_EN;\n}\nfunction initVueI18n(locale, messages = {}, fallbackLocale, watcher) {\n // 兼容旧版本入参\n if (typeof locale !== 'string') {\n [locale, messages] = [\n messages,\n locale,\n ];\n }\n if (typeof locale !== 'string') {\n // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined\n locale = getDefaultLocale();\n }\n if (typeof fallbackLocale !== 'string') {\n fallbackLocale =\n (typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale) ||\n LOCALE_EN;\n }\n const i18n = new I18n({\n locale,\n fallbackLocale,\n messages,\n watcher,\n });\n let t = (key, values) => {\n if (typeof getApp !== 'function') {\n // app view\n /* eslint-disable no-func-assign */\n t = function (key, values) {\n return i18n.t(key, values);\n };\n }\n else {\n let isWatchedAppLocale = false;\n t = function (key, values) {\n const appVm = getApp().$vm;\n // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化\n // options: {\n // \ttype: Array,\n // \tdefault () {\n // \t\treturn [{\n // \t\t\ticon: 'shop',\n // \t\t\ttext: t(\"uni-goods-nav.options.shop\"),\n // \t\t}, {\n // \t\t\ticon: 'cart',\n // \t\t\ttext: t(\"uni-goods-nav.options.cart\")\n // \t\t}]\n // \t}\n // },\n if (appVm) {\n // 触发响应式\n appVm.$locale;\n if (!isWatchedAppLocale) {\n isWatchedAppLocale = true;\n watchAppLocale(appVm, i18n);\n }\n }\n return i18n.t(key, values);\n };\n }\n return t(key, values);\n };\n return {\n i18n,\n f(message, values, delimiters) {\n return i18n.f(message, values, delimiters);\n },\n t(key, values) {\n return t(key, values);\n },\n add(locale, message, override = true) {\n return i18n.add(locale, message, override);\n },\n watch(fn) {\n return i18n.watchLocale(fn);\n },\n getLocale() {\n return i18n.getLocale();\n },\n setLocale(newLocale) {\n return i18n.setLocale(newLocale);\n },\n };\n}\n\nconst isString = (val) => typeof val === 'string';\nlet formater;\nfunction hasI18nJson(jsonObj, delimiters) {\n if (!formater) {\n formater = new BaseFormatter();\n }\n return walkJsonObj(jsonObj, (jsonObj, key) => {\n const value = jsonObj[key];\n if (isString(value)) {\n if (isI18nStr(value, delimiters)) {\n return true;\n }\n }\n else {\n return hasI18nJson(value, delimiters);\n }\n });\n}\nfunction parseI18nJson(jsonObj, values, delimiters) {\n if (!formater) {\n formater = new BaseFormatter();\n }\n walkJsonObj(jsonObj, (jsonObj, key) => {\n const value = jsonObj[key];\n if (isString(value)) {\n if (isI18nStr(value, delimiters)) {\n jsonObj[key] = compileStr(value, values, delimiters);\n }\n }\n else {\n parseI18nJson(value, values, delimiters);\n }\n });\n return jsonObj;\n}\nfunction compileI18nJsonStr(jsonStr, { locale, locales, delimiters, }) {\n if (!isI18nStr(jsonStr, delimiters)) {\n return jsonStr;\n }\n if (!formater) {\n formater = new BaseFormatter();\n }\n const localeValues = [];\n Object.keys(locales).forEach((name) => {\n if (name !== locale) {\n localeValues.push({\n locale: name,\n values: locales[name],\n });\n }\n });\n localeValues.unshift({ locale, values: locales[locale] });\n try {\n return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);\n }\n catch (e) { }\n return jsonStr;\n}\nfunction isI18nStr(value, delimiters) {\n return value.indexOf(delimiters[0]) > -1;\n}\nfunction compileStr(value, values, delimiters) {\n return formater.interpolate(value, values, delimiters).join('');\n}\nfunction compileValue(jsonObj, key, localeValues, delimiters) {\n const value = jsonObj[key];\n if (isString(value)) {\n // 存在国际化\n if (isI18nStr(value, delimiters)) {\n jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);\n if (localeValues.length > 1) {\n // 格式化国际化语言\n const valueLocales = (jsonObj[key + 'Locales'] = {});\n localeValues.forEach((localValue) => {\n valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);\n });\n }\n }\n }\n else {\n compileJsonObj(value, localeValues, delimiters);\n }\n}\nfunction compileJsonObj(jsonObj, localeValues, delimiters) {\n walkJsonObj(jsonObj, (jsonObj, key) => {\n compileValue(jsonObj, key, localeValues, delimiters);\n });\n return jsonObj;\n}\nfunction walkJsonObj(jsonObj, walk) {\n if (Array.isArray(jsonObj)) {\n for (let i = 0; i < jsonObj.length; i++) {\n if (walk(jsonObj, i)) {\n return true;\n }\n }\n }\n else if (isObject(jsonObj)) {\n for (const key in jsonObj) {\n if (walk(jsonObj, key)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction resolveLocale(locales) {\n return (locale) => {\n if (!locale) {\n return locale;\n }\n locale = normalizeLocale(locale) || locale;\n return resolveLocaleChain(locale).find((locale) => locales.indexOf(locale) > -1);\n };\n}\nfunction resolveLocaleChain(locale) {\n const chain = [];\n const tokens = locale.split('-');\n while (tokens.length) {\n chain.push(tokens.join('-'));\n tokens.pop();\n }\n return chain;\n}\n\nexport { BaseFormatter as Formatter, I18n, LOCALE_EN, LOCALE_ES, LOCALE_FR, LOCALE_ZH_HANS, LOCALE_ZH_HANT, compileI18nJsonStr, hasI18nJson, initVueI18n, isI18nStr, isString, normalizeLocale, parseI18nJson, resolveLocale };\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\n * Vue.js v2.6.11\n * (c) 2014-2024 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n if (vm.$options && vm.$options.__file) { // fixed by xxxxxx\n return ('') + vm.$options.__file\n }\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm && vm.$options.name !== 'PageBody') {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n !vm.$options.isReserved && tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.SharedObject.target) {\n Dep.SharedObject.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\n// fixed by xxxxxx (nvue shared vuex)\n/* eslint-disable no-undef */\nDep.SharedObject = {};\nDep.SharedObject.target = null;\nDep.SharedObject.targetStack = [];\n\nfunction pushTarget (target) {\n Dep.SharedObject.targetStack.push(target);\n Dep.SharedObject.target = target;\n Dep.target = target;\n}\n\nfunction popTarget () {\n Dep.SharedObject.targetStack.pop();\n Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];\n Dep.target = Dep.SharedObject.target;\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑\n if(value.push !== value.__proto__.push){\n copyAugment(value, arrayMethods, arrayKeys);\n } else {\n protoAugment(value, arrayMethods);\n }\n }\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue &&\n !value.__v_isMPComponent\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.SharedObject.target) { // fixed by xxxxxx\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\n/* */\n\n// fixed by xxxxxx (mp properties)\r\nfunction extractPropertiesFromVNodeData(data, Ctor, res, context) {\r\n var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;\r\n if (isUndef(propOptions)) {\r\n return res\r\n }\n var externalClasses = Ctor.options.mpOptions.externalClasses || [];\r\n var attrs = data.attrs;\n var props = data.props;\r\n if (isDef(attrs) || isDef(props)) {\r\n for (var key in propOptions) {\r\n var altKey = hyphenate(key);\n var result = checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n // externalClass\n if (\n result &&\n res[key] &&\n externalClasses.indexOf(altKey) !== -1 &&\n context[camelize(res[key])]\n ) {\n // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)\n res[key] = context[camelize(res[key])];\n }\r\n }\r\n }\r\n return res\r\n}\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag,\n context// fixed by xxxxxx\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, {}, context)\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, res, context)\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.