Browse Source

Merge branch '娄底高职分支' of http://123.57.209.16:3000/bjquanjiang/DigitalScholl into 娄底高职分支

娄底高职分支
hwh2023 1 year ago
parent
commit
aa0c38753a
6 changed files with 714 additions and 5 deletions
  1. +621
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-mpui/learun-ui-mp/datetime-panel-00.vue
  2. +82
    -0
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-mpui/learun-ui-mp/datetime-picker-00.vue
  3. +2
    -2
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/LogisticsManagement/Purchase_Travel/single.vue
  4. +3
    -1
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/LogisticsapplyManagement/Purchase_Travel_Apply/details.vue
  5. +3
    -1
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/LogisticsapplyManagement/Purchase_Travel_Apply/single.vue
  6. +3
    -1
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/LogisticsapplyManagement/Purchase_Travel_Apply/singleFlow.vue

+ 621
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-mpui/learun-ui-mp/datetime-panel-00.vue View File

@@ -0,0 +1,621 @@
<template>
<view class="lr-datetime-picker">
<view
@tap.stop="maskClick"
@touchmove.stop.prevent
:class="{ show: showPicker }"
class="lr-datetime-mask"
catchtouchmove="true"
></view>
<view :class="{ show: showPicker }" class="lr-datetime-content">
<view @touchmove.stop.prevent catchtouchmove="true" class="lr-datetime-hd">
<view @tap.stop="pickerCancel" class="lr-datetime-btn">取消</view>
<view @tap.stop="pickerConfirm" :style="{ color: color }" class="lr-datetime-btn">确定</view>
</view>
<view class="lr-datetime-view">
<picker-view
v-if="isAll"
@change="bindChange"
:indicator-style="itemHeight"
:value="values"
style="height: 100%;"
>
<picker-view-column>
<view v-for="(item, index) in dateObj.years" :key="index" class="lr-datetime-item">{{ item }}年</view>
</picker-view-column>
<picker-view-column>
<view v-for="(item, index) in dateObj.months" :key="index" class="lr-datetime-item">{{ item }}月</view>
</picker-view-column>
<picker-view-column>
<view v-for="(item, index) in dateObj.days" :key="index" class="lr-datetime-item">{{ item }}日</view>
</picker-view-column>
<picker-view-column>
<view v-for="(item, index) in dateObj.hours" :key="index" class="lr-datetime-item">{{ item }}时</view>
</picker-view-column>
<picker-view-column>
<view v-for="(item, index) in dateObj.minutes" :key="index" class="lr-datetime-item">{{ item }}分</view>
</picker-view-column>
<!-- <picker-view-column>
<view v-for="(item, index) in dateObj.seconds" :key="index" class="lr-datetime-item">{{ item }}秒</view>
</picker-view-column> -->
</picker-view>
<picker-view
v-else
@change="bindDateChange"
:indicator-style="itemHeight"
:value="dateValues"
style="height: 100%;"
>
<picker-view-column class="yu-picker-column">
<view v-for="(item, index) in dateObj.dates" :key="index" class="lr-datetime-item">{{ item }}</view>
</picker-view-column>
<picker-view-column>
<view v-for="(item, index) in dateObj.hours" :key="index" class="lr-datetime-item">{{ item }}时</view>
</picker-view-column>
<picker-view-column>
<view v-for="(item, index) in dateObj.minutes" :key="index" class="lr-datetime-item">{{ item }}分</view>
</picker-view-column>
<!-- <picker-view-column>
<view v-for="(item, index) in dateObj.seconds" :key="index" class="lr-datetime-item">{{ item }}秒</view>
</picker-view-column> -->
</picker-view>
</view>
</view>
</view>
</template>

