From def7a94103b1c68110dcfc2a7ceba3021a22a24f Mon Sep 17 00:00:00 2001
From: Mr.Zhang <710666463@qq.com>
Date: 星期四, 07 九月 2023 15:35:34 +0800
Subject: [PATCH] 小程序
---
minipro_standard/uni_modules/l-calendar/components/l-calendar/calendar.js | 562 +++++++++++++++
minipro_standard/pages/selectWorkOrder/selectWorkOrder.vue | 437 +++++------
minipro_standard/uni_modules/l-calendar/readme.md | 40 +
minipro_standard/pages/InOperation/InOperation.vue | 210 ++++
minipro_standard/uni_modules/l-calendar/changelog.md | 8
minipro_standard/pages/inspectComplete/inspectComplete.vue | 2
minipro_standard/components/materialIn.vue | 3
minipro_standard/pages/index/index.vue | 21
minipro_standard/pages/inspectPatrol/inspectPatrol.vue | 1
minipro_standard/uni_modules/l-calendar/components/l-calendar/l-calendar.vue | 832 ++++++++++++++++++++++
minipro_standard/uni_modules/l-calendar/package.json | 84 ++
11 files changed, 1,936 insertions(+), 264 deletions(-)
diff --git a/minipro_standard/components/materialIn.vue b/minipro_standard/components/materialIn.vue
index aae23a9..277a9bc 100644
--- a/minipro_standard/components/materialIn.vue
+++ b/minipro_standard/components/materialIn.vue
@@ -42,7 +42,8 @@
this.list = target.list
},
jump(item) {
-
+ this.show = false
+ this.$emit('selected', item)
}
}
}
diff --git a/minipro_standard/pages/InOperation/InOperation.vue b/minipro_standard/pages/InOperation/InOperation.vue
index 1f3a8df..f3fd8fc 100644
--- a/minipro_standard/pages/InOperation/InOperation.vue
+++ b/minipro_standard/pages/InOperation/InOperation.vue
@@ -63,10 +63,9 @@
</div>
</div>
<!-- 鍏ュ簱鍗曪紙鍗曚釜浠撳簱锛� -->
- <template
- v-if="route.query.type == 9 && info.woScanMaterialBeanList && info.woScanMaterialBeanList.length > 0">
+ <template v-if="type == 9 && woScanMaterialBeanList && woScanMaterialBeanList.length > 0">
<div class="page_yxwl_list">
- <div class="page_yxwl_list_item" v-for="(item, index) in info.woScanMaterialBeanList" :key="index">
+ <div class="page_yxwl_list_item" v-for="(item, index) in woScanMaterialBeanList" :key="index">
<div class="page_yxwl_list_item_top">
<!-- <div class="page_yxwl_list_item_top_left" v-if="item.batch">{{item.materialName}} | {{item.materialCode}}锝渰{item.batch}}</div>-->
<div class="page_yxwl_list_item_top_left">{{item.materialName}} | {{item.materialCode}}
@@ -107,7 +106,7 @@
</div>
</template>
<!-- 杞簱鍗曪紙澶氫釜浠撳簱锛� -->
- <template v-else-if="route.query.type == 7 && seleMateriaList.length > 0">
+ <template v-else-if="type == 7 && seleMateriaList.length > 0">
<!-- <template v-for="(item, index) in info.wtransferWarehouseList" :key="index"> -->
<div class="page_yxwl_list">
<div class="page_yxwl_list_item" v-for="(item1, idx) in seleMateriaList" :key="idx">
@@ -158,16 +157,14 @@
<span>纭鍏ュ簱</span>
</div>
</div>
- <SelectMultipleMaterial ref="selectMultipleMaterial" />
- <SelectLoaction ref="selectLoaction" @selected="selectLocation"/>
- <MaterialIn ref="materialIn" @selected="selectLocation"/>
+ <SelectLoaction ref="selectLoaction" @selected="selectLocation" />
+ <MaterialIn ref="materialIn" @selected="selectMaterial" />
</view>
</template>
<script>
import InOutInfo from '@/components/InOutInfo.vue'
- import SelectMultipleMaterial from '@/components/SelectMultipleMaterial.vue'
- import SelectLoaction from '@/components/SelectLoaction.vue'
+ import SelectLoaction from '@/components/SelectLoaction.vue'
import MaterialIn from '@/components/materialIn.vue'
import {
QRCodeType
@@ -196,24 +193,25 @@
} from '@/util/api/agencyAPI'
export default {
components: {
- InOutInfo,
- SelectLoaction,
- MaterialIn,
- SelectMultipleMaterial
+ InOutInfo,
+ SelectLoaction,
+ MaterialIn
},
data() {
return {
type: '',
- id: '',
+ id: '',
wareHouseId: '',
isZKD: false,
show: false,
info: {},
- ids: [],
- location: '',
+ ids: [],
+ location: '',
locationName: '',
wtransferWarehouseList: [],
- MateriaList: []
+ MateriaList: [],
+ woScanMaterialBeanList: [],
+ seleMateriaList: [] // 宸查�夌墿鏂�
};
},
onLoad(option) {
@@ -246,8 +244,8 @@
let data = {
id: this.id
}
- console.log(this.type, QRCodeType.CKD);
- if (this.type == QRCodeType.CKD) {
+ // console.log(this.type, QRCodeType.CKD);
+ if (this.type == QRCodeType.RKD) {
infoAction = wOutBoundForInOut
data.wOutboundType = '1'
} else if (this.type == QRCodeType.ZKD) {
@@ -256,13 +254,14 @@
}
infoAction(data).then(res => {
if (this.isZKD) {
- this.info = res.data.wtransfer
+ this.info = res.data.wtransfer
this.wareHouseId = res.data.wtransfer.inWarehouseId
this.wtransferWarehouseList = res.data.wtransferWarehouseList
this.MateriaList = res.data.wtransferWarehouseList[0].wtransferDetailList
} else {
this.info = res.data.woutbound
this.woutboundDetailsWait = res.data.woutboundDetailsWait
+ this.woScanMaterialBeanList = res.data.woScanMaterialBeanList
}
}).catch(err => {
uni.$u.toast(err)
@@ -277,19 +276,167 @@
wareHouseId: this.wareHouseId
})
.then(res => {
- if (res.data.length === 1) {
- this.location = res.data[0].id
- this.locationName = res.data[0].unionName
- this.$refs.materialIn.open({list: this.MateriaList})
- } else {
- this.$refs.selectLoaction.open({wareHouseId: this.wareHouseId})
+ if (res.data.length === 1) {
+ this.location = res.data[0].id
+ this.locationName = res.data[0].unionName
+ this.$refs.materialIn.open({
+ list: this.MateriaList
+ })
+ } else {
+ this.$refs.selectLoaction.open({
+ wareHouseId: this.wareHouseId
+ })
}
})
- },
- selectLocation(item) {
- this.location = item.id
- this.locationName = item.unionName
- this.$refs.materialIn.open({list: this.MateriaList})
+ },
+ selectLocation(item) {
+ this.location = item.id
+ this.locationName = item.unionName
+ this.$refs.materialIn.open({
+ list: this.MateriaList
+ })
+ },
+ selectMaterial(val) {
+ let material = JSON.parse(JSON.stringify(val))
+ let tempMaterial = this.seleMateriaList.find(item => item.locationId == this.location)
+ if (tempMaterial) {
+ if (tempMaterial.qualityType == material.qualityType && tempMaterial.procedureId == material
+ .procedureId &&
+ tempMaterial.batch == material.batch && tempMaterial.materialId == material.materialId) {
+ uni.$u.toast('鐩稿悓璐т綅锛屽悓涓�涓墿鏂欏彧鑳芥湁涓�涓�')
+ return
+ }
+ }
+ let materialNum = 0
+ let num = 0
+ this.seleMateriaList.forEach(item => {
+ if (item.id === material.id) {
+ materialNum += Number(item.outActnum)
+ }
+ })
+ this.MateriaList.forEach(item => {
+ if (item.id === material.id) {
+ num = item.outActnum - materialNum
+ }
+ })
+ material.outActnum = num
+ this.seleMateriaList.push({
+ ...material,
+ locationId: this.location,
+ locationName: this.locationName
+ })
+ },
+ submit() {
+ if (this.type == QRCodeType.ZKD) {
+ if (!this.seleMateriaList.length) {
+ uni.$u.toast('杞叆鐗╂枡涓嶈兘涓虹┖')
+ return
+ }
+ let result = this.seleMateriaList.reduce((a, b) => {
+ if (a[b.id]) {
+ a[b.id].push(b);
+ } else {
+ a[b.id] = [b];
+ }
+ return a;
+ }, {});
+ for (let i = 0; i < this.MateriaList.length; i++) {
+ for (let a in result) {
+ if (this.MateriaList[i].id == a) {
+ let total = 0
+ for (let b = 0; b < result[a].length; b++) {
+ total = Number(total) + Number(result[a][b].outActnum)
+ }
+ if (!total || total <= 0) {
+ uni.$u.toast('鍏ュ簱鏁伴噺涓嶈兘灏忎簬0')
+ return
+ // Toast.fail({
+ // message: '鍏ュ簱鏁伴噺涓嶈兘灏忎簬0',
+ // forbidClick: true,
+ // duration: 2000
+ // })
+ }
+ if (total > this.MateriaList[i].outActnum) {
+ uni.$u.toast('鍏ュ簱鏁伴噺涓嶈兘澶т簬寰呭叆搴撴暟閲�')
+ return
+ // Toast.fail({
+ // message: '鍏ュ簱鏁伴噺涓嶈兘澶т簬寰呭叆搴撴暟閲�',
+ // forbidClick: true,
+ // duration: 2000
+ // })
+ }
+ }
+ }
+ }
+ let submitTransferInDetailDTOList = []
+ this.seleMateriaList.forEach(item => {
+ submitTransferInDetailDTOList.push({
+ inNum: item.outActnum,
+ locationId: item.locationId,
+ wtransferDetailId: item.id
+ })
+ })
+ transferToInNew({
+ submitTransferInDetailDTOList,
+ wtransferId: this.id
+ }).then(res => {
+ if (res.code === 200) {
+ this.$store.dispatch('getUpcomingNum')
+ uni.$u.toast('鎿嶄綔鎴愬姛')
+ // Toast.success({
+ // message: '鎿嶄綔鎴愬姛',
+ // forbidClick: true,
+ // duration: 2000
+ // })
+
+ // setTimeout(() => {
+ // if (route.query.Type == '4') { // 璺宠浆瀹屽伐鍏ュ簱璇︽儏
+ // router.push({
+ // name: 'completionDetails',
+ // query: {
+ // id: route.query.id,
+ // dbid: route.query.dbid,
+ // type: 7,
+ // isShow: 2
+ // }
+ // })
+ // return
+ // }
+ // router.replace({
+ // name: 'wTransferDetail',
+ // query: {
+ // id: route.query.id
+ // }
+ // })
+ // }, 2000)
+ }
+ })
+
+ } else if (this.type === QRCodeType.RKD) {
+ wOutBoundForUpload({
+ id: this.info.id,
+ wOutboundType: 1
+ }).then(res => {
+ if (res.code === 200) {
+ this.$store.dispatch('getUpcomingNum')
+ uni.$u.toast('鎿嶄綔鎴愬姛')
+ // Toast.success({
+ // message: '鎿嶄綔鎴愬姛',
+ // forbidClick: true,
+ // duration: 2000
+ // })
+ // setTimeout(() => {
+ // // router.go(-1)
+ // router.replace({
+ // name: 'wInboundDetail',
+ // query: {
+ // id: this.id
+ // }
+ // })
+ // }, 2000)
+ }
+ })
+ }
}
}
}
@@ -606,6 +753,7 @@
}
.nr {
+ display: flex;
font-size: 26rpx;
font-weight: 400;
color: #222222;
diff --git a/minipro_standard/pages/index/index.vue b/minipro_standard/pages/index/index.vue
index ac8f18a..8da7917 100644
--- a/minipro_standard/pages/index/index.vue
+++ b/minipro_standard/pages/index/index.vue
@@ -9,7 +9,7 @@
:style="{paddingTop: `${statusbarHeight}px`, height: `${navHeight}px`, lineHeight:`${navHeight}px`, textAlign: 'center'}">
寰呭姙</view>
<view class="cY">
- <u-search placeholder="鎼滅储鍏抽敭瀛�" bgColor="#f7f7f7" :showAction="false" @search="scrolltoupper"
+ <u-search placeholder="鎼滅储鍏抽敭瀛�" bgColor="#f7f7f7" :showAction="false" @search="search"
shape="square" v-model="searchForm.mixParam"></u-search>
<image src="../../static/filter@2x.png" class="img48 ml20" @click="filterAction" mode=""></image>
</view>
@@ -198,13 +198,11 @@
},
selectType(status) {
if (this.searchForm.status == status) return
- this.searchForm.status = status
- this.scrolltolower()
+ this.searchForm.status = status
+ this.search()
},
jump(item) {
- console.log(item);
if ((item.type === 0 || item.type === 2 || item.type === 5) && item.status === 0) { // 璺宠浆鍑哄簱(杞簱鍗�)
- console.log('鍑哄簱');
uni.navigateTo({
url: `/pages/OutOperation/OutOperation?id=${item.objId}&dbid=${item.id}&type=7`
})
@@ -278,7 +276,10 @@
// id: item.objId
// }
// })
- } else if (item.type === 9 && item.status === 0) { // 璋冩暣鍏ュ簱(鍏ュ簱鍗�)
+ } else if (item.type === 9 && item.status === 0) { // 璋冩暣鍏ュ簱(鍏ュ簱鍗�)
+ uni.navigateTo({
+ url: `/pages/InOperation/InOperation?id=${item.objId}&dbid=${item.id}&type=9`
+ })
// router.push({
// name: 'warehousing',
// query: {
@@ -309,8 +310,12 @@
},
confirm() {
this.searchForm.type = this.type
- this.show = false
- this.scrolltoupper()
+ this.show = false
+ this.search()
+ },
+ search() {
+ this.page.page = 1
+ this.loadData()
}
}
}
diff --git a/minipro_standard/pages/inspectComplete/inspectComplete.vue b/minipro_standard/pages/inspectComplete/inspectComplete.vue
index 72f566e..d55a676 100644
--- a/minipro_standard/pages/inspectComplete/inspectComplete.vue
+++ b/minipro_standard/pages/inspectComplete/inspectComplete.vue
@@ -59,6 +59,8 @@
</template>
<script>
+ import { createStandard } from '@/util/api/QualityAPI'
+ import { checkAllList, getListByCondition, toolingQueryById } from "@/util/api/WorkOrderAPI"
export default {
data() {
return {
diff --git a/minipro_standard/pages/inspectPatrol/inspectPatrol.vue b/minipro_standard/pages/inspectPatrol/inspectPatrol.vue
index be1dace..6d08d9c 100644
--- a/minipro_standard/pages/inspectPatrol/inspectPatrol.vue
+++ b/minipro_standard/pages/inspectPatrol/inspectPatrol.vue
@@ -83,6 +83,7 @@
},
onLoad() {
uni.$on('workOrder', (data) => {
+ console.log(data);
this.form.gdmc = data.mmodel.name + '-' + data.pgmodel.name
this.form.gdid = data.id
this.info = data
diff --git a/minipro_standard/pages/selectWorkOrder/selectWorkOrder.vue b/minipro_standard/pages/selectWorkOrder/selectWorkOrder.vue
index e6800a4..74ba8b9 100644
--- a/minipro_standard/pages/selectWorkOrder/selectWorkOrder.vue
+++ b/minipro_standard/pages/selectWorkOrder/selectWorkOrder.vue
@@ -8,10 +8,12 @@
<div class="Search_item_label">璁″垝鏃ユ湡</div>
<div class="Search_item_content" @click="isOpenDate=true">
<div class="Search_item_content_a" :style="form.startDate ? 'color: #000;' : ''">
- {{ form.startDate ? form.startDate : '寮�濮嬫棩鏈�'}}</div>
+ {{ form.startDate ? form.startDate : '寮�濮嬫棩鏈�'}}
+ </div>
<span>-</span>
<div class="Search_item_content_a" :style="form.endDate ? 'color: #000;' : ''">
- {{ form.endDate ? form.endDate : '缁撴潫鏃ユ湡'}}</div>
+ {{ form.endDate ? form.endDate : '缁撴潫鏃ユ湡'}}
+ </div>
</div>
</div>
</template>
@@ -19,239 +21,226 @@
<div class="content_search_x"></div>
<v-LableSelection :TagList="tagList" :isShow="true" @change="clickTag"></v-LableSelection>
</div>
- <div class="content_total">鍏眥{page.total}}鏉℃暟鎹�</div>
- <div class="content_list">
- <u-list @scrolltolower="scrolltolower" @scrolltoupper="scrolltoupper">
- <u-list-item v-for="(item, i) in list" :key="i">
- <div class="content_list_item" @click="jump(item)">
- <div class="content_list_item_top">
- <div class="content_list_item_top_left">
- <span v-if="item.mmodel">{{item.mmodel.name}} | {{item.procedureName}}</span>
- <div class="content_list_item_top_left_tag" v-if="item.urgent">浼樺厛{{item.urgent}}</div>
- <div class="content_list_item_top_left_tagW" v-if="item.paused === 1">鍋�</div>
- </div>
- <div class="content_list_item_top_right">
- <span class="yellow" v-if="item.status === 0">宸插垱寤�</span>
- <span class="green" v-if="item.status === 1">宸插鏂�</span>
- <span v-if="item.status === 2">宸插畬宸�</span>
- <span class="purple" v-if="item.status === 3">宸叉楠�</span>
- <span v-if="item.status === 4">宸叉姤宸�</span>
- <span v-if="item.status === 5">宸插叆搴�</span>
- <span v-if="item.status === 6">宸插彇娑�</span>
- </div>
- </div>
- <span>宸ュ崟缂栫爜: {{item.code}}</span>
- <div class="content_list_item_content">
- <div class="content_list_item_content_item">
- <div class="content_list_item_content_item_label">鐗╂枡缂栫爜锛�</div>
- <div class="content_list_item_content_item_nr" v-if="item.mmodel">{{item.mmodel.code}}
- </div>
- </div>
- <div class="content_list_item_content_item">
- <div class="content_list_item_content_item_label">璁″垝寮�宸ワ細</div>
- <div class="content_list_item_content_item_nr">{{item.planDate}}</div>
- </div>
- <div class="content_list_item_content_item">
- <div class="content_list_item_content_item_label">鐢熶骇鎵规锛�</div>
- <div class="content_list_item_content_item_nr">{{item.batch}}</div>
- </div>
- <div class="content_list_item_content_item">
- <div class="content_list_item_content_item_label">璁″垝鏁伴噺锛�</div>
- <div class="content_list_item_content_item_nr" v-if="item.umodel">
- {{item.planNum}}{{item.umodel.name}}</div>
- </div>
- <div class="content_list_item_content_item">
- <div class="content_list_item_content_item_label">鐢熶骇璁惧锛�</div>
- <div class="content_list_item_content_item_nr" v-if="item.pgmodel">{{item.pgmodel.name}}
- </div>
- </div>
- <div class="content_list_item_content_item" v-if="item.status === 5">
- <div class="content_list_item_content_item_label">瀹屽伐鏁伴噺锛�</div>
- <div class="content_list_item_content_item_nr">{{item.proNum}}</div>
- </div>
- </div>
- </div>
- </u-list-item>
- </u-list>
+ <div class="content_total">鍏眥{page.total}}鏉℃暟鎹�</div>
+ <div class="content_list">
+ <scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="refreshing"
+ @scrolltolower="loadMore" @refresherrefresh="onRefresh" :style="{height: height}">
+ <div class="content_list_item" v-for="(item, i) in list" :key="i" @click="jump(item)">
+ <div class="content_list_item_top">
+ <div class="content_list_item_top_left">
+ <span v-if="item.mmodel">{{item.mmodel.name}} | {{item.procedureName}}</span>
+ <div class="content_list_item_top_left_tag" v-if="item.urgent">浼樺厛{{item.urgent}}</div>
+ <div class="content_list_item_top_left_tagW" v-if="item.paused === 1">鍋�</div>
+ </div>
+ <div class="content_list_item_top_right">
+ <span class="yellow" v-if="item.status === 0">宸插垱寤�</span>
+ <span class="green" v-if="item.status === 1">宸插鏂�</span>
+ <span v-if="item.status === 2">宸插畬宸�</span>
+ <span class="purple" v-if="item.status === 3">宸叉楠�</span>
+ <span v-if="item.status === 4">宸叉姤宸�</span>
+ <span v-if="item.status === 5">宸插叆搴�</span>
+ <span v-if="item.status === 6">宸插彇娑�</span>
+ </div>
+ </div>
+ <span>宸ュ崟缂栫爜: {{item.code}}</span>
+ <div class="content_list_item_content">
+ <div class="content_list_item_content_item">
+ <div class="content_list_item_content_item_label">鐗╂枡缂栫爜锛�</div>
+ <div class="content_list_item_content_item_nr" v-if="item.mmodel">{{item.mmodel.code}}
+ </div>
+ </div>
+ <div class="content_list_item_content_item">
+ <div class="content_list_item_content_item_label">璁″垝寮�宸ワ細</div>
+ <div class="content_list_item_content_item_nr">{{item.planDate}}</div>
+ </div>
+ <div class="content_list_item_content_item">
+ <div class="content_list_item_content_item_label">鐢熶骇鎵规锛�</div>
+ <div class="content_list_item_content_item_nr">{{item.batch}}</div>
+ </div>
+ <div class="content_list_item_content_item">
+ <div class="content_list_item_content_item_label">璁″垝鏁伴噺锛�</div>
+ <div class="content_list_item_content_item_nr" v-if="item.umodel">
+ {{item.planNum}}{{item.umodel.name}}
+ </div>
+ </div>
+ <div class="content_list_item_content_item">
+ <div class="content_list_item_content_item_label">鐢熶骇璁惧锛�</div>
+ <div class="content_list_item_content_item_nr" v-if="item.pgmodel">{{item.pgmodel.name}}
+ </div>
+ </div>
+ <div class="content_list_item_content_item" v-if="item.status === 5">
+ <div class="content_list_item_content_item_label">瀹屽伐鏁伴噺锛�</div>
+ <div class="content_list_item_content_item_nr">{{item.proNum}}</div>
+ </div>
+ </div>
+ </div>
+ </scroll-view>
</div>
<!-- <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
<van-list v-model:loading="loading" :finished="finished" finished-text="娌℃湁鏇村浜唦" @load="onLoad">
</van-list>
- </van-pull-refresh> -->
- <u-calendar :show="isOpenDate" mode="range" @close="isOpenDate=false" @confirm="onConfirm"></u-calendar>
- <!-- <van-calendar v-model:show="isOpenDate" type="range" :min-date="minDate" :max-date="maxDate" color="#4275FC"
- @confirm="onConfirm" /> -->
- <!-- <v-ScanCode
- :openCode="openCode"
- :infos="['绗竴娆℃壂鐮�']"
- @closePopup="closePopup"
- @onDecode="onDecode">
- </v-ScanCode> -->
+ </van-pull-refresh> -->
+
+ <l-calendar :lunar="false" v-model="isOpenDate" @change="onConfirm" :isRange="true" activeBgColor="#305ED5"
+ rangeColor="#305ED5" rangeBgColor="rgba(48, 80, 213, 0.1)"></l-calendar>
+
</view>
</template>
-<script>
- import vSearch from '@/components/Search.vue'
- import vLableSelection from '@/components/LabelSelection.vue'
- import { gsdate } from '@/util/utils'
- export default {
- components: {
- vSearch,
- vLableSelection
+<script>
+ import vSearch from '@/components/Search.vue'
+ import vLableSelection from '@/components/LabelSelection.vue'
+ import {
+ gsdate
+ } from '@/util/utils'
+ import {
+ getList,
+ pageCount
+ } from '@/util/api/WorkOrderAPI'
+ export default {
+ components: {
+ vSearch,
+ vLableSelection
},
data() {
return {
- status: true,
- isOpenDate: false,
- // tagList: [1,2,3],
- form: {
- startDate: '',
- endDate: ''
- },
- list: [
- {
- mmodel: { name: 'adsa', },
- mmodel: { code: 'wl-001' },
- umodel: { name: '鍚�' },
- pgmodel: { name: '娑插帇鏈�' },
- procedureName: '鍘嬪埗',
- urgent: 10,
- paused: 0,
- status: 0,
- code: '00100',
- planDate: '2023-08-30',
- batch: 'kk-yw',
- planNum: 300,
- proNum: 100,
- },
- {
- mmodel: { name: 'adsa', },
- mmodel: { code: 'wl-001' },
- umodel: { name: '鍚�' },
- pgmodel: { name: '娑插帇鏈�' },
- procedureName: '鍘嬪埗',
- urgent: 10,
- paused: 0,
- status: 1,
- code: '00100',
- planDate: '2023-08-30',
- batch: 'kk-yw',
- planNum: 300,
- proNum: 100
- },
- {
- mmodel: { name: 'adsa', },
- mmodel: { code: 'wl-001' },
- umodel: { name: '鍚�' },
- pgmodel: { name: '娑插帇鏈�' },
- procedureName: '鍘嬪埗',
- urgent: 10,
- paused: 0,
- status: 2,
- code: '00100',
- planDate: '2023-08-30',
- batch: 'kk-yw',
- planNum: 300,
- proNum: 100,
- },
- {
- mmodel: { name: 'adsa', },
- mmodel: { name: '鐗╂枡001', code: 'wl-001' },
- umodel: { name: '鍚�' },
- pgmodel: { name: '娑插帇鏈�' },
- procedureName: '鍘嬪埗',
- urgent: 10,
- paused: 0,
- status: 3,
- code: '00100',
- planDate: '2023-08-30',
- batch: 'kk-yw',
- planNum: 300,
- proNum: 100,
- },
- {
- mmodel: { name: 'adsa', },
- mmodel: { code: 'wl-001' },
- umodel: { name: '鍚�' },
- pgmodel: { name: '娑插帇鏈�' },
- procedureName: '鍘嬪埗',
- urgent: 10,
- paused: 0,
- status: 4,
- code: '00100',
- planDate: '2023-08-30',
- batch: 'kk-yw',
- planNum: 300,
- proNum: 100,
- },
- {
- mmodel: { name: 'adsa', },
- mmodel: { code: 'wl-001' },
- umodel: { name: '鍚�' },
- pgmodel: { name: '娑插帇鏈�' },
- procedureName: '鍘嬪埗',
- urgent: 10,
- paused: 0,
- status: 5,
- code: '00100',
- planDate: '2023-08-30',
- batch: 'kk-yw',
- planNum: 300,
- proNum: 100,
- },
- {
- mmodel: { name: 'adsa', },
- mmodel: { code: 'wl-001' },
- umodel: { name: '鍚�' },
- pgmodel: { name: '娑插帇鏈�' },
- procedureName: '鍘嬪埗',
- urgent: 10,
- paused: 0,
- status: 6,
- code: '00100',
- planDate: '2023-08-30',
- batch: 'kk-yw',
- planNum: 300,
- proNum: 100,
- },
- {
- mmodel: { name: 'adsa', },
- mmodel: { code: 'wl-001' },
- umodel: { name: '鍚�' },
- pgmodel: { name: '娑插帇鏈�' },
- procedureName: '鍘嬪埗',
- urgent: 10,
- paused: 0,
- status: 7,
- code: '00100',
- planDate: '2023-08-30',
- batch: 'kk-yw',
- planNum: 300,
- proNum: 100,
- },
- ],
- page: {
- size: 10,
- index: 1,
- total: 0
+ height: '',
+ status: true,
+ isOpenDate: false,
+ refreshing: false,
+ // tagList: [1,2,3],
+ tagList: [{
+ id: [2,3,7],
+ name: '鐢熶骇涓�',
+ num: ''
+ }],
+ minDate: '2021-01-01',
+ maxDate: '',
+ form: {
+ startDate: '',
+ endDate: '',
+ mixParam: '',
+ statusList: []
+ },
+ list: [],
+ page: {
+ capacity: 10,
+ index: 1,
+ total: 0
}
};
- },
- methods: {
- reset() {},
- submit() {},
- onConfirm(value) {
- const [start, end] = value
- this.form.startDate = gsdate(start)
- this.form.endDate = gsdate(end)
- this.isOpenDate = false
- },
- scrolltolower() {},
- scrolltoupper() {},
- jump(item) {
- uni.$emit('workOrder', item)
- uni.navigateBack()
- }
+ },
+ onLoad(opt) {
+ this.$nextTick(() => {
+ uni.createSelectorQuery().in(this).select('.content_search').boundingClientRect((rect) => {
+ this.height = `calc(100vh - ${rect.height + 80}px)`
+ }).exec()
+ })
+ if (opt.type == '1') {
+ this.tagList = [{
+ id: [0, 1],
+ name: '寰呯敓浜�',
+ num: ''
+ },
+ {
+ id: [2, 3, 7],
+ name: '鐢熶骇涓�',
+ num: ''
+ }
+ ]
+ } else {
+ this.tagList = [{
+ id: [2, 3, 7],
+ name: '鐢熶骇涓�',
+ num: ''
+ }]
+ }
+ this.maxDate = gsdate(new Date(`${new Date().getFullYear() + 1}-12-30`))
+ this.pageCounts()
+ this.loadData()
+ },
+ methods: {
+ reset() {
+ this.form.startDate = ''
+ this.form.endDate = ''
+ this.search()
+ },
+ searchInput(val) {
+ this.form.mixParam = val;
+ this.search()
+ },
+ clickTag(v) {
+ this.form.statusList = v
+ this.search()
+ },
+ submit() {
+ this.search()
+ },
+ onConfirm(value) {
+ this.form.startDate = value.startDate
+ this.form.endDate = value.endDate
+ this.isOpenDate = false
+ },
+ onRefresh() {
+ if (this.refreshing) return
+ this.refreshing = true;
+ this.search()
+ },
+ loadMore() {
+ this.page.page += 1
+ this.loadData()
+ },
+ search() {
+ this.page.page = 1
+ this.loadData()
+ },
+ loadData() {
+ getList({
+ ...this.page,
+ model: {
+ ...this.form,
+ statusList: this.form.statusList.length === 0 ? this.tagList[0].id : this.form.statusList
+ }
+ })
+ .then(res => {
+ let {
+ data
+ } = res
+ if (data.page == 1) {
+ this.list = []
+ }
+ this.list.push(...data.records)
+ this.page.total = data.total
+ this.page.page = data.page
+ })
+ .catch(err => {
+
+ })
+ .finally(() => {
+ this.refreshing = false
+ })
+ },
+ pageCounts() {
+ pageCount({}).then(res => {
+ if (res.code === 200) {
+ this.tagList.forEach(item => {
+ if (item.name == '寰呯敓浜�') {
+ item.num = res.data.startNum
+ }
+ if (item.name == '鐢熶骇涓�') {
+ item.num = res.data.ingNum
+ }
+ if (item.name == '宸插畬鎴�') {
+ item.num = res.data.endNum
+ }
+ })
+ }
+ })
+ },
+ jump(item) {
+ uni.$emit('workOrder', item)
+ uni.navigateBack()
+ }
}
}
</script>
@@ -363,7 +352,7 @@
.content_list {
width: 100%;
- height: 100%;
+ // height: 100%;
display: flex;
flex-direction: column;
diff --git a/minipro_standard/uni_modules/l-calendar/changelog.md b/minipro_standard/uni_modules/l-calendar/changelog.md
new file mode 100644
index 0000000..1e20611
--- /dev/null
+++ b/minipro_standard/uni_modules/l-calendar/changelog.md
@@ -0,0 +1,8 @@
+## 1.0.3锛�2023-05-31锛�
+1.0.3
+## 1.0.2锛�2023-05-20锛�
+1.0.2
+## 1.0.1锛�2023-05-19锛�
+1.0.1
+## 1.0.0锛�2023-05-19锛�
+1.0.0
diff --git a/minipro_standard/uni_modules/l-calendar/components/l-calendar/calendar.js b/minipro_standard/uni_modules/l-calendar/components/l-calendar/calendar.js
new file mode 100644
index 0000000..72b0e2b
--- /dev/null
+++ b/minipro_standard/uni_modules/l-calendar/components/l-calendar/calendar.js
@@ -0,0 +1,562 @@
+/**
+ * @1900-2100鍖洪棿鍐呯殑鍏巻銆佸啘鍘嗕簰杞�
+ * @鍏巻杞啘鍘嗭細solar2lunar
+ * @鍐滃巻杞叕鍘嗭細lunar2solar
+ */
+let 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, 0x055c0, 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
+ 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:let count = calendar.lYearDays(1987) ;//count=387
+ */
+ lYearDays: function(y) {
+ let i, sum = 348;
+ for (i = 0x8000; i > 0x8; i >>= 1) {
+ sum += (calendar.lunarInfo[y - 1900] & i) ? 1 : 0;
+ }
+ return (sum + calendar.leapDays(y));
+ },
+ /**
+ * 杩斿洖鍐滃巻y骞撮棸鏈堟槸鍝釜鏈堬紱鑻骞存病鏈夐棸鏈� 鍒欒繑鍥�0
+ * @param lunar Year
+ * @return Number (0-12)
+ * @eg:let leapMonth = calendar.leapMonth(1987) ;//leapMonth=6
+ */
+ leapMonth: function(y) { //闂板瓧缂栫爜 \u95f0
+ return (calendar.lunarInfo[y - 1900] & 0xf);
+ },
+ /**
+ * 杩斿洖鍐滃巻y骞撮棸鏈堢殑澶╂暟 鑻ヨ骞存病鏈夐棸鏈堝垯杩斿洖0
+ * @param lunar Year
+ * @return Number (0銆�29銆�30)
+ * @eg:let leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29
+ */
+ leapDays: function(y) {
+ if (calendar.leapMonth(y)) {
+ return ((calendar.lunarInfo[y - 1900] & 0x10000) ? 30 : 29);
+ }
+ return (0);
+ },
+ /**
+ * 杩斿洖鍐滃巻y骞磎鏈堬紙闈為棸鏈堬級鐨勬�诲ぉ鏁帮紝璁$畻m涓洪棸鏈堟椂鐨勫ぉ鏁拌浣跨敤leapDays鏂规硶
+ * @param lunar Year
+ * @return Number (-1銆�29銆�30)
+ * @eg:let MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29
+ */
+ monthDays: function(y, m) {
+ if (m > 12 || m < 1) {
+ return -1
+ } //鏈堜唤鍙傛暟浠�1鑷�12锛屽弬鏁伴敊璇繑鍥�-1
+ return ((calendar.lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29);
+ },
+ /**
+ * 杩斿洖鍏巻(!)y骞磎鏈堢殑澶╂暟
+ * @param solar Year
+ * @return Number (-1銆�28銆�29銆�30銆�31)
+ * @eg:let solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30
+ */
+ solarDays: function(y, m) {
+ if (m > 12 || m < 1) {
+ return -1
+ } //鑻ュ弬鏁伴敊璇� 杩斿洖-1
+ let ms = m - 1;
+ if (ms == 1) { //2鏈堜唤鐨勯棸骞宠寰嬫祴绠楀悗纭杩斿洖28鎴�29
+ return (((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0)) ? 29 : 28);
+ } else {
+ return (calendar.solarMonth[ms]);
+ }
+ },
+ /**
+ * 鍐滃巻骞翠唤杞崲涓哄共鏀邯骞�
+ * @param lYear 鍐滃巻骞寸殑骞翠唤鏁�
+ * @return Cn string
+ */
+ toGanZhiYear: function(lYear) {
+ let ganKey = (lYear - 3) % 10;
+ let zhiKey = (lYear - 3) % 12;
+ if (ganKey == 0) ganKey = 10; //濡傛灉浣欐暟涓�0鍒欎负鏈�鍚庝竴涓ぉ骞�
+ if (zhiKey == 0) zhiKey = 12; //濡傛灉浣欐暟涓�0鍒欎负鏈�鍚庝竴涓湴鏀�
+ return calendar.Gan[ganKey - 1] + calendar.Zhi[zhiKey - 1];
+ },
+ /**
+ * 鍏巻鏈堛�佹棩鍒ゆ柇鎵�灞炴槦搴�
+ * @param cMonth [description]
+ * @param cDay [description]
+ * @return Cn string
+ */
+ toAstro: function(cMonth, cDay) {
+ let 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";
+ let 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 calendar.Gan[offset % 10] + calendar.Zhi[offset % 12];
+ },
+ /**
+ * 浼犲叆鍏巻(!)y骞磋幏寰楄骞寸n涓妭姘旂殑鍏巻鏃ユ湡
+ * @param y鍏巻骞�(1900-2100)锛沶浜屽崄鍥涜妭姘斾腑鐨勭鍑犱釜鑺傛皵(1~24)锛涗粠n=1(灏忓瘨)绠楄捣
+ * @return day Number
+ * @eg:let _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;
+ }
+ let _table = calendar.sTermInfo[y - 1900];
+ let _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()
+ ];
+ let _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:let cnMonth = calendar.toChinaMonth(12) ;//cnMonth='鑵婃湀'
+ */
+ toChinaMonth: function(m) { // 鏈� => \u6708
+ if (m > 12 || m < 1) {
+ return -1
+ } //鑻ュ弬鏁伴敊璇� 杩斿洖-1
+ let s = calendar.nStr3[m - 1];
+ s += "\u6708"; //鍔犱笂鏈堝瓧
+ return s;
+ },
+ /**
+ * 浼犲叆鍐滃巻鏃ユ湡鏁板瓧杩斿洖姹夊瓧琛ㄧず娉�
+ * @param lunar day
+ * @return Cn string
+ * @eg:let cnDay = calendar.toChinaDay(21) ;//cnMonth='寤夸竴'
+ */
+ toChinaDay: function(d) { //鏃� => \u65e5
+ let s;
+ switch (d) {
+ case 10:
+ s = '\u521d\u5341';
+ break;
+ case 20:
+ s = '\u4e8c\u5341';
+ break;
+ break;
+ case 30:
+ s = '\u4e09\u5341';
+ break;
+ break;
+ default:
+ s = calendar.nStr2[Math.floor(d / 10)];
+ s += calendar.nStr1[d % 10];
+ }
+ return (s);
+ },
+ /**
+ * 骞翠唤杞敓鑲朳!浠呰兘澶ц嚧杞崲] => 绮剧‘鍒掑垎鐢熻倴鍒嗙晫绾挎槸鈥滅珛鏄モ��
+ * @param y year
+ * @return Cn string
+ * @eg:let animal = calendar.getAnimal(1987) ;//animal='鍏�'
+ */
+ getAnimal: function(y) {
+ return calendar.Animals[(y - 4) % 12]
+ },
+ /**
+ * 浼犲叆闃冲巻骞存湀鏃ヨ幏寰楄缁嗙殑鍏巻銆佸啘鍘唎bject淇℃伅 <=>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;
+ } //骞翠唤闄愬畾銆佷笂闄�
+ if (y == 1900 && m == 1 && d < 31) {
+ return -1;
+ } //涓嬮檺
+ let objDate;
+ if (!y) { //鏈紶鍙� 鑾峰緱褰撳ぉ
+ objDate = new Date();
+ } else {
+ objDate = new Date(y, parseInt(m) - 1, d)
+ }
+ let i, leap = 0,
+ temp = 0;
+ //淇ymd鍙傛暟
+ y = objDate.getFullYear();
+ m = objDate.getMonth() + 1;
+ d = objDate.getDate();
+ let offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) /
+ 86400000;
+ for (i = 1900; i < 2101 && offset > 0; i++) {
+ temp = calendar.lYearDays(i);
+ offset -= temp;
+ }
+ if (offset < 0) {
+ offset += temp;
+ i--;
+ }
+ //鏄惁浠婂ぉ
+ let isTodayObj = new Date(),
+ isToday = false;
+ if (isTodayObj.getFullYear() == y && isTodayObj.getMonth() + 1 == m && isTodayObj.getDate() == d) {
+ isToday = true;
+ }
+ //鏄熸湡鍑�
+ let nWeek = objDate.getDay(),
+ cWeek = calendar.nStr1[nWeek];
+ if (nWeek == 0) {
+ nWeek = 7;
+ } //鏁板瓧琛ㄧず鍛ㄥ嚑椤哄簲澶╂湞鍛ㄤ竴寮�濮嬬殑鎯緥
+ //鍐滃巻骞�
+ let year = i;
+ leap = calendar.leapMonth(i); //闂板摢涓湀
+ let isLeap = false;
+ //鏁堥獙闂版湀
+ for (i = 1; i < 13 && offset > 0; i++) {
+ //闂版湀
+ if (leap > 0 && i == (leap + 1) && isLeap == false) {
+ --i;
+ isLeap = true;
+ temp = calendar.leapDays(year); //璁$畻鍐滃巻闂版湀澶╂暟
+ } else {
+ temp = calendar.monthDays(year, i); //璁$畻鍐滃巻鏅�氭湀澶╂暟
+ }
+ //瑙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;
+ }
+ //鍐滃巻鏈�
+ let month = i;
+ //鍐滃巻鏃�
+ let day = offset + 1;
+ //澶╁共鍦版敮澶勭悊
+ let sm = m - 1;
+ let gzY = calendar.toGanZhiYear(year);
+ //鏈堟煴 1900骞�1鏈堝皬瀵掍互鍓嶄负 涓欏瓙鏈�(60杩涘埗12)
+ let firstNode = calendar.getTerm(year, (m * 2 - 1)); //杩斿洖褰撴湀銆岃妭銆嶄负鍑犳棩寮�濮�
+ let secondNode = calendar.getTerm(year, (m * 2)); //杩斿洖褰撴湀銆岃妭銆嶄负鍑犳棩寮�濮�
+ //渚濇嵁12鑺傛皵淇骞叉敮鏈�
+ let gzM = calendar.toGanZhi((y - 1900) * 12 + m + 11);
+ if (d >= firstNode) {
+ gzM = calendar.toGanZhi((y - 1900) * 12 + m + 12);
+ }
+ //浼犲叆鐨勬棩鏈熺殑鑺傛皵涓庡惁
+ let isTerm = false;
+ let Term = null;
+ if (firstNode == d) {
+ isTerm = true;
+ Term = calendar.solarTerm[m * 2 - 2];
+ }
+ if (secondNode == d) {
+ isTerm = true;
+ Term = calendar.solarTerm[m * 2 - 1];
+ }
+ //鏃ユ煴 褰撴湀涓�鏃ヤ笌 1900/1/1 鐩稿樊澶╂暟
+ let dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10;
+ let gzD = calendar.toGanZhi(dayCyclical + d - 1);
+ //璇ユ棩鏈熸墍灞炵殑鏄熷骇
+ let astro = calendar.toAstro(m, d);
+ return {
+ 'lYear': year,
+ 'lMonth': month,
+ 'lDay': day,
+ 'Animal': calendar.getAnimal(year),
+ 'IMonthCn': (isLeap ? "\u95f0" : '') + calendar.toChinaMonth(month),
+ 'IDayCn': calendar.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
+ };
+ },
+ /**
+ * 浼犲叆鍐滃巻骞存湀鏃ヤ互鍙婁紶鍏ョ殑鏈堜唤鏄惁闂版湀鑾峰緱璇︾粏鐨勫叕鍘嗐�佸啘鍘唎bject淇℃伅 <=>JSON
+ * @param y lunar year
+ * @param m lunar month
+ * @param d lunar day
+ * @param isLeapMonth lunar month is leap or not.[濡傛灉鏄啘鍘嗛棸鏈堢鍥涗釜鍙傛暟璧嬪�紅rue鍗冲彲]
+ * @return JSON object
+ * @eg:console.log(calendar.lunar2solar(1987,9,10));
+ */
+ lunar2solar: function(y, m, d, isLeapMonth) { //鍙傛暟鍖洪棿1900.1.31~2100.12.1
+ isLeapMonth = !!isLeapMonth;
+ let leapOffset = 0;
+ let leapMonth = calendar.leapMonth(y);
+ let leapDay = calendar.leapDays(y);
+ if (isLeapMonth && (leapMonth != m)) {
+ return -1;
+ } //浼犲弬瑕佹眰璁$畻璇ラ棸鏈堝叕鍘� 浣嗚骞村緱鍑虹殑闂版湀涓庝紶鍙傜殑鏈堜唤骞朵笉鍚�
+ if (y == 2100 && m == 12 && d > 1 || y == 1900 && m == 1 && d < 31) {
+ return -1;
+ } //瓒呭嚭浜嗘渶澶ф瀬闄愬��
+ let day = calendar.monthDays(y, m);
+ let _day = day;
+ //bugFix 2016-9-25
+ //if month is leap, _day use leapDays method
+ if (isLeapMonth) {
+ _day = calendar.leapDays(y, m);
+ }
+ if (y < 1900 || y > 2100 || d > _day) {
+ return -1;
+ } //鍙傛暟鍚堟硶鎬ф晥楠�
+ //璁$畻鍐滃巻鐨勬椂闂村樊
+ let offset = 0;
+ for (let i = 1900; i < y; i++) {
+ offset += calendar.lYearDays(i);
+ }
+ let leap = 0,
+ isAdd = false;
+ for (let i = 1; i < m; i++) {
+ leap = calendar.leapMonth(y);
+ if (!isAdd) { //澶勭悊闂版湀
+ if (leap <= i && leap > 0) {
+ offset += calendar.leapDays(y);
+ isAdd = true;
+ }
+ }
+ offset += calendar.monthDays(y, i);
+ }
+ //杞崲闂版湀鍐滃巻 闇�琛ュ厖璇ュ勾闂版湀鐨勫墠涓�涓湀鐨勬椂宸�
+ if (isLeapMonth) {
+ offset += day;
+ }
+ //1900骞村啘鍘嗘鏈堜竴鏃ョ殑鍏巻鏃堕棿涓�1900骞�1鏈�30鏃�0鏃�0鍒�0绉�(璇ユ椂闂翠篃鏄湰鍐滃巻鐨勬渶寮�濮嬭捣濮嬬偣)
+ let stmap = Date.UTC(1900, 1, 30, 0, 0, 0);
+ let calObj = new Date((offset + d - 31) * 86400000 + stmap);
+ let cY = calObj.getUTCFullYear();
+ let cM = calObj.getUTCMonth() + 1;
+ let cD = calObj.getUTCDate();
+ return calendar.solar2lunar(cY, cM, cD);
+ }
+};
+
+export default {
+ solar2lunar: calendar.solar2lunar,
+ lunar2solar: calendar.lunar2solar
+};
\ No newline at end of file
diff --git a/minipro_standard/uni_modules/l-calendar/components/l-calendar/l-calendar.vue b/minipro_standard/uni_modules/l-calendar/components/l-calendar/l-calendar.vue
new file mode 100644
index 0000000..cd1ea4a
--- /dev/null
+++ b/minipro_standard/uni_modules/l-calendar/components/l-calendar/l-calendar.vue
@@ -0,0 +1,832 @@
+<template>
+ <view @touchmove.stop.prevent>
+ <view class="l-calendar-box" :class="{'calendar-box-show': value}">
+ <view class="calendar-top">
+ <view>{{title}}</view>
+ <view class="close l-icons icon-shanchu" hover-class="l-opacity" :hover-stay-time="150" @tap="hide">
+ </view>
+ </view>
+
+ <view class="date-box">
+ <view class=" date-arrowleft l-icons icon-youjiantou" :style="{ color: yearChangeColor }"
+ hover-class="l-opacity" :hover-stay-time="150" @tap="changeYear(false)">
+ </view>
+ <view class=" date-arrowleft l-icons icon-zuojiantou" :style="{ color: monthChangeColor }"
+ hover-class="l-opacity" :hover-stay-time="150" @tap="changeMonth(false)"></view>
+ <view class="title-datetime">{{ showTitle }}</view>
+ <view class=" date-arrowright l-icons icon-youjiantou2" :style="{ color: monthChangeColor }"
+ hover-class="l-opacity" :hover-stay-time="150" @tap="changeMonth(true)"></view>
+ <view class=" date-arrowright l-icons icon-youjiantou1" :style="{ color: yearChangeColor }"
+ hover-class="l-opacity" :hover-stay-time="150" @tap="changeYear(true)"></view>
+ </view>
+ <view class="date-weekday">
+ <view class="date-weekday-item">鏃�</view>
+ <view class="date-weekday-item">涓�</view>
+ <view class="date-weekday-item">浜�</view>
+ <view class="date-weekday-item">涓�</view>
+ <view class="date-weekday-item">鍥�</view>
+ <view class="date-weekday-item">浜�</view>
+ <view class="date-weekday-item">鍏�</view>
+ </view>
+ <view class="date-content" :style="{ height: dateHeight * 6 + 'px' }">
+ <block v-for="(item, index) in weekdayArr" :key="index">
+ <view class="date-weekday-item"></view>
+ </block>
+ <view class="date-weekday-item" :class="{
+ 'l-opacity': isDisable(year, month, index + 1),
+ 'start-date': (isRange && startDate == `${year}-${month}-${index + 1}`) || !isRange,
+ 'end-date': (isRange && endDate == `${year}-${month}-${index + 1}`) || !isRange
+ }" :style="{ backgroundColor: getColor(index, 1), height: dateHeight + 'px',padding:0}"
+ v-for="(item, index) in daysArr" :key="index" @tap="dateClick(index)">
+ <view class="date-content-item" :style="{ color: getColor(index, 2) }">
+ <view>{{ index + 1 }}</view>
+ <!-- 鍐滃巻 -->
+ <view class="custom-desc">
+ {{ getText(index, startDate, endDate) }}
+ </view>
+ </view>
+ <view class="date-content-item-desc" :style="{ color: activeColor }"
+ v-if="!lunar && isRange && startDate == `${year}-${month}-${index + 1}` && startDate != endDate">
+ {{ startText }}
+ </view>
+ <view class="date-content-item-desc" :style="{ color: activeColor }"
+ v-if="!lunar && isRange && endDate == `${year}-${month}-${index + 1}`">{{ endText }}</view>
+ </view>
+ <view class="bg-mounth">{{ month }}</view>
+ </view>
+
+ <view class="calendar-text">
+ <!-- <view class="calendar-result">
+ <text>{{ !isRange ? activeDate : startDate }}</text>
+ <text v-if="endDate">鑷硔{ endDate }}</text>
+ </view> -->
+ <view class="calendar-btn">
+ <button :style="{opacity:disabled ? '.5' : '1'}" :size="28" :disabled="disabled"
+ @click="confireBtnClick(false)">纭畾
+ </button>
+ </view>
+ </view>
+ </view>
+
+ <view class="mask" :class="[value ? 'mask-show' : '']" @tap="hide"></view>
+ </view>
+</template>
+<script>
+ import calendar from './calendar.js';
+ export default {
+ name: 'lCalendar',
+ model: {
+ prop: 'value',
+ event: 'input'
+ },
+ props: {
+ //鍙屽悜缁戝畾鐨勫�� 鐢ㄤ簬灞曠ず/鍏抽棴鏃ュ巻
+ value: {
+ type: Boolean,
+ default: false
+ },
+ //鏄惁閫夋嫨鑼冨洿 true鏄� false閫夋嫨鍗曚釜鏃ユ湡
+ isRange: {
+ type: Boolean,
+ default: false
+ },
+ //鍙垏鎹㈡渶澶у勾浠�
+ maxYear: {
+ type: Number,
+ default: 2100
+ },
+ //鍙垏鎹㈡渶灏忓勾浠�
+ minYear: {
+ type: Number,
+ default: 1920
+ },
+ //鏈�灏忓彲閫夋棩鏈� 涓嶅湪鑼冨洿鍐呮棩鏈熺閫�
+ minDate: {
+ type: String,
+ default: '1920-01-01'
+ },
+ //鏈�澶у彲閫夋棩鏈�
+ maxDate: {
+ type: String,
+ default: '2100-1-1'
+ },
+ //缁勪欢鏍囬
+ title: {
+ type: String,
+ default: '鏃ユ湡閫夋嫨'
+ },
+ //鏈堜唤鍒囨崲绠ご棰滆壊
+ monthChangeColor: {
+ type: String,
+ default: '#999'
+ },
+ //骞翠唤鍒囨崲绠ご棰滆壊
+ yearChangeColor: {
+ type: String,
+ default: '#bfbfbf'
+ },
+ //榛樿鏃ユ湡瀛椾綋棰滆壊
+ color: {
+ type: String,
+ default: '#333'
+ },
+
+ //閫変腑鏃ユ湡瀛椾綋棰滆壊
+ activeColor: {
+ type: String,
+ default: '#fff'
+ },
+ //閫変腑鏃ユ湡鑳屾櫙鑹�
+ activeBgColor: {
+ type: String,
+ default: '#55BBF9'
+ },
+ //鑼冨洿鍐呮棩鏈熻儗鏅壊
+ rangeBgColor: {
+ type: String,
+ default: 'rgba(85, 187, 249, 0.1)'
+ },
+ //鑼冨洿鍐呮棩鏈熷瓧浣撻鑹�
+ rangeColor: {
+ type: String,
+ default: '#55BBF9'
+ },
+
+ //鑼冨洿閫夋嫨鏃剁敓鏁� 寮�濮嬫棩鏈熻嚜瀹氫箟鏂囧瓧
+ startText: {
+ type: String,
+ default: '寮�濮�'
+ },
+ //鑼冨洿閫夋嫨鏃剁敓鏁� 缁撴潫鏃ユ湡鑷畾涔夋枃瀛�
+ endText: {
+ type: String,
+ default: '缁撴潫'
+ },
+ //鏄惁鏄剧ず鍐滃巻
+ lunar: {
+ type: Boolean,
+ default: true
+ },
+ //鍒濆鍖栧紑濮嬮�変腑鏃ユ湡 鏍煎紡锛� 2020-06-06 鎴� 2020/06/06
+ initStartDate: {
+ type: String,
+ default: ''
+ },
+ //鍒濆鍖栫粨鏉熸棩鏈� 鏍煎紡锛� 2020-06-06 鎴� 2020/06/06
+ initEndDate: {
+ type: String,
+ default: ''
+ }
+ },
+ data() {
+ return {
+ weekday: 1, // 鏄熸湡鍑�,鍊间负1-7
+ weekdayArr: [],
+ days: 0, //褰撳墠鏈堟湁澶氬皯澶�
+ daysArr: [],
+ showTitle: '',//褰撳墠骞存湀鏍囬
+ year: 2020,
+ month: 0,
+ day: 0,
+ startYear: 0,
+ startMonth: 0,
+ startDay: 0,
+ endYear: 0,
+ endMonth: 0,
+ endDay: 0,
+ today: '', //浠婂ぉ鐨勬棩鏈�
+ activeDate: '', //褰撳墠閫変腑鏃ユ湡
+ startDate: '', //鑼冨洿閫夋嫨鏃剁殑閫変腑寮�濮嬫棩鏈�
+ endDate: '', //鑼冨洿閫夋嫨鏃剁殑閫変腑缁撴潫鏃ユ湡
+ isStart: true,
+ min: null,
+ max: null,
+ dateHeight: 20
+ };
+ },
+ computed: {
+ dataChange() {
+ return `${this.type}-${this.minDate}-${this.maxDate}-${this.initStartDate}-${this.initEndDate}`;
+ },
+ disabled() {
+ return this.isRange && (!this.startDate || !this.endDate)
+ }
+ },
+ watch: {
+ dataChange(val) {
+ this.init();
+ },
+ },
+ created() {
+ this.init();
+ },
+ methods: {
+ getColor(index, type) {
+ let color = type == 1 ? '' : this.color;
+ let day = index + 1;
+ let date = `${this.year}-${this.month}-${day}`;
+ let timestamp = new Date(date.replace(/\-/g, '/')).getTime();
+ let start = this.startDate.replace(/\-/g, '/');
+ let end = this.endDate.replace(/\-/g, '/');
+ if ((this.activeDate == date) || this.startDate == date || this.endDate == date) {
+ color = type == 1 ? this.activeBgColor : this.activeColor;
+ } else if (this.endDate && timestamp > new Date(start).getTime() && timestamp < new Date(end).getTime()) {
+ color = type == 1 ? this.rangeBgColor : this.rangeColor;
+ }
+ return color;
+ },
+ getText(index, startDate, endDate) {
+ let text = this.lunar ? this.getLunar(this.year, this.month, index + 1) : '';
+ if (this.isRange) {
+ if (this.lunar) {
+ let date = `${this.year}-${this.month}-${index + 1}`;
+ if (startDate == date && startDate != endDate) {
+ text = this.startText;
+ } else if (endDate == date) {
+ text = this.endText;
+ }
+ }
+ }
+ return text;
+ },
+ getLunar(year, month, day) {
+ let obj = calendar.solar2lunar(year, month, day);
+ if (obj.IDayCn == '鍒濅竴') {
+ return obj.IMonthCn
+ }
+ return obj.IDayCn;
+ },
+ init() {
+ this.dateHeight = uni.getSystemInfoSync().windowWidth / 7;
+ let now = new Date();
+ this.year = now.getFullYear();
+ this.month = now.getMonth() + 1;
+ this.day = now.getDate();
+ this.today = `${now.getFullYear()}-${now.getMonth() + 1}-${now.getDate()}`;
+ this.activeDate = this.today;
+ this.min = this.initDate(this.minDate);
+ this.max = this.initDate(this.maxDate);
+ if (this.isDisable(this.year, this.month, this.day)) {
+ this.year = this.min.year;
+ this.month = this.min.month;
+ this.day = this.min.day;
+ this.activeDate = `${this.min.year}-${this.min.month}-${this.min.day}`;
+ this.max = this.initDate(this.maxDate || this.minDate);
+ }
+ this.startDate = '';
+ this.startYear = 0;
+ this.startMonth = 0;
+ this.startDay = 0;
+ if (this.initStartDate) {
+ let start = new Date(this.initStartDate.replace(/\-/g, '/'));
+ if (!this.isRange) {
+ this.year = start.getFullYear();
+ this.month = start.getMonth() + 1;
+ this.day = start.getDate();
+ this.activeDate = `${start.getFullYear()}-${start.getMonth() + 1}-${start.getDate()}`;
+ } else {
+ this.startDate = `${start.getFullYear()}-${start.getMonth() + 1}-${start.getDate()}`;
+ this.startYear = start.getFullYear();
+ this.startMonth = start.getMonth() + 1;
+ this.startDay = start.getDate();
+ this.activeDate = '';
+ }
+
+ }
+ this.endYear = 0;
+ this.endMonth = 0;
+ this.endDay = 0;
+ this.endDate = '';
+ if (this.initEndDate && this.isRange) {
+ let end = new Date(this.initEndDate.replace(/\-/g, '/'));
+ this.endDate = `${end.getFullYear()}-${end.getMonth() + 1}-${end.getDate()}`;
+ this.endYear = end.getFullYear();
+ this.endMonth = end.getMonth() + 1;
+ this.endDay = end.getDate();
+ this.activeDate = '';
+ this.year = end.getFullYear();
+ this.month = end.getMonth() + 1;
+ this.day = end.getDate();
+ }
+ this.isStart = true;
+ this.changeData();
+ },
+ //鏃ユ湡澶勭悊
+ initDate(date) {
+ let dateArr = date.split('-');
+ return {
+ year: Number(dateArr[0] || 1920),
+ month: Number(dateArr[1] || 1),
+ day: Number(dateArr[2] || 1)
+ };
+ },
+ isDisable(year, month, day) {
+ let bool = true;
+ let date = `${year}/${month}/${day}`;
+ let min = `${this.min.year}/${this.min.month}/${this.min.day}`;
+ let max = `${this.max.year}/${this.max.month}/${this.max.day}`;
+ let timestamp = new Date(date).getTime();
+ if (timestamp >= new Date(min).getTime() && timestamp <= new Date(max).getTime()) {
+ bool = false;
+ }
+ return bool;
+ },
+ generateArray(start, end) {
+ return Array.from(new Array(end + 1).keys()).slice(start);
+ },
+ formatNum(num) {
+ return num < 10 ? '0' + num : num + '';
+ },
+ //涓�涓湀鏈夊灏戝ぉ
+ getMonthDay(year, month) {
+ let days = new Date(year, month, 0).getDate();
+ return days;
+ },
+ // 鑾峰彇褰撳墠鏃ユ湡鏄槦鏈熷嚑
+ getWeekday(year, month) {
+ let date = new Date(`${year}/${month}/01 00:00:00`);
+ return date.getDay();
+ },
+ changeMonth(isAdd) {
+ if (isAdd) {
+ let month = this.month + 1;
+ let year = month > 12 ? this.year + 1 : this.year;
+ if (year > this.minYear || year < this.maxYear) {
+ this.month = month > 12 ? 1 : month;
+ this.year = year;
+ this.changeData();
+ }
+ } else {
+ let month = this.month - 1;
+ let year = month < 1 ? this.year - 1 : this.year;
+ if (year > this.minYear || year < this.maxYear) {
+ this.month = month < 1 ? 12 : month;
+ this.year = year;
+ this.changeData();
+ }
+ }
+ },
+ changeYear(isAdd) {
+ let year = isAdd ? this.year + 1 : this.year - 1;
+ if (year > this.minYear || year < this.maxYear) {
+ this.year = year;
+ this.changeData();
+ }
+ },
+ changeData() {
+ this.days = this.getMonthDay(this.year, this.month);
+ this.daysArr = this.generateArray(1, this.days);
+ this.weekday = this.getWeekday(this.year, this.month);
+ this.weekdayArr = this.generateArray(1, this.weekday);
+ this.showTitle = `${this.year}骞�${this.month}鏈坄;
+ if (!this.isRange) {
+ this.confireBtnClick(true);
+ }
+ },
+ dateClick: function(day) {
+ day += 1;
+ if (!this.isDisable(this.year, this.month, day)) {
+ this.day = day;
+ let date = `${this.year}-${this.month}-${day}`;
+ if (!this.isRange) {
+ this.activeDate = date;
+ } else {
+ let compare = new Date(date.replace(/\-/g, '/')).getTime() < new Date(this.startDate.replace(
+ /\-/g, '/')).getTime();
+ if (this.isStart || compare) {
+ this.startDate = date;
+ this.startYear = this.year;
+ this.startMonth = this.month;
+ this.startDay = this.day;
+ this.endYear = 0;
+ this.endMonth = 0;
+ this.endDay = 0;
+ this.endDate = '';
+ this.activeDate = '';
+ this.isStart = false;
+ } else {
+ this.endDate = date;
+ this.endYear = this.year;
+ this.endMonth = this.month;
+ this.endDay = this.day;
+ this.isStart = true;
+ }
+ }
+ }
+ },
+ hide() {
+ this.$emit('input', false)
+ },
+ getWeekText(date) {
+ date = new Date(`${date.replace(/\-/g, '/')} 00:00:00`);
+ let week = date.getDay();
+ return '鏄熸湡' + ['鏃�', '涓�', '浜�', '涓�', '鍥�', '浜�', '鍏�'][week];
+ },
+ confireBtnClick(show) {
+ if (!show) {
+ this.hide();
+ }
+ if (!this.isRange) {
+ let arr = this.activeDate.split('-');
+ let year = +arr[0];
+ let month = +arr[1];
+ let day = +arr[2];
+ //褰撳墠鏈堟湁澶氬皯澶�
+ let days = this.getMonthDay(year, month);
+ let result = `${year}-${this.formatNum(month)}-${this.formatNum(day)}`;
+ let weekText = this.getWeekText(result);
+ let isToday = false;
+ if (`${year}-${month}-${day}` == this.today) {
+ //浠婂ぉ
+ isToday = true;
+ }
+ let lunar = calendar.solar2lunar(year, month, day);
+ this.$emit('change', {
+ year: year,
+ month: month,
+ day: day,
+ days: days,
+ result: result,
+ week: weekText,
+ isToday: isToday,
+ lunar: lunar
+ });
+ } else {
+ if (!this.startDate || !this.endDate) return;
+ let startMonth = this.formatNum(this.startMonth);
+ let startDay = this.formatNum(this.startDay);
+ let startDate = `${this.startYear}-${startMonth}-${startDay}`;
+ let startWeek = this.getWeekText(startDate);
+ let startLunar = calendar.solar2lunar(this.startYear, startMonth, startDay);
+
+ let endMonth = this.formatNum(this.endMonth);
+ let endDay = this.formatNum(this.endDay);
+ let endDate = `${this.endYear}-${endMonth}-${endDay}`;
+ let endWeek = this.getWeekText(endDate);
+ let endLunar = calendar.solar2lunar(this.endYear, endMonth, endDay);
+ this.$emit('change', {
+ startYear: this.startYear,
+ startMonth: this.startMonth,
+ startDay: this.startDay,
+ startDate: startDate,
+ startWeek: startWeek,
+ startLunar: startLunar,
+ endYear: this.endYear,
+ endMonth: this.endMonth,
+ endDay: this.endDay,
+ endDate: endDate,
+ endWeek: endWeek,
+ endLunar: endLunar
+ });
+ }
+ }
+ }
+ };
+</script>
+
+<style lang="scss" scoped>
+ @font-face {
+ font-family: 'l-icons';
+ src: url('data:font/ttf;charset=utf-8;base64,AAEAAAANAIAAAwBQRkZUTZa9XzsAAAjcAAAAHEdERUYAKQAOAAAIvAAAAB5PUy8yPDVJwwAAAVgAAABgY21hcMxRtw0AAAHUAAABYmdhc3D//wADAAAItAAAAAhnbHlm05h+ZAAAA0wAAAJ8aGVhZCQifFoAAADcAAAANmhoZWEHyAOSAAABFAAAACRobXR4EnYBLQAAAbgAAAAcbG9jYQKkAegAAAM4AAAAEm1heHABFgBMAAABOAAAACBuYW1lXoIBAgAABcgAAAKCcG9zdMeZtAYAAAhMAAAAaAABAAAAAQAA+jMzTF8PPPUACwQAAAAAAOCMnBkAAAAA4IycGQAA/6sD6gOAAAAACAACAAAAAAAAAAEAAAOA/4AAXAQLAAAAAAPqAAEAAAAAAAAAAAAAAAAAAAAGAAEAAAAIAEAABAAAAAAAAgAAAAoACgAAAP8AAAAAAAAABAQEAZAABQAAAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZADA5gDm8AOA/4AAAAPcAIAAAAABAAAAAAAAAAAAAAAgAAEEAAAAAAAAAAFVAAAECwAWBAsAHgQAAPkBCwAAAAAAAwAAAAMAAAAcAAEAAAAAAFwAAwABAAAAHAAEAEAAAAAMAAgAAgAE5gDmB+Yf5iPm8P//AADmAOYH5h/mI+bw//8aAxn9GeYZ4xkXAAEAAAAAAAAAAAAAAAAAAAEGAAABAAAAAAAAAAECAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByAOAA9AEIAT4AAAAEABb/wQPiA0sAIQAkAD4APwAAAQYUFwEWHwE3Njc2JyYnJicBJwE2NzY3NicmJzEuAQYHCQE3ByU+ATc2JwEnNwE2Jy4BDwEGBw4BFwEWHwE3MQHuFhYBcRIZDAwvDQQDAwsFBf7IBQE3DgUJAgICAQQLLDET/o8BqAwM/kUbJwEBGf7HBgYBOhwGB1MiabFZFwEXAXESGAoJAbkWQxf+kBIEAgIKLQ8TDw4HBAE5BAE3DQgNDRINBQkYGAcT/o/+CAICAQIqGyIZATkEBQE6HCUsHh5psVgXRBf+kBIEAgEAAAAEAB7/tQPqAz8AIAAiADwAPQAAATY0JwEmLwEHBgcGFxYXFhcBFwEGBwYHBhcWFzEeATY3AwclDgEHBhcBFwcBBhceAT8BNjc+AScBJi8BBzECEhYW/o8SGQwMLw0EAwMLBQUBOAX+yQ4FCQICAgEECywxEzcMAccbJwEBGQE5Bgb+xhwGB1MiabFZFwEX/o8SGAoJAUcWQxcBcBIEAgIKLQ8TDw4HBP7HBP7JDQgNDRINBQkYGAcTA2kCAQIqGyIZ/scEBf7GHCUsHh5psVgXRBcBcBIEAgEAAAAAAQD5/68DSQOAAAUAADcXCQEHAflnAen+F2cBghZnAekB6Gf+fwAAAAEBC/+rAxgDVQAFAAAJARcJAQcBCwG9UP6JAWJRAYEB1Ez+dv52SgABAAD/sAPOA4AAGwAACQEWFAYiJwkBBiImNDcJASY0NjIXCQE2MhYUBwJPAWoVKzwW/pb+lhY8KxUBa/6VFSs8FgFqAWoWPCsVAZj+lRU9KxUBa/6VFSs9FQFrAWsVPSsV/pUBaxUrPRUAAAAAABIA3gABAAAAAAAAABMAKAABAAAAAAABAAgATgABAAAAAAACAAcAZwABAAAAAAADAAgAgQABAAAAAAAEAAgAnAABAAAAAAAFAAsAvQABAAAAAAAGAAgA2wABAAAAAAAKACsBPAABAAAAAAALABMBkAADAAEECQAAACYAAAADAAEECQABABAAPAADAAEECQACAA4AVwADAAEECQADABAAbwADAAEECQAEABAAigADAAEECQAFABYApQADAAEECQAGABAAyQADAAEECQAKAFYA5AADAAEECQALACYBaABDAHIAZQBhAHQAZQBkACAAYgB5ACAAaQBjAG8AbgBmAG8AbgB0AABDcmVhdGVkIGJ5IGljb25mb250AABpAGMAbwBuAGYAbwBuAHQAAGljb25mb250AABSAGUAZwB1AGwAYQByAABSZWd1bGFyAABpAGMAbwBuAGYAbwBuAHQAAGljb25mb250AABpAGMAbwBuAGYAbwBuAHQAAGljb25mb250AABWAGUAcgBzAGkAbwBuACAAMQAuADAAAFZlcnNpb24gMS4wAABpAGMAbwBuAGYAbwBuAHQAAGljb25mb250AABHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAABHZW5lcmF0ZWQgYnkgc3ZnMnR0ZiBmcm9tIEZvbnRlbGxvIHByb2plY3QuAABoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAABodHRwOi8vZm9udGVsbG8uY29tAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAEAAgECAQMBBAEFAQYKeW91amlhbnRvdQt5b3VqaWFudG91MQt5b3VqaWFudG91Mgp6dW9qaWFudG91B3NoYW5jaHUAAAAB//8AAgABAAAADAAAABYAAAACAAEAAwAHAAEABAAAAAIAAAAAAAAAAQAAAADVpCcIAAAAAOCMnBkAAAAA4IycGQ==') format('truetype');
+ font-weight: normal;
+ font-style: normal;
+ font-display: swap;
+ }
+
+ .l-icons {
+ font-family: 'l-icons';
+ font-size: 38rpx;
+ color: #333333;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale
+ }
+
+ .icon-shanchu:before {
+ content: "\e6f0";
+ }
+
+ .icon-youjiantou:before {
+ content: "\e600";
+ }
+
+ .icon-zuojiantou:before {
+ content: "\e623";
+ }
+
+ .icon-youjiantou1:before {
+ content: "\e607";
+ }
+
+ .icon-youjiantou2:before {
+ content: "\e61f";
+ }
+
+ .l-calendar-box {
+ width: 100%;
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 9999;
+ visibility: hidden;
+ transform: translate3d(0, 100%, 0);
+ transform-origin: center;
+ transition: all 0.3s ease-in-out;
+ min-height: 20rpx;
+
+ .calendar-top {
+ width: 100%;
+ height: 80rpx;
+ padding: 0 40rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ box-sizing: border-box;
+ font-size: 30rpx;
+ font-weight: bold;
+ background-color: #fff;
+ color: #333;
+ position: relative;
+ border-top-left-radius: 20rpx;
+ border-top-right-radius: 20rpx;
+ overflow: hidden;
+ .close {
+ position: absolute;
+ right: 30rpx;
+ top: 50%;
+ transform: translateY(-50%);
+ color: #999;
+
+ }
+ }
+
+ .date-box {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 20rpx 0 30rpx;
+ background-color: #fff;
+ .date-arrowleft {
+ margin-right: 32rpx;
+ }
+
+ .date-arrowright {
+ margin-left: 32rpx;
+ }
+
+ .title-datetime {
+ padding: 0 16rpx;
+ color: #333;
+ font-size: 30rpx;
+ line-height: 30rpx;
+ font-weight: bold;
+ }
+ }
+
+ .date-weekday {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ background-color: #fff;
+ font-size: 24rpx;
+ line-height: 24rpx;
+ color: #555;
+ box-shadow: 0 15rpx 20rpx -15rpx #efefef;
+ position: relative;
+ z-index: 2;
+ .date-weekday-item {
+ width: 14.2857%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 12rpx 0;
+ overflow: hidden;
+ position: relative;
+ z-index: 2;
+ }
+ }
+ .date-content {
+ width: 100%;
+ display: flex;
+ flex-wrap: wrap;
+ padding: 12rpx 0;
+ box-sizing: border-box;
+ background-color: #fff;
+ position: relative;
+ align-content: flex-start;
+ .date-weekday-item {
+ width: 14.2857%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 12rpx 0;
+ overflow: hidden;
+ position: relative;
+ z-index: 2;
+
+ .date-content-item {
+ width: 80rpx;
+ height: 80rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ font-size: 32rpx;
+ line-height: 32rpx;
+ position: relative;
+ border-radius: 50%;
+ background-color: transparent;
+ .custom-desc {
+ width: 100%;
+ font-size: 24rpx;
+ line-height: 24rpx;
+ transform: scale(0.8);
+ transform-origin: center center;
+ text-align: center;
+ }
+
+ }
+ .date-content-item-desc {
+ width: 100%;
+ font-size: 24rpx;
+ line-height: 24rpx;
+ position: absolute;
+ left: 0;
+ transform: scale(0.8);
+ transform-origin: center center;
+ text-align: center;
+ bottom: 8rpx;
+ z-index: 2;
+ }
+ }
+ .start-date {
+ border-top-left-radius: 8rpx;
+ border-bottom-left-radius: 8rpx;
+ }
+
+ .end-date {
+ border-top-right-radius: 8rpx;
+ border-bottom-right-radius: 8rpx;
+ }
+
+ .bg-mounth {
+ position: absolute;
+ font-size: 260rpx;
+ line-height: 260rpx;
+ left: 50%;
+ top: 50%;
+ transform: translate(-50%, -50%);
+ color: #f5f5f7;
+ z-index: 1;
+ }
+ }
+
+
+ .calendar-text {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ background-color: #fff;
+ padding: 0 42rpx env(safe-area-inset-bottom);
+ box-sizing: border-box;
+ font-size: 24rpx;
+ color: #666;
+ .calendar-result {
+ height: 48rpx;
+ transform: scale(0.9);
+ transform-origin: center 100%;
+ }
+
+ .calendar-btn {
+ width: 100%;
+
+ button {
+ background-color: #305ED5;
+ color: #fff;
+ height: 72rpx;
+ line-height: 72rpx;
+ font-size: 32rpx
+ }
+ }
+ }
+
+
+
+ }
+ .mask {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: rgba(0, 0, 0, 0.6);
+ z-index: 9996;
+ transition: all 0.3s ease-in-out;
+ opacity: 0;
+ visibility: hidden;
+ }
+
+ .mask-show {
+ opacity: 1;
+ visibility: visible;
+ }
+
+ /* @font-face {
+ font-family: 'tuiDateFont';
+ src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAVgAA0AAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAFRAAAABoAAAAci0/w50dERUYAAAUkAAAAHgAAAB4AKQANT1MvMgAAAaAAAABDAAAAVjxuSNNjbWFwAAAB+AAAAEoAAAFS5iPQt2dhc3AAAAUcAAAACAAAAAj//wADZ2x5ZgAAAlQAAAFHAAABvPf29TBoZWFkAAABMAAAADAAAAA2GMsN3WhoZWEAAAFgAAAAHQAAACQHjAOFaG10eAAAAeQAAAATAAAAFgzQAPJsb2NhAAACRAAAABAAAAAQAOoBSG1heHAAAAGAAAAAHgAAACABEwA3bmFtZQAAA5wAAAFJAAACiCnmEVVwb3N0AAAE6AAAADQAAABLUwjqHHjaY2BkYGAAYp5Gj5/x/DZfGbhZGEDg1tUn7+F00P/LzOuY9YFcDgYmkCgAa0gNlHjaY2BkYGBu+N/AEMPCAALM6xgYGVABCwBT4AMaAAAAeNpjYGRgYGBn0GZgYgABEMkFhAwM/8F8BgANaAFLAAB42mNgZGFgnMDAysDA1Ml0hoGBoR9CM75mMGLkAIoysDIzYAUBaa4pDA7PGJ49ZG7438AQw9zA0AAUZgTJAQDrcAy8AHjaY2GAABYIDgLCBQx1AAcEAc8AeNpjYGBgZoBgGQZGBhDwAfIYwXwWBgMgzQGETAwMzxifcTx7+P8/kMUAYUkxS/6VVIXqAgNGNgY4lxGoB6QPBTAyDHsAADDkDYkAAAAAAAAAAAAAADQAagC2AN542m2QsU7DMBCG/Tt1bNPUiUnkSgiVtqKpxJAgVLVbeAa6MaK+B4JXgJWBjY21UtW5gpkdMTFX7dzApaJLhXU6n8+n//ttxtn458N79XJWZ8eMxS00C4wy9A1EP8PQncAlIQzS4WgsVtPpSmwzV3OFRqLetH5TSQMK939X61ptPZ2p2EAttNMLBRMrtschQblDeS34aY50cIkCzg/B2Y5C+VpyQxhFkRgu515O8jvU5mmPM2O0wJ5Z27vhX+yMsV437WvCdTM+GI40MgwKfuGammC0uURqeqFMfe9cxaJclkt5GMaB1hIR1VobOgpEiKq+sLZcIrJWhO3/Jw7qWlYj1Jf21FaCtmd5bevrlk28O/7A4spXTl4KTh9MTlqQ8PESBRstReic+sRj0Dni9fIqmNS/pXNWCvWOeYBmx5S9Bsn9Ah+5WtAAeNp9kD1OAzEQhZ/zByQSQiCoXVEA2vyUKRMp9Ailo0g23pBo1155nUg5AS0VB6DlGByAGyDRcgpelkmTImvt6PObmeexAZzjGwr/3yXuhBWO8ShcwREy4Sr1F+Ea+V24jhY+hRvUf4SbuFUD4RYu1BsdVO2Eu5vSbcsKZxgIV3CKJ+Eq9ZVwjfwqXMcVPoQb1L+EmxjjV7iFa2WpDOFhMEFgnEFjig3jAjEcLJIyBtahOfRmEsxMTzd6ETubOBso71dilwMeaDnngCntPbdmvkon/mDLgdSYbh4FS7YpjS4idCgbXyyc1d2oc7D9nu22tNi/a4E1x+xRDWzU/D3bM9JIbAyvkJI18jK3pBJTj2hrrPG7ZynW814IiU68y/SIx5o0dTr3bmniwOLn8owcfbS5kj33qBw+Y1kIeb/dTsQgil2GP5PYcRkAAAB42mNgYoAALjDJyIAO2MGiTIxMjMyMLIys7GmJeRmlmWZQ2pQ5OSORLaU0Mz2/FACDfwlbAAAAAf//AAIAAQAAAAwAAAAWAAAAAgABAAMABgABAAQAAAACAAAAAHjaY2BgYGQAgqtL1DlA9K2rT97DaABNlwiuAAA=) format('woff');
+ font-weight: normal;
+ font-style: normal;
+ }
+
+ .tui-iconfont {
+ font-family: 'tuiDateFont' !important;
+ font-size: 36rpx;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ }
+
+ .tui-font-close:before {
+ content: '\e608';
+ }
+
+ .tui-font-check:before {
+ content: '\e6e1';
+ }
+
+ .date-arrowright:before {
+ content: '\e600';
+ }
+
+ .date-arrowleft:before {
+ content: '\e601';
+ } */
+
+
+ // .calendar-radius {
+ // border-top-left-radius: 20rpx;
+ // border-top-right-radius: 20rpx;
+ // overflow: hidden;
+ // }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .tui-btn-calendar {
+ padding: 16rpx;
+ box-sizing: border-box;
+ text-align: center;
+ text-decoration: none;
+ }
+
+ .l-opacity {
+ opacity: 0.5;
+ }
+
+
+
+ .calendar-box-show {
+ transform: translate3d(0, 0, 0);
+ visibility: visible;
+ }
+
+
+
+
+
+
+
+
+
+ // .tui-lunar-unshow {
+ // position: absolute;
+ // left: 0;
+ // bottom: 8rpx;
+ // z-index: 2;
+ // }
+
+
+
+
+
+
+</style>
diff --git a/minipro_standard/uni_modules/l-calendar/package.json b/minipro_standard/uni_modules/l-calendar/package.json
new file mode 100644
index 0000000..7a0b99d
--- /dev/null
+++ b/minipro_standard/uni_modules/l-calendar/package.json
@@ -0,0 +1,84 @@
+{
+ "id": "l-calendar",
+ "displayName": "鏃ュ巻 鏃ユ湡閫夋嫨 閫夋嫨骞存湀鏃�",
+ "version": "1.0.3",
+ "description": "鏃ュ巻 鏃ユ湡閫夋嫨 閫夋嫨骞存湀鏃� 浠呮祴杩囧皬绋嬪簭鍏朵粬鑷祴",
+ "keywords": [
+ "鏃ュ巻",
+ "鏃ユ湡閫夋嫨",
+ "閫夋嫨骞存湀鏃�",
+ "骞存湀鏃�",
+ "l-calendar"
+],
+ "repository": "",
+"engines": {
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "鏃�",
+ "data": "鎻掍欢涓嶉噰闆嗕换浣曟暟鎹�",
+ "permissions": "鏃�"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "y"
+ },
+ "H5-mobile": {
+ "Safari": "y",
+ "Android Browser": "y",
+ "寰俊娴忚鍣�(Android)": "y",
+ "QQ娴忚鍣�(Android)": "y"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "y",
+ "Edge": "y",
+ "Firefox": "y",
+ "Safari": "y"
+ },
+ "灏忕▼搴�": {
+ "寰俊": "y",
+ "闃块噷": "y",
+ "鐧惧害": "y",
+ "瀛楄妭璺冲姩": "y",
+ "QQ": "y",
+ "閽夐拤": "y",
+ "蹇墜": "y",
+ "椋炰功": "y",
+ "浜笢": "y"
+ },
+ "蹇簲鐢�": {
+ "鍗庝负": "y",
+ "鑱旂洘": "y"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/minipro_standard/uni_modules/l-calendar/readme.md b/minipro_standard/uni_modules/l-calendar/readme.md
new file mode 100644
index 0000000..441bf60
--- /dev/null
+++ b/minipro_standard/uni_modules/l-calendar/readme.md
@@ -0,0 +1,40 @@
+# l-calendar
+
+# ## 浣跨敤鏂规硶
+閰嶇疆easycom瑙勫垯鍚庯紝鑷姩鎸夐渶寮曞叆锛屾棤闇�`import`缁勪欢锛岀洿鎺ュ紩鐢ㄥ嵆鍙��
+
+```html
+<template>
+ <l-calendar v-model="show" @change="change" :isRange="true"></l-calendar>
+</template>
+```
+## 缁勪欢灞炴��
+
+| 灞炴�� | 绫诲瀷 | 榛樿鍊� | 璇存槑 |
+|:---:|:---:|:---:|---|
+| value | Boolean | false | v-module 鍙屽悜缁戝畾鐨勫�� |
+| isRange | Boolean | false | 鏄惁閫夋嫨鑼冨洿 true鏄� false閫夋嫨鍗曚釜鏃ユ湡 |
+| maxYear | Number | 2100 | 鍙垏鎹㈡渶澶у勾浠� |
+| minYear | Number | 1920 | 鍙垏鎹㈡渶灏忓勾浠� |
+| minDate | String | '1920-01-01' | 鏈�灏忓彲閫夋棩鏈� 涓嶅湪鑼冨洿鍐呮棩鏈熺閫� |
+| maxDate | String | '2100-1-1' | 鏈�澶у彲閫夋棩鏈� 涓嶅湪鑼冨洿鍐呮棩鏈熺閫� |
+| title | String | '鏃ユ湡閫夋嫨' | 缁勪欢鏍囬 |
+| monthChangeColor | String | #999 | 鏈堜唤鍒囨崲绠ご棰滆壊 |
+| yearChangeColor | String | '#bfbfbf' | 骞翠唤鍒囨崲绠ご棰滆壊 |
+| color | String | #333 | 榛樿鏃ユ湡瀛椾綋棰滆壊 |
+| activeColor | String | '#fff' | 閫変腑鏃ユ湡瀛椾綋棰滆壊 |
+| activeBgColor | String | '#55BBF9' | 閫変腑鏃ユ湡鑳屾櫙鑹� |
+| rangeBgColor | String | rgba(85, 187, 249, 0.1) | 鑼冨洿鍐呮棩鏈熻儗鏅壊 |
+| startText | String | 寮�濮� | 鑼冨洿閫夋嫨鏃剁敓鏁� 寮�濮嬫棩鏈熻嚜瀹氫箟鏂囧瓧 |
+| endText | String | 缁撴潫 | 鑼冨洿閫夋嫨鏃剁敓鏁� 缁撴潫鏃ユ湡鑷畾涔夋枃瀛� |
+| lunar | Boolean | true | 鏄惁鏄剧ず鍐滃巻 |
+| initStartDate | String | '' | 鍒濆鍖栧紑濮嬮�変腑鏃ユ湡 鏍煎紡锛� 2020-06-06 鎴� 2020/06/06 |
+| initEndDate | String | '' | 鍒濆鍖栧紑濮嬮�変腑鏃ユ湡 鏍煎紡锛� 2020-06-06 鎴� 2020/06/06 |
+
+
+## 缁勪欢浜嬩欢
+
+| 鍚嶇О | 瑙﹀彂鏃舵満 |
+|:---:|---|
+| change | 鐐瑰嚮纭畾鎸夐挳閫夋嫨鏃ユ湡 |
+
--
Gitblit v1.9.3