123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429 |
- import { value, switchs, date } from "./config";
- import Dialog from "../../miniprogram_npm/@vant/weapp/dialog/dialog";
- import { chineseNumber } from "./ChinaNumToEnglishNum";
- var _value = value;
- const app = getApp();
- Component({
- options: {
- addGlobalClass: true,//解决继承全局样式问题
- },
- lifetimes: {
- attached: function () { this.init(); }
- },
- properties: {
- type: { type: String, value: "add" },
- key: String
- },
- observers: {
- 'value': function (value) {
- let A = value[0][1]["value"] * 1 || 0;
- let B = (value[0][3]["value"] * 1 || 0) + (value[0][4]["value"] * 1 || 0) + (value[0][5]["value"] * 1 || 0) +
- (value[0][6]["value"] * 1 || 0) + (value[0][7]["value"] * 1 || 0);
- let C = value[0][8]["value"] * 1 || 0;
- if (A == 0 || C == 0) return false;
- value[0][9]["value"] = ((parseFloat(A - C + B) / parseFloat(A + B)) * 100).toFixed(2) + "%";
- if (this.result && this.result == value[0][9]["value"]) return false;
- this.result = value[0][9]["value"];
- this.setData({
- value
- })
- }
- },
- data: {
- Ios: app.globalData.Ios,
- value,
- active: '',
- activeObject: {},
- activeIndex: [],
- switchB: false,
- endDate: date(),
- switchs,
- submitLock: false,
- saveLock: false,
- btn: true,
- radioInputShow: false,
- },
- methods: {
- //组件石林进入页面接节点树执行
- async init () {
- try {
- // 商品请求
- var laompany = [];
- let res = await wx.$request({ method: "get", url: "/order/productDict/" });
- laompany = res.data.map(item => ({ key: item.id, value: item.name, month: item.month }));
- let { type, value, switchs } = this.data;
- switchs['laompany'] = laompany;
- switch (type) {
- // 已填报查看
- case 'watch':
- var resA = await wx.$request({ url: `/order/${this.data.key}/`, method: "get" });
- var data = resA.data.data;
- value = this.watchFunc(value, data, switchs);
- break;
- case 'draftsupdate':
- // 修改草稿
- var resB = await wx.$request({ url: `/order/${this.data.key}/`, method: "get" });
- var data = resB.data;
- console.log(data)
- value = this.draftUpdataFunc(value, data, switchs);
- break;
- case 'providedupdate':
- // 修改已填报
- var resA = await wx.$request({ url: `/order/${this.data.key}/`, method: "get" });
- var { data, edit_values, edit_file, edit_file2 } = resA.data;
- this.edit_file = edit_file;
- this.edit_file2 = edit_file2;
- value = this.updataFunc(value, data, edit_values, switchs);
- default:
- // 新增
- this.data.key && laompany.forEach((item, index) => {
- if (item.key == this.data.key) {
- value[0][10]["value"] = item.key;
- value[0][10]["index"] = index;
- value[0][11]['value'] = item['month'] + '个月';
- }
- })
- break;
- }
- this.setData({ value, switchs })
- } catch (err) { wx.$err(err) }
- },
- // 查看模式
- watchFunc (value, data, switchs) {
- return value.map(itemA => itemA.map(itemB => {
- if (!itemB.hasOwnProperty('value')) return itemB;
- if (itemB.name != "maturity") { itemB['value'] = data[itemB.name] === 0 ? 0 : data[itemB.name] || ''; }
- itemB['disabled'] = true;
- switchs.hasOwnProperty(itemB.name) && switchs[itemB.name].forEach((itemC, indexC) => {
- if (itemC.key === itemB.value) itemB["index"] = indexC;
- // 申请贷款产品 申请贷款期限关联
- if (itemB.name == 'laompany') {
- value[0][11]['value'] = itemC['month'] + '个月';
- }
- // 第一借款人与申请人关系特殊处理
- if (itemB.name == 'mstatus' && itemB.value == 1) {
- value[2][2] = { ...value[2][2], disabled: true, value: 0, index: 0 }
- }
- })
- return itemB
- })
- )
- },
- // 修改草稿
- draftUpdataFunc (value, data, switchs) {
- return value.map(itemA => itemA.map(itemB => {
- if (!itemB.hasOwnProperty('value')) return itemB;
- if (itemB.name != "maturity") {
- itemB['value'] = data[itemB.name] === 0 ? 0 : data[itemB.name] || '';
- }
- switchs.hasOwnProperty(itemB.name) && switchs[itemB.name].forEach((itemC, indexC) => {
- if (itemC.key === itemB.value) {
- itemB["index"] = indexC;
- };
- // 申请贷款产品 申请贷款期限关联
- if (itemB.name == 'laompany') {
- value[0][11]['value'] = itemC['month'] + '个月';
- }
- // 第一借款人与申请人关系特殊处理
- if (itemB.name == 'mstatus' && itemB.value == 1) {
- value[2][2] = { ...value[2][2], disabled: true, value: 0, index: 0 }
- }
- })
- return itemB
- }));
- },
- // 已填报修改模式
- updataFunc (value, data, edit_values, switchs) {
- // 后台更改贷款商品key
- return value.map(itemA => itemA.map(itemB => {
- if (!itemB.hasOwnProperty('value')) return itemB;
- if (itemB.name != "maturity") { itemB['value'] = data[itemB.name] === 0 ? 0 : data[itemB.name] || ''; }
- switchs.hasOwnProperty(itemB.name) && switchs[itemB.name].forEach((itemC, indexC) => {
- if (itemC.key === itemB.value) itemB["index"] = indexC;
- // 申请贷款产品 申请贷款期限关联
- if (itemB.name == 'laompany') {
- value[0][11]['value'] = itemC['month'] + '个月';
- }
- // 第一借款人与申请人关系特殊处理
- if (itemB.name == 'mstatus' && itemB.value == 1) {
- value[2][2] = { ...value[2][2], disabled: true, value: 0, index: 0 }
- }
- })
- edit_values.some(itemC => {
- if (itemC.name == itemB.name) {
- itemB['err'] = itemC['reason'];
- }
- return itemC.name == itemB.name;
- }) ? '' : itemB['disabled'] = true;
- return itemB
- }));
- },
- // 提交
- async submitFunc () {
- try {
- let { value, submitLock } = this.data, megs = [], data = {}, cvalue = [], tels = [], i = 0;
- 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.value && item.norequire)) {
- if (item.hasOwnProperty('value')) data[item.name] = item.value;
- return false
- };
- // 正常流程
- // 判断是否为空
- if (item.value !== 0 && !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)) {
- if (item.hasOwnProperty('reg_msg')) {
- megs.push(`${item.title},${item.reg_msg}`);
- } else {
- 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(itemT => itemT == item.value) || item.vlaue == '') && tels.push(item.value); ++i;
- }
- ;
- // 身份证验证
- if (item.name == 'inumber' && data['bdate']) {
- item.value.substr(6, 4) + "-" + item.value.substr(10, 2) + "-" + item.value.substr(12, 2) != data['bdate'] && megs.push(`身份证同出生日期不一致!`);
- }
- if (item.name == 'tsinumber' && data['tsbdate']) {
- item.value.substr(6, 4) + "-" + item.value.substr(10, 2) + "-" + item.value.substr(12, 2) != data['tsbdate'] && megs.push(`共同借款人身份证同出生日期不一致!`)
- }
- if (item.name == "dpratio") {
- /-/g.test(item.value) && megs.push("请重新填写申请贷款产品!")
- }
- data[item.name] = item.value;
- });
- tels.length !== i && megs.push(`手机号码不能重复`);
- if (megs.length != 0) {
- this.setData({ errorShow: true, megs, submitLock: false });
- return false;
- };
- data['category'] = 1;
- // 申请贷款期限 不用传
- delete data['maturity'];
- let resA = await wx.$request({ method: "post", url: "/order/", data });
- this.setData({ submitLock: false });
- Dialog.alert({ message: "已提交!" }).then(res => wx.redirectTo({ url: '/pages/accessory/index?data=' + resA.data }))
- } catch (err) { wx.$err(err); this.setData({ submitLock: false }); }
- },
- // 新增保存
- async saveFunc () {
- try {
- let { value, saveLock } = this.data, data = {};
- if (saveLock) return false;
- this.setData({ saveLock: true });
- // 拦截
- var requeire = ['name', 'tel'], megs = [];
- value = [...value[0], ...value[1], ...value[2], ...value[3]];
- var cvalue = [..._value[0], ..._value[1], ..._value[2], ..._value[3]];
- console.log(value)
- value.forEach((item, index) => {
- if (!item.hasOwnProperty('value')) return false;
- if (requeire.some(itemB => itemB == item.name)) {
- if (item.value !== 0 && !item.value) {
- megs.push(`${item.title}不能为空!`)
- return false
- };
- if (cvalue[index].reg && !cvalue[index].reg.test(item.value)) {
- megs.push(`${item.title}格式不正确!`); return false;
- };
- }
- data[item.name] = item.value;
- });
- data['category'] = 0;
- // 申请贷款期限 不用传
- delete data['maturity'];
- if (megs.length != 0) {
- this.setData({ errorShow: true, megs, saveLock: false });
- return false;
- };
- let resA = await wx.$request({ method: "post", url: "/order/", data });
- this.setData({ saveLock: false })
- Dialog.alert({ message: "已提交!" }).then(res => wx.redirectTo({ url: '/pages/accessory/index?data=' + resA.data }))
- } catch (err) {
- wx.$err(err)
- }
- },
- //草稿箱保存草稿
- async draftsUpdateSaveFunc () {
- try {
- let { value, saveLock, key } = this.data, data = {};
- if (saveLock) return false;
- this.setData({ saveLock: true });
- // 拦截
- var requeire = ['name', 'tel'], megs = [];
- value = [...value[0], ...value[1], ...value[2], ...value[3]];
- var cvalue = [..._value[0], ..._value[1], ..._value[2], ..._value[3]];
- value.forEach((item, index) => {
- if (!item.hasOwnProperty('value')) return false;
- if (requeire.some(itemB => itemB == item.name)) {
- if (item.value !== 0 && !item.value) {
- megs.push(`${item.title}不能为空!`)
- return false
- };
- if (cvalue[index].reg && !cvalue[index].reg.test(item.value)) {
- megs.push(`${item.title}格式不正确!`); return false;
- };
- }
- data[item.name] = item.value;
- });
- data['category'] = 0;
- // 申请贷款期限 不用传
- delete data['maturity'];
- if (megs.length != 0) {
- this.setData({ errorShow: true, megs, saveLock: false });
- return false;
- };
- let resA = await wx.$request({ method: "put", url: `/order/${key}/`, data });
- this.setData({ saveLock: false })
- Dialog.alert({ message: "已保存!" }).then(res => wx.redirectTo({ url: '/pages/accessory/index?data=' + resA.data }))
- } catch (err) {
- wx.$err(err)
- }
- },
- // 已填报修改上报
- async UpdateSaveFunc () {
- try {
- let { value, submitLock, key } = this.data, megs = [], data = {}, cvalue = [], tels = [], i = 0;
- 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.value && item.norequire)) {
- if (item.hasOwnProperty('value')) data[item.name] = item.value;
- return false
- };
- // 正常流程
- // 判断是否为空
- if (item.value !== 0 && !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)) {
- if (item.hasOwnProperty('reg_msg')) {
- megs.push(`${item.title},${item.reg_msg}`);
- } else {
- megs.push(`${item.title}格式不正确!`);
- }
- };
- // 号码不能相同 tel tstel ctel cttel
- if (item.name == 'tel' || item.name == 'tstel' || item.name == 'ctel' || item.name == 'cttel') {
- (!tels.some(itemT => itemT == item.value) || item.vlaue == '') && tels.push(item.value); ++i;
- }
- ;
- // 身份证验证
- if (item.name == 'inumber' && data['bdate']) {
- item.value.substr(6, 4) + "-" + item.value.substr(10, 2) + "-" + item.value.substr(12, 2) != data['bdate'] && megs.push(`身份证同出生日期不一致!`)
- }
- if (item.name == 'tsinumber' && data['tsbdate']) {
- item.value.substr(6, 4) + "-" + item.value.substr(10, 2) + "-" + item.value.substr(12, 2) != data['tsbdate'] && megs.push(`共同借款人身份证同出生日期不一致!`)
- }
- if (item.name == "dpratio") {
- /-/g.test(item.value) && megs.push("请重新填写申请贷款产品!")
- }
- data[item.name] = item.value;
- });
- tels.length !== i && megs.push(`手机号码不能重复`);
- if (megs.length != 0) {
- this.setData({ errorShow: true, megs, submitLock: false });
- return false;
- };
- data['category'] = 1;
- // 申请贷款期限 不用传
- delete data['maturity'];
- let resA = await wx.$request({ method: "put", url: `/order/${key}/`, data });
- this.setData({ submitLock: false });
- Dialog.alert({ message: "已提交!" }).then(res => wx.redirectTo({ url: `/pages/accessory/index?data=${resA.data}&imgs=${JSON.stringify(this.edit_file)}&images=${JSON.stringify(this.edit_file2)}` }))
- } catch (err) { wx.$err(err); this.setData({ submitLock: false }); }
- },
- // 输入
- inputFunc (e) {
- let { value } = this.data, { index } = e.currentTarget.dataset;
- value[index[0]][index[1]]['value'] = e.detail.value;
- if (value[index[0]][index[1]].hasOwnProperty("add")) value[index[0]][index[1]]['add'] = chineseNumber(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)) {
- this.setData({ switchB: true, active: name, activeIndex: index })
- }
- },
- // 隐藏单选框
- hideModal () { this.setData({ switchB: false }) },
- // 单选框赋值
- changeFunc (e) {
- let { activeIndex, value, switchs } = this.data;
- let _value = e.detail.value.split(",");
- value[activeIndex[0]][activeIndex[1]]['value'] = _value[0] * 1;
- value[activeIndex[0]][activeIndex[1]]['index'] = _value[1] * 1;
- // 申请贷款产品 申请贷款期限关联
- if (value[activeIndex[0]][activeIndex[1]]['name'] == 'laompany') {
- value[0][11]['value'] = switchs['laompany'][_value[1] * 1]['month'] + '个月';
- }
- // 第一借款人与申请人关系特殊处理
- if (value[activeIndex[0]][activeIndex[1]]['name'] == 'mstatus') {
- value[2][2] = {
- ...value[2][2], disabled: _value[0] == 1 ? true : false, value: _value[0] == 1 ? 0 : '', index: _value[0] == 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] == 1 ? false : true;
- }
- }
- this.setData({ value, switchB: false })
- },
- // 日期
- DateChange (e) {
- let { value } = this.data, { index } = e.currentTarget.dataset;
- value[index[0]][index[1]]['value'] = e.detail.value;
- this.setData({ value })
- },
- }
- })
|