<script>
export default {
name: 'l-datetime-panel-00',

props: {
//全部日期有效可选
isAll: { default: true },
//颜色
color: { default: '#1aad19' },
//开始年份
startYear: { default: '1900' },
//结束年份
endYear: { default: '2100' },
//设置默认日期时间
val: { default: '' }
},

data() {
let date = new Date()
let year = date.getFullYear()
let month = date.getMonth() + 1
let day = date.getDate()
let hour = date.getHours()
let minute = date.getMinutes()
let second = '00'
let dates = []
let months = []
let years = []
let days = []
let hours = []
let minutes = []
let seconds = []
for (let i = month; i <= month + 2; i++) {
//获取包括当前月份在内的3个月内的日期
let localMonth = i
let localYear = year
if (i == 13) {
localYear += 1
}
if (i >= 13) {
localMonth -= 12
}
let total = new Date(localYear, localMonth, 0).getDate()
if (i == month) {
for (let j = day; j <= total; j++) {
let m = localMonth
let d = j
if (localMonth < 10) {
m = '0' + m
}
if (j < 10) {
d = '0' + d
}
let str = year + '-' + m + '-' + d
dates.push(str)
}
} else {
for (let j = 1; j <= total; j++) {
let m = localMonth
let d = j
if (localMonth < 10) {
m = '0' + m
}
if (j < 10) {
d = '0' + d
}
let str = year + '-' + m + '-' + d
dates.push(str)
}
}
}
for (let i = parseInt(this.startYear); i <= this.endYear; i++) {
years.push(i)
}
for (let i = 1; i <= 12; i++) {
let str = i
if (i < 10) {
str = '0' + str
} else {
str = '' + str
}
months.push(str)
}

if (this.val) {
let valueArr = this.val.split(' ')
let valueDateArr = valueArr[0].split('-')
let totalCurrent = new Date(valueDateArr[0], valueDateArr[1], 0).getDate()
for (let i = 1; i <= totalCurrent; i++) {
let str = i
if (i < 10) {
str = '0' + str
} else {
str = '' + str
}
days.push(str)
}
} else {
let totalCurrent = new Date(year, month, 0).getDate()
for (let i = 1; i <= totalCurrent; i++) {
let str = i
if (i < 10) {
str = '0' + str
} else {
str = '' + str
}
days.push(str)
}
}
for (let i = 0; i < 24; i++) {
let str = i
if (i < 10) {
str = '0' + str
} else {
str = '' + str
}
hours.push(str)
}
for (let i = 0; i < 60; i++) {
let str = i
if (i < 10) {
str = '0' + str
} else {
str = '' + str
}
minutes.push(str)
}
for (let i = 0; i < 60; i++) {
let str = i
if (i < 10) {
str = '0' + str
} else {
str = '' + str
}
seconds.push('00')
}
let dateObj = {
dates,
years,
months,
days,
hours,
minutes,
seconds
}
return {
value: this.val,
year,
month,
day,
hour,
minute,
second,
dateObj,
itemHeight: `height: ${uni.upx2px(88)}px;`,
values: [0, 0, 0, 0, 0, 0],
selectArr: [],
selectRes: '',
showPicker: false,
dateValues: [0, 0, 0, 0]
}
},

mounted() {
this.setDate()
},

methods: {
setDate(dt) {
if (dt) {
this.value = dt
}

this.initDate()

if (!this.value) {
this.showCurrent()
}
},

initDate() {
let _this = this
//解析默认显示的日期时间
if (_this.value) {
let values = [0, 0, 0, 0, 0, 0]
let dateValues = [0, 0, 0, 0]
let valueStr = _this.value
let valueArr = valueStr.split(' ')
let valueDateArr = valueArr[0].split('-')
let valueTimeArr = valueArr[1].split(':')
if (_this.isAll) {
values[0] = valueDateArr[0] - _this.startYear > 0 ? valueDateArr[0] - _this.startYear : 0
values[1] = parseInt(valueDateArr[1]) - 1
values[2] = parseInt(valueDateArr[2]) - 1
values[3] = parseInt(valueTimeArr[0])
values[4] = parseInt(valueTimeArr[1])
values[5] = parseInt(valueTimeArr[2])
_this.$nextTick(() => {
_this.values = values
})
if (valueDateArr[0] - _this.startYear >= 0) {
_this.selectArr = [
valueDateArr[0],
valueDateArr[1],
valueDateArr[2],
valueTimeArr[0],
valueTimeArr[1],
valueTimeArr[2]
]
_this.selectRes = _this.value
} else {
_this.selectArr = [
_this.formatNum(_this.startYear),
valueDateArr[1],
valueDateArr[2],
valueTimeArr[0],
valueTimeArr[1],
valueTimeArr[2]
]
_this.selectRes = `${this.formatNum(_this.startYear) +
'-' +
valueDateArr[1] +
'-' +
valueDateArr[2] +
' ' +
valueTimeArr[0] +
':' +
valueTimeArr[1] +
':' +
valueTimeArr[2]}`
}
} else {
let str = valueDateArr.join('')
let localStr = _this.formatNum(_this.year) + _this.formatNum(_this.month) + _this.formatNum(_this.day) + ''
if (str < localStr) {
dateValues[0] = 0
_this.selectArr = [
_this.formatNum(_this.year),
_this.formatNum(_this.month),
_this.formatNum(_this.day),
valueTimeArr[0],
valueTimeArr[1],
valueTimeArr[2]
]
_this.selectRes = `${_this.formatNum(_this.year) +
'-' +
_this.formatNum(_this.month) +
'-' +
_this.formatNum(_this.day) +
' ' +
valueTimeArr[0] +
':' +
valueTimeArr[1] +
':' +
valueTimeArr[2]}`
} else {
let num = 0 //计算默认日期和当前日期相隔天数,计算下标
let start =
_this.formatNum(_this.year) + '-' + _this.formatNum(_this.month) + '-' + _this.formatNum(_this.day)
let res = _this.getBetweenDateStr(start, valueArr[0])
dateValues[0] = res.length - 1
_this.selectArr = [
valueDateArr[0],
valueDateArr[1],
valueDateArr[2],
valueTimeArr[0],
valueTimeArr[1],
valueTimeArr[2]
]
_this.selectRes = _this.value
}
dateValues[1] = parseInt(valueTimeArr[0])
dateValues[2] = parseInt(valueTimeArr[1])
dateValues[3] = parseInt(valueTimeArr[2])
_this.$nextTick(() => {
_this.dateValues = dateValues
})
}
return
}
if (_this.isAll) {
_this.selectArr = [_this.formatNum(_this.startYear), '01', '01', '00', '00', '00']
_this.selectRes = `${_this.formatNum(_this.startYear) + '-01-01 00:00:00'}`
} else {
_this.selectArr = [_this.formatNum(_this.year), _this.formatNum(_this.month), '01', '00', '00', '00']
_this.selectRes = `${_this.formatNum(_this.year) + '-' + _this.formatNum(_this.month) + '-01 00:00:00'}`
}
},
showCurrent() {
//显示当前的日期时间
let arr = [0, 0, 0, 0, 0, 0]
let dateArr = [0, 0, 0, 0]
this.selectArr = [
this.formatNum(this.year),
this.formatNum(this.month),
this.formatNum(this.day),
this.formatNum(this.hour),
this.formatNum(this.minute),
this.formatNum(this.second)
]
this.selectRes = `${this.formatNum(this.year) +
'-' +
this.formatNum(this.month) +
'-' +
this.formatNum(this.day) +
' ' +
this.formatNum(this.hour) +
':' +
this.formatNum(this.minute) +
':' +
this.formatNum(this.second)}`
if (this.isAll) {
arr[0] = this.year - this.startYear
arr[1] = this.month - 1
arr[2] = this.day - 1
arr[3] = this.hour
arr[4] = this.minute
arr[5] = this.second
this.$nextTick(() => {
this.values = arr
})
} else {
dateArr[1] = this.hour
dateArr[2] = this.minute
dateArr[3] = this.second
this.$nextTick(() => {
this.dateValues = dateArr
})
}
},
initDayArr: (year, month) => {
//初始化月份天数
let totalDay = new Date(year, month, 0).getDate()
let dayArr = []
for (let i = 1; i <= totalDay; i++) {
if (i < 10) {
i = '0' + i
} else {
i = i + ''
}
dayArr.push(i)
}
return dayArr
},
formatNum(num) {
//日期时间的初始化
return num < 10 ? '0' + num : num + ''
},
maskClick() {
//日期时间的遮罩
this.showPicker = false
this.$emit('cancel')
},
show() {
//日期时间的显示
this.showPicker = true
},
hide() {
//日期时间的隐藏
this.showPicker = false
this.$emit('cancel')
},
pickerCancel() {
//日期时间取消
this.showPicker = false
this.$emit('cancel', {
selectArr: this.selectArr
})
},
pickerConfirm(e) {
//日期时间确定
this.showPicker = false
this.$emit('confirm', {
selectArr: this.selectArr,
selectRes: this.selectRes
})
},
bindChange(e) {
//默认滚动日期时间方法
let valueArr = e.detail.value
let year = '',
month = '',
day = '',
hour = '',
minute = '',
second = ''
let selectArr = this.selectArr
let dayArr = []
year = this.dateObj.years[valueArr[0]]
month = this.dateObj.months[valueArr[1]]
day = this.dateObj.days[valueArr[2]]
hour = this.dateObj.hours[valueArr[3]]
minute = this.dateObj.minutes[valueArr[4]]
second = '00'
if (year != selectArr[0]) {
dayArr = this.initDayArr(year, month)
this.dateObj.days = dayArr
}
if (month != selectArr[1]) {
dayArr = this.initDayArr(year, month)
this.dateObj.days = dayArr
}
this.selectArr = [year, month, day, hour, minute, second]
this.selectRes = `${year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second}`
this.$nextTick(() => {
this.values = valueArr
})
},
bindDateChange(e) {
//有效日期的滚动日期时间方法
let valueArr = e.detail.value
let dateStr = '',
dateArr = [],
hour = '',
minute = '',
second = ''
let selectArr = this.selectArr
let dayArr = []
dateStr = this.dateObj.dates[valueArr[0]]
dateArr = dateStr.split('-')
hour = this.dateObj.hours[valueArr[1]]
minute = this.dateObj.minutes[valueArr[2]]
second = '00'
this.selectArr = [dateArr[0], dateArr[1], dateArr[2], hour, minute, second]
this.selectRes = `${dateArr[0] + '-' + dateArr[1] + '-' + dateArr[2] + ' ' + hour + ':' + minute + ':' + second}`
this.$nextTick(() => {
this.dateValues = valueArr
})
},
//遍历两个日期间的所有日期
getBetweenDateStr(start, end) {
let result = []
let beginDay = start.split('-')
let endDay = end.split('-')
let diffDay = new Date()
let dateList = new Array()
let i = 0
diffDay.setDate(beginDay[2])
diffDay.setMonth(beginDay[1] - 1)
diffDay.setFullYear(beginDay[0])
result.push(start)
while (i == 0) {
let countDay = diffDay.getTime() + 24 * 60 * 60 * 1000
diffDay.setTime(countDay)
dateList[2] = diffDay.getDate()
dateList[1] = diffDay.getMonth() + 1
dateList[0] = diffDay.getFullYear()
if (String(dateList[1]).length == 1) {
dateList[1] = '0' + dateList[1]
}
if (String(dateList[2]).length == 1) {
dateList[2] = '0' + dateList[2]
}
result.push(dateList[0] + '-' + dateList[1] + '-' + dateList[2])
if (dateList[0] == endDay[0] && dateList[1] == endDay[1] && dateList[2] == endDay[2]) {
i = 1
}
}
return result
}
}
}
</script>

