diff --git a/api/agreement.js b/api/agreement.js index 5bf2a03..d8b47f3 100644 --- a/api/agreement.js +++ b/api/agreement.js @@ -1,15 +1,11 @@ import http from '../common/axios.js' -//获取学员信息 -function userAgreement(data) { - let url = '/agreement/'+data - return http.get(url,data).then(res => { - return res; - }) -} - - - export default { - userAgreement, + //获取用户协议 + userAgreement(data) { + let url = '/agreement/' + data + return http.get(url, data).then(res => { + return res; + }) + } } \ No newline at end of file diff --git a/api/apiRoute.js b/api/apiRoute.js new file mode 100644 index 0000000..a520d05 --- /dev/null +++ b/api/apiRoute.js @@ -0,0 +1,49 @@ +import http from '../common/axios.js' + +//全部api接口 +export default { + // getDemo(data = {}) { + // let url = '/member/member_edit' + // return http.get(url, data).then(res => { + // return res; + // }) + // }, + // postDemo(data = {}) { + // let url = '/member/member_edit' + // return http.post(url, data).then(res => { + // return res; + // }) + // }, + + //公共接口相关 + //教师/销售端登陆 + personnelLogin(data = {}) { + let url = '/personnelLogin' + return http.post(url, data).then(res => { + return res; + }) + }, + //教师/销售端详情 + getPersonnelInfo(data = {}) { + let url = '/personnel/info' + return http.get(url, data).then(res => { + return res; + }) + }, + + + + //教练接口相关 + + + + //销售接口相关 + + + + + //学生接口相关 + + + +} \ No newline at end of file diff --git a/api/common.js b/api/common.js index fb99016..e6a5765 100644 --- a/api/common.js +++ b/api/common.js @@ -9,4 +9,74 @@ export default { }) }, + //获取字典数据 + getDictionary(data) { + let url = `/member/dictionary/type/${data}` + return http.get(url,data).then(res => { + return res; + }) + }, + + //获取联系人列表 + getContactList(data) { + let url = `/member/contact_list` + return http.get(url,data).then(res => { + return res; + }) + }, + + //获取消息列表 + getContactMessage(data) { + let url = `/member/contact_message` + return http.get(url,data).then(res => { + return res; + }) + }, + + //发送站内信 + sendMessage(data) { + let url = `/member/send_message` + return http.get(url,data).then(res => { + return res; + }) + }, + + //获取课程头日期 + getDate(data) { + let url = '/member/get_date' + return http.get(url, data).then(res => { + return res; + }) + }, + + //获取课表日历打点信息 + getMonthDate(data) { + let url = `/member/get_month_date` + return http.get(url,data).then(res => { + return res; + }) + }, + + + //考勤列表 --分页 + clockingList(data) { + let url = `/member/clocking_list` + return http.get(url, data).then(res => { + return res; + }) + }, + + //考勤-请假 + clockingRest(data) { + let url = `/member/clocking_rest` + return http.get(url, data).then(res => { + return res; + }) + }, + + + + + + } \ No newline at end of file diff --git a/api/market.js b/api/market.js new file mode 100644 index 0000000..b9dba6c --- /dev/null +++ b/api/market.js @@ -0,0 +1,171 @@ +import http from '../common/axios.js' + +//销售相关接口 +export default { + //获取销售人员详情 + member(data = {}) { + let url = '/member/member' + return http.get(url, data).then(res => { + return res; + }) + }, + + //修改销售人员详情 + memberEdit(data = {}) { + let url = '/member/member_edit' + return http.post(url, data).then(res => { + return res; + }) + }, + + //线索列表 + salesList(data = {}) { + let url = '/member/sales_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + //转移跟进任务 + createTask(data = {}) { + let url = '/member/create_task' + return http.post(url, data).then(res => { + return res; + }) + }, + + //写新跟进 + createFollow(data = {}) { + let url = '/member/create_follow' + return http.post(url, data).then(res => { + return res; + }) + }, + + + //小区列表 + getCampusesList(data = {}) { + let url = '/member/get_campuses_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + //添加线索 + setSales(data) { + let url = '/member/set_sales' + return http.post(url, data).then(res => { + return res; + }) + }, + + //我的客户 + myClient(data) { + let url = '/member/my_client' + return http.post(url, data).then(res => { + return res; + }) + }, + + //客户详情 + clientInfo(data={}) { + let url = '/member/client_info' + return http.get(url, data).then(res => { + return res; + }) + }, + + //跟进记录 + followList(data={}) { + let url = '/member/follow_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + //拨打电话记录列表 + listCallUp(data={}) { + let url = '/member/list_call_up' + return http.get(url, data).then(res => { + return res; + }) + }, + + + //公海-领取客户 + getSales(data = {}) { + let url = '/member/get_sales' + return http.get(url, data).then(res => { + return res; + }) + }, + + //客户列表-- 查重 + clientList(data = {}) { + let url = '/member/client_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + //数据页面 + performance(data = {}) { + let url = '/member/performance' + return http.get(url, data).then(res => { + return res; + }) + }, + + + //已签客户列表 + signClient(data = {}) { + let url = '/member/sign_client' + return http.get(url, data).then(res => { + return res; + }) + }, + + //添加拨打电话记录 + setCallUp(data = {}) { + let url = '/member/set_call_up' + return http.get(url, data).then(res => { + return res; + }) + }, + + //销售端首页 + xsIndex(data = {}) { + let url = '/member/xs_index' + return http.get(url, data).then(res => { + return res; + }) + }, + + //销售端首页 + selectCourseList(data = {}) { + let url = '/member/select_course_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + //合同列表 + contractsList(data = {}) { + let url = '/member/contracts_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + + + + + + + + + + + +} \ No newline at end of file diff --git a/api/member.js b/api/member.js index 7789b79..963f931 100644 --- a/api/member.js +++ b/api/member.js @@ -1,7 +1,17 @@ import http from '../common/axios.js' export default { - //学员详情 + + + //学员首页 + memberIndex(data = {}) { + let url = '/member/index' + return http.get(url, data).then(res => { + return res; + }) + }, + + //学员详情(个人中心-教练详情) member(data) { let url = '/member/member' return http.get(url,data).then(res => { @@ -50,4 +60,203 @@ export default { return res; }) }, + + + + //课程详情 + courseInfo(data) { + let url = '/member/course_info' + return http.get(url, data).then(res => { + return res; + }) + }, + + //场地列表 + venuesList(data) { + let url = '/member/venues_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + //作业列表 + assignmentsList(data) { + let url = '/member/assignments_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + //学员-体测列表 + surveyList(data) { + let url = '/member/survey_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + //提交作业 + assignmentsSubmit(data) { + let url = '/member/assignments_submit' + return http.post(url, data).then(res => { + return res; + }) + }, + + //作业详情 + assignmentsInfo(data) { + let url = '/member/assignments_info' + return http.get(url, data).then(res => { + return res; + }) + }, + + + //学员发送请假申请 + askForLeave(data) { + let url = '/member/ask_for_leave' + return http.post(url, data).then(res => { + return res; + }) + }, + + //学员取消请假申请 + delAskForLeave(data) { + let url = '/member/del_ask_for_leave' + return http.post(url, data).then(res => { + return res; + }) + }, + + + //获取课时列表 + studentsSignList(data) { + let url = '/member/students_sign_list' + return http.post(url, data).then(res => { + return res; + }) + }, + + //人员列表 + staffList(data) { + let url = '/member/staff_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + //企业信息 + getEnterpriseInformation(data = {}) { + let url = '/member/get_enterprise_information' + return http.get(url, data).then(res => { + return res; + }) + }, + +//##################### 教练端 ###################### + //教练端-首页 + jlIndex(data = {}) { + let url = '/member/jl_index' + return http.get(url, data).then(res => { + return res; + }) + }, + + //教练端-发布作业 + jlPublishJob(data = {}) { + let url = '/member/publish_job' + return http.post(url, data).then(res => { + return res; + }) + }, + + //教练端-获取班级列表 + jlGetClassesList(data = {}) { + let url = '/member/get_classes_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + //教练端-获取班级列表 + jlGetCoursesList(data = {}) { + let url = '/member/get_courses_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + //教练端-获取学员列表 + jlGetStudentList(data = {}) { + let url = '/member/student_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + //教练端-获取班级详情 + jlClassInfo(data = {}) { + let url = '/member/class_info' + return http.get(url, data).then(res => { + return res; + }) + }, + + //教练端-获取班级列表 + jlClassList(data = {}) { + let url = '/member/class_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + //教练端-获取学员详情 + jlStudentsInfo(data = {}) { + let url = '/member/students_info' + return http.get(url, data).then(res => { + return res; + }) + }, + + //教练端-评测详情 + jlSurveyInfo(data = {}) { + let url = '/member/survey_info' + return http.get(url, data).then(res => { + return res; + }) + }, + + //教练端-授课统计 + jlSktj(data = {}) { + let url = '/member/sktj' + return http.get(url, data).then(res => { + return res; + }) + }, + + //教练端-作业列表 + jsGetAssignmentsList(data = {}) { + let url = '/member/get_assignments_list' + return http.get(url, data).then(res => { + return res; + }) + }, + + + + + + + + + + + + + + + + + + } \ No newline at end of file diff --git a/common/config.js b/common/config.js index 059450c..9e76a6b 100644 --- a/common/config.js +++ b/common/config.js @@ -1,6 +1,6 @@ -// 线上地址 -// const Api_url='http://146.56.228.75:20021/api' -// const img_domian = 'http://146.56.228.75:20021/' +// 线上测试地址 +// const Api_url='http://aaaaaaaa.hksywl.cn/api' +// const img_domian = 'http://aaaaaaaa.hksywl.cn/' //本地测试地址 const Api_url='http://zhjw.cc/api' diff --git a/common/util.js b/common/util.js index fcbfe66..e24e1aa 100644 --- a/common/util.js +++ b/common/util.js @@ -1,4 +1,5 @@ import {img_domian} from "./config"; +import marketApi from '@/api/market.js'; function formatTime(time) { if (typeof time !== 'number' || time < 0) { @@ -171,6 +172,7 @@ function formatToDateTime(dateTime, fmt = 'Y-m-d H:i:s') { } + //跳转首页 function openHomeView() { //获取用户类型缓存 diff --git a/components/AQ/AQTabber.vue b/components/AQ/AQTabber.vue index e313ffa..2a07c49 100644 --- a/components/AQ/AQTabber.vue +++ b/components/AQ/AQTabber.vue @@ -10,16 +10,16 @@ - 写作跟进 + 添加跟进记录 - 新建任务 + 转交跟进任务 - 添加线索 + 添加客户 @@ -44,7 +44,7 @@ }, created() { - console.log(123) + // console.log(123) this.init() }, @@ -64,20 +64,20 @@ this.tabBar = [{ text: "首页", urlPath: '/pages/coach/home/index', //自定义页面跳转路径 - iconPath: "/static/images/tabbar/home.png", - selectedIconPath: "/static/images/tabbar/home_selected.png" + iconPath: "/static/images/tabbar/index.png", + selectedIconPath: "/static/images/tabbar/indexs.png" }, { text: "课表", urlPath: '/pages/coach/course/list', //自定义页面跳转路径 - iconPath: "/static/images/tabbar/my.png", - selectedIconPath: "/static/images/tabbar/my.png" + iconPath: "/static/images/tabbar/timetable.png", + selectedIconPath: "/static/images/tabbar/timetables.png" }, { text: "班级", urlPath: '/pages/coach/class/list', //自定义页面跳转路径 - iconPath: "/static/images/tabbar/my.png", - selectedIconPath: "/static/images/tabbar/my.png" + iconPath: "/static/images/tabbar/banji.png", + selectedIconPath: "/static/images/tabbar/banjis.png" }, { text: "我的", @@ -124,7 +124,8 @@ ] break; case "3": //学员 - this.tabBar = [{ + this.tabBar = [ + { text: "首页", urlPath: '/pages/student/index/index', //自定义页面跳转路径 iconPath: "/static/images/tabbar/index.png", @@ -145,8 +146,9 @@ ] break; } + // console.log(111,this.tabBar) }, - openView(e) { + async openView(e) { console.log('点击跳转', e) if (e.text != '') { //跳转tabBar页面 @@ -162,19 +164,19 @@ closePopup(type) { this.show = false }, - //协作跟进 + //添加跟进 writingFollowUp(){ uni.navigateTo({ url: '/pages/market/clue/writing_followUp' }) }, - //新建任务 + //转交跟进任务 newTask(){ uni.navigateTo({ url: '/pages/market/clue/new_task' }) }, - //添加线索 + //添加客户 addClues(){ uni.navigateTo({ url: '/pages/market/clue/add_clues' diff --git a/manifest.json b/manifest.json index f835c56..8c1a2bd 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { - "name" : "用药提醒", - "appid" : "__UNI__86A3E16", + "name" : "智慧教务", + "appid" : "__UNI__530CC7A", "description" : "", "versionName" : "1.0.0", "versionCode" : "100", @@ -62,7 +62,7 @@ "quickapp" : {}, /* 小程序特有相关 */ "mp-weixin" : { - "appid" : "wx42762c713f7bfa2e", + "appid" : "wx675f2696abf932c5", "setting" : { "urlCheck" : false, "minified" : true, @@ -74,7 +74,7 @@ "desc" : "你的位置信息将用于小程序位置接口的效果展示" } }, - "requiredPrivateInfos" : [ "getFuzzyLocation" ] + "requiredPrivateInfos" : [ "getLocation", "chooseLocation" ] }, "mp-alipay" : { "usingComponents" : true diff --git a/pages.json b/pages.json index b229dba..97ce8c6 100644 --- a/pages.json +++ b/pages.json @@ -69,7 +69,7 @@ "navigationBarTitleText": "课表详情", "navigationStyle": "default", "navigationBarBackgroundColor": "#292929", - "navigationBarTextStyle": "black" + "navigationBarTextStyle": "white" } }, { @@ -90,15 +90,6 @@ "navigationBarTextStyle": "black" } }, - { - "path" : "pages/common/privacy_agreement", - "style": { - "navigationBarTitleText": "隐私协议", - "navigationStyle": "default", - "navigationBarBackgroundColor": "#fff", - "navigationBarTextStyle": "black" - } - }, { "path" : "pages/student/my/update_pass", "style": { @@ -108,15 +99,6 @@ "navigationBarTextStyle": "black" } }, - { - "path" : "pages/common/feedback", - "style": { - "navigationBarTitleText": "意见反馈", - "navigationStyle": "default", - "navigationBarBackgroundColor": "#292929", - "navigationBarTextStyle": "white" - } - }, { "path" : "pages/student/my/lesson_consumption", "style": { @@ -153,7 +135,84 @@ "navigationBarTextStyle": "white" } }, - + + + + + + { + "path" : "pages/common/privacy_agreement", + "style": { + "navigationBarTitleText": "隐私协议", + "navigationStyle": "default", + "navigationBarBackgroundColor": "#fff", + "navigationBarTextStyle": "black" + } + }, + { + "path" : "pages/common/my_message", + "style": { + "navigationBarTitleText": "我的消息", + "navigationStyle": "default", + "navigationBarBackgroundColor": "#292929", + "navigationBarTextStyle": "white" + } + }, + { + "path" : "pages/common/im_chat_info", + "style": { + "navigationBarTitleText": "", + "navigationStyle": "default", + "navigationBarBackgroundColor": "#292929", + "navigationBarTextStyle": "white" + } + }, + { + "path" : "pages/common/sys_msg_list", + "style": { + "navigationBarTitleText": "系统消息", + "navigationStyle": "default", + "navigationBarBackgroundColor": "#292929", + "navigationBarTextStyle": "white" + } + }, + { + "path" : "pages/common/article_info", + "style": { + "navigationBarTitleText": "文章详情", + "navigationStyle": "default", + "navigationBarBackgroundColor": "#292929", + "navigationBarTextStyle": "white" + } + }, + { + "path" : "pages/common/feedback", + "style": { + "navigationBarTitleText": "意见反馈", + "navigationStyle": "default", + "navigationBarBackgroundColor": "#292929", + "navigationBarTextStyle": "white" + } + }, + { + "path" : "pages/common/contract_list", + "style": { + "navigationBarTitleText": "合同列表", + "navigationStyle": "default", + "navigationBarBackgroundColor": "#292929", + "navigationBarTextStyle": "white" + } + }, + { + "path": "pages/common/my_attendance", + "style": { + "navigationBarTitleText": "我的考勤", + "navigationStyle": "default", + "navigationBarBackgroundColor": "#292929", + "navigationBarTextStyle": "white" + } + }, + @@ -196,6 +255,15 @@ "navigationBarTextStyle": "black" } }, + { + "path": "pages/coach/course/info_list", + "style": { + "navigationBarTitleText": "课时详情", + "navigationStyle": "default", + "navigationBarBackgroundColor": "#292929", + "navigationBarTextStyle": "white" + } + }, { "path": "pages/coach/course/info", "style": { @@ -262,7 +330,7 @@ { "path": "pages/coach/my/arrival_statistics", "style": { - "navigationBarTitleText": "到客统计", + "navigationBarTitleText": "到课统计", "navigationStyle": "default", "navigationBarBackgroundColor": "#292929", "navigationBarTextStyle": "white" @@ -322,7 +390,7 @@ { "path": "pages/market/clue/writing_followUp", "style": { - "navigationBarTitleText": "写新跟进", + "navigationBarTitleText": "添加跟进", "navigationStyle": "default", "navigationBarBackgroundColor": "#fff", "navigationBarTextStyle": "black" @@ -331,7 +399,7 @@ { "path": "pages/market/clue/new_task", "style": { - "navigationBarTitleText": "新建任务", + "navigationBarTitleText": "转交跟进任务", "navigationStyle": "default", "navigationBarBackgroundColor": "#fff", "navigationBarTextStyle": "black" @@ -340,7 +408,7 @@ { "path": "pages/market/clue/add_clues", "style": { - "navigationBarTitleText": "添加线索", + "navigationBarTitleText": "添加客户", "navigationStyle": "default", "navigationBarBackgroundColor": "#fff", "navigationBarTextStyle": "black" @@ -382,6 +450,15 @@ "navigationBarTextStyle": "black" } }, + { + "path": "pages/market/my/signed_client_list", + "style": { + "navigationBarTitleText": "已签客户", + "navigationStyle": "default", + "navigationBarBackgroundColor": "#292929", + "navigationBarTextStyle": "white" + } + }, { "path": "pages/market/my/info", "style": { diff --git a/pages/coach/class/info.vue b/pages/coach/class/info.vue index 269d7d6..5b4bdb8 100644 --- a/pages/coach/class/info.vue +++ b/pages/coach/class/info.vue @@ -2,70 +2,71 @@ + + \ No newline at end of file diff --git a/pages/coach/course/list.vue b/pages/coach/course/list.vue index 87533af..0795c6d 100644 --- a/pages/coach/course/list.vue +++ b/pages/coach/course/list.vue @@ -9,142 +9,83 @@ - - 周日 - 14 - - - - 周一 - 14 - - - - 周二 - 14 - - - - 周日 - - - - - 周一 - 14 - - - - 周二 - 14 - - - - 周二 - 14 - + + {{v.week}} + + {{today == v.date ? '今':v.today}} + + + + 查看更多 + - - - - - {{course_name}} - - - - - - - - - - {{classroom_name}} - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - 班级:少年班 - 时间:2020-05-25 15:30 - 17:30 - 课室:302室 - - 课程:篮球少儿课 - - - - 上课中 - - - - - - 已签到学生 (15/34) - - - - - - - - - - - - - - - - - - 详情 - - - - - + - 班级:少年班 - 时间:2020-05-25 15:30 - 17:30 - 课室:302室 + 班级:{{v.classes_name}} + 时间:{{v.date}} + 课室:{{v.address}} - 课程:篮球少儿课 + 课程:{{v.courses_name}} - 上课中 + + + {{ v.status === 1 ? '未开始' : v.status === 2 ? '上课中' : '已结束' }} - 已签到学生 (15/34) + 已签到学生 ({{v.sign_list.length }}/{{v.max_students.split(',').length }}) - - - - - - - - - - - + + @@ -154,9 +95,24 @@ - + + + + + + + + + @@ -164,6 +120,8 @@ @@ -266,7 +443,13 @@ export default { align-items: center; background: #292929; .title{ - padding: 20rpx 0; + padding: 40rpx 0rpx; + + /* 小程序端样式 */ + // #ifdef MP-WEIXIN + padding: 80rpx 0rpx; + // #endif + font-size: 30rpx; color: #fff; } @@ -284,6 +467,7 @@ export default { background: #333333 100%; width: 100%; padding: 30rpx 28rpx; + padding-bottom: 15rpx; .ul{ display: flex; justify-content: space-between; @@ -319,6 +503,13 @@ export default { } } } + .btn{ + margin-top: 20rpx; + display: flex; + justify-content: center; + align-items: center; + color: #A4ADB3; + } } .section_2{ @@ -350,6 +541,7 @@ export default { border-radius: 22rpx; background: #434544 100%; padding: 14rpx 0; + padding-bottom: 30rpx; display: flex; flex-direction: column; .top_box{ diff --git a/pages/coach/home/index.vue b/pages/coach/home/index.vue index 253745f..94e45b1 100644 --- a/pages/coach/home/index.vue +++ b/pages/coach/home/index.vue @@ -2,55 +2,58 @@ - 首页 + + 待办 + 发布作业 - - - - - - - 包子皮 - - - - 到课率统计 - 28% - - - 发布作业 - - - - - - - 月授课数 - 12 - 节,月负责学员 - 188 - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - 课程 - 预告 - - - 5/28周五 15:30~17:30 - 301室篮球少儿课程 - - - - 详情 - - + + + + + + + + + + + + + + + + @@ -60,58 +63,55 @@ - - - - 12 - / - 24 - - - 到课率:80% + + + + 课程:{{ v.courses_name }} + 时间:{{ v.date_time }} {{ v.time_slot.split(',')[0] }}-{{ v.time_slot.split(',')[1] }} + 地点:{{ v.address }} - - 班级:少年班 - 时间:2020-05-25 15:30 - 17:30 - 课室:302室 - - 课程:篮球少儿课 + + + + 已签到学生({{ v.sign_count }}/{{ v.students_count }}) + + 查看 + + + + + + - - 上课中 - - - - - - - 12 - / - 24 - - - 到课率:80% + + + 应到学生({{ v.students_count }}) + + 查看 + + - - 班级:少年班 - 时间:2020-05-25 15:30 - 17:30 - 课室:302室 - - 课程:篮球少儿课 - + + 上课中 - - - 待上课 + 待上课 + - + + 作业批改 @@ -120,43 +120,21 @@ - + - 12 + {{v.wc_count}} / - 24 + {{v.student_count}} - 完成率:80% + 完成率:{{v.rate}}% - 班级:少年班 - 时间:2020-05-25 15:30 - 17:30 - 课程:篮球少儿课 - - - - - 待批改 - - - - - - 12 - / - 24 - - - 完成率:80% - - - - 班级:少年班 - 时间:2020-05-25 15:30 - 17:30 - 课程:篮球少儿课 + 班级:{{v.class_name}} + 时间:{{v.send_time}} + 课程:{{v.courses_name}} @@ -164,6 +142,7 @@ 待批改 + @@ -176,7 +155,7 @@ @@ -317,14 +239,34 @@ export default { //自定义导航栏 .navbar_section{ + padding: 0 40rpx; display: flex; - justify-content: center; + justify-content: space-between; align-items: center; background: #29d3b4; + view{ + width: 30%; + text-align: center; + } + .left{ + text-align: left; + } .title{ - padding: 20rpx 0; + padding: 40rpx 0rpx; + + /* 小程序端样式 */ + // #ifdef MP-WEIXIN + padding: 80rpx 0rpx; + // #endif + font-size: 30rpx; - color: #315d55; + color: #fff; + } + .right{ + padding: 20rpx 0; + font-size: 26rpx; + color: #fff; + text-align: right; } } @@ -421,6 +363,80 @@ export default { } .section_3{ + margin-top: 36rpx; + color: #fff; + font-size: 24rpx; + .title_box{ + display: flex; + flex-direction: column; + .top_box{ + display: flex; + justify-content: space-between; + align-items: center; + text{ + font-size: 30rpx; + } + } + .line{ + width: 90rpx; + height: 2px; + background: #29D3B4; + } + } + .ul{ + margin-top: 30rpx; + display: flex; + flex-direction: column; + gap: 20rpx; + .li{ + border: 1px solid #00E5BB; + position: relative; + border-radius: 22rpx; + background: #434544 100%; + padding: 14rpx 20rpx; + padding-bottom: 44rpx; + display: flex; + flex-direction: column; + .top_box{ + padding-bottom: 18rpx; + border-bottom: 1px dashed #F2F2F2; + display: flex; + flex-direction: column; + gap: 18rpx; + .title{} + } + .botton_box{ + padding-top: 18rpx; + display: flex; + flex-direction: column; + gap: 18rpx; + color: #D7D7D7; + .box{ + display: flex; + justify-content: space-between; + view{ + display: flex; + align-items: center; + } + } + } + .tag{ + position:absolute; + top: 0rpx; + right: 0rpx; + padding: 10rpx; + width: 102rpx; + text-align: center; + font-size: 24rpx; + border-bottom-left-radius: 20rpx; + border-top-right-radius: 20rpx; + } + } + + } + } + + .section_4{ margin-top: 36rpx; color: #fff; font-size: 24rpx; @@ -450,7 +466,7 @@ export default { position: relative; border-radius: 22rpx; background: #434544 100%; - padding: 14rpx 0; + padding: 32rpx 0; display: flex; align-items: center; .left_box{ diff --git a/pages/coach/job/add.vue b/pages/coach/job/add.vue index b79c1df..bff5e65 100644 --- a/pages/coach/job/add.vue +++ b/pages/coach/job/add.vue @@ -1,9 +1,9 @@ diff --git a/pages/coach/my/arrival_statistics.vue b/pages/coach/my/arrival_statistics.vue index f75d9c1..a582a8c 100644 --- a/pages/coach/my/arrival_statistics.vue +++ b/pages/coach/my/arrival_statistics.vue @@ -3,64 +3,53 @@ - + + - - - - 12 - / - 24 - - - 到课率:80% - - - - 班级:少年班 - 时间:2020-05-25 15:30 - 17:30 - 课室:302室 - - 课程:篮球少儿课 - - - - 上课中 - - - - + - 12 + {{v.has_sign_count}} / - 24 + {{v.students_count}} - 到课率:80% + 到课率:{{v.attendance_rate}}% - 班级:少年班 - 时间:2020-05-25 15:30 - 17:30 - 课室:302室 + 班级:{{v.classes_name}} + 时间:{{v.date_time}} {{v.time_slot ? v.time_slot.replace(",", " - ") : ""}} + 课室:{{v.address}} - 课程:篮球少儿课 + 课程:{{v.courses_name}} - - 待上课 + 未开始 + + 上课中 + 已结束 - + @@ -171,7 +209,13 @@ export default { align-items: center; background: #29D3B4; .title{ - padding: 20rpx 0; + padding: 40rpx 0rpx; + + /* 小程序端样式 */ + // #ifdef MP-WEIXIN + padding: 80rpx 0rpx; + // #endif + font-size: 30rpx; color: #fff; } diff --git a/pages/coach/my/info.vue b/pages/coach/my/info.vue index a7aff26..442951b 100644 --- a/pages/coach/my/info.vue +++ b/pages/coach/my/info.vue @@ -1,11 +1,16 @@ - + @@ -294,7 +417,13 @@ export default { align-items: center; background: #29d3b4; .title{ - padding: 20rpx 0; + padding: 40rpx 0rpx; + + /* 小程序端样式 */ + // #ifdef MP-WEIXIN + padding: 80rpx 0rpx; + // #endif + font-size: 30rpx; color: #315d55; } diff --git a/pages/coach/my/my_attendance.vue b/pages/coach/my/my_attendance.vue new file mode 100644 index 0000000..84511c4 --- /dev/null +++ b/pages/coach/my/my_attendance.vue @@ -0,0 +1,497 @@ + + + + + + \ No newline at end of file diff --git a/pages/coach/my/schooling_statistics.vue b/pages/coach/my/schooling_statistics.vue index 921db60..adc0cef 100644 --- a/pages/coach/my/schooling_statistics.vue +++ b/pages/coach/my/schooling_statistics.vue @@ -5,8 +5,8 @@ - - 2021年3月 + + {{v.month_date}} @@ -14,85 +14,20 @@ 月授课数/节 - 4 + {{v.zsbj}} 总授班级/个 - 1234 + {{v.yfzxy}} 月负责学员/名 - 月到课率88% - - - - - 2021年3月 - - - - 34 - 月授课数/节 - - - 4 - 总授班级/个 - - - 1234 - 月负责学员/名 - - - - 月到课率88% - - - - - 2021年3月 - - - - 34 - 月授课数/节 - - - 4 - 总授班级/个 - - - 1234 - 月负责学员/名 - - - - 月到课率88% - - - - - 2021年3月 - - - - 34 - 月授课数/节 - - - 4 - 总授班级/个 - - - 1234 - 月负责学员/名 - - - - 月到课率88% + 月到课率{{v.ydkl}}% + @@ -100,7 +35,7 @@ diff --git a/pages/coach/student/work_details.vue b/pages/coach/student/work_details.vue index 2071fbe..211e7f3 100644 --- a/pages/coach/student/work_details.vue +++ b/pages/coach/student/work_details.vue @@ -1,68 +1,104 @@ - + diff --git a/pages/common/article_info.vue b/pages/common/article_info.vue new file mode 100644 index 0000000..e349042 --- /dev/null +++ b/pages/common/article_info.vue @@ -0,0 +1,129 @@ + + + + + + \ No newline at end of file diff --git a/pages/common/contract_list.vue b/pages/common/contract_list.vue new file mode 100644 index 0000000..481375c --- /dev/null +++ b/pages/common/contract_list.vue @@ -0,0 +1,262 @@ + + + + + + \ No newline at end of file diff --git a/pages/common/im_chat_info.vue b/pages/common/im_chat_info.vue new file mode 100644 index 0000000..b0852ab --- /dev/null +++ b/pages/common/im_chat_info.vue @@ -0,0 +1,329 @@ + + + + + + \ No newline at end of file diff --git a/pages/common/my_attendance.vue b/pages/common/my_attendance.vue new file mode 100644 index 0000000..fe56e8d --- /dev/null +++ b/pages/common/my_attendance.vue @@ -0,0 +1,498 @@ + + + + + + \ No newline at end of file diff --git a/pages/common/my_message.vue b/pages/common/my_message.vue new file mode 100644 index 0000000..6e9b765 --- /dev/null +++ b/pages/common/my_message.vue @@ -0,0 +1,262 @@ + + + + + + \ No newline at end of file diff --git a/pages/common/sys_msg_list.vue b/pages/common/sys_msg_list.vue new file mode 100644 index 0000000..10e61ad --- /dev/null +++ b/pages/common/sys_msg_list.vue @@ -0,0 +1,225 @@ + + + + + + \ No newline at end of file diff --git a/pages/market/clue/add_clues.vue b/pages/market/clue/add_clues.vue index dbe492c..ef1aac6 100644 --- a/pages/market/clue/add_clues.vue +++ b/pages/market/clue/add_clues.vue @@ -1,498 +1,1172 @@ + \ No newline at end of file diff --git a/pages/market/clue/clue_info.vue b/pages/market/clue/clue_info.vue index 2c33052..a03e384 100644 --- a/pages/market/clue/clue_info.vue +++ b/pages/market/clue/clue_info.vue @@ -1,338 +1,407 @@ - + - diff --git a/pages/market/clue/new_task.vue b/pages/market/clue/new_task.vue index c60e935..4ea2c82 100644 --- a/pages/market/clue/new_task.vue +++ b/pages/market/clue/new_task.vue @@ -3,60 +3,102 @@ 跟进任务 - - 点击选择 - {{ result_name }} - - - - 点击选择 - {{ result_date }} - - - - - - - - - - 点击选择 - {{ result_renwu }} - - - - 点击选择 - {{ result_fangshi }} - - + + + + + 点击选择 + + + {{ str_entry_type }} + + + + + + + + 点击选择 + + + {{ str_follow_staff_id }} + + + + + + + + 点击选择 + + + {{ formData.reminder_time }} + + + + + + + + + + 保存 - - + + - - + + diff --git a/pages/market/clue/writing_followUp.vue b/pages/market/clue/writing_followUp.vue index d319299..f839e43 100644 --- a/pages/market/clue/writing_followUp.vue +++ b/pages/market/clue/writing_followUp.vue @@ -1,319 +1,974 @@ + \ No newline at end of file diff --git a/pages/student/index/index.vue b/pages/student/index/index.vue index 5844b9f..b179bd4 100644 --- a/pages/student/index/index.vue +++ b/pages/student/index/index.vue @@ -14,39 +14,41 @@ - - - 班级 - 篮球少儿班 - - - 已耗课时 - 24/60 - - - 课程到期时间:2021.12.25 + + + + + + + + + + + + - 90 + {{memberIndexData.tx.score}} 综合评分 - 数据测评时间:2020.03.12 + 数据测评时间:{{$util.formatToDateTime(memberIndexData.tx.create_time,'Y-m-d')}} - 123 + {{memberIndexData.tx.height * 100}} 身高(CM) - 45 + {{memberIndexData.tx.weight}} 体重(KG) - 更多 + 更多 + @@ -54,21 +56,23 @@ - 5/28 周五 15:30 - 17:30 - 301室 篮球少儿课程 + {{$util.formatToDateTime(memberIndexData.kcyg.date_time,'m-d')}} {{memberIndexData.kcyg.weekday}} {{memberIndexData.kcyg.time_slot[0]}}-{{memberIndexData.kcyg.time_slot[1]}} + {{memberIndexData.kcyg.address}} {{memberIndexData.kcyg.courses_name}} - + 详情 + 课后作业 全部 - + + 12/23 @@ -78,31 +82,38 @@ - + - 包子皮 + {{v.coach_name}} 上传 + btnSize="mini" @click="submitJob(v)">上传 - 时间:2020.05:25 15:30 - 17:30 - - 作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述 + 时间:{{v.create_time}} + + + - - 作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述 - - - - - 作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述 - - - + + + + + + + + + + + + + + + + @@ -111,7 +122,8 @@ @@ -164,8 +472,15 @@ align-items: center; background: #29d3b4; .title{ - padding: 110rpx 0 20rpx; - font-size: 30rpx; + padding: 40rpx 0rpx; + + /* 小程序端样式 */ + // #ifdef MP-WEIXIN + padding: 80rpx 0rpx; + // #endif + + + font-size: 30rpx; color: #fff; } } @@ -176,7 +491,7 @@ .overlay-image { width: 95%; - height: 100%; + height: 90%; } .multi-line-ellipsis { @@ -238,7 +553,7 @@ .card-con { width: 92%; - height: 92%; + //height: 92%; background-color: #fff; border-radius: 20rpx; position: absolute; @@ -278,7 +593,7 @@ .card-con-txt1 { display: flex; justify-content: space-between; - padding: 10rpx 20rpx 0; + padding: 20rpx 20rpx 0; height: 220rpx; } diff --git a/pages/student/index/job_list.vue b/pages/student/index/job_list.vue index d785c03..86b52f9 100644 --- a/pages/student/index/job_list.vue +++ b/pages/student/index/job_list.vue @@ -3,64 +3,164 @@ 课后作业 - - - - - - - 时间:2020.05:25 15:30 - - - 作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述 - - - - - - 班级作业 - - - - - - - - 时间:2020.05:25 15:30 - - - 作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述作业描述 - - - - - - 个人作业 - - - + + + + + + + + + + + + 时间:{{v.create_time}} + + + + + + + + + + + + + {{v.type == 1 ? '班级作业' : '个人作业'}} + + + + + + - diff --git a/pages/student/index/physical_examination.vue b/pages/student/index/physical_examination.vue index 6aef917..ed96bc3 100644 --- a/pages/student/index/physical_examination.vue +++ b/pages/student/index/physical_examination.vue @@ -1,46 +1,138 @@ + @@ -52,6 +144,15 @@ background-color: #29d3b4; } + .table_list{ + padding-bottom: 40rpx; + display: flex; + flex-direction: column; + .item{ + margin-bottom: 40rpx; + } + } + .date { color: #fff; width: 92%; diff --git a/pages/student/index/work_details.vue b/pages/student/index/work_details.vue index 9af7534..59ee430 100644 --- a/pages/student/index/work_details.vue +++ b/pages/student/index/work_details.vue @@ -1,30 +1,66 @@ + \ No newline at end of file diff --git a/pages/student/my/lesson_consumption.vue b/pages/student/my/lesson_consumption.vue index 1fa68be..6fc2ea2 100644 --- a/pages/student/my/lesson_consumption.vue +++ b/pages/student/my/lesson_consumption.vue @@ -1,95 +1,29 @@ + diff --git a/pages/student/my/my.vue b/pages/student/my/my.vue index 9a7d8d2..2cbf112 100644 --- a/pages/student/my/my.vue +++ b/pages/student/my/my.vue @@ -51,12 +51,12 @@ 课时消耗 - - 我的成员 - - + + + + - + 我的合同 @@ -67,14 +67,18 @@ 我的教练 - - 负责人 - - + + + + 意见反馈 + + 我的消息 + + @@ -138,7 +142,21 @@ uni.navigateTo({ url: '/pages/student/my/personal_data' }) - } + }, + + //跳转页面-合同列表 + openViewContractList(item) { + uni.navigateTo({ + url: `/pages/common/contract_list` + }) + }, + + //跳转页面-我的消息 + openViewMyMessage(item) { + uni.navigateTo({ + url: `/pages/common/my_message` + }) + }, } } @@ -158,8 +176,15 @@ background: #29D3B4; .title { - padding: 110rpx 0 20rpx; - font-size: 30rpx; + padding: 40rpx 20rpx; + + /* 小程序端样式 */ + // #ifdef MP-WEIXIN + padding: 80rpx 0 20rpx; + // #endif + + + font-size: 30rpx; color: #fff; } } diff --git a/pages/student/timetable/index.vue b/pages/student/timetable/index.vue index d195d4d..12cd2ca 100644 --- a/pages/student/timetable/index.vue +++ b/pages/student/timetable/index.vue @@ -10,13 +10,16 @@ - {{v.name}} + {{v.week}} {{today == v.date ? '今':v.today}} - + + + 查看更多 + @@ -37,18 +40,17 @@ style="height: 100vh;" > - + - 班级:{{v.name}} - 时间:{{v.start_date}} - {{$util.formatToDateTime(v.end_date,'H:i')}} - 课室:{{v.address}} - - 课程:{{v.courses_name}} - + 班级:{{v.classes_name}} + 时间:{{v.date}} + 课室:{{v.address}} + 课程:{{v.courses_name}} - + + {{ v.status === 1 ? '未开始' : v.status === 2 ? '上课中' : '已结束' }} @@ -56,15 +58,15 @@ - 已签到学生 ({{v.has_sign_count }}/{{v.max_students }}) + 已签到学生 ({{v.sign_list.length }}/{{v.max_students.split(',').length }}) - - + + - + 详情 @@ -77,6 +79,20 @@ + + + + + + + @@ -84,6 +100,7 @@ @@ -278,7 +370,13 @@ export default { align-items: center; background: #292929; .title{ - padding: 110rpx 0 20rpx; + padding: 40rpx 0rpx; + + /* 小程序端样式 */ + // #ifdef MP-WEIXIN + padding: 80rpx 0rpx; + // #endif + font-size: 30rpx; color: #fff; } @@ -331,6 +429,13 @@ export default { } } } + .btn{ + margin-top: 20rpx; + display: flex; + justify-content: center; + align-items: center; + color: #A4ADB3; + } } .section_2{ diff --git a/pages/student/timetable/info.vue b/pages/student/timetable/info.vue index 600039e..4e1fea5 100644 --- a/pages/student/timetable/info.vue +++ b/pages/student/timetable/info.vue @@ -3,59 +3,78 @@ - 青少儿篮球课 + {{infoData.courses_name}} 课程名称 - 青少年篮球课 + {{infoData.courses_name}} 班级 - 班级名称 + {{infoData.classes_name}} 上课时间 - 2020.03.25 15:30-17:00 + {{infoData.date_time}} {{infoData.time_slot.replace(',', '-')}} 上课地址 - xxxx体育馆302室 + {{infoData.address}} - - 课程名称 - 青少年篮球课 - + 教练 - 包子皮 + {{infoData.staff_name}} 教练号码 - 18888888888 + {{infoData.staff_phone}} 扣除课时 - 2个课时 + {{infoData.hour}}个课时 - + + 已上 + + + + 请假 + + 取消请假 + + + + + + 请假申请 + + + + + + + + + @@ -108,7 +239,13 @@ export default { align-items: center; background: #292929; .title{ - padding: 20rpx 0; + padding: 40rpx 0rpx; + + /* 小程序端样式 */ + // #ifdef MP-WEIXIN + padding: 80rpx 0rpx; + // #endif + font-size: 30rpx; color: #fff; } @@ -126,7 +263,8 @@ export default { .section_1{ border-radius: 22rpx; padding: 20rpx 40rpx; - background: #333333 100%; + background: #fff; + color: #333333; width: 100%; .title_box{ padding: 10rpx; @@ -169,8 +307,30 @@ export default { transform: rotate(-35deg); /* 旋转 */ } } + + .state_box_btn{ + position: absolute; + bottom: 50rpx; + right: 10rpx; + view{ + width: 160rpx; + height: 60rpx; + line-height: 60rpx; + background-color: #00BE8C; + border-radius: 8rpx; + color: #fff; + font-size: 28rpx; + text-align: center; + } + } } } + + //请假模态框 + .leave_section { + + } + } diff --git a/pages/student/timetable/list.vue b/pages/student/timetable/list.vue index c0b5886..04f1228 100644 --- a/pages/student/timetable/list.vue +++ b/pages/student/timetable/list.vue @@ -4,122 +4,18 @@ - - XXX体育馆 - 南山区科苑路15号科兴科学园 - 距您1km - + + {{v.name}} + {{v.address}} + 无法获取定位 + 距您{{v.distance}}km + 当前场馆 - - - XXX体育馆 - 南山区科苑路15号科兴科学园 - 距您1km - - 当前场馆 - - - - XXX体育馆 - 南山区科苑路15号科兴科学园 - 距您1km - - 当前场馆 - - - - XXX体育馆 - 南山区科苑路15号科兴科学园 - 距您1km - - 当前场馆 - - - - XXX体育馆 - 南山区科苑路15号科兴科学园 - 距您1km - - 当前场馆 - - - - XXX体育馆 - 南山区科苑路15号科兴科学园 - 距您1km - - 当前场馆 - - - - XXX体育馆 - 南山区科苑路15号科兴科学园 - 距您1km - - 当前场馆 - - - - XXX体育馆 - 南山区科苑路15号科兴科学园 - 距您1km - - 当前场馆 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -140,29 +36,92 @@ //筛选条件 filteredData:{ - page:1,//当前页码 - limit:10,//每页返回数据条数 - total:10,//数据总条数 + // page:1,//当前页码 + // limit:10,//每页返回数据条数 + // total:10,//数据总条数 + schedule_date:'',//日期 }, tableList:[],//表格数据 + longitude:'',//当前用户经度 + latitude:'',//当前用户纬度 + venue_id:'',//当前场馆id } }, - onLoad() {}, + onLoad(options) { + this.filteredData.schedule_date = options.schedule_date//日期 + //场馆id + this.venue_id = options.venue_id || '' + }, onShow() { this.init()//初始化 }, - - methods: { //初始化 async init() { - await this.getList() + await this.getUserLocation(); + await this.getList(); + }, + + + // 获取用户当前位置(支持多端) + async getUserLocation() { + try { + const location = await this.getLocation(); + this.longitude = location.longitude; + this.latitude = location.latitude; + } catch (error) { + console.log(error); + uni.showToast({ + title: '获取位置失败', + icon: 'none' + }); + // throw error; // 重新抛出错误,以便在 init 方法中捕获 + } + }, + + // 封装 uni.getLocation 为一个返回 Promise 的函数 + getLocation() { + return new Promise((resolve, reject) => { + uni.getLocation({ + type: 'wgs84', + success: (res) => { + console.log('当前位置的经度:' + res.longitude); + console.log('当前位置的纬度:' + res.latitude); + resolve(res); + }, + fail: (err) => { + console.log(err); + reject(err); + } + }); + }); + }, + + //计算距离 + getDistance(lat1, lng1, lat2, lng2) { + const R = 6371; // 地球半径,单位为公里 + const dLat = this.deg2rad(lat2 - lat1); + const dLon = this.deg2rad(lng2 - lng1); + const a = + Math.sin(dLat / 2) * Math.sin(dLat / 2) + + Math.cos(this.deg2rad(lat1)) * Math.cos(this.deg2rad(lat2)) * + Math.sin(dLon / 2) * Math.sin(dLon / 2); + const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + const distance = R * c; // 距离,单位为公里 + + return distance.toFixed(2); // 保留两位小数 + }, + // 将角度转换为弧度 + deg2rad(deg) { + return deg * (Math.PI / 180); }, - //加载更过(下一页) + + //加载更多(下一页) loadMoreData() { + return //本页面无需下一页 //判断是否加载 if (!this.isReachedBottom) { this.isReachedBottom = true;//设置为不可请求状态 @@ -176,7 +135,7 @@ }, 1000); }, - //获取列表 + //获取场地列表 async getList(){ this.loading = true @@ -192,7 +151,7 @@ return } - let res = await memberApi.courseList(data) + let res = await memberApi.venuesList(data) this.loading = false this.isReachedBottom = false; if (res.code != 1){ @@ -203,11 +162,34 @@ return } - this.tableList = res.data.data + this.tableList = res.data + + + + this.tableList.forEach((v,k)=>{ + if(this.longitude && this.latitude && v.longitude && v.latitude){ + v.distance = this.getDistance(this.latitude, this.longitude, v.latitude, v.longitude) + }else{ + v.distance = null + } + }) + + console.log('列表',this.tableList) + + + + - this.total = res.data.total - this.page++ }, + + //跳转页面-课程列表 + opebViewTimetable(item) { + let venue_id = item.id + uni.navigateTo({ + url: `/pages/student/timetable/index?venue_id=${venue_id}` + }) + }, + } } diff --git a/static/images/common/fa_song.png b/static/images/common/fa_song.png new file mode 100644 index 0000000..ea77704 Binary files /dev/null and b/static/images/common/fa_song.png differ diff --git a/static/images/common/xi_tong_xiao_xi.png b/static/images/common/xi_tong_xiao_xi.png new file mode 100644 index 0000000..866b3b4 Binary files /dev/null and b/static/images/common/xi_tong_xiao_xi.png differ diff --git a/static/images/common/yong_hu.png b/static/images/common/yong_hu.png new file mode 100644 index 0000000..82a925a Binary files /dev/null and b/static/images/common/yong_hu.png differ diff --git a/static/images/index/zan_wu.png b/static/images/index/zan_wu.png new file mode 100644 index 0000000..e51c397 Binary files /dev/null and b/static/images/index/zan_wu.png differ diff --git a/static/images/tabbar/banji.png b/static/images/tabbar/banji.png new file mode 100644 index 0000000..6a13370 Binary files /dev/null and b/static/images/tabbar/banji.png differ diff --git a/static/images/tabbar/banjis.png b/static/images/tabbar/banjis.png new file mode 100644 index 0000000..805c8e4 Binary files /dev/null and b/static/images/tabbar/banjis.png differ diff --git a/uni_modules/uni-calendar/changelog.md b/uni_modules/uni-calendar/changelog.md new file mode 100644 index 0000000..30ca0df --- /dev/null +++ b/uni_modules/uni-calendar/changelog.md @@ -0,0 +1,30 @@ +## 1.4.12(2024-09-21) +- 修复 calendar在选择日期范围后重新选择日期需要点两次的Bug +## 1.4.11(2024-01-10) +- 修复 回到今天时,月份显示不一致问题 +## 1.4.10(2023-04-10) +- 修复 某些情况 monthSwitch 未触发的Bug +## 1.4.9(2023-02-02) +- 修复 某些情况切换月份错误的Bug +## 1.4.8(2023-01-30) +- 修复 某些情况切换月份错误的Bug [详情](https://ask.dcloud.net.cn/question/161964) +## 1.4.7(2022-09-16) +- 优化 支持使用 uni-scss 控制主题色 +## 1.4.6(2022-09-08) +- 修复 表头年月切换,导致改变当前日期为选择月1号,且未触发change事件的Bug +## 1.4.5(2022-02-25) +- 修复 条件编译 nvue 不支持的 css 样式的Bug +## 1.4.4(2022-02-25) +- 修复 条件编译 nvue 不支持的 css 样式的Bug +## 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..55eed81 --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/calendar.js @@ -0,0 +1,544 @@ +/** +* @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 + case 30: + s = '\u4e09\u5341'; 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..fcbd13c --- /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..de7509c --- /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..1ca43de --- /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..e0fe33b --- /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..a54135e --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue @@ -0,0 +1,187 @@ + + + + + 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..0beebfb --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue @@ -0,0 +1,567 @@ + + + + + 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..e0c5103 --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/util.js @@ -0,0 +1,360 @@ +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 && AddDayCount>0) { + dd.setDate(dd.getDate() + AddDayCount) + } else { + const preMonth = dd.getMonth() + dd.setMonth(preMonth + AddDayCount) // 获取AddDayCount天后的日期 + const nextMonth = dd.getMonth() + // 处理 pre 切换月份目标月份为2月没有当前日(30 31) 切换错误问题 + if(AddDayCount<0 && preMonth!==0 && nextMonth-preMonth>AddDayCount){ + dd.setMonth(nextMonth+(nextMonth-preMonth+AddDayCount)) + } + // 处理 next 切换月份目标月份为2月没有当前日(30 31) 切换错误问题 + if(AddDayCount>0 && nextMonth-preMonth>AddDayCount){ + dd.setMonth(nextMonth-(nextMonth-preMonth-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 = fullDate + 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..ec924e9 --- /dev/null +++ b/uni_modules/uni-calendar/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-calendar", + "displayName": "uni-calendar 日历", + "version": "1.4.12", + "description": "日历组件", + "keywords": [ + "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": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y", + "alipay": "n" + }, + "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-calendar/readme.md b/uni_modules/uni-calendar/readme.md new file mode 100644 index 0000000..4e1748c --- /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) diff --git a/uni_modules/uni-icons/changelog.md b/uni_modules/uni-icons/changelog.md new file mode 100644 index 0000000..0261131 --- /dev/null +++ b/uni_modules/uni-icons/changelog.md @@ -0,0 +1,42 @@ +## 2.0.10(2024-06-07) +- 优化 uni-app x 中,size 属性的类型 +## 2.0.9(2024-01-12) +fix: 修复图标大小默认值错误的问题 +## 2.0.8(2023-12-14) +- 修复 项目未使用 ts 情况下,打包报错的bug +## 2.0.7(2023-12-14) +- 修复 size 属性为 string 时,不加单位导致尺寸异常的bug +## 2.0.6(2023-12-11) +- 优化 兼容老版本icon类型,如 top ,bottom 等 +## 2.0.5(2023-12-11) +- 优化 兼容老版本icon类型,如 top ,bottom 等 +## 2.0.4(2023-12-06) +- 优化 uni-app x 下示例项目图标排序 +## 2.0.3(2023-12-06) +- 修复 nvue下引入组件报错的bug +## 2.0.2(2023-12-05) +-优化 size 属性支持单位 +## 2.0.1(2023-12-05) +- 新增 uni-app x 支持定义图标 +## 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/uni-icons.uvue b/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue new file mode 100644 index 0000000..8740559 --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uni-icons.uvue @@ -0,0 +1,91 @@ + + + + + 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..7da5356 --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue @@ -0,0 +1,110 @@ + + + + + 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..0a6b6fe --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uniicons.css @@ -0,0 +1,664 @@ + +.uniui-cart-filled:before { + content: "\e6d0"; +} + +.uniui-gift-filled:before { + content: "\e6c4"; +} + +.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-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-arrowthinleft:before { + content: "\e6d2"; +} + +.uniui-arrowthinup:before { + content: "\e6d3"; +} + +.uniui-arrowthindown:before { + content: "\e6d4"; +} + +.uniui-back:before { + content: "\e6b9"; +} + +.uniui-forward:before { + content: "\e6ba"; +} + +.uniui-arrow-right:before { + content: "\e6bb"; +} + +.uniui-arrow-left:before { + content: "\e6bc"; +} + +.uniui-arrow-up:before { + content: "\e6bd"; +} + +.uniui-arrow-down:before { + content: "\e6be"; +} + +.uniui-arrowthinright:before { + content: "\e6d1"; +} + +.uniui-down:before { + content: "\e6b8"; +} + +.uniui-bottom:before { + content: "\e6b8"; +} + +.uniui-arrowright:before { + content: "\e6d5"; +} + +.uniui-right:before { + content: "\e6b5"; +} + +.uniui-up:before { + content: "\e6b6"; +} + +.uniui-top:before { + content: "\e6b6"; +} + +.uniui-left:before { + content: "\e6b7"; +} + +.uniui-arrowup:before { + content: "\e6d6"; +} + +.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-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..14696d0 Binary files /dev/null and b/uni_modules/uni-icons/components/uni-icons/uniicons.ttf differ diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts b/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts new file mode 100644 index 0000000..98e93aa --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uniicons_file.ts @@ -0,0 +1,664 @@ + +export type IconsData = { + id : string + name : string + font_family : string + css_prefix_text : string + description : string + glyphs : Array +} + +export type IconsDataItem = { + font_class : string + unicode : string +} + + +export const fontData = [ + { + "font_class": "arrow-down", + "unicode": "\ue6be" + }, + { + "font_class": "arrow-left", + "unicode": "\ue6bc" + }, + { + "font_class": "arrow-right", + "unicode": "\ue6bb" + }, + { + "font_class": "arrow-up", + "unicode": "\ue6bd" + }, + { + "font_class": "auth", + "unicode": "\ue6ab" + }, + { + "font_class": "auth-filled", + "unicode": "\ue6cc" + }, + { + "font_class": "back", + "unicode": "\ue6b9" + }, + { + "font_class": "bars", + "unicode": "\ue627" + }, + { + "font_class": "calendar", + "unicode": "\ue6a0" + }, + { + "font_class": "calendar-filled", + "unicode": "\ue6c0" + }, + { + "font_class": "camera", + "unicode": "\ue65a" + }, + { + "font_class": "camera-filled", + "unicode": "\ue658" + }, + { + "font_class": "cart", + "unicode": "\ue631" + }, + { + "font_class": "cart-filled", + "unicode": "\ue6d0" + }, + { + "font_class": "chat", + "unicode": "\ue65d" + }, + { + "font_class": "chat-filled", + "unicode": "\ue659" + }, + { + "font_class": "chatboxes", + "unicode": "\ue696" + }, + { + "font_class": "chatboxes-filled", + "unicode": "\ue692" + }, + { + "font_class": "chatbubble", + "unicode": "\ue697" + }, + { + "font_class": "chatbubble-filled", + "unicode": "\ue694" + }, + { + "font_class": "checkbox", + "unicode": "\ue62b" + }, + { + "font_class": "checkbox-filled", + "unicode": "\ue62c" + }, + { + "font_class": "checkmarkempty", + "unicode": "\ue65c" + }, + { + "font_class": "circle", + "unicode": "\ue65b" + }, + { + "font_class": "circle-filled", + "unicode": "\ue65e" + }, + { + "font_class": "clear", + "unicode": "\ue66d" + }, + { + "font_class": "close", + "unicode": "\ue673" + }, + { + "font_class": "closeempty", + "unicode": "\ue66c" + }, + { + "font_class": "cloud-download", + "unicode": "\ue647" + }, + { + "font_class": "cloud-download-filled", + "unicode": "\ue646" + }, + { + "font_class": "cloud-upload", + "unicode": "\ue645" + }, + { + "font_class": "cloud-upload-filled", + "unicode": "\ue648" + }, + { + "font_class": "color", + "unicode": "\ue6cf" + }, + { + "font_class": "color-filled", + "unicode": "\ue6c9" + }, + { + "font_class": "compose", + "unicode": "\ue67f" + }, + { + "font_class": "contact", + "unicode": "\ue693" + }, + { + "font_class": "contact-filled", + "unicode": "\ue695" + }, + { + "font_class": "down", + "unicode": "\ue6b8" + }, + { + "font_class": "bottom", + "unicode": "\ue6b8" + }, + { + "font_class": "download", + "unicode": "\ue68d" + }, + { + "font_class": "download-filled", + "unicode": "\ue681" + }, + { + "font_class": "email", + "unicode": "\ue69e" + }, + { + "font_class": "email-filled", + "unicode": "\ue69a" + }, + { + "font_class": "eye", + "unicode": "\ue651" + }, + { + "font_class": "eye-filled", + "unicode": "\ue66a" + }, + { + "font_class": "eye-slash", + "unicode": "\ue6b3" + }, + { + "font_class": "eye-slash-filled", + "unicode": "\ue6b4" + }, + { + "font_class": "fire", + "unicode": "\ue6a1" + }, + { + "font_class": "fire-filled", + "unicode": "\ue6c5" + }, + { + "font_class": "flag", + "unicode": "\ue65f" + }, + { + "font_class": "flag-filled", + "unicode": "\ue660" + }, + { + "font_class": "folder-add", + "unicode": "\ue6a9" + }, + { + "font_class": "folder-add-filled", + "unicode": "\ue6c8" + }, + { + "font_class": "font", + "unicode": "\ue6a3" + }, + { + "font_class": "forward", + "unicode": "\ue6ba" + }, + { + "font_class": "gear", + "unicode": "\ue664" + }, + { + "font_class": "gear-filled", + "unicode": "\ue661" + }, + { + "font_class": "gift", + "unicode": "\ue6a4" + }, + { + "font_class": "gift-filled", + "unicode": "\ue6c4" + }, + { + "font_class": "hand-down", + "unicode": "\ue63d" + }, + { + "font_class": "hand-down-filled", + "unicode": "\ue63c" + }, + { + "font_class": "hand-up", + "unicode": "\ue63f" + }, + { + "font_class": "hand-up-filled", + "unicode": "\ue63e" + }, + { + "font_class": "headphones", + "unicode": "\ue630" + }, + { + "font_class": "heart", + "unicode": "\ue639" + }, + { + "font_class": "heart-filled", + "unicode": "\ue641" + }, + { + "font_class": "help", + "unicode": "\ue679" + }, + { + "font_class": "help-filled", + "unicode": "\ue674" + }, + { + "font_class": "home", + "unicode": "\ue662" + }, + { + "font_class": "home-filled", + "unicode": "\ue663" + }, + { + "font_class": "image", + "unicode": "\ue670" + }, + { + "font_class": "image-filled", + "unicode": "\ue678" + }, + { + "font_class": "images", + "unicode": "\ue650" + }, + { + "font_class": "images-filled", + "unicode": "\ue64b" + }, + { + "font_class": "info", + "unicode": "\ue669" + }, + { + "font_class": "info-filled", + "unicode": "\ue649" + }, + { + "font_class": "left", + "unicode": "\ue6b7" + }, + { + "font_class": "link", + "unicode": "\ue6a5" + }, + { + "font_class": "list", + "unicode": "\ue644" + }, + { + "font_class": "location", + "unicode": "\ue6ae" + }, + { + "font_class": "location-filled", + "unicode": "\ue6af" + }, + { + "font_class": "locked", + "unicode": "\ue66b" + }, + { + "font_class": "locked-filled", + "unicode": "\ue668" + }, + { + "font_class": "loop", + "unicode": "\ue633" + }, + { + "font_class": "mail-open", + "unicode": "\ue643" + }, + { + "font_class": "mail-open-filled", + "unicode": "\ue63a" + }, + { + "font_class": "map", + "unicode": "\ue667" + }, + { + "font_class": "map-filled", + "unicode": "\ue666" + }, + { + "font_class": "map-pin", + "unicode": "\ue6ad" + }, + { + "font_class": "map-pin-ellipse", + "unicode": "\ue6ac" + }, + { + "font_class": "medal", + "unicode": "\ue6a2" + }, + { + "font_class": "medal-filled", + "unicode": "\ue6c3" + }, + { + "font_class": "mic", + "unicode": "\ue671" + }, + { + "font_class": "mic-filled", + "unicode": "\ue677" + }, + { + "font_class": "micoff", + "unicode": "\ue67e" + }, + { + "font_class": "micoff-filled", + "unicode": "\ue6b0" + }, + { + "font_class": "minus", + "unicode": "\ue66f" + }, + { + "font_class": "minus-filled", + "unicode": "\ue67d" + }, + { + "font_class": "more", + "unicode": "\ue64d" + }, + { + "font_class": "more-filled", + "unicode": "\ue64e" + }, + { + "font_class": "navigate", + "unicode": "\ue66e" + }, + { + "font_class": "navigate-filled", + "unicode": "\ue67a" + }, + { + "font_class": "notification", + "unicode": "\ue6a6" + }, + { + "font_class": "notification-filled", + "unicode": "\ue6c1" + }, + { + "font_class": "paperclip", + "unicode": "\ue652" + }, + { + "font_class": "paperplane", + "unicode": "\ue672" + }, + { + "font_class": "paperplane-filled", + "unicode": "\ue675" + }, + { + "font_class": "person", + "unicode": "\ue699" + }, + { + "font_class": "person-filled", + "unicode": "\ue69d" + }, + { + "font_class": "personadd", + "unicode": "\ue69f" + }, + { + "font_class": "personadd-filled", + "unicode": "\ue698" + }, + { + "font_class": "personadd-filled-copy", + "unicode": "\ue6d1" + }, + { + "font_class": "phone", + "unicode": "\ue69c" + }, + { + "font_class": "phone-filled", + "unicode": "\ue69b" + }, + { + "font_class": "plus", + "unicode": "\ue676" + }, + { + "font_class": "plus-filled", + "unicode": "\ue6c7" + }, + { + "font_class": "plusempty", + "unicode": "\ue67b" + }, + { + "font_class": "pulldown", + "unicode": "\ue632" + }, + { + "font_class": "pyq", + "unicode": "\ue682" + }, + { + "font_class": "qq", + "unicode": "\ue680" + }, + { + "font_class": "redo", + "unicode": "\ue64a" + }, + { + "font_class": "redo-filled", + "unicode": "\ue655" + }, + { + "font_class": "refresh", + "unicode": "\ue657" + }, + { + "font_class": "refresh-filled", + "unicode": "\ue656" + }, + { + "font_class": "refreshempty", + "unicode": "\ue6bf" + }, + { + "font_class": "reload", + "unicode": "\ue6b2" + }, + { + "font_class": "right", + "unicode": "\ue6b5" + }, + { + "font_class": "scan", + "unicode": "\ue62a" + }, + { + "font_class": "search", + "unicode": "\ue654" + }, + { + "font_class": "settings", + "unicode": "\ue653" + }, + { + "font_class": "settings-filled", + "unicode": "\ue6ce" + }, + { + "font_class": "shop", + "unicode": "\ue62f" + }, + { + "font_class": "shop-filled", + "unicode": "\ue6cd" + }, + { + "font_class": "smallcircle", + "unicode": "\ue67c" + }, + { + "font_class": "smallcircle-filled", + "unicode": "\ue665" + }, + { + "font_class": "sound", + "unicode": "\ue684" + }, + { + "font_class": "sound-filled", + "unicode": "\ue686" + }, + { + "font_class": "spinner-cycle", + "unicode": "\ue68a" + }, + { + "font_class": "staff", + "unicode": "\ue6a7" + }, + { + "font_class": "staff-filled", + "unicode": "\ue6cb" + }, + { + "font_class": "star", + "unicode": "\ue688" + }, + { + "font_class": "star-filled", + "unicode": "\ue68f" + }, + { + "font_class": "starhalf", + "unicode": "\ue683" + }, + { + "font_class": "trash", + "unicode": "\ue687" + }, + { + "font_class": "trash-filled", + "unicode": "\ue685" + }, + { + "font_class": "tune", + "unicode": "\ue6aa" + }, + { + "font_class": "tune-filled", + "unicode": "\ue6ca" + }, + { + "font_class": "undo", + "unicode": "\ue64f" + }, + { + "font_class": "undo-filled", + "unicode": "\ue64c" + }, + { + "font_class": "up", + "unicode": "\ue6b6" + }, + { + "font_class": "top", + "unicode": "\ue6b6" + }, + { + "font_class": "upload", + "unicode": "\ue690" + }, + { + "font_class": "upload-filled", + "unicode": "\ue68e" + }, + { + "font_class": "videocam", + "unicode": "\ue68c" + }, + { + "font_class": "videocam-filled", + "unicode": "\ue689" + }, + { + "font_class": "vip", + "unicode": "\ue6a8" + }, + { + "font_class": "vip-filled", + "unicode": "\ue6c6" + }, + { + "font_class": "wallet", + "unicode": "\ue6b1" + }, + { + "font_class": "wallet-filled", + "unicode": "\ue6c2" + }, + { + "font_class": "weibo", + "unicode": "\ue68b" + }, + { + "font_class": "weixin", + "unicode": "\ue691" + } +] as IconsDataItem[] + +// export const fontData = JSON.parse(fontDataJson) diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js b/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js new file mode 100644 index 0000000..1cd11e1 --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js @@ -0,0 +1,649 @@ + +export const fontData = [ + { + "font_class": "arrow-down", + "unicode": "\ue6be" + }, + { + "font_class": "arrow-left", + "unicode": "\ue6bc" + }, + { + "font_class": "arrow-right", + "unicode": "\ue6bb" + }, + { + "font_class": "arrow-up", + "unicode": "\ue6bd" + }, + { + "font_class": "auth", + "unicode": "\ue6ab" + }, + { + "font_class": "auth-filled", + "unicode": "\ue6cc" + }, + { + "font_class": "back", + "unicode": "\ue6b9" + }, + { + "font_class": "bars", + "unicode": "\ue627" + }, + { + "font_class": "calendar", + "unicode": "\ue6a0" + }, + { + "font_class": "calendar-filled", + "unicode": "\ue6c0" + }, + { + "font_class": "camera", + "unicode": "\ue65a" + }, + { + "font_class": "camera-filled", + "unicode": "\ue658" + }, + { + "font_class": "cart", + "unicode": "\ue631" + }, + { + "font_class": "cart-filled", + "unicode": "\ue6d0" + }, + { + "font_class": "chat", + "unicode": "\ue65d" + }, + { + "font_class": "chat-filled", + "unicode": "\ue659" + }, + { + "font_class": "chatboxes", + "unicode": "\ue696" + }, + { + "font_class": "chatboxes-filled", + "unicode": "\ue692" + }, + { + "font_class": "chatbubble", + "unicode": "\ue697" + }, + { + "font_class": "chatbubble-filled", + "unicode": "\ue694" + }, + { + "font_class": "checkbox", + "unicode": "\ue62b" + }, + { + "font_class": "checkbox-filled", + "unicode": "\ue62c" + }, + { + "font_class": "checkmarkempty", + "unicode": "\ue65c" + }, + { + "font_class": "circle", + "unicode": "\ue65b" + }, + { + "font_class": "circle-filled", + "unicode": "\ue65e" + }, + { + "font_class": "clear", + "unicode": "\ue66d" + }, + { + "font_class": "close", + "unicode": "\ue673" + }, + { + "font_class": "closeempty", + "unicode": "\ue66c" + }, + { + "font_class": "cloud-download", + "unicode": "\ue647" + }, + { + "font_class": "cloud-download-filled", + "unicode": "\ue646" + }, + { + "font_class": "cloud-upload", + "unicode": "\ue645" + }, + { + "font_class": "cloud-upload-filled", + "unicode": "\ue648" + }, + { + "font_class": "color", + "unicode": "\ue6cf" + }, + { + "font_class": "color-filled", + "unicode": "\ue6c9" + }, + { + "font_class": "compose", + "unicode": "\ue67f" + }, + { + "font_class": "contact", + "unicode": "\ue693" + }, + { + "font_class": "contact-filled", + "unicode": "\ue695" + }, + { + "font_class": "down", + "unicode": "\ue6b8" + }, + { + "font_class": "bottom", + "unicode": "\ue6b8" + }, + { + "font_class": "download", + "unicode": "\ue68d" + }, + { + "font_class": "download-filled", + "unicode": "\ue681" + }, + { + "font_class": "email", + "unicode": "\ue69e" + }, + { + "font_class": "email-filled", + "unicode": "\ue69a" + }, + { + "font_class": "eye", + "unicode": "\ue651" + }, + { + "font_class": "eye-filled", + "unicode": "\ue66a" + }, + { + "font_class": "eye-slash", + "unicode": "\ue6b3" + }, + { + "font_class": "eye-slash-filled", + "unicode": "\ue6b4" + }, + { + "font_class": "fire", + "unicode": "\ue6a1" + }, + { + "font_class": "fire-filled", + "unicode": "\ue6c5" + }, + { + "font_class": "flag", + "unicode": "\ue65f" + }, + { + "font_class": "flag-filled", + "unicode": "\ue660" + }, + { + "font_class": "folder-add", + "unicode": "\ue6a9" + }, + { + "font_class": "folder-add-filled", + "unicode": "\ue6c8" + }, + { + "font_class": "font", + "unicode": "\ue6a3" + }, + { + "font_class": "forward", + "unicode": "\ue6ba" + }, + { + "font_class": "gear", + "unicode": "\ue664" + }, + { + "font_class": "gear-filled", + "unicode": "\ue661" + }, + { + "font_class": "gift", + "unicode": "\ue6a4" + }, + { + "font_class": "gift-filled", + "unicode": "\ue6c4" + }, + { + "font_class": "hand-down", + "unicode": "\ue63d" + }, + { + "font_class": "hand-down-filled", + "unicode": "\ue63c" + }, + { + "font_class": "hand-up", + "unicode": "\ue63f" + }, + { + "font_class": "hand-up-filled", + "unicode": "\ue63e" + }, + { + "font_class": "headphones", + "unicode": "\ue630" + }, + { + "font_class": "heart", + "unicode": "\ue639" + }, + { + "font_class": "heart-filled", + "unicode": "\ue641" + }, + { + "font_class": "help", + "unicode": "\ue679" + }, + { + "font_class": "help-filled", + "unicode": "\ue674" + }, + { + "font_class": "home", + "unicode": "\ue662" + }, + { + "font_class": "home-filled", + "unicode": "\ue663" + }, + { + "font_class": "image", + "unicode": "\ue670" + }, + { + "font_class": "image-filled", + "unicode": "\ue678" + }, + { + "font_class": "images", + "unicode": "\ue650" + }, + { + "font_class": "images-filled", + "unicode": "\ue64b" + }, + { + "font_class": "info", + "unicode": "\ue669" + }, + { + "font_class": "info-filled", + "unicode": "\ue649" + }, + { + "font_class": "left", + "unicode": "\ue6b7" + }, + { + "font_class": "link", + "unicode": "\ue6a5" + }, + { + "font_class": "list", + "unicode": "\ue644" + }, + { + "font_class": "location", + "unicode": "\ue6ae" + }, + { + "font_class": "location-filled", + "unicode": "\ue6af" + }, + { + "font_class": "locked", + "unicode": "\ue66b" + }, + { + "font_class": "locked-filled", + "unicode": "\ue668" + }, + { + "font_class": "loop", + "unicode": "\ue633" + }, + { + "font_class": "mail-open", + "unicode": "\ue643" + }, + { + "font_class": "mail-open-filled", + "unicode": "\ue63a" + }, + { + "font_class": "map", + "unicode": "\ue667" + }, + { + "font_class": "map-filled", + "unicode": "\ue666" + }, + { + "font_class": "map-pin", + "unicode": "\ue6ad" + }, + { + "font_class": "map-pin-ellipse", + "unicode": "\ue6ac" + }, + { + "font_class": "medal", + "unicode": "\ue6a2" + }, + { + "font_class": "medal-filled", + "unicode": "\ue6c3" + }, + { + "font_class": "mic", + "unicode": "\ue671" + }, + { + "font_class": "mic-filled", + "unicode": "\ue677" + }, + { + "font_class": "micoff", + "unicode": "\ue67e" + }, + { + "font_class": "micoff-filled", + "unicode": "\ue6b0" + }, + { + "font_class": "minus", + "unicode": "\ue66f" + }, + { + "font_class": "minus-filled", + "unicode": "\ue67d" + }, + { + "font_class": "more", + "unicode": "\ue64d" + }, + { + "font_class": "more-filled", + "unicode": "\ue64e" + }, + { + "font_class": "navigate", + "unicode": "\ue66e" + }, + { + "font_class": "navigate-filled", + "unicode": "\ue67a" + }, + { + "font_class": "notification", + "unicode": "\ue6a6" + }, + { + "font_class": "notification-filled", + "unicode": "\ue6c1" + }, + { + "font_class": "paperclip", + "unicode": "\ue652" + }, + { + "font_class": "paperplane", + "unicode": "\ue672" + }, + { + "font_class": "paperplane-filled", + "unicode": "\ue675" + }, + { + "font_class": "person", + "unicode": "\ue699" + }, + { + "font_class": "person-filled", + "unicode": "\ue69d" + }, + { + "font_class": "personadd", + "unicode": "\ue69f" + }, + { + "font_class": "personadd-filled", + "unicode": "\ue698" + }, + { + "font_class": "personadd-filled-copy", + "unicode": "\ue6d1" + }, + { + "font_class": "phone", + "unicode": "\ue69c" + }, + { + "font_class": "phone-filled", + "unicode": "\ue69b" + }, + { + "font_class": "plus", + "unicode": "\ue676" + }, + { + "font_class": "plus-filled", + "unicode": "\ue6c7" + }, + { + "font_class": "plusempty", + "unicode": "\ue67b" + }, + { + "font_class": "pulldown", + "unicode": "\ue632" + }, + { + "font_class": "pyq", + "unicode": "\ue682" + }, + { + "font_class": "qq", + "unicode": "\ue680" + }, + { + "font_class": "redo", + "unicode": "\ue64a" + }, + { + "font_class": "redo-filled", + "unicode": "\ue655" + }, + { + "font_class": "refresh", + "unicode": "\ue657" + }, + { + "font_class": "refresh-filled", + "unicode": "\ue656" + }, + { + "font_class": "refreshempty", + "unicode": "\ue6bf" + }, + { + "font_class": "reload", + "unicode": "\ue6b2" + }, + { + "font_class": "right", + "unicode": "\ue6b5" + }, + { + "font_class": "scan", + "unicode": "\ue62a" + }, + { + "font_class": "search", + "unicode": "\ue654" + }, + { + "font_class": "settings", + "unicode": "\ue653" + }, + { + "font_class": "settings-filled", + "unicode": "\ue6ce" + }, + { + "font_class": "shop", + "unicode": "\ue62f" + }, + { + "font_class": "shop-filled", + "unicode": "\ue6cd" + }, + { + "font_class": "smallcircle", + "unicode": "\ue67c" + }, + { + "font_class": "smallcircle-filled", + "unicode": "\ue665" + }, + { + "font_class": "sound", + "unicode": "\ue684" + }, + { + "font_class": "sound-filled", + "unicode": "\ue686" + }, + { + "font_class": "spinner-cycle", + "unicode": "\ue68a" + }, + { + "font_class": "staff", + "unicode": "\ue6a7" + }, + { + "font_class": "staff-filled", + "unicode": "\ue6cb" + }, + { + "font_class": "star", + "unicode": "\ue688" + }, + { + "font_class": "star-filled", + "unicode": "\ue68f" + }, + { + "font_class": "starhalf", + "unicode": "\ue683" + }, + { + "font_class": "trash", + "unicode": "\ue687" + }, + { + "font_class": "trash-filled", + "unicode": "\ue685" + }, + { + "font_class": "tune", + "unicode": "\ue6aa" + }, + { + "font_class": "tune-filled", + "unicode": "\ue6ca" + }, + { + "font_class": "undo", + "unicode": "\ue64f" + }, + { + "font_class": "undo-filled", + "unicode": "\ue64c" + }, + { + "font_class": "up", + "unicode": "\ue6b6" + }, + { + "font_class": "top", + "unicode": "\ue6b6" + }, + { + "font_class": "upload", + "unicode": "\ue690" + }, + { + "font_class": "upload-filled", + "unicode": "\ue68e" + }, + { + "font_class": "videocam", + "unicode": "\ue68c" + }, + { + "font_class": "videocam-filled", + "unicode": "\ue689" + }, + { + "font_class": "vip", + "unicode": "\ue6a8" + }, + { + "font_class": "vip-filled", + "unicode": "\ue6c6" + }, + { + "font_class": "wallet", + "unicode": "\ue6b1" + }, + { + "font_class": "wallet-filled", + "unicode": "\ue6c2" + }, + { + "font_class": "weibo", + "unicode": "\ue68b" + }, + { + "font_class": "weixin", + "unicode": "\ue691" + } +] + +// export const fontData = JSON.parse(fontDataJson) diff --git a/uni_modules/uni-icons/package.json b/uni_modules/uni-icons/package.json new file mode 100644 index 0000000..6b681b4 --- /dev/null +++ b/uni_modules/uni-icons/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-icons", + "displayName": "uni-icons 图标", + "version": "2.0.10", + "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。", + "keywords": [ + "uni-ui", + "uniui", + "icon", + "图标" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.14" + }, + "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"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y", + "alipay": "n" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y", + "app-uvue": "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", + "飞书": "y", + "京东": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} 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