| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- 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
- }
- }
- }
|