<style>
.lr-datetime-picker {
position: relative;
z-index: 888;
}

.lr-datetime-mask {
position: fixed;
z-index: 1000;
top: 0;
right: 0;
left: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.4);
visibility: hidden;
opacity: 0;
transition: all 0.3s ease;
}

.lr-datetime-mask.show {
visibility: visible;
opacity: 1;
}

.lr-datetime-content {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
transition: all 0.3s ease;
transform: translateY(100%);
z-index: 3000;
}

.lr-datetime-content.show {
transform: translateY(0);
}

.lr-datetime-hd {
display: flex;
align-items: center;
padding: 0 30upx;
height: 44px;
background-color: #fff;
position: relative;
text-align: center;
font-size: 15px;
justify-content: space-between;
}

.lr-datetime-btn {
font-size: 14px;
}

.lr-datetime-hd:after {
content: ' ';
position: absolute;
left: 0;
bottom: 0;
right: 0;
height: 1px;
border-bottom: 1px solid #e5e5e5;
color: #e5e5e5;
transform-origin: 0 100%;
transform: scaleY(0.5);
}

.lr-datetime-view {
width: 100%;
height: 200px;
overflow: hidden;
background-color: rgba(255, 255, 255, 1);
z-index: 666;
}

.yu-picker-column {
-webkit-flex: 2;
-webkit-box-flex: 2;
flex: 2;
}

