import { value, switchs, date } from "./config"; var _value = value; const app = getApp(); Component({ options: { addGlobalClass: true,//解决继承全局样式问题 }, lifetimes: { attached: function () { this.init(); } }, properties: { type: { type: String, value: "edit" }, }, data: { value, active: '', activeObject: {}, activeIndex: [], switchB: false, endDate: date(), switchs, submitLock: false, saveLock: false, btn: true, radioInputShow: false, }, methods: { //组件石林进入页面接节点树执行 init () { // 商品请求 wx.$request({ method: "get", url: "/order/productDict/" }).then(res => { this.setData({ shop: res.data }) }).catch(err => wx.$err(err)); let { type, value } = this.data; switch (type) { case 'watch': this.watchFunc(value); break; default: break; } }, // 查看模式 watchFunc (data) { data = data.map(itemA => itemA.map(itemB => { if (itemB.hasOwnProperty('value')) itemB['disabled'] = true; return itemB }) ) this.setData({ data, btn: false }) }, // 提交 submitFunc () { let { value, submitLock } = this.data, megs = [], data = {}, cvalue = [], tels = []; if (submitLock) return false; this.setData({ submitLock: true }); if (value[2][6]['value'] == 0) { value = [...value[0], ...value[1], ...value[2]]; cvalue = [..._value[0], ..._value[1], ..._value[2]]; } else { value = [...value[0], ...value[1], ...value[2], ...value[3]]; cvalue = [..._value[0], ..._value[1], ..._value[2], ..._value[3]]; } value.forEach((item, index) => { // 特殊格式 非必须 if (!item.hasOwnProperty('value') || item.norequire) { if (item.hasOwnProperty('value')) data[item.name] = item.value; return false }; // 正常流程 // 判断是否为空 if (!item.value) { megs.push(`${item.title}不能为空!`); return false; }; // 数字类型 if (item.type == 'number' && !/^\d+.?\d*$/.test(item.value)) { megs.push(`${item.title}必须是数字!`); return false; } // 正则判断 if (cvalue[index].reg && !cvalue[index].reg.test(item.value)) { megs.push(`${item.title}格式不正确!`); return false; }; // 号码不能相同 tel tstel ctel cttel if (item.name == 'tel' || item.name == 'tstel' || item.name == 'ctel' || item.name == 'cttel') (!tels.some(item.value) || item.vlaue == '') && tels.push(item.value) ; data[item.name] = item.value; }); (tels.length !== 4 && tels.length != 0) && megs.push(`手机号码不能重复`); if (megs.length != 0) { this.setData({ errorShow: true, megs, submitLock: false }); return false; }; console.log(data) }, // 保存 saveFunc () { let { value, saveLock } = this.data, data = {}; value = [...value[0], ...value[1], ...value[2], ...value[3]]; value.forEach(item => { if (item.hasOwnProperty('value')) data[item.name] = item.value }); console.log(data) }, // 输入 inputFunc (e) { let { value } = this.data, { index } = e.currentTarget.dataset; value[index[0]][index[1]]['value'] = e.detail.value; this.setData({ value }) }, // switch switchFunc (e) { let { value, switchs } = this.data, { index } = e.currentTarget.dataset; let { name } = value[index[0]][index[1]]; if (switchs.hasOwnProperty(name)) { console.log(switchs[name]) this.setData({ switchB: true, active: name, activeIndex: index }) } else { this.setData({ radioInputShow: true, activeIndex: index }); } }, // 隐藏单选框 hideModal () { this.setData({ switchB: false }) }, tehideModal () { this.setData({ radioInputShow: false }) }, // 单选框赋值 changeFunc (e) { let { activeIndex, value } = this.data; let _value = e.detail.value * 1; value[activeIndex[0]][activeIndex[1]]['value'] = _value; // 第一借款人与申请人关系特殊处理 if (value[activeIndex[0]][activeIndex[1]]['name'] == 'mstatus') { console.log(_value) value[2][2] = { ...value[2][2], disabled: _value == 1 ? true : false, value: _value == 1 ? 0 : '' } } if (value[activeIndex[0]][activeIndex[1]].hasOwnProperty('forlen')) { for (let i = 1; i < (value[activeIndex[0]][activeIndex[1]]['forlen'] + 1); i++) { value[activeIndex[0]][(activeIndex[1] + i)]['norequire'] = _value == 0 ? false : true; } } this.setData({ value }) }, // 单选 输入 // radioInputChangeFunc (e) { // let { activeIndex, value } = this.data; // value[activeIndex[0]][activeIndex[1]]['value'] = _value; // }, // 日期 DateChange (e) { let { value } = this.data, { index } = e.currentTarget.dataset; value[index[0]][index[1]]['value'] = e.detail.value; this.setData({ value }) }, } })