123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469 |
- import log from '../config/js/log';
- import { getSendData, getAsyncDataFc } from '../config/js/picker';
- import interfaces from '../config/js/interfaces';
- import { inputCustomTapFc, inputCustomTapCatchFc, filterTypeObj, verifyTypeObj } from '../config/js/input';
- import { UpLoadFile, pics_splice } from '../config/js/pics';
- import sendSMS from '../config/js/sms';
- import { errObj } from './Msg.js';
- const Sys = uni.getSystemInfoSync();
- const getPickerAsyncData = async function(obj) {
- let _this = this;
- _this.waiting = true;
- obj.linkageNum = Number(obj.linkageNum);
- const {
- value,
- index,
- launch,
- datas,
- oldValue,
- customId,
- linkageNum
- } = obj;
- const {
- data_0,
- data_1
- } = datas;
-
- let sendData = {};
- try {
- switch (linkageNum) {
- case 2:
- if (!!_this.memoryData_1[value[0]]) {
- _this.async_1 = [..._this.memoryData_1[value[0]]];
- } else {
- sendData = getSendData(obj);
- const newData_1 = await getAsyncDataFc(sendData);
- _this.async_1 = [...newData_1];
- _this.memoryData_1[value[0]] = [...newData_1];
- }
- if (launch) {
- _this.value[1] = value[1];
- } else {
- _this.value[1] = 0;
- }
- break;
- case 3:
- if (launch) {
-
- sendData = getSendData({ ...obj,
- column: 0
- });
- const newData_1 = await getAsyncDataFc(sendData);
- _this.async_1 = [...newData_1];
- _this.memoryData_1[value[0]] = [...newData_1];
- _this.value[1] = value[1];
-
- sendData = getSendData({ ...obj,
- datas: { ...datas,
- data_1: [...newData_1]
- },
- column: 1
- });
- const newData_2 = await getAsyncDataFc(sendData);
- _this.async_2 = [...newData_2];
- if (!_this.memoryData_2[value[0]])
- _this.memoryData_2[value[0]] = [];
- _this.memoryData_2[value[0]][value[1]] = [...newData_2];
- _this.value[2] = value[2];
- } else {
- let newData_1;
- let newData_2;
- switch (index) {
- case 0:
-
- if (!!_this.memoryData_1[value[0]]) {
- newData_1 = [..._this.memoryData_1[value[0]]];
- } else {
- sendData = getSendData({ ...obj,
- column: 0
- });
- newData_1 = await getAsyncDataFc(sendData);
- _this.memoryData_1[value[0]] = [...newData_1];
- }
- _this.async_1 = [...newData_1];
- _this.value[1] = 0;
-
- if (!_this.memoryData_2[value[0]])
- _this.memoryData_2[value[0]] = [];
- if (!!_this.memoryData_2[value[0]][value[1]]) {
- newData_2 = [..._this.memoryData_2[value[0]][value[1]]];
- } else {
- sendData = getSendData({ ...obj,
- datas: { ...datas,
- data_1: [...newData_1]
- },
- column: 1
- });
- newData_2 = await getAsyncDataFc(sendData);
- _this.memoryData_2[value[0]][value[1]] = [...newData_2];
- }
- _this.async_2 = [...newData_2]
- _this.value[2] = 0;
- break;
- case 1:
- log('第二列更改')
- if (!_this.memoryData_2[value[0]])
- _this.memoryData_2[value[0]] = [];
- if (!!_this.memoryData_2[value[0]][value[1]]) {
- log('有记忆数据');
- newData_2 = [..._this.memoryData_2[value[0]][value[1]]];
- } else {
- log('没有记忆数据');
- sendData = getSendData(obj);
- newData_2 = await getAsyncDataFc(sendData);
- _this.memoryData_2[value[0]][value[1]] = [...newData_2];
- }
- _this.async_2 = [...newData_2];
- _this.value[2] = 0;
- break;
- default:
- break;
- }
- }
- break;
- }
- _this.oldValue = [...this.value];
- _this.waiting = false;
- } catch (e) {
-
- log(`picker async 异常: ${JSON.stringify(e)}`);
- _this.oldValue = [...this.value];
- _this.waiting = false;
- }
- }
- const isArray = function (data) {
- return data instanceof Array;
- }
- const isArrayAndHasLength = function (data) {
- return data instanceof Array && data.length > 0;
- }
- const typeObj = {
- input: 'input',
- radio: 'radio',
- checkbox: 'checkbox',
- textarea: 'textarea',
- picker_date: 'picker_date',
- picker_city: 'picker_city',
- picker_custom: 'picker_custom',
- picker_custom2: 'picker_custom2',
- pics: 'pics',
- infinitePics: 'infinitePics',
- ['switch']: 'switch'
- }
- import QSFormObj from './QSForm.js';
- const _app = {
- log,
- typeObj,
- UpLoadFile,
- pics_splice,
- sendSMS,
- verifyTypeObj,
- filterTypeObj,
- inputCustomTapFc,
- inputCustomTapCatchFc,
- Sys,
- getPickerAsyncData,
- isArray,
- isArrayAndHasLength,
- showToast(msg, type) {
- uni.showToast({
- title: msg,
- icon: type || 'none'
- })
- },
- regTest(name, val) {
- return verifyTypeObj[name].reg.test(val);
- },
- isNumber(param) {
- return typeof(param) === 'number';
- },
- countDays(Y, M, val, mode) {
- let days = [];
- if (mode >= 6) {
- days = new Date(Y, M + 1, 0).getDate();
- if (val) {
- val[2] = val[2] < days - 1 ? val[2] : days - 1;
- }
- }
- return {
- days,
- val
- };
- },
- countYears(sy, ey) {
- let _this = this;
- let y = [];
- let c = ey - sy;
- for (let i = 0; i <= c; i++) {
- y.push(sy + i);
- }
- return y;
- },
- hideLoading() {
- uni.hideLoading();
- },
- showLoading(msg, ifmask) {
- uni.showLoading({
- title: msg,
- mask: ifmask || false
- })
- },
- previewImage(imgPath, currentIndex) {
- if (!(imgPath instanceof Array))
- imgPath = [imgPath];
- uni.previewImage({
- urls: imgPath,
- current: currentIndex || 0
- })
- },
- filterParams(params, type, checkOneVariableName) {
- if (params.length === 0)
- return {};
- const arr = getParamsArray(type);
- if (params.length > 1) {
- const o = {};
- Object.keys(params).forEach((item, index) => {
- o[arr[index]] = params[index];
- })
- return o;
- } else {
- if(params[0] instanceof Object){
-
- if(checkOneVariableName) {
- const ps = Object.keys(params[0]);
- for(let i = 0; i < ps.length; i++) {
- if(arr.includes(ps[i])) {
- return params[0];
- }
- }
- return { [arr[0]]: params[0] };
- }else{
- return params[0];
- }
- }else{
- return { [arr[0]]: params[0] };
- }
- }
- },
- formatNum(num) {
- return num<10?('0' + num):num;
- },
- getUpLoadPromiseArray({itemArray, customId, upLoadData, required}) {
- if(itemArray.length === 0 && required) {
- return Promise.reject({...errObj['102'], errMsg: '上传图片长度为零'});
- }else{
- const promiseArr = [];
- for(let i = 0; i < itemArray.length; i++) {
- const item = itemArray[i];
- if(item.path) {
- promiseArr.push(UpLoadFile(customId, item.path, upLoadData));
- }else{
- if(item.required) {
- const errMsg = `${item.title||`第${i}张图片`}不能为空`;
- uni.showToast({title: errMsg, icon: 'none'});
- return Promise.reject({...errObj['102'], errMsg});
- }else{
- promiseArr.push(Promise.resolve(''));
- }
- }
- }
- return new Promise((resolve, reject)=>{
- const newArr = [...itemArray];
- uni.showLoading({
- title: '上传文件中'
- })
- Promise.all(promiseArr).then(res=>{
- uni.hideLoading();
- for(let i = 0; i < newArr.length; i++) {
- newArr[i].upLoadResult = res[i];
- }
- resolve(newArr);
- }).catch(err=>{
- uni.hideLoading();
- reject(err);
- })
- });
- }
- },
- delForm(obj) {
- QSFormObj.del(obj);
- },
- setForm(obj) {
- QSFormObj.set(obj);
- },
- getForm(name) {
- const {
- status,
- result
- } = QSFormObj.get({
- name
- });
- if (status === 'success') {
-
- return new Promise(async (resolve, reject) => {
- try{
- const {
- data
- } = result;
- const returnObj ={
- name,
- ...(await getValue(data))
- };
- resolve(returnObj);
- }catch(e){
-
- reject(e);
- }
- });
- } else {
- console.log(3)
-
- return Promise.reject(result);
- }
- }
- }
- export default _app;
- function renderUrlData(u, d) {
- let c = '';
- let n = 0;
- if (d) {
- for (let i in d) {
- let itemd = d[i];
- if(itemd instanceof Object || itemd instanceof Array) {
- itemd = JSON.stringify(itemd);
- }
- if (n > 0)
- c += '&' + i + '=' + itemd;
- else
- c += '?' + i + '=' + itemd;
- ++n;
- }
- }
- return u + c;
- }
- const errTypeObj = {
- required: 'required',
- verifyFc: 'verifyFc',
- verifyType: 'verifyType'
- }
- function getValue(obj) {
- const returnObj = {
- data: {},
- verifyErr: []
- };
- return new Promise(async (resolve, reject) => {
- try{
- for (const o in obj) {
- const {
- title,
- name,
- variableName,
- value,
- type,
- required,
- verifyFc,
- verifyType,
- customId,
- upLoadData
- } = obj[o];
- const verifyItem = {result: true, checkErrType: [], title, name, variableName, type, errItemArray:[] };
- returnObj.data[o] = value;
- switch (type){
- case typeObj.input:
- if(required && isEmpty(value)) {
- verifyItem.result = false;
- verifyItem.checkErrType.push(errTypeObj.required);
- }
-
- if(verifyFc&&!verifyFc(value)) {
- if(verifyItem.result) verifyItem.result = false;
- verifyItem.checkErrType.push(errTypeObj.verifyFc);
- }
-
- if(verifyType&&verifyTypeObj[verifyType]!==undefined&&verifyTypeObj[verifyType].reg&&!verifyTypeObj[verifyType].reg.test(value)) {
- if(verifyItem.result) verifyItem.result = false;
- verifyItem.checkErrType.push(errTypeObj.verifyType);
- }
- break;
- case typeObj.textarea:
- if(required && isEmpty(value)) {
- verifyItem.result = false;
- verifyItem.checkErrType.push(errTypeObj.required);
- }
-
- if(verifyFc&&!verifyFc(value)) {
- if(verifyItem.result) verifyItem.result = false;
- verifyItem.checkErrType.push(errTypeObj.verifyFc);
- }
-
- if(verifyType&&verifyTypeObj[verifyType]!==undefined&&verifyTypeObj[verifyType].reg&&!verifyTypeObj[verifyType].reg.test(value)) {
- if(verifyItem.result) verifyItem.result = false;
- verifyItem.checkErrType.push(errTypeObj.verifyType);
- }
- break;
- case typeObj.pics:
- if(isArrayAndHasLength(value)) {
- const notPathArr = value.filter(item=>!item.path && item.required);
- if(notPathArr.length > 0) {
- if(verifyItem.result) verifyItem.result = false;
- verifyItem.checkErrType.push(errTypeObj.required);
- verifyItem.errItemArray = notPathArr;
- }else{
- returnObj.data[o] = await (await _app.getUpLoadPromiseArray({itemArray: value, customId, upLoadData}));
- }
- }else{
- returnObj.data[o] = [];
- }
- break;
- case typeObj.infinitePics:
- if(isArrayAndHasLength(value)) {
- returnObj.data[o] = await (await _app.getUpLoadPromiseArray({itemArray: value, customId, upLoadData}));
- }else{
- if(required) {
- if(verifyItem.result) verifyItem.result = false;
- }else{
- returnObj.data[o] = [];
- }
- }
- break;
- default:
- if(required && isEmpty(value)) {
- verifyItem.result = false;
- verifyItem.checkErrType.push(errTypeObj.required);
- }
- break;
- }
- if(!verifyItem.result) returnObj.verifyErr.push(verifyItem);
- }
- resolve(returnObj);
- }catch(e){
-
- reject(e);
- }
- })
- }
- function isEmpty(val) {
- let bl;
- switch (typeof val){
- case 'object':
- if(val instanceof Array) {
- bl = val.length === 0;
- }
- break;
- default:
- bl = val === '';
- break;
- }
-
- return val === undefined || val === null || bl;
- }
|