.lr-datetime-item {
text-align: center;
width: 100%;
height: 88upx;
line-height: 88upx;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 30upx;
}
</style>

+ 82
- 0
Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-mpui/learun-ui-mp/datetime-picker-00.vue View File

@@ -0,0 +1,82 @@
<template>
<l-label @click="click" :arrow="!disabled" :required="required" :title="title">
{{ value || displayPlaceholder }}
<l-datetime-panel-00
v-if="datetimeModal"
@confirm="confirm"
@cancel="cancel"
:val="value"
:startYear="1900"
ref="datetime"
isAll
/>
</l-label>
</template>

<script>
export default {
name: 'l-datetime-picker-00',

props: {
title: {},
disabled: {},
placeholder: {},
required: {},
value: {}
},

data() {
return {
datetimeModal: false
}
},

methods: {
click(e) {
if (this.disabled || this.datetimeModal) {
return
}

this.datetimeModal = true
this.$nextTick(() => {
this.$refs.datetime.setDate(this.value)
this.$refs.datetime.show()
uni.$emit('modal', true)
this.$emit('open')
})
},

confirm({ selectRes }) {
setTimeout(() => {
this.datetimeModal = false
this.$emit('input', selectRes)
this.$emit('change', selectRes)
uni.$emit('modal', false)
this.$emit('close')
}, 300)
},

cancel() {
setTimeout(() => {
this.datetimeModal = false
}, 300)
uni.$emit('modal', false)
this.$emit('close')
}
},

computed: {
displayPlaceholder() {
if (this.disabled) {
return ''
}

if (this.placeholder) {
return this.placeholder
}

return this.title ? `请选择${this.title}` : '请选择…'
}
}
}
</script>

