diff --git a/App.vue b/App.vue index 25a08d2..d7cde2e 100644 --- a/App.vue +++ b/App.vue @@ -20,9 +20,16 @@ export default { // console.log(JSON.stringify(arg), "登录用户"); if (arg.data.page) { - uni.reLaunch({ - url: arg.data.page + "?current=" + arg.data.current, - }); + if(arg.data.current) { + uni.reLaunch({ + url: arg.data.page + "?current=" + arg.data.current, + }); + } else { + uni.reLaunch({ + url: arg.data.page, + }); + } + } else { uni.reLaunch({ url: "/pages/submit/submit", diff --git a/components/ClickInput.vue b/components/ClickInput.vue index 26412aa..606b39e 100644 --- a/components/ClickInput.vue +++ b/components/ClickInput.vue @@ -5,7 +5,10 @@ {{_value}} {{props.placeholder}} - + + @@ -29,7 +32,11 @@ //自定义取名函数 valueFunc: Function, placeholder: String, - disabled: Boolean + disabled: Boolean, + isColse: { + type: Boolean, + default: false + }, }) const showVal = computed(() => { @@ -54,7 +61,9 @@ }) const emits = defineEmits(['update:modelValue']) - + const onClose = () => { + emits('customEvent') + } diff --git a/components/form/SelectPlus.vue b/components/form/SelectPlus.vue index a6e4170..7a6ff57 100644 --- a/components/form/SelectPlus.vue +++ b/components/form/SelectPlus.vue @@ -23,7 +23,7 @@ - @@ -191,6 +191,11 @@ const onCancel = () => { isSearch.value = false; } + const customEventClear = (e) => { + console.log('关闭',e) + index.value = ""; + __value.value = ""; + } const isSearchFn = () => { //.box获取class为box的元素,如果使用的id= 'box' 则使用'#box' // uni.createSelectorQuery().in(this).select('.picker').boundingClientRect(data => { diff --git a/components/headers/headers.vue b/components/headers/headers.vue index bcbef1f..f677ac2 100644 --- a/components/headers/headers.vue +++ b/components/headers/headers.vue @@ -86,28 +86,35 @@ const arrListCode = [{ code: 'wf66f6451c48b718d0aaf27522', name: '安全检查', - path: '/pages/projectEnd/safeSame/index' + path: '/pages/projectEnd/safeSame/index', + routePath: '/pages/projectEnd/safeSame/list' }, { code: "wf67072b923afc947a1a819313", name: '质量检查', - path: '/pages/projectEnd/qualityManage/index' + path: '/pages/projectEnd/qualityManage/index', + routePath: '/pages/projectEnd/qualityManage/list' },{ code: "wf670a4a6c2384bf3e58f62681", name: '质量监督', - path: '/pages/projectEnd/qualitySurveillance/index' + path: '/pages/projectEnd/qualitySurveillance/index', + routePath: '/pages/projectEnd/qualitySurveillance/list' },{ code: "wf670735f73afc947a1a819314", name: '文明施工', - path: '/pages/projectEnd/civilConstruction/constructionProblemRecord/index' + path: '/pages/projectEnd/civilConstruction/constructionProblemRecord/index', + routePath: '/pages/projectEnd/civilConstruction/constructionProblemRecord/list' }] let pathUrl = "/pages/projectEnd/projectIndex/projectIndex"; console.log('pages', pages) - const find = arrListCode.find(item => pages[0].options.code && pages[0].options.code.includes(item.code)); - // console.log('prevPage',pages, pages[0].options.code) + console.log('prevPage',pages, pages[0].options.code) + // routeName + + const find = arrListCode.find(item => pages[0].options.code && pages[0].options.code.includes(item.code) || pages[0].options.routeName && pages[0].options.routeName.includes(item.name)); if(find) { - pathUrl = find.path; + pathUrl = pages[0].options.code ? find.path : find.routePath; } + console.log('pathUrl', pathUrl) if(window.plus) { webUni.webView.postMessage({ diff --git a/utils/tool.js b/utils/tool.js index 045fdde..48cfd32 100644 --- a/utils/tool.js +++ b/utils/tool.js @@ -1,15 +1,15 @@ import { - BASE_URL + BASE_URL } from '@/api/request.js' //获取文件访问路径 export function getRes(url) { - if (url) { - const reg = /^(http:|https:).*/gi - return reg.test(url) ? url : BASE_URL + '/image/' + url - } else { - return url - } + if (url) { + const reg = /^(http:|https:).*/gi + return reg.test(url) ? url : BASE_URL + '/image/' + url + } else { + return url + } } /** @@ -19,194 +19,194 @@ export function getRes(url) { * @returns {(function(): void)|*} */ export function debounce(call, cycle = 800) { - var timer = null; // 创建一个用来存放定时器的变量 - let func = call - return function(...args) { - clearTimeout(timer); //只要触发就清除 - timer = setTimeout(() => { - func.apply(this, args); - }, cycle); - }; + var timer = null; // 创建一个用来存放定时器的变量 + let func = call + return function(...args) { + clearTimeout(timer); //只要触发就清除 + timer = setTimeout(() => { + func.apply(this, args); + }, cycle); + }; } export function getFileSize(size) { - if (size > 1048576) { - return (size / 1048576).toFixed(1) + 'MB' - } else if (size > 1024) { - return (size / 1024).toFixed(1) + 'KB' - } else { - return size + 'B' - } + if (size > 1048576) { + return (size / 1048576).toFixed(1) + 'MB' + } else if (size > 1024) { + return (size / 1024).toFixed(1) + 'KB' + } else { + return size + 'B' + } } export function $deepCopy(obj) { - return JSON.parse(JSON.stringify(obj)) + return JSON.parse(JSON.stringify(obj)) } export function $nEmpty(obj) { - return obj && (obj || '') !== '' + return obj && (obj || '') !== '' } export function parseNumber(val, precision) { - if (typeof(val) === 'string') { - return precision > 0 ? parseFloat(parseFloat(val).toFixed(precision)) : parseInt(val) - } - return val + if (typeof(val) === 'string') { + return precision > 0 ? parseFloat(parseFloat(val).toFixed(precision)) : parseInt(val) + } + return val } //常用文件格式 const fileTypes = { - pdf: ['pdf'], - img: ['bmp', 'jpg', 'png', 'tif', 'gif', 'svg', 'psd', 'webp', 'apng'], - video: ['mp4', 'avi', 'mpeg', 'mkv', 'mov', 'rmvb', 'flv', '3gp', 'wav'], - word: ['doc', 'docx'], - excel: ['xls', 'xlsx'], - ppt: ['ppt', 'pptx'], - txt: ['txt'], - zip: ['zip', 'rar', '7z', 'iso'], + pdf: ['pdf'], + img: ['bmp', 'jpg', 'png', 'tif', 'gif', 'svg', 'psd', 'webp', 'apng'], + video: ['mp4', 'avi', 'mpeg', 'mkv', 'mov', 'rmvb', 'flv', '3gp', 'wav'], + word: ['doc', 'docx'], + excel: ['xls', 'xlsx'], + ppt: ['ppt', 'pptx'], + txt: ['txt'], + zip: ['zip', 'rar', '7z', 'iso'], } const fileTypeMap = new Map() for (const key of Object.keys(fileTypes)) { - fileTypes[key].forEach(v => fileTypeMap.set(v, key)) + fileTypes[key].forEach(v => fileTypeMap.set(v, key)) } /** * 从文件名获取文件对应图标 * @param {Object} fileName 文件名 */ export function getFileImgByType(fileName) { - const type = fileTypeMap.get(fileName.split('.').pop()) - return `/static/image/filetype/${(type || '') === '' ? 'file': type}.png` + const type = fileTypeMap.get(fileName.split('.').pop()) + return `/static/image/filetype/${(type || '') === '' ? 'file': type}.png` } //记录下本地文件,方便打开的时候直接取本地 export function saveFileTemp(file) { - // #ifndef H5 - let fileObj = uni.getStorageSync('localFile') - if (!fileObj) { - fileObj = {} - } - fileObj[file.name] = file - uni.setStorageSync('localFile', fileObj) - // #endif + // #ifndef H5 + let fileObj = uni.getStorageSync('localFile') + if (!fileObj) { + fileObj = {} + } + fileObj[file.name] = file + uni.setStorageSync('localFile', fileObj) + // #endif } //记录下本地文件,方便打开的时候直接取本地 export function removeFileTemp(name) { - // #ifndef H5 - let fileObj = uni.getStorageSync('localFile') - delete fileObj[name] - uni.setStorageSync('localFile', fileObj) - // #endif + // #ifndef H5 + let fileObj = uni.getStorageSync('localFile') + delete fileObj[name] + uni.setStorageSync('localFile', fileObj) + // #endif } //下载并打开文件 export function openLocalFile(name, path) { - //除h5外其他端先看本地有没有,没有就下载到本地再打开,有就直接打开 - // #ifdef H5 - window.open(path) - // #endif - // #ifndef H5 - let fileObj = uni.getStorageSync('localFile') - if (fileObj && fileObj[name]) { - uni.openDocument({ - filePath: fileObj.path, - showMenu: true, - fileType: getFileImgByType(name), - success: function(res) { - console.log('打开文档成功'); - } - }); - return - } - uni.downloadFile({ - url: path, - header: { - //大家在这里传自定义的token,这里默认wflow的 - Authorization: "Bearer " + uni.getStorageSync('wflow-token'), - TenantId: JSON.parse(uni.getStorageSync("loginUser")).sn - }, - success: function(res) { - uni.showToast({ - icon: 'none', - title: '文件下载成功' - }); - //ios中文文件名会报错,需要编码下 - let filePath = uni.getSystemInfoSync().platform === 'ios' ? res.tempFilePath : escape(res - .tempFilePath) - uni.saveFile({ - tempFilePath: filePath, //临时路径 - success: function(res) { - uni.showToast({ - icon: 'none', - mask: true, - title: '保存在:' + res.savedFilePath, //保存路径 - duration: 2000, - }); - // 保存好再打开文件 - setTimeout(() => { - uni.openDocument({ - filePath: res.savedFilePath, - showMenu: true, - fileType: getFileImgByType(name), - success: function(res) { - console.log('打开文档成功'); - } - }); - }, 1000) - } - }) - uni.openDocument({ - filePath: filePath, - showMenu: true, - fileType: getFileImgByType(name), - success: function(res) { - console.log('打开文档成功'); - } - }); - } - }); + //除h5外其他端先看本地有没有,没有就下载到本地再打开,有就直接打开 + // #ifdef H5 + window.open(path) + // #endif + // #ifndef H5 + let fileObj = uni.getStorageSync('localFile') + if (fileObj && fileObj[name]) { + uni.openDocument({ + filePath: fileObj.path, + showMenu: true, + fileType: getFileImgByType(name), + success: function(res) { + console.log('打开文档成功'); + } + }); + return + } + uni.downloadFile({ + url: path, + header: { + //大家在这里传自定义的token,这里默认wflow的 + Authorization: "Bearer " + uni.getStorageSync('wflow-token'), + TenantId: JSON.parse(uni.getStorageSync("loginUser")).sn + }, + success: function(res) { + uni.showToast({ + icon: 'none', + title: '文件下载成功' + }); + //ios中文文件名会报错,需要编码下 + let filePath = uni.getSystemInfoSync().platform === 'ios' ? res.tempFilePath : escape(res + .tempFilePath) + uni.saveFile({ + tempFilePath: filePath, //临时路径 + success: function(res) { + uni.showToast({ + icon: 'none', + mask: true, + title: '保存在:' + res.savedFilePath, //保存路径 + duration: 2000, + }); + // 保存好再打开文件 + setTimeout(() => { + uni.openDocument({ + filePath: res.savedFilePath, + showMenu: true, + fileType: getFileImgByType(name), + success: function(res) { + console.log('打开文档成功'); + } + }); + }, 1000) + } + }) + uni.openDocument({ + filePath: filePath, + showMenu: true, + fileType: getFileImgByType(name), + success: function(res) { + console.log('打开文档成功'); + } + }); + } + }); - // #endif + // #endif } //获取表单组件文本值 export function getFormValText(obj) { - switch (obj.type) { - case 'DeptPicker': - case 'GroupPicker': - case 'UserPicker': - case 'FileUpload': - case 'ImageUpload': - return (obj.value || []).map(v => v.name).join('、'); - case 'TimeRangePicker': - case 'DateTimeRange': - case 'SelectPlus': - case 'MultipleSelect': - return (obj.value || []).join('、'); - case 'ProcessIndex': - return (obj.value || []).map(v => v.startUser.name + '-' + v.name).join('、'); - default: - return obj.value; - } + switch (obj.type) { + case 'DeptPicker': + case 'GroupPicker': + case 'UserPicker': + case 'FileUpload': + case 'ImageUpload': + return (obj.value || []).map(v => v.name).join('、'); + case 'TimeRangePicker': + case 'DateTimeRange': + case 'SelectPlus': + case 'MultipleSelect': + return (obj.value || []).join('、'); + case 'ProcessIndex': + return (obj.value || []).map(v => v.startUser.name + '-' + v.name).join('、'); + default: + return obj.value; + } } export function showItem(item, val) { - return !(item.perm === 'R' && isEm(val)) || item.perm === 'H' + return !(item.perm === 'R' && isEm(val)) && item.perm !== 'H' } function isEm(val) { - return !$nEmpty(val) || - ((val instanceof String) && val.trim() === '') || - (Array.isArray(val) && val.length === 0) + return !$nEmpty(val) || + ((val instanceof String) && val.trim() === '') || + (Array.isArray(val) && val.length === 0) } export function isVideoLink(url) { - const videoExtensions = ['mp4', 'webm', 'ogg', 'mov', 'avi', 'flv', 'wmv']; - const extension = url.split('.').pop().toLowerCase(); - return videoExtensions.includes(extension); + const videoExtensions = ['mp4', 'webm', 'ogg', 'mov', 'avi', 'flv', 'wmv']; + const extension = url.split('.').pop().toLowerCase(); + return videoExtensions.includes(extension); } export function isImageLink(url) { - // 正则表达式匹配常见的图片文件扩展名 - const imageExtensionsRegex = /\.(jpg|jpeg|png|gif|webp)$/i; - return imageExtensionsRegex.test(url); + // 正则表达式匹配常见的图片文件扩展名 + const imageExtensionsRegex = /\.(jpg|jpeg|png|gif|webp)$/i; + return imageExtensionsRegex.test(url); } \ No newline at end of file