hls_crm/util/common.js

257 lines
5.2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}