+ 2
- 2
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/LogisticsManagement/Purchase_Travel/single.vue View File

@@ -34,13 +34,13 @@
:readonly="!edit"
title="随行人员"
/>
<l-datetime-picker
<l-datetime-picker-00
@input="setValue('Purchase_Travel.Starttime', $event)"
:value="getValue('Purchase_Travel.Starttime')"
:disabled="!edit"
title="开始时间"
/>
<l-datetime-picker
<l-datetime-picker-00
@input="setValue('Purchase_Travel.Endtime', $event)"
:value="getValue('Purchase_Travel.Endtime')"
:disabled="!edit"


+ 3
- 1
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/LogisticsapplyManagement/Purchase_Travel_Apply/details.vue View File

@@ -70,14 +70,16 @@
fixed: true,
width: 60
},
// { name: 'CreatorName', label: '申请人',width:80,emptyString:'--' },
{ name: 'Traveler', label: '出差人员',width:120,emptyString:'--' },
{ name: 'Follows', label: '随行人员',width:120,emptyString:'--' },
// { name: 'TotalAmount', label: '金额',fixed:false,width:86,emptyString:'--' },
// { name: 'DepartmentName', label: '部门',fixed:false,width:200,emptyString:'--' },
{ name: 'Reason', label: '出差原因',fixed:false,width:126,emptyString:'--' },
{ name: 'TravelAddress', label: '出差地点',fixed:false,width:126,emptyString:'--' },
// { name: 'CreateTime', label: '申请时间',width:80,emptyString:'--' },
// { name: 'Starttime', label: '开始时间',fixed:false,width:146,emptyString:'--' },
{ name: 'Starttime', label: '开始时间',fixed:false,width:146,emptyString:'--' },
{ name: 'Endtime', label: '结束时间',fixed:false,width:146,emptyString:'--' },
// { name: 'CheckTime', label: '审核时间',fixed:false,width:146,emptyString:'--' },
],
formHasData:[],


