import { getDict } from '@/api/toConsult.js' import dayjs from 'dayjs' import Dicts from '../utils/dicts' import { mapActions } from 'vuex' import { imgUrl } from '@/utils/index' export default { data() { return {} }, created() { /** 组件中设置dicts数组,会将字典存储在vuex中*/ if (this.dicts && this.dicts.length > 0) { this.setDicts() } }, methods: { ...mapActions(['setDict']), setDicts() { this.dicts.forEach(item => { this.setDict(item) }) }, /** 获取字典值 * key: String 字典类型 * 组件页面中需要设置:mapGetters(['dictionary']']), * */ getDictItem(key) { let item = this.dictionary.find(v => { return v.key === key }) console.log(item, 'item') return item?.value }, /** 获取字典值 * key: String 查询具体值 * dictType: String 字典类型 * 组件页面中需要设置:mapGetters(['dictionary']']), * */ getDictLabel(key, dictType) { let item = this.dictionary?.find(v => { return v.key === dictType }) let dictLabel = item?.value?.find(v => { if (v.dictValue == key) { return v?.dictLabel } }) return dictLabel?.dictLabel }, //时间范围模板:2020-01-01~2020-01-02 rangDate(start, end, a) { if (!start || !end) return '暂无' !a && (a = '~') return `${start}${a}${end}` }, //根据字典类型获取字典值 getDictHandler(dictType, callBack) { getDict(dictType).then(res => { let { data } = res callBack(data) }) }, //调用预览和pdf(内网银行) openFilePreview(item) { const parms = { url: item.url.indexOf('http') > -1 ? item.url : imgUrl(item.url), name: item.name } let system = this.isAndroidOrIos(); if (system === 1) { //android // 判断当前环境是是否存在 js桥 'sap' const hasSap = window.hasOwnProperty('sap') if (hasSap) { // 判断是否存在方法 ?preview const fun = sap.hasOwnProperty('preview') if (fun) { sap.preview(JSON.stringify(parms)) } } } if (system === 2) { //ios // 判断 ios是否存在方法 preview const fun = window.webkit.messageHandlers.hasOwnProperty('preview') if (fun) { window.webkit.messageHandlers.preview.postMessage(JSON.stringify(parms)) } } }, //调用NFC useNFC() { let system = this.isAndroidOrIos() const parms = { "iOS_SessionType": "0" } if (system === 1) { //android // 判断当前环境是是否存在 js桥 'sap' const hasSap = window.hasOwnProperty('sap'); if (hasSap) { // 判断是否存在方法 ?preview const fun = sap.hasOwnProperty('openNFCScan'); if (fun) { sap.openNFCScan(JSON.stringify(parms)); } } } if (system === 2) { //ios // 判断 ios是否存在方法 preview const fun = window.webkit.messageHandlers.hasOwnProperty('openNFCScan') if (fun) { window.webkit.messageHandlers.openNFCScan.postMessage(JSON.stringify(parms)) } } }, //调用相机和相册 useCamera(actionType) { window.openCameraCallBack = null window.openCameraCallBack = this.openCameraCallBack let parms = {} if (actionType) { parms.actionType = actionType parms.compressKb = '1024' } let system = this.isAndroidOrIos() if (system === 1) { //android // 判断当前环境是是否存在 js桥 'sap' const hasSap = window.hasOwnProperty('sap') if (hasSap) { // 判断是否存在方法 ?preview const fun = sap.hasOwnProperty('openCamera') if (fun) { sap.openCamera(JSON.stringify(parms)) } } } if (system === 2) { //ios // 判断 ios是否存在方法 preview const preview = window.webkit.messageHandlers.hasOwnProperty('openCamera') if (preview) { window.webkit.messageHandlers.openCamera.postMessage(JSON.stringify(parms)) } } }, isAndroidOrIos() { const urls = navigator.userAgent console.log(urls, 'urls') let isAndroid = urls.indexOf('Android') > -1 || urls.indexOf('Linux') > -1 let isIos = !!urls.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) if (isAndroid) { return 1 } if (isIos) { return 2 } return 3 } } }