123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- import Vue from "vue";
- // import "@/lib/spark-md5.min.js";
- const SparkMD5 = require('spark-md5')
- // 缓存
- const DicsCatch = {};
- // 单级下拉字典项
- Vue.prototype.$dicsListsInit = function (selectList) {
- return new Promise((resolve, reject) => {
- let noSelectList = {};
- for (let selectNames in selectList) {
- let dicsName = selectList[selectNames];
- if (!!DicsCatch[dicsName]) {
- this[selectNames] = DicsCatch[dicsName]
- } else {
- noSelectList[selectNames] = dicsName
- }
- }
- if (Object.values(noSelectList).length <= 0) {
- resolve()
- } else {
- this.$axios({
- method: "post",
- url: this.$api.common.getDictListsByTypes,
- data: {
- dictTypes: Object.values(noSelectList).join(",")
- }
- }).then(res => {
- if (res.code != 200) {
- this.$message.error(res.message || "字典获取失败");
- reject();
- return false;
- }
- let result = res.info;
- for (let selectNames in noSelectList) {
- let dicsName = noSelectList[selectNames];
- for (let i = 0; i < result[dicsName].length; i++) {
- this[selectNames].push({
- caption: result[dicsName][i].dictName,
- code: result[dicsName][i].dictCode,
- });
- }
- DicsCatch[dicsName] = this[selectNames]
- }
- resolve();
- }).catch(error => {
- this.$message.error("网络异常");
- reject(error);
- });
- }
- });
- }
- // 缓存
- const DicsTreeCatch = {};
- // 单级下拉字典项
- Vue.prototype.$dicsTreesInit = function (selectList) {
- return new Promise((resolve, reject) => {
- let noSelectList = {};
- for (let selectNames in selectList) {
- let dicsName = selectList[selectNames];
- if (!!DicsTreeCatch[dicsName]) {
- this[selectNames] = DicsTreeCatch[dicsName]
- } else {
- noSelectList[selectNames] = dicsName
- }
- }
- if (Object.values(noSelectList).length <= 0) {
- resolve()
- } else {
- this.$axios({
- method: "post",
- url: this.$api.common.getDictTreesByTypes,
- data: {
- dictTypes: Object.values(noSelectList).join(",")
- }
- }).then(res => {
- if (res.code != 200) {
- this.$message.error(res.message || "字典获取失败");
- reject();
- return false;
- }
- let result = res.info;
- for (let selectNames in noSelectList) {
- let dicsName = noSelectList[selectNames];
- // for (let i = 0; i < result[dicsName].length; i++) {
- // this[selectNames].push({
- // name: result[dicsName][i].dictName,
- // code: result[dicsName][i].dictCode,
- // });
- // }
- this[selectNames] = result[dicsName]
- DicsTreeCatch[dicsName] = this[selectNames]
- }
- resolve();
- }).catch(error => {
- this.$message.error("网络异常");
- reject(error);
- });
- }
- });
- }
- /**
- * 计算文件的MD5
- * @param file 文件
- * @param chunkSize 分片大小
- * @returns Promise
- */
- function md5(file, chunkSize) {
- // element 中组件对 file 进行加工,这里使用未加工的对象,只有未加工的对象才能在 blobSlice.call() 中正常操作
- let fileRaw = file
- // console.log('fileRaw',fileRaw);
- return new Promise((resolve, reject) => {
- let blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice
- let fileReader = new FileReader()
- let chunkSize = 2097152;
- let chunks = Math.ceil(file.size / chunkSize)
- let currentChunk = 0
- let spark = new SparkMD5()
- fileReader.onload = function (e) {
- spark.appendBinary(e.target.result);
- currentChunk++;
- if (currentChunk < chunks) {
- loadNext();
- } else {
- let md5 = spark.end();
- // console.log('computed hash', md5)
- resolve(md5);
- }
- };
- fileReader.onerror = function (e) {
- console.warn('FileReader error.')
- reject(e);
- };
- function loadNext() {
- let start = currentChunk * chunkSize
- let end = ((start + chunkSize) >= file.size) ? file.size : start + chunkSize
- fileReader.readAsBinaryString(blobSlice.call(file, start, end));
- }
- loadNext();
- });
- }
- // 深度优先遍历
- /* deepFirstSearch(node, nodeList) {
- if (node) {
- nodeList.push(node);
- var children = node.children;
- if (children) {
- for (var i = 0; i < children.length; i++)
- //每次递归的时候将 需要遍历的节点 和 节点所存储的数组传下去
- this.deepFirstSearch(children[i], nodeList);
- }
- }
- return nodeList;
- }, */
- // 获取objectPath,由于截取去掉的'0.'后的字符串位数为15-17位不等(不一定是16位),所以采取拼接的方式
- Vue.prototype.$getObjectPathByRandom = function () {
- let a = Math.random().toString().slice(2, 10);
- let b = Math.random().toString().slice(2, 10);
- return a + b;
- }
- Vue.prototype.$md5 = md5
- function TimeFormatter(time){
- if(!time){
- return ''
- }
- let date = new Date(time)
- let year = date.getFullYear()
- let month = date.getMonth()+1
- let day = date.getDate()
- let hour = date.getHours()
- let min = date.getMinutes()
- let second = date.getSeconds()
- month<10?month = '0' + month:undefined
- day<10?day = '0' + day:undefined
- hour<10?hour = '0' + hour:undefined
- min<10?min = '0' + min:undefined
- second<10?second = '0' +second:undefined
- return year + '-' + month + '-' + day + ' ' + hour + ':' + min + ':' + second
- }
- Vue.prototype.$timeFormatter = TimeFormatter
- function ValidatePhone(val){
- let phoneReg = /^([0-9]{3,4}-)?[0-9]{7,8}$/;
- // let mobReg = /0?1[3|4|5|8][0-9]\d{8}$/;
- let mobReg = /0?1[0-9]\d{9}$/;
- if(phoneReg.test(val)||mobReg.test(val)){
- return true
- }else{
- return false
- }
- }
- Vue.prototype.$validatePhone = ValidatePhone
- function ValidateMobilePhone(val){
- let mobReg = /0?1[0-9]\d{9}$/;
- if (mobReg.test(val)) {
- return true
- } else {
- return false
- }
- }
- Vue.prototype.$ValidateMobilePhone = ValidateMobilePhone
- function ValidateInteger(val,max){
- let reg = /(^[0-9]\d*$)/
- if(reg.test(val)){
- return true
- }else{
- return false
- }
- }
- Vue.prototype.$validateInteger = ValidateInteger
|