+ 3
- 1
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/LogisticsapplyManagement/Purchase_Travel_Apply/single.vue View File

@@ -271,14 +271,16 @@
// 采购数据
column:[
// { type:'selection', fixed:true,width:60 },
{ name: 'CreatorName', label: '申请人',width:80,emptyString:'--' },
{ name: 'Traveler', label: '出差人员',width:120,emptyString:'--' },
{ name: 'Follows', label: '随行人员',width:120,emptyString:'--' },
// { name: 'TotalAmount', label: '金额',fixed:false,width:86,emptyString:'--' },
// { name: 'DepartmentName', label: '部门',fixed:false,width:200,emptyString:'--' },
{ name: 'Reason', label: '出差原因',fixed:false,width:126,emptyString:'--' },
{ name: 'TravelAddress', label: '出差地点',fixed:false,width:126,emptyString:'--' },
// { name: 'CreateTime', label: '申请时间',width:80,emptyString:'--' },
// { name: 'Starttime', label: '开始时间',fixed:false,width:146,emptyString:'--' },
{ name: 'Starttime', label: '开始时间',fixed:false,width:146,emptyString:'--' },
{ name: 'Endtime', label: '结束时间',fixed:false,width:146,emptyString:'--' },
// { name: 'CheckTime', label: '审核时间',fixed:false,width:146,emptyString:'--' },
],
data:[],


+ 3
- 1
Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/LogisticsapplyManagement/Purchase_Travel_Apply/singleFlow.vue View File

@@ -145,14 +145,16 @@ export default {
// 采购数据
column:[
// { type:'selection', fixed:true,width:60 },
// { name: 'CreatorName', label: '申请人',width:80,emptyString:'--' },
{ name: 'Traveler', label: '出差人员',width:120,emptyString:'--' },
{ name: 'Follows', label: '随行人员',width:120,emptyString:'--' },
// { name: 'TotalAmount', label: '金额',fixed:false,width:86,emptyString:'--' },
// { name: 'DepartmentName', label: '部门',fixed:false,width:200,emptyString:'--' },
{ name: 'Reason', label: '出差原因',fixed:false,width:126,emptyString:'--' },
{ name: 'TravelAddress', label: '出差地点',fixed:false,width:126,emptyString:'--' },
// { name: 'CreateTime', label: '申请时间',width:80,emptyString:'--' },
// { name: 'Starttime', label: '开始时间',fixed:false,width:146,emptyString:'--' },
{ name: 'Starttime', label: '开始时间',fixed:false,width:146,emptyString:'--' },
{ name: 'Endtime', label: '结束时间',fixed:false,width:146,emptyString:'--' },
// { name: 'CheckTime', label: '审核时间',fixed:false,width:146,emptyString:'--' },
],
data:[],


Loading…
Cancel
Save