257 lines
5.2 KiB
JavaScript
257 lines
5.2 KiB
JavaScript
import { netSearchForm } from '@/api/index.js'
|
||
// 防止处理多次点击
|
||
function noMultipleClicks(methods, info) {
|
||
// methods是点击后需要执行的函数, info是函数需要传的参数
|
||
let that = this;
|
||
if (that.noClick) {
|
||
// 第一次点击
|
||
that.noClick = false;
|
||
if ((info && info !== '') || info == 0) {
|
||
// info是执行函数需要传的参数
|
||
methods(info);
|
||
} else {
|
||
methods();
|
||
}
|
||
setTimeout(() => {
|
||
that.noClick = true;
|
||
}, 5000)
|
||
} else {
|
||
// 这里是重复点击的判断
|
||
|
||
}
|
||
}
|
||
|
||
//去重
|
||
function deWeight(arr) {
|
||
for (var i = 0; i < arr.length - 1; i++) {
|
||
for (var j = i + 1; j < arr.length; j++) {
|
||
if (arr[i].id == arr[j].id) {
|
||
|
||
arr.splice(j, 1);
|
||
j--;
|
||
}
|
||
}
|
||
}
|
||
return arr;
|
||
}
|
||
|
||
function openCommonImg(data,index) {
|
||
let arr = []
|
||
data.forEach(ele=>{
|
||
arr.push(ele.file_path)
|
||
})
|
||
uni.previewImage({
|
||
urls:arr,
|
||
current:index
|
||
})
|
||
}
|
||
// 打开文档
|
||
function openCommonFile(data) {
|
||
let arr = ['png','jpg','img','image','gif']
|
||
let name = data.name
|
||
let suffix = name.substring(name.indexOf('.')+1)
|
||
if(!arr.includes(suffix)){
|
||
// #ifdef MP-WEIXIN
|
||
uni.downloadFile({
|
||
url: data.file_path,
|
||
success: (downres) => {
|
||
uni.getSystemInfo({
|
||
success:(res)=>{
|
||
if(res.platform == 'windows' || res.platform == 'mac'){
|
||
//pc端
|
||
wx.saveFileToDisk({
|
||
filePath:downres.tempFilePath,
|
||
success:(saveSuc)=>{
|
||
console.log(saveSuc)
|
||
},
|
||
fail:(saveFail)=>{
|
||
console.log(saveFail)
|
||
}
|
||
})
|
||
}else{
|
||
downOrOpen(downres,data.name,data.file_path,suffix)
|
||
}
|
||
}
|
||
})
|
||
},
|
||
fail: (errmsg) => {
|
||
uni.hideLoading()
|
||
console.log(errmsg,'===')
|
||
}
|
||
})
|
||
// #endif
|
||
}else{
|
||
uni.previewImage({
|
||
urls: [data.file_path],
|
||
complete:(res)=>{
|
||
console.log(res)
|
||
}
|
||
})
|
||
}
|
||
}
|
||
|
||
function downOrOpen(downres,name,file,type) {
|
||
uni.showLoading({title:'正在加载'})
|
||
let manage = uni.getFileSystemManager()
|
||
let urls = wx.env.USER_DATA_PATH + '/' + name
|
||
manage.saveFile({
|
||
tempFilePath: downres.tempFilePath,
|
||
filePath: urls,
|
||
fileType: type,
|
||
success: (saveData) => {
|
||
uni.openDocument({
|
||
filePath: saveData.savedFilePath,
|
||
showMenu: true,
|
||
fileType:type,
|
||
success: (res) => {
|
||
console.log(res,'成功打开')
|
||
uni.hideLoading()
|
||
},
|
||
fail: (er) => {
|
||
console.log(er,'打开失败')
|
||
uni.hideLoading()
|
||
}
|
||
})
|
||
}
|
||
})
|
||
}
|
||
|
||
//提交的数据 进行校验必填 非必填
|
||
function checkCommonForm(data){
|
||
let arr = []
|
||
data.forEach(ele=>{
|
||
arr.push({
|
||
name:ele.id,
|
||
required: ele.config.required,
|
||
msg: ele.config.placeholder,
|
||
value: ele.value,
|
||
component: ele.component
|
||
})
|
||
})
|
||
let obj = {}
|
||
for (let i = 0; i < arr.length; i++) {
|
||
if (arr[i].required && !arr[i].value) {
|
||
uni.showToast({
|
||
title: arr[i].msg,
|
||
icon: 'none'
|
||
})
|
||
return
|
||
}
|
||
if(arr[i].component == 'uploadImage' || arr[i].component == 'uploadFile'){
|
||
let a = arr[i].value?arr[i].value:[]
|
||
let ids = []
|
||
a.forEach(ele=>{
|
||
ids.push(ele.id)
|
||
})
|
||
obj[arr[i].name] = ids.join(',')
|
||
}else{
|
||
obj[arr[i].name] = arr[i].value
|
||
}
|
||
}
|
||
return obj
|
||
}
|
||
|
||
//根据年月2022-07 获取这个月份的开始日期 结束日期
|
||
function checkStartAndEnd(date) {
|
||
let year = date.substring(0,4)
|
||
let month = date.substring(5,7)
|
||
console.log(year,Number(month),'分割')
|
||
let arr = []
|
||
if(year%4==0&&year%100!=0||year%400==0){
|
||
arr=[31,29,31,30,31,30,31,31,30,31,30,31]
|
||
}else{
|
||
arr=[31,28,31,30,31,30,31,31,30,31,30,31]
|
||
}
|
||
let m = Number(month)
|
||
let start = '01'
|
||
let end = arr[m-1]
|
||
return [year+'-'+month+'-'+start,year+'-'+month+'-'+end]
|
||
}
|
||
|
||
// 处理时间
|
||
function handleTime(num) {
|
||
if(num >= 10){
|
||
return num
|
||
}else{
|
||
return '0'+num
|
||
}
|
||
}
|
||
|
||
//搜索表单渲染时 的 数据处理
|
||
function handleSearchForm(type,callback) {
|
||
netSearchForm({type}).then(res=>{
|
||
let data = res.data
|
||
let newData = []
|
||
data.forEach(ele=>{
|
||
let obj = {
|
||
form_type:ele.form_type,
|
||
name:ele.name,
|
||
field:ele.field,
|
||
input_tips:ele.input_tips,
|
||
}
|
||
if(ele.form_type == 'TimePicker' || ele.form_type == 'DatePicker'){
|
||
obj.start_time = ''
|
||
obj.end_time = ''
|
||
}else{
|
||
obj.value = ''
|
||
}
|
||
if(ele.form_type == 'radio' || ele.form_type == 'checkbox'){
|
||
obj.content = ele.setting.split('|')
|
||
}
|
||
if(ele.form_type == 'select'){
|
||
obj.content = []
|
||
let arr = ele.setting.split('|')
|
||
arr.forEach((item,index)=>{
|
||
obj.content.push({
|
||
label:item,
|
||
nodeKey:index
|
||
})
|
||
})
|
||
}
|
||
newData.push(obj)
|
||
})
|
||
callback(newData)
|
||
})
|
||
}
|
||
|
||
//搜索表单 确定时的 数据处理
|
||
function handleSureSearch(data){
|
||
let obj = {}
|
||
data.forEach(ele=>{
|
||
if(ele.form_type == "DatePicker" || ele.form_type == "TimePicker"){
|
||
obj[ele.field] = (ele.start_time && ele.end_time) ? ele.start_time+','+ele.end_time : ''
|
||
}else{
|
||
obj[ele.field] = ele.value
|
||
}
|
||
})
|
||
return obj
|
||
}
|
||
|
||
//重置搜索 表单
|
||
function handleResetSearch(data) {
|
||
data.forEach(ele=>{
|
||
if(ele.form_type == "DatePicker" || ele.form_type == "TimePicker"){
|
||
ele.start_time = ''
|
||
ele.end_time = ''
|
||
}else{
|
||
ele.value = ''
|
||
}
|
||
})
|
||
return data
|
||
}
|
||
|
||
|
||
//导出
|
||
export default {
|
||
noMultipleClicks, // 禁止多次点击
|
||
deWeight,
|
||
openCommonFile,
|
||
openCommonImg,
|
||
checkCommonForm,
|
||
checkStartAndEnd,
|
||
handleTime,
|
||
handleSearchForm,
|
||
handleSureSearch,
|
||
handleResetSearch
|
||
}
|