|
@@ -185,6 +185,8 @@ export default {
|
|
|
this.dynamicData.add = this.add // 新增按钮
|
|
|
// 获取json
|
|
|
this.jsonData = res.result.jsonContent
|
|
|
+ // this.jsonData.list[8].columns[0].list[0].help = "input_1627377270350,input_1627377316607,-"
|
|
|
+ // this.jsonData.list[3].help = 'date_1626143660261,-,date_1626143662152'
|
|
|
this.cvarr = []
|
|
|
this.cvarr = []
|
|
|
this.fArr =[]
|
|
@@ -209,6 +211,7 @@ export default {
|
|
|
} else {
|
|
|
// 获取json
|
|
|
this.jsonData = res.result.jsonContent
|
|
|
+ // this.jsonData.list[2].columns[0].list[0].help = 'date_1663752082983,date_1663753163575'
|
|
|
this.cvarr = []
|
|
|
this.fArr =[]
|
|
|
//遍历help(计算)
|
|
@@ -331,7 +334,7 @@ export default {
|
|
|
if (typeof(obj[a]) == "object"){
|
|
|
if(obj[a].help !=='' && obj[a].help){
|
|
|
//保存每一项的label和key
|
|
|
- this.cvarr.push({model:obj[a].model,key:obj[a].key})
|
|
|
+ this.cvarr.push({model:obj[a].model,key:obj[a].key,type:obj[a].type})
|
|
|
obj[a].help = obj[a].help.split(',')
|
|
|
//保存含有help的item中的label和help里的信息
|
|
|
this.fArr=[
|
|
@@ -344,24 +347,22 @@ export default {
|
|
|
value:'',
|
|
|
},
|
|
|
{
|
|
|
- label: obj[a].help[2],
|
|
|
+ label: obj[a].help[1],
|
|
|
value:'',
|
|
|
},
|
|
|
{
|
|
|
- label: obj[a].help[1],
|
|
|
- value:''
|
|
|
- }
|
|
|
+ label: obj[a].help[2],
|
|
|
+ value:'',
|
|
|
+ },
|
|
|
]
|
|
|
//保存多各含有help的数据
|
|
|
this.bv.push({bn:this.fArr})
|
|
|
}else if(obj[a].help ==''){
|
|
|
- this.cvarr.push({model:obj[a].model,key:obj[a].key})
|
|
|
+ this.cvarr.push({model:obj[a].model,key:obj[a].key,type:obj[a].type})
|
|
|
}
|
|
|
this.forHelp(obj[a])
|
|
|
}
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
+ }
|
|
|
},
|
|
|
// 获取申请人信息
|
|
|
getApplicant () {
|
|
@@ -376,55 +377,87 @@ export default {
|
|
|
// 表单字段数值发生改变事件
|
|
|
handleChange (value, key) {
|
|
|
//保存发生改变字段名对应的key
|
|
|
- var cc =''
|
|
|
- this.cvarr.map(item=>{
|
|
|
- if(item.model ==key){
|
|
|
- cc=item.key
|
|
|
- }
|
|
|
- })
|
|
|
+ var cc ='',
|
|
|
+ type = ''
|
|
|
+ this.cvarr.map(k =>{
|
|
|
+ if(k.model ==key){
|
|
|
+ cc=k.key
|
|
|
+ type = k.type
|
|
|
+ }})
|
|
|
//根据数值改变计算
|
|
|
this.bv.map(event =>{
|
|
|
event.bn.map((item,index) =>{
|
|
|
if(item.label == cc && index!==0){
|
|
|
item.value = value
|
|
|
- if(event.bn[3].label =="+"){
|
|
|
- event.bn[0].value = Number(event.bn[1].value)+Number(event.bn[2].value)
|
|
|
- }else if(event.bn[3].label =="-"){
|
|
|
- event.bn[0].value = Number(event.bn[1].value)-Number(event.bn[2].value)
|
|
|
+ //保存计算的字段
|
|
|
+ var gg =[]
|
|
|
+ gg.push(event.bn[1])
|
|
|
+ gg.push(event.bn[2])
|
|
|
+ //判断未改变的是哪个字段
|
|
|
+ var arr = gg.filter(item => item.label !== cc)
|
|
|
+ //寻找未改变字段的model值
|
|
|
+ var keyLabel = ''
|
|
|
+ this.cvarr.map(k =>{
|
|
|
+ if(k.key ==arr[0].label){
|
|
|
+ keyLabel = k.model
|
|
|
+ }})
|
|
|
+ //复制给对应字段
|
|
|
+ event.bn.map(i =>{
|
|
|
+ if(i.label == arr[0].label){
|
|
|
+ i.value = this.$refs.KFB.form.getFieldValue(keyLabel)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if(type == 'date'){
|
|
|
+ if(event.bn[1].value!=='' && event.bn[2].value!==''){
|
|
|
+ var state = ''
|
|
|
+ if(event.bn[3].label == ''|| !event.bn[3].label){
|
|
|
+ state ='hour'
|
|
|
+ }else{
|
|
|
+ state = event.bn[3].label
|
|
|
+ }
|
|
|
+ event.bn[0].value = this.timeDifference(event.bn[1].value,event.bn[2].value,state)
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if(event.bn[3].label =="+"){
|
|
|
+ event.bn[0].value = Number(event.bn[1].value)+Number(event.bn[2].value)
|
|
|
+ }else if(event.bn[3].label =="-"){
|
|
|
+ event.bn[0].value = Number(event.bn[1].value)-Number(event.bn[2].value)
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
this.$refs.KFB.setData({[event.bn[0].label]:event.bn[0].value})
|
|
|
}
|
|
|
})
|
|
|
- })
|
|
|
- // 数据变化时触发
|
|
|
- // 如果开始时间发生变化
|
|
|
- if (key == 'start_time') {
|
|
|
- // 判断结束时间是否存在
|
|
|
- if (this.$refs.KFB.form.getFieldValue('end_time')) {
|
|
|
- // 获取时间差
|
|
|
- let duration = startEndFun(value, this.$refs.KFB.form.getFieldValue('end_time'))
|
|
|
- if (duration) {
|
|
|
- // 使用k-form-design组件的form属性修改表单数据
|
|
|
- this.$refs.KFB.setData({
|
|
|
- duration: duration
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- // 如果结束时间发生变化
|
|
|
- if (key == 'end_time') {
|
|
|
- // 判断结束时间是否存在
|
|
|
- if (this.$refs.KFB.form.getFieldValue('start_time')) {
|
|
|
- // 获取时间差
|
|
|
- let duration = startEndFun(this.$refs.KFB.form.getFieldValue('start_time'), value)
|
|
|
- if (duration) {
|
|
|
- // 使用k-form-design组件的form属性修改表单数据
|
|
|
- this.$refs.KFB.setData({
|
|
|
- duration: duration
|
|
|
- })
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ })
|
|
|
+ // // 数据变化时触发
|
|
|
+ // // 如果开始时间发生变化
|
|
|
+ // if (key == 'start_time') {
|
|
|
+ // // 判断结束时间是否存在
|
|
|
+ // if (this.$refs.KFB.form.getFieldValue('end_time')) {
|
|
|
+ // // 获取时间差
|
|
|
+ // let duration = startEndFun(value, this.$refs.KFB.form.getFieldValue('end_time'))
|
|
|
+ // if (duration) {
|
|
|
+ // // 使用k-form-design组件的form属性修改表单数据
|
|
|
+ // this.$refs.KFB.setData({
|
|
|
+ // duration: duration
|
|
|
+ // })
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // // 如果结束时间发生变化
|
|
|
+ // if (key == 'end_time') {
|
|
|
+ // // 判断结束时间是否存在
|
|
|
+ // if (this.$refs.KFB.form.getFieldValue('start_time')) {
|
|
|
+ // // 获取时间差
|
|
|
+ // let duration = startEndFun(this.$refs.KFB.form.getFieldValue('start_time'), value)
|
|
|
+ // if (duration) {
|
|
|
+ // // 使用k-form-design组件的form属性修改表单数据
|
|
|
+ // this.$refs.KFB.setData({
|
|
|
+ // duration: duration
|
|
|
+ // })
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
},
|
|
|
// handler
|
|
|
handleSubmit (e) {
|
|
@@ -790,7 +823,32 @@ export default {
|
|
|
updateModel(element, modelIndex)
|
|
|
}
|
|
|
})
|
|
|
- }
|
|
|
+ },
|
|
|
+ //计算时间差
|
|
|
+ timeDifference(start, end,state){
|
|
|
+ if(start>end){
|
|
|
+ this.$message.error('起始时间不可大于结束时间');
|
|
|
+ }else{
|
|
|
+ let beginTime = (new Date(start).getTime()) / 1000;
|
|
|
+ let endTime = (new Date(end).getTime()) / 1000;
|
|
|
+ //计算天数
|
|
|
+ var timediff = endTime - beginTime;
|
|
|
+ var days = parseInt(timediff / 86400);
|
|
|
+ //计算小时数
|
|
|
+ var remain = timediff % 86400;
|
|
|
+ var hours = parseInt(remain / 3600);
|
|
|
+ //计算分钟数
|
|
|
+ var remain = remain % 3600;
|
|
|
+ var mins = parseInt(remain / 60);
|
|
|
+ var res = days + '天' + hours + '小时' + mins + '分';
|
|
|
+ if(state == 'min'){
|
|
|
+ return days*24*60+hours*60+mins
|
|
|
+ }else if(state == 'hour'){
|
|
|
+ return days*24+hours+mins/60
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -812,12 +870,13 @@ function getFiledNames (formData) {
|
|
|
})
|
|
|
return filedNames
|
|
|
}
|
|
|
-
|
|
|
// 根据开始时间 结束时间计算天数
|
|
|
function startEndFun (start, end) {
|
|
|
let startTime = new Date(start)
|
|
|
let endTime = new Date(end)
|
|
|
- if (startTime >= endTime) return 0
|
|
|
+ if (startTime >= endTime) {
|
|
|
+ return 0
|
|
|
+ }
|
|
|
// 1,分钟取整
|
|
|
startTime = carryTime(startTime)
|
|
|
endTime = carryTime(endTime)
|
|
@@ -880,7 +939,6 @@ function startEndFun (start, end) {
|
|
|
var days = Math.floor(totalTime)
|
|
|
var hours = Math.round((totalTime - days) * 100) / 10
|
|
|
console.log(days + '天', hours + '小时')
|
|
|
-
|
|
|
return days * 8 + hours
|
|
|
|
|
|
// if (start && end) {
|