import templateCode from './templateCode' export default function () { let code = templateCode; let _formOptions = this.options.formOptions.map(m => { let _op = m.map((m1, i) => { let _obj; //.data[0].hasOwnProperty("key") if (m1.data && m1.data.length && !m1.dataKey) { let m2 = JSON.parse(JSON.stringify(m1)); m2.data = m2.data.map(c => { return { key: c.label || c.key, value: c.label } }) _obj = JSON.stringify(m2) } else { _obj = JSON.stringify(m1) } return (i === 0 ? '' : '\n\t\t\t\t') + _obj }).join(','); //return JSON.stringify(m, null, '') return _op; }) code = code.replace('{#fields}', JSON.stringify(this.options.fields)) .replace('{#formOptions}', '[' + _formOptions.join('],\n\t\t\t\t[') + ']'); code = code.replace('}],', '\t\t\t\t\t}],') .replace("[{#tableOptions}]", JSON.stringify(this.options.tables, null, '\t')) .replace("[{#tabsOptions}]", JSON.stringify(this.options.tabs, null, '\t')) // fields: {#fields}, // formOptions: [{#formOptions}], // tables: [{#tables}], // tabs: [{#tabs}] var tabsText = this.options.tabs.length ? `
{{ item.name }}
{{ btnItem.name }}
`: '' code = code.replace('{#tabs}', tabsText); if (this.options.tables.length || this.options.tabs.length) { code = code.replace("{import_VolTable}", "import VolTable from '@/components/basic/VolTable'") code = code.replace(",{component_table}", ",'vol-table': VolTable") } else { code = code.replace("{import_VolTable}", '') code = code.replace("{component_table}", '') } if (this.options.tables.length) { code = code.replace('{table_ms}', ` tableBtnClick (item, btnIndex, index) { if (item.buttons[btnIndex].value == "add") { this.$refs["table" + index][0].addRow({}); return; } if (item.buttons[btnIndex].value == "del") { this.$refs["table" + index][0].delRow(); return; } }, tabsTableBtnClick (item, btnIndex, index) { if (item.buttons[btnIndex].value == "add") { this.$refs["tabsTable" + index][0].addRow({}); return; } if (item.buttons[btnIndex].value == "del") { this.$refs["tabsTable" + index][0].delRow(); return; } },`) code = code.replace('{#tables}', `
{{ item.name }}
{{ btnItem.name }}
`); } else { code = code.replace('{table_ms}', '') code = code.replace('{#tables}', ''); } const blob = new Blob([code], { type: "text/plain;charset=utf-8" }) if ('download' in document.createElement('a')) { // 非IE下载 const elink = document.createElement('a') elink.download = `code${new Date().valueOf()}.vue`; elink.style.display = 'none' elink.href = URL.createObjectURL(blob) document.body.appendChild(elink) elink.click() URL.revokeObjectURL(elink.href) // 释放URL 对象 document.body.removeChild(elink) } else { navigator.msSaveBlob(blob, fileName) } }