diff --git a/api/serve/index.js b/api/serve/index.js
index e3f9d0b..bc76a41 100644
--- a/api/serve/index.js
+++ b/api/serve/index.js
@@ -85,7 +85,8 @@ x.fn = x.prototype = {
console.info(newMsg)
if(Cache.get(newMsg).data){
if(newMsg!='_user_walletImage'&& newMsg!='_user_getAuthInfo' && newMsg!='_user_withdrawalBalance'
- && newMsg!='_article_detail' && newMsg!='_contract_getSymbolDetail'
+ && newMsg!='_article_detail' && newMsg!='_contract_getSymbolDetail' && newMsg!='_categoryList' && newMsg!='_articleList'
+ && newMsg!='_college' && newMsg!='_exchange_getCoinInfo'
&& newMsg!='_wallet_getBalance' && newMsg!='_contract_getMarketInfo'&& newMsg!='_contract_openNum'){
resolve(Cache.get(newMsg).data);
}
diff --git a/i18n/lang/de.json b/i18n/lang/de.json
index 1445a5c..9314161 100644
--- a/i18n/lang/de.json
+++ b/i18n/lang/de.json
@@ -214,7 +214,21 @@
"c1":"Upload erfolgreich",
"c2":"Bitte laden Sie das Foto auf der Rückseite des Zertifikats hoch",
"c3":"Bitte laden Sie das Foto Ihrer Personalausweise hoch",
- "c4":"Upload erfolgreich, bitte warten Sie auf das Audit"
+ "c4":"Upload erfolgreich, bitte warten Sie auf das Audit",
+ "d0": "Datum der Geburt",
+ "d1": "Art des Dokuments",
+ "d2": "ID",
+ "d3": "Führerschein (Führerschein)",
+ "d4": "Reisepass",
+ "d5": "Anschrift des Wohnorts",
+ "d6": "Bitte geben Sie Ihre Wohnadresse ein",
+ "d7": "Stadt",
+ "d8": "Bitte betreten Sie Ihre Stadt",
+ "d9": "Postleitzahl (Postleitzahl)",
+ "d10": "Bitte geben Sie die Postleitzahl ein",
+ "d11": "Telefon Nummer",
+ "d12": "Bitte geben Sie die Mobiltelefonnummer ein",
+ "d13": "Bitte wählen"
},
"exchange": {
"a0":"Münzen",
@@ -489,7 +503,8 @@
"help": {
"a0":"Einzelheiten",
"a1":"Hochschule",
- "a2":"Einstufung"
+ "a2":"Einstufung",
+ "a3":""
},
" login": {
"a0":"Handy- oder E-Mail-Nummer",
diff --git a/i18n/lang/en.json b/i18n/lang/en.json
index 8b05b74..9f94a61 100644
--- a/i18n/lang/en.json
+++ b/i18n/lang/en.json
@@ -217,7 +217,21 @@
"c1": "Uploaded successfully",
"c2": "Please upload a photo of the back of your ID",
"c3": "Please upload the front photo of your ID",
- "c4": "Uploaded successfully, please wait for review"
+ "c4": "Uploaded successfully, please wait for review",
+ "d0": "Date of Birth",
+ "d1": "Certificate Type",
+ "d2": "ID card",
+ "d3": "Driving License",
+ "d4": "Passport",
+ "d5": "residential address",
+ "d6": "Please enter residential address",
+ "d7": "City",
+ "d8": "Please enter your city",
+ "d9": "Postal Code",
+ "d10": "Please enter the postal code",
+ "d11": "Phone Number",
+ "d12": "Please enter your phone number",
+ "d13": "Please select"
},
"exchange": {
"a0": "Spot Trading",
@@ -494,7 +508,7 @@
"a0": "Details",
"a1": "College",
"a2": "Classification",
- "a3":"Learn"
+ "a3": "Learn"
},
"login": {
"a0": "Email",
diff --git a/i18n/lang/fra.json b/i18n/lang/fra.json
index 363e831..33690f8 100644
--- a/i18n/lang/fra.json
+++ b/i18n/lang/fra.json
@@ -214,7 +214,21 @@
"c1":"Téléchargement réussi",
"c2":"Veuillez télécharger la photo de retour du certificat",
"c3":"Veuillez télécharger la photo de face du certificat",
- "c4":"Téléchargement réussi, veuillez attendre l'approbation"
+ "c4":"Téléchargement réussi, veuillez attendre l'approbation",
+ "d0": "Date de naissance",
+ "d1": "Type de certificat",
+ "d2": "Carte d'identité",
+ "d3": "Permis de conduire",
+ "d4": "Passeport",
+ "d5": "Adresse de résidence",
+ "d6": "Veuillez entrer votre adresse résidentielle",
+ "d7": "Les villes",
+ "d8": "Veuillez entrer votre ville",
+ "d9": "Code Postal",
+ "d10": "Veuillez saisir le Code Postal",
+ "d11": "Numéro de téléphone",
+ "d12": "Veuillez saisir le numéro de téléphone",
+ "d13": "Veuillez sélectionner"
},
"exchange": {
"a0":"Monnaie",
@@ -489,7 +503,8 @@
"help": {
"a0":"Détails",
"a1":"Institut",
- "a2":"Classification"
+ "a2":"Classification",
+ "a3":""
},
"login": {
"a0":"Numéro de téléphone ou de courriel",
diff --git a/i18n/lang/it.json b/i18n/lang/it.json
index c37240d..b59083b 100644
--- a/i18n/lang/it.json
+++ b/i18n/lang/it.json
@@ -214,7 +214,21 @@
"c1":"Upload riuscito",
"c2":"Si prega di caricare la foto sul retro del certificato",
"c3":"Si prega di caricare la foto anteriore della carta d'identità",
- "c4":"Upload di successo, si prega di attendere il audit"
+ "c4":"Upload di successo, si prega di attendere il audit",
+ "d0": "Data di nascita",
+ "d1": "Tipo di documento",
+ "d2": "ID",
+ "d3": "Patente di guida",
+ "d4": "Passaporto",
+ "d5": "Indirizzo di residenza",
+ "d6": "Inserisci il tuo indirizzo residenziale",
+ "d7": "Città",
+ "d8": "Entrate nella vostra città",
+ "d9": "Codice postale",
+ "d10": "Inserisci il codice zip",
+ "d11": "numero di telefono",
+ "d12": "Inserisci il numero di telefono cellulare",
+ "d13": "Seleziona"
},
"exchange": {
"a0":"Monete",
@@ -485,9 +499,10 @@
"c9":"I miei diritti e interessi"
},
"help": {
- "a0":"dettagli",
- "a1":"college",
- "a2":"classificazione"
+ "a0":"dettagli",
+ "a1":"college",
+ "a2":"classificazione",
+ "a3":""
},
"login": {
"a0":"Cellulare o numero di posta elettronica",
diff --git a/i18n/lang/jp.json b/i18n/lang/jp.json
index 366e01e..e163b77 100644
--- a/i18n/lang/jp.json
+++ b/i18n/lang/jp.json
@@ -214,7 +214,21 @@
"c1":"アップロード成功",
"c2":"証明書の裏写真をアップロードしてください。",
"c3":"証明書の正面写真をアップロードしてください。",
- "c4":"アップロードが成功しました。審査を待ってください。"
+ "c4":"アップロードが成功しました。審査を待ってください。",
+ "d0": "生年月日",
+ "d1": "証明書の種類",
+ "d2": "身分証",
+ "d3": "運転免許証",
+ "d4": "パスポート",
+ "d5": "住所",
+ "d6": "住所を入力してください。",
+ "d7": "都市",
+ "d8": "場所都市を入力してください。",
+ "d9": "郵便番号",
+ "d10": "郵便番号を入力してください。",
+ "d11": "電話番号",
+ "d12": "携帯の番号を入力してください",
+ "d13": "選択してください"
},
"exchange": {
"a0":"貨幣",
@@ -487,7 +501,8 @@
"help": {
"a0":"詳細",
"a1":"学院",
- "a2":"カテゴリ"
+ "a2":"カテゴリ",
+ "a3":""
},
"login": {
"a0":"携帯やメールアドレス",
diff --git a/i18n/lang/kor.json b/i18n/lang/kor.json
index 5fa5f9d..ce5edde 100644
--- a/i18n/lang/kor.json
+++ b/i18n/lang/kor.json
@@ -214,7 +214,21 @@
"c1":"업로드 성공",
"c2":"증명서 뒷면 사진 을 올 려 주세요.",
"c3":"증명 서 를 정면 사진 으로 올 려 주세요.",
- "c4":"업로드 성공, 심사 대기"
+ "c4":"업로드 성공, 심사 대기",
+ "d0": "생년월일",
+ "d1": "증명서 유형",
+ "d2": "신분증",
+ "d3": "운전 면허증",
+ "d4": "여권.",
+ "d5": "거주 지",
+ "d6": "거주 지 를 입력 하 세 요",
+ "d7": "도시.",
+ "d8": "소재 도 시 를 입력 하 세 요",
+ "d9": "우편번호",
+ "d10": "우편 번호 입력 하 세 요",
+ "d11": "전화 번호",
+ "d12": "핸드폰 번 호 를 입력 하 세 요.",
+ "d13": "선택 하 세 요."
},
"exchange": {
"a0":"화폐",
@@ -487,7 +501,8 @@
"help": {
"a0":"상세 한 상황.",
"a1":"대학.",
- "a2":"분류 하 다."
+ "a2":"분류 하 다.",
+ "a3":""
},
"login": {
"a0":"핸드폰 이나 메 일주 소 번호",
diff --git a/i18n/lang/pt.json b/i18n/lang/pt.json
index 71a9645..989867e 100644
--- a/i18n/lang/pt.json
+++ b/i18n/lang/pt.json
@@ -214,7 +214,21 @@
"c1":"Envio BEM sucedido",
"c2":"Por favor, envie a foto Na parte de trás do certificado",
"c3":"Por favor, envie a foto Da Frente do SEU cartão de identificação",
- "c4":"Carregar com sucesso, por favor aguarde a auditoria"
+ "c4":"Carregar com sucesso, por favor aguarde a auditoria",
+ "d0": "Data de nascimento",
+ "d1": "Tipo de certificado",
+ "d2": "Identificação",
+ "d3": "Carta de condução",
+ "d4": "Passaporte",
+ "d5": "Endereço de residência",
+ "d6": "Por favor, insira o endereço de residência",
+ "d7": "cidade",
+ "d8": "Por favor, insira a cidade",
+ "d9": "Código postal",
+ "d10": "Por favor, digite o código postal",
+ "d11": "Número de telefone",
+ "d12": "Por favor, digite o número de telefone celular",
+ "d13": "Por favor, escolha"
},
"exchange": {
"a0":"Moedas",
@@ -485,9 +499,10 @@
"c9":"Os MEUS direitos e interesses"
},
"help": {
- "a0":"Detalhes",
- "a1":"Universidade",
- "a2":"Classificação"
+ "a0":"Detalhes",
+ "a1":"Universidade",
+ "a2":"Classificação",
+ "a3":""
},
"login": {
"a0":"Telefone celular ou número de e-mail",
diff --git a/i18n/lang/spa.json b/i18n/lang/spa.json
index 01ba7b1..7bb5345 100644
--- a/i18n/lang/spa.json
+++ b/i18n/lang/spa.json
@@ -214,7 +214,21 @@
"c1":"Subida exitosa",
"c2":"Por favor, suba la foto de atrás del documento.",
"c3":"Por favor, suba la foto frontal del documento.",
- "c4":"Carga exitosa, por favor espere a ser auditada"
+ "c4":"Carga exitosa, por favor espere a ser auditada",
+ "d0": "Fecha de nacimiento",
+ "d1": "Tipo de documento",
+ "d2": "Documento de identidad",
+ "d3": "Licencia de conducir",
+ "d4": "Pasaporte",
+ "d5": "Dirección de residencia",
+ "d6": "Introduzca la dirección de residencia",
+ "d7": "Ciudad",
+ "d8": "Por favor, introduzca su ciudad",
+ "d9": "Código postal",
+ "d10": "Introduzca el código postal",
+ "d11": "Número de teléfono",
+ "d12": "Por favor, introduzca el número de teléfono",
+ "d13": "Por favor, elija"
},
"exchange": {
"a0":"Moneda",
@@ -485,9 +499,10 @@
"c9":"Mis derechos"
},
"help": {
- "a0":"Detalles",
- "a1":"College",
- "a2":"Clasificación"
+ "a0":"Detalles",
+ "a1":"College",
+ "a2":"Clasificación",
+ "a3":""
},
"login": {
"a0":"Número de teléfono móvil o correo electrónico",
diff --git a/i18n/lang/tr.json b/i18n/lang/tr.json
index 2db4ee3..57fcd10 100644
--- a/i18n/lang/tr.json
+++ b/i18n/lang/tr.json
@@ -214,7 +214,21 @@
"c1": "Başarıyla yüklendi",
"c2": "Lütfen kimliğinizin arka yüzünün bir fotoğrafını yükleyin",
"c3": "Lütfen kimliğinizin ön fotoğrafını yükleyin",
- "c4": "Başarıyla yüklendi, lütfen inceleme için bekleyin"
+ "c4": "Başarıyla yüklendi, lütfen inceleme için bekleyin",
+ "d0": "Doğum tarihi",
+ "d1": "Sertifika türü",
+ "d2": "Kimlik kartı",
+ "d3": "Ehliyet",
+ "d4": "Pasaport",
+ "d5": "Konut adresi",
+ "d6": "Lütfen ikamet adresini girin",
+ "d7": "Kent",
+ "d8": "Lütfen şehrinizi girin",
+ "d9": "Posta kodu",
+ "d10": "Lütfen posta kodunu girin",
+ "d11": "Telefon numarası",
+ "d12": "Lütfen telefon numarasını girin",
+ "d13": "Lütfen seç"
},
"exchange": {
"a0": "Madeni Paralar",
@@ -487,7 +501,8 @@
"help": {
"a0": "Ayrıntılar",
"a1": "Kolej",
- "a2": "Sınıflandırma"
+ "a2": "Sınıflandırma",
+ "a3":""
},
"login": {
"a0": "Cep telefonu veya posta kutusu numarası",
diff --git a/i18n/lang/zh-TW.json b/i18n/lang/zh-TW.json
index f0eb637..c5b75cd 100644
--- a/i18n/lang/zh-TW.json
+++ b/i18n/lang/zh-TW.json
@@ -216,7 +216,21 @@
"c1": "上傳成功",
"c2": "請上傳證件背面照",
"c3": "請上傳證件正面照",
- "c4": "上傳成功,請等待審核"
+ "c4": "上傳成功,請等待審核",
+ "d0": "出生日期",
+ "d1": "證件類型",
+ "d2": "身份證",
+ "d3": "駕駛證",
+ "d4": "護照",
+ "d5": "居住地址",
+ "d6": "請輸入居住地址",
+ "d7": "城市",
+ "d8": "請輸入所在城市",
+ "d9": "郵遞區號",
+ "d10": "請輸入郵遞區號",
+ "d11": "電話號碼",
+ "d12": "請輸入手機號",
+ "d13": "請選擇"
},
"exchange": {
"a0": "幣幣",
diff --git a/pages/assets/draw.vue b/pages/assets/draw.vue
index ee1b98a..60c69d9 100644
--- a/pages/assets/draw.vue
+++ b/pages/assets/draw.vue
@@ -21,7 +21,7 @@
-
+
+
{{$t('auth.a7')}}
@@ -14,17 +15,73 @@
+
{{$t('auth.a9')}}
+
+
+ {{$t('auth.d0')}}
+
+
+
+
+
+
+ {{$t('auth.d1')}}
+
+
+
+
+
+
+
+
+
+
+
{{$t('auth.b1')}}
+
+
+
+ {{$t('auth.d5')}}
+
+
+
+
+
+
+ {{$t('auth.d7')}}
+
+
+
+
+
+
+ {{$t('auth.d9')}}
+
+
+
+
+
+
+ {{$t('auth.d11')}}
+
+
+
{{$t('auth.b3')}}
@@ -45,11 +102,32 @@ export default {
detail: {},
countryList: [],
form: {
+ type: "",
id_card: "",
realname: "",
country_id: "",
country_code: "",
+ birthday: "",
+ address: "",
+ city: "",
+ postal_code: "",
+ phone: "",
},
+ single: "2023-06-3",
+ typeList: [
+ {
+ label: this.$t('auth.d2'),
+ value: 1,
+ },
+ {
+ label: this.$t('auth.d3'),
+ value: 2,
+ },
+ {
+ label: this.$t('auth.d4'),
+ value: 3,
+ },
+ ]
};
},
computed: {
@@ -58,6 +136,11 @@ export default {
this.countryList.find((item) => item.id == this.form.country_id) || {}
);
},
+ activeType(){
+ return (
+ this.typeList.find((item) => item.value == this.form.type) || {}
+ );
+ },
activeIndex(){
return this.countryList.findIndex((item) => item.id == this.form.country_id)
},
@@ -81,13 +164,22 @@ export default {
selectCountry(value) {
this.form.country_id = value
},
+ selectDate(value){
+ this.form.birthday = value;
+ },
+ selectType(value){
+ this.form.type = value;
+ },
// 认证
primaryAuth() {
let data = this.form;
data.country_code = this.activeCountry.country_code;
Profile.primaryAuth(data,{btn:this.$refs.btn}).then(() => {
this.$toast.success(this.$t('auth.b4'));
- this.$back();
+ // this.$back();
+ uni.navigateBack({
+ delta: 1
+ })
}).catch(()=>{});
},
},
@@ -95,6 +187,10 @@ export default {
this.getAuthInfo();
this.getCountryCode();
},
+ onShow() {
+ let date = new Date;
+ this.single = date.getFullYear()+'-'+((date.getMonth()+1).toString().length==1?'0'+(date.getMonth()+1):(date.getMonth()+1))+'-'+date.getDate();
+ }
};
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..29b1b03
--- /dev/null
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue
@@ -0,0 +1,929 @@
+
+
+
+
+
+
+
+
+
+
+ {{nowDate.month}}
+
+
+
+
+ {{SUNText}}
+
+
+ {{MONText}}
+
+
+ {{TUEText}}
+
+
+ {{WEDText}}
+
+
+ {{THUText}}
+
+
+ {{FRIText}}
+
+
+ {{SATText}}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{tempSingleDate ? tempSingleDate : selectDateText}}
+
+
+
+
+
+
+ {{tempRange.before ? tempRange.before : startDateText}}
+
+
+
+
+
+
+
+
+ {{tempRange.after ? tempRange.after : endDateText}}
+
+
+
+
+
+
+ {{confirmText}}
+
+
+
+
+
+
+
+
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..024f22f
--- /dev/null
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json
@@ -0,0 +1,22 @@
+{
+ "uni-datetime-picker.selectDate": "select date",
+ "uni-datetime-picker.selectTime": "select time",
+ "uni-datetime-picker.selectDateTime": "select date and time",
+ "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-datetime-picker.year": "-",
+ "uni-datetime-picker.month": "",
+ "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",
+ "uni-calender.confirm": "confirm"
+}
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..de7509c
--- /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..d2df5e7
--- /dev/null
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json
@@ -0,0 +1,22 @@
+{
+ "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-datetime-picker.year": "年",
+ "uni-datetime-picker.month": "月",
+ "uni-calender.SUN": "日",
+ "uni-calender.MON": "一",
+ "uni-calender.TUE": "二",
+ "uni-calender.WED": "三",
+ "uni-calender.THU": "四",
+ "uni-calender.FRI": "五",
+ "uni-calender.SAT": "六",
+ "uni-calender.confirm": "确认"
+}
\ No newline at end of file
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..d23fa3c
--- /dev/null
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json
@@ -0,0 +1,22 @@
+{
+ "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-datetime-picker.year": "年",
+ "uni-datetime-picker.month": "月",
+ "uni-calender.SUN": "日",
+ "uni-calender.MON": "一",
+ "uni-calender.TUE": "二",
+ "uni-calender.WED": "三",
+ "uni-calender.THU": "四",
+ "uni-calender.FRI": "五",
+ "uni-calender.SAT": "六",
+ "uni-calender.confirm": "確認"
+}
\ 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..81a042a
--- /dev/null
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue
@@ -0,0 +1,934 @@
+
+
+
+
+
+ {{time}}
+
+ {{selectTimeText}}
+
+
+
+
+
+
+
+
+
+
+
+
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..8769e83
--- /dev/null
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue
@@ -0,0 +1,1032 @@
+
+
+
+
+
+
+
+ {{ displayValue || singlePlaceholderText }}
+
+
+
+
+ {{ displayRangeValue.startDate || startPlaceholderText }}
+
+ {{rangeSeparator}}
+
+ {{ displayRangeValue.endDate || endPlaceholderText }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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..fc98623
--- /dev/null
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js
@@ -0,0 +1,453 @@
+class Calendar {
+ constructor({
+ selected,
+ startDate,
+ endDate,
+ range,
+ } = {}) {
+ // 当前日期
+ this.date = this.getDateObj(new Date()) // 当前初入日期
+ // 打点信息
+ this.selected = selected || [];
+ // 起始时间
+ this.startDate = startDate
+ // 终止时间
+ this.endDate = endDate
+ // 是否范围选择
+ this.range = range
+ // 多选状态
+ this.cleanMultipleStatus()
+ // 每周日期
+ this.weeks = {}
+ this.lastHover = false
+ }
+ /**
+ * 设置日期
+ * @param {Object} date
+ */
+ setDate(date) {
+ const selectDate = this.getDateObj(date)
+ this.getWeeks(selectDate.fullDate)
+ }
+
+ /**
+ * 清理多选状态
+ */
+ cleanMultipleStatus() {
+ this.multipleStatus = {
+ before: '',
+ after: '',
+ data: []
+ }
+ }
+
+ setStartDate(startDate) {
+ this.startDate = startDate
+ }
+
+ setEndDate(endDate) {
+ this.endDate = endDate
+ }
+
+ getPreMonthObj(date){
+ date = fixIosDateFormat(date)
+ date = new Date(date)
+
+ const oldMonth = date.getMonth()
+ date.setMonth(oldMonth - 1)
+ const newMonth = date.getMonth()
+ if(oldMonth !== 0 && newMonth - oldMonth === 0){
+ date.setMonth(newMonth - 1)
+ }
+ return this.getDateObj(date)
+ }
+ getNextMonthObj(date){
+ date = fixIosDateFormat(date)
+ date = new Date(date)
+
+ const oldMonth = date.getMonth()
+ date.setMonth(oldMonth + 1)
+ const newMonth = date.getMonth()
+ if(newMonth - oldMonth > 1){
+ date.setMonth(newMonth - 1)
+ }
+ return this.getDateObj(date)
+ }
+
+ /**
+ * 获取指定格式Date对象
+ */
+ getDateObj(date) {
+ date = fixIosDateFormat(date)
+ date = new Date(date)
+
+ return {
+ fullDate: getDate(date),
+ year: date.getFullYear(),
+ month: addZero(date.getMonth() + 1),
+ date: addZero(date.getDate()),
+ day: date.getDay()
+ }
+ }
+
+ /**
+ * 获取上一个月日期集合
+ */
+ getPreMonthDays(amount, dateObj) {
+ const result = []
+ for (let i = amount - 1; i >= 0; i--) {
+ const month = dateObj.month > 1 ? dateObj.month -1 : 12
+ const year = month === 12 ? dateObj.year - 1 : dateObj.year
+ const date = new Date(year,month,-i).getDate()
+ const fullDate = `${year}-${addZero(month)}-${addZero(date)}`
+ let multiples = this.multipleStatus.data
+ let multiplesStatus = -1
+ if (this.range && multiples) {
+ multiplesStatus = multiples.findIndex((item) => {
+ return this.dateEqual(item, fullDate)
+ })
+ }
+ const checked = multiplesStatus !== -1
+ // 获取打点信息
+ const extraInfo = this.selected && this.selected.find((item) => {
+ if (this.dateEqual(fullDate, item.date)) {
+ return item
+ }
+ })
+ result.push({
+ fullDate,
+ year,
+ month,
+ date,
+ multiple: this.range ? checked : false,
+ beforeMultiple: this.isLogicBefore(fullDate, this.multipleStatus.before, this.multipleStatus.after),
+ afterMultiple: this.isLogicAfter(fullDate, this.multipleStatus.before, this.multipleStatus.after),
+ disable: (this.startDate && !dateCompare(this.startDate, fullDate)) || (this.endDate && !dateCompare(fullDate,this.endDate)),
+ isToday: fullDate === this.date.fullDate,
+ userChecked: false,
+ extraInfo
+ })
+ }
+ return result
+ }
+ /**
+ * 获取本月日期集合
+ */
+ getCurrentMonthDays(amount, dateObj) {
+ const result = []
+ const fullDate = this.date.fullDate
+ for (let i = 1; i <= amount; i++) {
+ const currentDate = `${dateObj.year}-${dateObj.month}-${addZero(i)}`
+ const isToday = fullDate === currentDate
+ // 获取打点信息
+ const extraInfo = this.selected && this.selected.find((item) => {
+ if (this.dateEqual(currentDate, item.date)) {
+ return item
+ }
+ })
+
+ // 日期禁用
+ let disableBefore = true
+ let disableAfter = true
+ if (this.startDate) {
+ disableBefore = dateCompare(this.startDate, currentDate)
+ }
+
+ if (this.endDate) {
+ disableAfter = dateCompare(currentDate, this.endDate)
+ }
+
+ let multiples = this.multipleStatus.data
+ let multiplesStatus = -1
+ if (this.range && multiples) {
+ multiplesStatus = multiples.findIndex((item) => {
+ return this.dateEqual(item, currentDate)
+ })
+ }
+ const checked = multiplesStatus !== -1
+
+ result.push({
+ fullDate: currentDate,
+ year: dateObj.year,
+ month: dateObj.month,
+ date: i,
+ multiple: this.range ? checked : false,
+ beforeMultiple: this.isLogicBefore(currentDate, this.multipleStatus.before, this.multipleStatus.after),
+ afterMultiple: this.isLogicAfter(currentDate, this.multipleStatus.before, this.multipleStatus.after),
+ disable: (this.startDate && !dateCompare(this.startDate, currentDate)) || (this.endDate && !dateCompare(currentDate,this.endDate)),
+ isToday,
+ userChecked: false,
+ extraInfo
+ })
+ }
+ return result
+ }
+ /**
+ * 获取下一个月日期集合
+ */
+ _getNextMonthDays(amount, dateObj) {
+ const result = []
+ const month = dateObj.month + 1
+ for (let i = 1; i <= amount; i++) {
+ const month = dateObj.month === 12 ? 1 : dateObj.month*1 + 1
+ const year = month === 1 ? dateObj.year + 1 : dateObj.year
+ const fullDate = `${year}-${addZero(month)}-${addZero(i)}`
+ let multiples = this.multipleStatus.data
+ let multiplesStatus = -1
+ if (this.range && multiples) {
+ multiplesStatus = multiples.findIndex((item) => {
+ return this.dateEqual(item, fullDate)
+ })
+ }
+ const checked = multiplesStatus !== -1
+ // 获取打点信息
+ const extraInfo = this.selected && this.selected.find((item) => {
+ if (this.dateEqual(fullDate, item.date)) {
+ return item
+ }
+ })
+ result.push({
+ fullDate,
+ year,
+ date: i,
+ month,
+ multiple: this.range ? checked : false,
+ beforeMultiple: this.isLogicBefore(fullDate, this.multipleStatus.before, this.multipleStatus.after),
+ afterMultiple: this.isLogicAfter(fullDate, this.multipleStatus.before, this.multipleStatus.after),
+ disable: (this.startDate && !dateCompare(this.startDate, fullDate)) || (this.endDate && !dateCompare(fullDate,this.endDate)),
+ isToday: fullDate === this.date.fullDate,
+ userChecked: false,
+ extraInfo
+ })
+ }
+ return result
+ }
+
+ /**
+ * 获取当前日期详情
+ * @param {Object} date
+ */
+ getInfo(date) {
+ if (!date) {
+ date = new Date()
+ }
+
+ return this.calendar.find(item => item.fullDate === this.getDateObj(date).fullDate)
+ }
+
+ /**
+ * 比较时间是否相等
+ */
+ dateEqual(before, after) {
+ before = new Date(fixIosDateFormat(before))
+ after = new Date(fixIosDateFormat(after))
+ return before.valueOf() === after.valueOf()
+ }
+
+ /**
+ * 比较真实起始日期
+ */
+
+ isLogicBefore(currentDate, before, after) {
+ let logicBefore = before
+ if (before && after) {
+ logicBefore = dateCompare(before, after) ? before : after
+ }
+ return this.dateEqual(logicBefore, currentDate)
+ }
+
+ isLogicAfter(currentDate, before, after) {
+ let logicAfter = after
+ if (before && after) {
+ logicAfter = dateCompare(before, after) ? after : before
+ }
+ return this.dateEqual(logicAfter, currentDate)
+ }
+
+ /**
+ * 获取日期范围内所有日期
+ * @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.getDateObj(new Date(parseInt(k))).fullDate)
+ }
+ return arr
+ }
+
+ /**
+ * 获取多选状态
+ */
+ setMultiple(fullDate) {
+ if (!this.range) return
+
+ let {
+ before,
+ after
+ } = this.multipleStatus
+ 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 (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.getWeeks(fullDate)
+ }
+
+ /**
+ * 鼠标 hover 更新多选状态
+ */
+ setHoverMultiple(fullDate) {
+ if (!this.range || this.lastHover) return
+
+ const { before } = this.multipleStatus
+
+ if (!before) {
+ this.multipleStatus.before = fullDate
+ } else {
+ this.multipleStatus.after = fullDate
+ if (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.getWeeks(fullDate)
+ }
+
+ /**
+ * 更新默认值多选状态
+ */
+ setDefaultMultiple(before, after) {
+ this.multipleStatus.before = before
+ this.multipleStatus.after = after
+ if (before && after) {
+ if (dateCompare(before, after)) {
+ this.multipleStatus.data = this.geDateAll(before, after);
+ this.getWeeks(after)
+ } else {
+ this.multipleStatus.data = this.geDateAll(after, before);
+ this.getWeeks(before)
+ }
+ }
+ }
+
+ /**
+ * 获取每周数据
+ * @param {Object} dateData
+ */
+ getWeeks(dateData) {
+ const {
+ year,
+ month,
+ } = this.getDateObj(dateData)
+
+ const preMonthDayAmount = new Date(year, month - 1, 1).getDay()
+ const preMonthDays = this.getPreMonthDays(preMonthDayAmount, this.getDateObj(dateData))
+
+ const currentMonthDayAmount = new Date(year, month, 0).getDate()
+ const currentMonthDays = this.getCurrentMonthDays(currentMonthDayAmount, this.getDateObj(dateData))
+
+ const nextMonthDayAmount = 42 - preMonthDayAmount - currentMonthDayAmount
+ const nextMonthDays = this._getNextMonthDays(nextMonthDayAmount, this.getDateObj(dateData))
+
+ const calendarDays = [...preMonthDays, ...currentMonthDays, ...nextMonthDays]
+
+ const weeks = new Array(6)
+ for (let i = 0; i < calendarDays.length; i++) {
+ const index = Math.floor(i / 7)
+ if(!weeks[index]){
+ weeks[index] = new Array(7)
+ }
+ weeks[index][i % 7] = calendarDays[i]
+ }
+
+ this.calendar = calendarDays
+ this.weeks = weeks
+ }
+}
+
+function getDateTime(date, hideSecond){
+ return `${getDate(date)} ${getTime(date, hideSecond)}`
+}
+
+function getDate(date) {
+ date = fixIosDateFormat(date)
+ date = new Date(date)
+ const year = date.getFullYear()
+ const month = date.getMonth()+1
+ const day = date.getDate()
+ return `${year}-${addZero(month)}-${addZero(day)}`
+}
+
+function getTime(date, hideSecond){
+ date = fixIosDateFormat(date)
+ date = new Date(date)
+ const hour = date.getHours()
+ const minute = date.getMinutes()
+ const second = date.getSeconds()
+ return hideSecond ? `${addZero(hour)}:${addZero(minute)}` : `${addZero(hour)}:${addZero(minute)}:${addZero(second)}`
+}
+
+function addZero(num) {
+ if(num < 10){
+ num = `0${num}`
+ }
+ return num
+}
+
+function getDefaultSecond(hideSecond) {
+ return hideSecond ? '00:00' : '00:00:00'
+}
+
+function dateCompare(startDate, endDate) {
+ startDate = new Date(fixIosDateFormat(startDate))
+ endDate = new Date(fixIosDateFormat(endDate))
+ return startDate <= endDate
+}
+
+function checkDate(date){
+ const dateReg = /((19|20)\d{2})(-|\/)\d{1,2}(-|\/)\d{1,2}/g
+ return date.match(dateReg)
+}
+
+const dateTimeReg = /^\d{4}-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])( [0-5]?[0-9]:[0-5]?[0-9]:[0-5]?[0-9])?$/
+function fixIosDateFormat(value) {
+ if (typeof value === 'string' && dateTimeReg.test(value)) {
+ value = value.replace(/-/g, '/')
+ }
+ return value
+}
+
+export {Calendar, getDateTime, getDate, getTime, addZero, getDefaultSecond, dateCompare, checkDate, fixIosDateFormat}
\ No newline at end of file
diff --git a/uni_modules/uni-datetime-picker/package.json b/uni_modules/uni-datetime-picker/package.json
new file mode 100644
index 0000000..cabb668
--- /dev/null
+++ b/uni_modules/uni-datetime-picker/package.json
@@ -0,0 +1,87 @@
+{
+ "id": "uni-datetime-picker",
+ "displayName": "uni-datetime-picker 日期选择器",
+ "version": "2.2.24",
+ "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": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "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-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..86e7444
--- /dev/null
+++ b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue
@@ -0,0 +1,96 @@
+
+
+ {{unicode}}
+
+
+
+
+
+
+
+
+
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-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);