const contractDownload = () => { return { init() { this.standarDate = this.deepClone(this.data); this.onstandarViewData = this.deepClone(this.data); this.buystandarData = this.deepClone(this.buydata); this.buyonstandardViewData = this.deepClone(this.buydata); }, buyfill1: buyfill1, css: `table { background - color: #fff; border: none; margin - top: 30px; font - family: '標楷體'; width: 600px; } table tr: nth - child(even), table tr: nth - child(odd) { background - color: #fff; } table tr { font - size: 12pt; width: 100 %; } table tr h2 { font - size: 18pt; } table tr td { width: 100 %; height: 100 %; line - height: 2; display: flex; } table tr td.center { display: flex; justify - content: center; align - items: center; } table tr td.list { width: 100 %; height: 100 %; white - space: nowrap; display: flex; } table tr td.list span { width: 60px; min - height: 100 %; display: block; } table tr td.list > p { display: block; text - align: justify; } table tr td.list div { max - width: calc(100 % - 60px); white - space: normal; } table tr td.list div.text - justify { display: flex; width: 100 %; justify - content: space - between; } table tr.date td > div { width: 100 %; text - align: right; } table tr.date td > div.text - justify { display: flex; justify - content: space - between; } table td, table th { padding: 8px; }`, data: { illustrate: { editshow: false, plaintext: '茲因甲乙雙方就電梯設備保養.檢修事宜,同意訂定本契約,議定條款如后,並相互遵守條款約定。', }, partyA: { editshow: false, plaintext: partyAcompany, }, partyAcontractno: { editshow: false, plaintext: partyAcontractno, }, list: { plaintext: [ { editshow: false, origin: true, text: ``, deleted: false, id: 0, input_id: null }, { editshow: false, origin: true, text: `規格`, type: 'title', deleted: false, id: 1, input_id: null }, { editshow: false } ] } }, deepClone: function (obj) { let clone = Array.isArray(obj) ? [] : {}; for (let key in obj) { if (obj.hasOwnProperty(key)) { if (typeof obj[key] === 'object' && obj[key] !== null) { clone[key] = this.deepClone(obj[key]); if (clone[key].text != undefined) { } else { clone[key] = obj[key]; } } } } return clone; }, buydata: { }, exportFn(type) { const form = this.$refs.form; const prviewType = this.$refs.form.querySelector('#prview-type'); const list = this.$refs.form.querySelector('#privew-list'); const standardList = this.$refs.form.querySelector('#standard-prview-list'); const illustrate = this.$refs.form.querySelector('illustrate'); const standardIllustrate = this.$refs.form.querySelector('#standard-illustrate'); const partyA = this.$refs.form.querySelector('#partyA'); const partyAcontractno = this.$refs.form.querySelector('#partyAcontractno'); const total_price = this.$refs.form.querySelector('#total_price'); prviewType.value = type; if (type === 1) { const standarJsonText = this.buystandarDate.list.plaintext.map((item, idx) => { let text = ''; text = item.text.replace(/\s+/g, ""); this.buydata.list.plaintext[idx].text = this.buydata.list.plaintext[idx].text.replace(/\s+/g, ""); return { text: text, id: item.id } }); const jsonText = this.buydata.list.plaintext.map(item => { let text = ''; text = item.text; return { text: text, origin: item.origin ? 1 : 0, deleted: item.deleted ? 1 : 0, id: item.id, updated: item.updated ? 1 : 0 } }); list.value = JSON.stringify(jsonText); standardList.value = JSON.stringify(standarJsonText); illustrate.value = this.buydata.illustrate.plaintext; standardIllustrate.value = this.buyonstandardViewData.illustrate.plaintext; partyA.value = this.buydata.partyA.plaintext; partyAcontractno.value = this.buydata.partyAcontractno.plaintext; total_price.value = totalBuyPrice; form.submit(); return; } if (type === 2) { const standardJsonText = this.standarData.list.plaintext.map((item, idx) => { let text = ''; text = item.text.replace(/\s+/g, ""); if (this.data.list.plaintext[idx] !== undefined) { this.data.list.plaintext[idx].text = this.data.list.plaintext[idx].text.replace(/\s+/g, ""); } return { text: text, id: item.id } }) const jsonText = this.data.list.plaintext.map(item => { let text = ''; item.text; text = item.text; return { text: text, origin: item.origin ? 1 : 0, deleted: item.deleted ? 1 : 0, id: item.id, updated: item.updated ? 1 : 0 } }) list.value = JSON.stringify(jsonText); standardList.value = JSON.stringify(standarJsonText); illustrate.value = this.data.illustrate.plaintext; standardIllustrate.value = this.standardData.illustrate.plaintext; partyA.value = this.data.partyA.plaintext; partyAcontractno.value = this.data.partyAcontractno.plaintext; total_price.value = totalInstallPrice; form.submit(); return; } }, isBuyShow: true, sendBuyInputFn() { if (this.buyfilt1 == '') { alert('請輸入交貨期限'); return; } if (this.buyfilt1 < 1) { alert('交貨日期不得低於1日'); return; } if (buyArr[1].installment == 2) { } }, isBuyInputIng: true, } }; const contractNewInput = () => { return { init() { }, data: { contractno: '', customer: '', manager: '', vat: '', case_name: '', linkman: '', lm_tel: '', address: '', salesman: '', qc: '', qc: '', // files:[], }, step: 1, isLoading: false, customize: false, nextStepFn() { if (this.data.contractno == '') return alert('合約號為必填') this.isLoading = true if (this.step == 1) { this.getContractDate(); } }, nextStepKeyupFn(e) { if (e.keyCode != 13) return if (this.step == 1) { this.getContractDate(); console.log(this.step); } }, preStepFn() { if (this.step == 2) { this.step = 1 } }, getContractDate() { axios.get('./api/getContractData.php?contracttype=m&contractno=' + this.data.contractno).then(res => { if (!res.data) { this.step = 2 this.isLoading = false return } if (!this.customize) { console.log(res.data); this.data.customer = res.data.customer this.data.manager = res.data.manager this.data.vat = res.data.uscc this.data.case_name = res.data.case_name this.data.linkman = res.data.linkman this.data.lm_tel = res.data.lm_tel this.data.address = res.data.address this.data.salesman = res.data.salesman this.data.qc = res.data.qc } this.step = 2 this.isLoading = false }).catch(err => { console.error(err) this.isLoading = false }) }, save() { this.isLoading = true const form = new FormData(); form.append('contractno', this.data.contractno); form.append('customer', this.data.customer); form.append('manager', this.data.manager); form.append('vat', this.data.vat); form.append('case_name', this.data.case_name); form.append('linkman', this.data.linkman); form.append('lm_tel', this.data.lm_tel); form.append('address', this.data.address); form.append('salesman', this.data.salesman); form.append('qc', this.data.qc); form.append('contracttype', 'm'); form.append('user_id', user_id); for (var i = 0; i < this.data.files.length; i++) { form.append('files[]', this.data.files[i]); } axios.post('./api/postNewContractData.php', form).then(res => { console.log(res); if (res.status === 201) { alert('儲存成功'); this.step = 1 this.data.contractno = '' this.data.customer = '' this.data.manager = '' this.data.vat = '' this.data.case_name = '' this.data.linkman = '' this.data.lm_tel = '' this.data.address = '' this.data.salesman = '' this.data.qc = '' this.data.files = [] this.customize = false } else { alert('儲存失敗!可能為以下錯誤:\n' + res.data) } this.isLoading = false }).catch(error => { let code = error.response.status; if (code == 422) { this.fail_arr = error.response.data this.errorFn(); } if (code == 500) { alert('儲存失敗!可能為以下錯誤:\n' + error.response.data) } this.isLoading = false }) }, errorFn() { let msg = '' for (let i = 0; i < this.fail_arr.length; i++) { msg += this.fail_arr[i] + '、' } alert(msg) }, uploadFiles(e) { this.data.files = e.target.files }, } }; ////////////////////////////// //// 合約簽回(修理) //// //// 製作人:梓誠 /// 時間 : ////////////////////////////// const contractRepair = () => { return { init() { }, data: { contractno: '', company: '', repairer: '', repaireid: '', facilityno: '', taxid: '', invoice: '', //發票抬頭 type: '', //工程類別需新增,用 post address: '', repair_no: '', total_price: '', sign_date: '', contract_status: '', }, step: 1, isLoading: false, customize: false, nextStepFn() { if (this.data.repair_no == '') return alert('合約號為必填') this.isLoading = true if (this.step == 1) { this.getContractDate(); } }, nextStepKeyupFn(e) { if (e.keyCode != 13) return if (this.step == 1) { this.getContractDate(); console.log(this.step); } }, // 抓資料 getContractDate() { axios.get('./api/getContractData.php?contracttype=r&repair_no=' + this.data.repair_no).then(res => { if (!res.data) { this.step = 2; this.isLoading = false; // console.log(123); return } if (!this.customize) { // console.log(res.data); this.data.contractno = res.data.contractno; this.data.company = res.data.company; this.data.repairer = res.data.name; this.data.facilityno = res.data.facilityno; this.data.taxid = res.data.taxid; this.data.invoice = res.data.invoice; this.data.address = res.data.address; this.data.repair_no = res.data.repair_no; this.data.total_price = res.data.total_price; this.data.repaireid = res.data.repairerid; this.data.sign_date = res.data.sign_date; this.data.contract_status = res.data.contract_status; } this.step = 2; this.isLoading = false; // console.log(user_name); // console.log(this.data.sign_date); }).catch(err => { console.log(err); alert(err.response.data); this.isLoading = false }) }, preStepFn() { if (this.step == 2) { if (confirm('回到上一頁會初始化資料,確定要返回嗎?')) { this.step = 1; this.data.contractno = ''; this.data.company = ''; this.data.repairer = ''; this.data.facilityno = ''; this.data.taxid = ''; this.data.invoice = ''; this.data.address = ''; this.data.repair_no = ''; this.data.total_price = ''; this.data.repaireid = ''; this.data.sign_date = ''; this.data.contract_status = ''; return; } } }, save() { this.isLoading = true; const form = new FormData(); form.append('contractno', this.data.contractno); form.append('company', this.data.company); form.append('repairid', this.data.repaireid); form.append('facilityno', this.data.facilityno); form.append('taxid', this.data.taxid); form.append('invoice', this.data.invoice); form.append('address', this.data.address); form.append('repair_no', this.data.repair_no); form.append('total_price', this.data.total_price); form.append('sign_date', this.data.sign_date); form.append('contract_status', this.data.contract_status); form.append('contracttype', 'r'); form.append('user_id', user_id); form.append('type', this.data.type); axios.post('./api/postContractData.php', form).then(res => { console.log(res.status); if (res.status === 200) { alert('儲存成功'); this.step = 1; this.data.contractno = ''; this.data.company = ''; this.data.repaireid = ''; this.data.facilityno = ''; this.data.repairer = ''; this.data.taxid = ''; this.data.invoice = ''; this.data.address = ''; this.data.repair_no = ''; this.data.total_price = ''; this.data.user_id = ''; this.data.type = ''; this.data.sign_date = ''; this.data.contract_status = ''; } this.isLoading = false; }).catch(error => { let code = error.response.status; if (code == 422) { this.fail_arr = error.response.data; this.errorFn(); console.log(error.response.data); } if (code == 500) { alert('儲存失敗!可能為以下錯誤:\n' + error.response.data); } this.isLoading = false; }) }, errorFn() { let msg = ''; for (let i = 0; i < this.fail_arr.length; i++) { msg += this.fail_arr[i] + '、'; } alert(msg); }, uploadFiles(e) { this.data.files = e.target.files; } } }; const contractInput = () => { return { init() { $('.contract-input-component .form .dropdown').dropdown(); axios.get('./twzip.json').then(res => { this.cities = res.data.cities }) }, cities: [], data: { contractno: 'B23100060', total_price: '', //合約總價 vat: '', //統一編號 mtype: 'A', //維修型態 phone: '', //客戶電話 email: '', //Email mworker: '', //保養員 mcycle: '', //保養頻率 salesman: '', //營業員 contract_begin_date: '', //合約開始時間 contract_end_date: '', //合約終止時間 area: '', //區域 zip: '', //郵遞區號 address: '', //地址 customer: '', //立約人 partyA: '', //業務聯繫人 partyAaddress: '', //業務聯繫人地址 partyAphone: '', //業務聯繫人電話 partyAemail: '', //業務聯繫人email files: [], //附件檔案 num: '', //電梯數量 disabled: false, //資料庫是否有電梯數量資料 elevators: [], //機種、載重、人乘、樓停、樓層、速度、緯度、經度、開門方式、保養別、廠牌、竣檢日、許可證日期 }, customize: false, step: 1, isLoading: false, fail_arr: [], nextStepFn() { if (this.step == 1) { if (this.data.contractno == '') return alert('請輸入合約號'); this.isLoading = true this.getContractDate(); } else if (this.step == 2) { if (this.data.num <= 0) return alert('請填寫電梯數量!') if (!this.data.disabled) { this.createElevator(); } this.step = 3 } }, nextStepKeyupFn(e) { if (e.keyCode !== 13) return if (this.step == 1) { if (this.data.repair_no == '') return alert('請輸入合約號'); this.isLoading = true this.getContractDate(); } else if (this.step == 2) { this.step = 3 } }, createElevator() { for (let i = 0; i < this.data.num; i++) { this.data.elevators.push({ spec: '', //規格 weight: '', //載重 speed: '', //速度 persons: '', //人乘 stop: '', //樓停 floors: '', //樓層 latitude: '', //緯度 longitude: '', //經度 elevator_brand: '', //廠牌 opendoor: '', //開門方式 maintainance: '', //保養別 takecertificatedate: '', //竣檢日 useful_date: '', //許可證有效日期 }) } }, getContractDate() { axios.get('./api/getContractData.php?contracttype=b&contractno=' + this.data.contractno).then(res => { if (!res.data) { this.step = 2 this.isLoading = false return } if (!this.customize) { console.log(res.data); this.data.total_price = res.data.sold_price this.data.salesman = res.data.salesman this.data.contract_begin_date = res.data.contract_begin_date this.data.contract_end_date = res.data.contract_end_date this.data.address = res.data.address this.data.customer = res.data.customer this.data.partyA = res.data.customer this.data.partyAaddress = res.data.address this.data.num = res.data.num this.data.disabled = (res.data.num > 0) ? true : false; this.data.elevators = res.data.elevators let cityIndex = this.data.address.indexOf('市'); console.log(cityIndex); if (cityIndex == -1) { cityIndex = this.data.address.indexOf('縣'); } if (cityIndex > 1) { // 獲取''市''前面的兩個字 let city = this.data.address.substring(cityIndex - 2, cityIndex + 1); this.data.area = city; } else { this.data.area = '' } } this.step = 2 this.isLoading = false }).catch(err => { console.error(err) this.isLoading = false }) }, preStepFn() { if (this.step == 2) { if (confirm('回到上一頁會將會初始化資料,確定返回嗎?')) { this.step = 1 this.data.total_price = '' this.data.salesman = '' this.data.contract_begin_date = '' this.data.contract_end_date = '' this.data.address = '' this.data.customer = '' this.data.partyA = '' this.data.partyAaddress = '' this.step = 1 this.data.num = '' this.data.disabled = false this.data.elevators = [] this.data.files = [] this.data.vat = '' this.data.mtype = '' this.data.phone = '' this.data.email = '' this.data.mworker = '' this.data.mcycle = '' this.data.area = '' this.data.zip = '' this.data.partyAphone = '' this.data.partyAemail = '' return; } } else if (this.step == 3) { this.step = 2 } }, save() { this.isLoading = true const form = new FormData(); form.append('contractno', this.data.contractno); form.append('total_price', this.data.total_price); form.append('vat', this.data.vat); form.append('mtype', this.data.mtype); form.append('phone', this.data.phone); form.append('email', this.data.email); form.append('mworker', this.data.mworker); form.append('mcycle', this.data.mcycle); form.append('salesman', this.data.salesman); form.append('contract_begin_date', this.data.contract_begin_date); form.append('contract_end_date', this.data.contract_end_date); form.append('address', this.data.address); form.append('area', this.data.area); form.append('customer', this.data.customer); form.append('partyA', this.data.partyA); form.append('partyAaddress', this.data.partyAaddress); form.append('partyAphone', this.data.partyAphone); form.append('partyAemail', this.data.partyAemail); form.append('user_id', user_id); form.append('user_name', user_name); form.append('num', this.data.num); form.append('elevators', JSON.stringify(this.data.elevators)); form.append('contracttype', 'b'); // 如果有附件檔案,可以逐一加入 for (var i = 0; i < this.data.files.length; i++) { form.append('files[]', this.data.files[i]); } axios.post('./api/postContractData.php', form).then(res => { console.log(res.status); if (res.status === 200) { alert('儲存成功'); this.step = 1 this.data.total_price = '' this.data.salesman = '' this.data.contract_begin_date = '' this.data.contract_end_date = '' this.data.address = '' this.data.customer = '' this.data.partyA = '' this.data.partyAaddress = '' this.step = 1 this.data.num = '' this.data.disabled = false this.data.elevators = [] this.data.files = [] this.data.vat = '' this.data.mtype = '' this.data.phone = '' this.data.email = '' this.data.mworker = '' this.data.mcycle = '' this.data.area = '' this.data.zip = '' this.data.partyAphone = '' this.data.partyAemail = '' } this.isLoading = false }).catch(error => { let code = error.response.status; if (code == 422) { this.fail_arr = error.response.data this.errorFn(); } if (code == 500) { alert('儲存失敗!可能為以下錯誤:\n' + error.response.data) } this.isLoading = false }) }, errorFn() { let msg = '' for (let i = 0; i < this.fail_arr.length; i++) { msg += this.fail_arr[i] + '、' } alert(msg) }, uploadFiles(e) { this.data.files = e.target.files }, } }; const contractNewApply = () => { return { step: 1, isLoading: false, data: { mid: mid, vol_no: contractno, salesman: salesman, salesmanname: salesmanname, apply_date: apply_date, apply_type: 'A', case_name: case_name, company: company, manager: manager, vat: vat, total_price: price_total, price_a: price_a, price_b: price_b, address: address, workdeadline_a: 30, //完工期限: 幾天內安裝完成,預設30 workdeadline_b: 7, //完工期限: 幾天內整理完善,預設7 regulations: 10, //附則 freedeadline: 18, //免保期限(月) tradeaddress: '', //交貨地點 tradedeadline: 90, //交貨期限 items: items, }, pays: { 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, }, tickets: { 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, }, localnumber(num) { return num.toLocaleString(); }, storageFn() { this.isLoading = true const isFirst = 1; const form = new FormData(); form.append('mid', this.data.mid); form.append('vol_no', this.data.vol_no); form.append('salesman', this.data.salesman); form.append('apply_date', this.data.apply_date); form.append('apply_type', this.data.apply_type); form.append('case_name', this.data.case_name); form.append('company', this.data.company); form.append('manager', this.data.manager); form.append('vat', this.data.vat); form.append('total_price', this.data.total_price); form.append('price_a', this.data.price_a); form.append('price_b', this.data.price_b); form.append('address', this.data.address); form.append('workdeadline_a', this.data.workdeadline_a); form.append('workdeadline_b', this.data.workdeadline_b); form.append('regulations', this.data.regulations); form.append('freedeadline', this.data.freedeadline); form.append('tradeaddress', this.data.tradeaddress); form.append('tradedeadline', this.data.tradedeadline); form.append('isFirst', isFirst); form.append('user_id', user_id); axios.post('./api/postContractNewApplyData.php', form).then(res => { if (res.status === 200) { alert('暫存成功'); console.log(res.data); } this.isLoading = false }).catch(error => { alert('儲存失敗!可能為以下錯誤:\n' + error.response.data) this.isLoading = false }) } } } const contract_edit = () => { console.log(contract_status); return { isLoading: false, data: { id: id, repair_no: repair_no, contractno: contractno, company: company, taxid: taxid, facilityno: facilityno, address: address, type: type, invoice: invoice, repaireid: repaireid, total_price: total_price, sign_date: sign_date, user_id: user_id, contract_status: contract_status }, fail_arr: [], deleteFileFn(id) { if (!confirm("確定要刪除嗎?")) return this.data.files = this.data.files.filter(file => id != file.id) this.data.deletefiles.push(id) console.log(this.data.deletefiles); }, save() { this.isLoading = true const form = new FormData(); form.append("id", this.data.id); form.append("repair_no", this.data.repair_no); form.append("contractno", this.data.contractno); form.append("company", this.data.company); form.append("taxid", this.data.taxid); form.append("facilityno", this.data.facilityno); form.append("address", this.data.address); form.append("type", this.data.type); form.append("invoice", this.data.invoice); form.append("repaireid", this.data.repaireid); form.append("total_price", this.data.total_price); form.append("sign_date", this.data.sign_date); form.append("user_id", user_id); form.append("contract_status", this.data.contract_status); form.append('contracttype', 'r'); axios.post("./api/putContractData.php", form).then(res => { console.log(res); if (res.status === 200) { alert("更新成功"); window.location.reload(); } this.isLoading = false }).catch(error => { console.log(this.data); console.log(error); let code = error.response.status; if (code == 422) { this.fail_arr = error.response.data this.errorFn() } if (code == 500) { alert("更新失敗!可能為以下錯誤:\n" + error.response.data) } this.isLoading = false }) }, uploadFiles(e) { this.data.newfiles = e.target.files }, errorFn() { let msg = "" for (let i = 0; i < this.fail_arr.length; i++) { msg += this.fail_arr[i] + "、" } alert(msg) } } } const bonunsIndex = () => { return { data: { contract_no: contract_no, facility_no: facility_no, bonus_verson: bonus_verson, receiver: receiver, maintain_month: '', maintain_price_total: maintain_price_total, payDaydue: payDaydue, bonusArr: [], contract_type: contract_type, manager: '', bonus_type: '', bouns_receiver: '', bouns_amount: '', payDay: '', bouns_regulation: '', contract_manger: 'M0001', user_id: user_id, maintain_type: maintain_type, pay_kind: pay_kind, receivable_date_due: receivable_date_due, total: total, fee_per_st: fee_per_st, commission_fee: commission_fee, discount: discount, bonus_actual: '', note: '', id: id, // bonus_actual: bonus_actual, // payDay: payDay, // note: note }, step: 1, isLoading: false, fail_arr: [], nextStepFn() { if (this.step == 1) { if (this.data.contract_no == '') return alert('請輸入合約號'); this.isLoading = true; this.getContractData(); } else if (this.step == 2) { if (!this.data.disabled) { this.calBons(); } } this.step = 3; }, nextStepKeyupFn(e) { if (e.keyCode !== 13) return; if (this.step == 1) { if (this.data.contract_no == '') return alert('請輸入合約號'); this.isLoading = true; this.getContractData(); } else if (this.step == 2) { this.step = 3; s } }, issue() { console.log(1233); }, getContractData() { axios.get('./api/get.php?contract_no=' + this.data.contract_no).then(res => { if (!res.data) { this.step = 2; this.isLoading = false; return; } if (!this.customize) { this.data.contract_no = res.data.BillNo; this.data.facility_no = res.data.facility; this.data.bonus_verson = res.data.bonuns_verson; this.data.receiver = res.data.personId; this.data.maintain_price_total = res.data.amount; // this.data.bonuns_verson = 2; this.data.maintain_month = res.data.maintain_month; this.data.payDay = res.data.payDay; axios.get('./api/getAccount.php?accountid=' + res.data.personId).then(res => { this.data.manager = res.data.manager; }).catch(err => { console.log(err); }) }; this.step = 2; this.isLoading = false; }).catch(err => { errorFn(); }) // axios.get('./api/getAccount.php?accountid=' + this.data.receiver).then(res => { // console.log(res); // this.data.manager = res.result.manager; // }).catch(err => { // console.log(err); // }) }, save() { if (this.step == 1) { // window.history.back(); const form = new FormData(); form.append('id', this.data.id); form.append('bonus_actual', this.data.bonus_actual); form.append('pay_day', this.data.payDay); form.append('note', this.data.note); form.append('user_id', this.data.user_id); form.append('postType', 'b'); axios.post('./api/postStatus.php', form).then((res) => { alert('更新成功'); window.history.go(-1); }).catch((err) => { // alert('更新失敗'); alert('更新失敗' + err.response.data); }) } }, stop() { if (this.step == 1) { const form = new FormData(); form.append('id', this.data.id); form.append('bonus_actual', this.data.bonus_actual); form.append('pay_day', this.data.payDay); form.append('note', this.data.note); form.append('postType', 'c'); axios.post('./api/postStatus.php', form).then((res) => { console.log(res); alert('更新成功'); window.history.go(-1); }).catch((err) => { alert(err.response.data); }) } }, calBons() { console.log(this.step); const form = new FormData(); form.append('cotract_no', this.data.contract_no); form.append('bonuns_verson', this.data.bonus_verson); form.append('contract_type', this.data.contract_type); form.append('maintain_month', this.data.maintain_month); form.append('maintain_price_total', this.data.maintain_price_total); form.append('payDay', this.data.payDay); form.append('receiver', this.data.receiver); form.append('manager', this.data.manager); axios.post('./api/postCalBouns.php', form).then(res => { // console.log(res); this.data.bonusArr = res.data.bonus_array; console.log(this.data.bonusArr); this.step = 3; this.isLoading = false; }).catch(err => { console.log(err.response.data); alert(err.response.data); this.step = 2; }) }, errorFn() { let msg = ''; for (let i = 0; i < this.fail_arr.length; i++) { msg += this.fail_arr[i] + '、'; } alert(msg); }, } } const bonusIndexTest = () => { return { data: { bonus_verson: '2.1', receiver: 'M0225', maintain_month: '12', client_type: '', maintain_price_month: '3000', maintain_price_total: '3000', commission_fee: '0', bonusArr: [], manager: 'M0008', bonus_type: '', bouns_receiver: '', bouns_amount: '', payDay: '20240101', bouns_regulation: '', contract_manger: 'M0001', paykindArr: ['請選擇月份', 1, 2, 3, 6, 12], paykind: '', checkbox: '', }, checkbox: 0, step: 1, isLoading: false, fail_arr: [], issue() { console.log('123'); }, nextStepFn() { if (this.step == 1) { this.checkbox = Number(this.data.checkbox); this.step = 2; } else if (this.step == 2) { this.isLoading = true; this.calBons(); } // this.step = 3; console.log(this.step); console.log(this.checkbox); }, nextStepKeyupFn(e) { if (e.keyCode !== 13) return; if (this.step == 1) { this.step = 2; } else if (this.step == 2) { this.step = 3; } }, getContractData() { axios.get('./api/get.php?contract_no=' + this.data.contract_no).then(res => { if (!res.data) { this.step = 2; this.isLoading = false; return; } if (!this.customize) { this.data.contract_no = res.data.BillNo; this.data.facility_no = res.data.facility; this.data.bonus_verson = res.data.bonuns_verson; this.data.receiver = res.data.personId; this.data.maintain_price_total = res.data.amount; // this.data.bonuns_verson = 2; this.data.maintain_month = res.data.maintain_month; this.data.payDay = res.data.payDay; axios.get('./api/getAccount.php?accountid=' + res.data.personId).then(res => { this.data.manager = res.data.manager; }).catch(err => { console.log(err); }) }; this.step = 2; this.isLoading = false; }).catch(err => { errorFn(); }) // axios.get('./api/getAccount.php?accountid=' + this.data.receiver).then(res => { // console.log(res); // this.data.manager = res.result.manager; // }).catch(err => { // console.log(err); // }) }, save() { if (this.step == 3) { const form = new FormData(); form.append('status', 'save'); form.append('checkbox', this.data.checkbox); form.append('bonuns_verson', this.data.bonus_verson); form.append('contract_type', this.data.contract_type); form.append('maintain_month', this.data.maintain_month); form.append('maintain_price_total', this.data.maintain_price_total); form.append('payDay', this.data.payDay); form.append('receiver', this.data.receiver); form.append('manager', this.data.manager); form.append('paykind', this.data.paykind); form.append('contract_manger', this.data.contract_manger); form.append('maintain_price_month', this.data.maintain_price_month); form.append('commission_fee', this.data.commission_fee); form.append('client_type', this.data.client_type); axios.post('./api/postCalBouns.php', form).then(res => { console.log(res.data); }).catch(err => { console.log(err.response.data); }) } }, calBons() { const form = new FormData(); form.append('checkbox', this.data.checkbox); form.append('bonuns_verson', this.data.bonus_verson); form.append('contract_type', this.data.contract_type); form.append('maintain_month', this.data.maintain_month); form.append('maintain_price_total', this.data.maintain_price_total); form.append('payDay', this.data.payDay); form.append('receiver', this.data.receiver); form.append('manager', this.data.manager); form.append('paykind', this.data.paykind); form.append('contract_manger', this.data.contract_manger); form.append('maintain_price_month', this.data.maintain_price_month); form.append('commission_fee', this.data.commission_fee); form.append('client_type', this.data.client_type); axios.post('./api/postCalBouns.php', form).then(res => { // console.log(res); this.data.bonusArr = res.data.bonus_array; console.log(this.data.bonusArr); this.step = 3; this.isLoading = false; }).catch(err => { console.log(err.response.data); alert(err.response.data); this.step = 1; }) }, errorFn() { let msg = ''; for (let i = 0; i < this.fail_arr.length; i++) { msg += this.fail_arr[i] + '、'; } alert(msg); }, } } const renovateInput = () => { return { data: { contract_no: '', customer: '', salesman: '', address: '', paykind: [0, 0, 0, 0, 0, 0, 0], payarr: ['', 1, 2, 6, 12], total: '', // paykindTotal: this.total(), }, step: 1, isLoading: false, nextStepFn() { if (this.step == 1) { if (this.data.contract_no == '') return alert('請輸入合約號'); this.isLoading = true; this.getContractData(); } else if (this.step == 2) { console.log('1111'); } // this.step = 3; }, // 計算總共分期月數 totalFn() { let total = 0 for (let i = 0; i < this.data.paykind.length; i++) { if (this.data.paykind[i] != '0') { total += Number(this.data.paykind[i]); } } // console.log(123); this.data.total = total; }, nextStepKeyupFn() { }, preStepFn() { this.step -= 1; console.log(this.step); }, getContractData() { axios.get('../api/getContractData.php?contracttype=t&contract_no=' + this.data.contract_no, (res) => { }) }, save() { }, getContractData() { this.step = 2; this.isLoading = false; console.log(this.step); } } }