之前寫一個動態可以增刪的表單時,偷懶用的element的組件,導致數據包了好幾層,所以為了拿出來進行了如下處理
<script> //import dataTable from "@/mixins/dataTable.js"; export default { //mixins: [dataTable], created() { this.getYear(); }, data() { return { url: "annualLeave/annualLeaveSets", modelForm: { domains: [ { value: { startYearDate: "0", endYearDate: "0", restDay: "0", restTime: "0" } } ] }, contentForm: {}, pageSizes: [40, 50, 100, 500, 1000], // 所有可選擇的條數 pageSize: 40 // 控制一頁顯示的條數 }; }, methods: { getYear() { this.$http .get("annualLeave/annualLeaveSets", { page: { pn: 1, size: 40 } }) .then(res => { this.modelForm.domains = res.content.content.map(res => { return { value: res }; }); }) .catch(res => {}); }, // submitForm() { // }, submitForm(formName) { this.$refs[formName].validate(valid => { if (valid) { // alert("submit!"); console.log(this.modelForm); this.contentForm = this.modelForm.domains.map(res => { return res.value; }); for (var i in this.contentForm) { if ( this.contentForm[i].startYearDate > this.contentForm[i].endYearDate ) { this.$message.error("第二個數字格式有誤"); } } // console.log(contentForm); // return; console.log(this.contentForm), this.$http .postJSON("annualLeave/annualLeaveSets/create", { items: this.contentForm }) .then(res => { this.$message({ message: "保存成功", type: "success" }); this.getYear(); }) .catch(res => { this.$message.error("保存失敗"); }); } else { console.log("error submit!!"); return false; } }); }, resetForm(formName) { this.$refs[formName].resetFields(); }, removeDomain(item) { var index = this.modelForm.domains.indexOf(item); console.log(this.modelForm); if (index !== -1) { this.modelForm.domains.splice(index, 1); console.log(this.modelForm); } }, addDomain() { this.modelForm.domains.push({ value: { startYearDate: "0", endYearDate: "0", restDay: "0", restTime: "0" } }); } } }; </script>
對於數組的循環這樣寫
this.contentForm = this.modelForm.domains.map(res => {
return res.value;
});
for (var i in this.contentForm) {
if (
this.contentForm[i].startYearDate >
this.contentForm[i].endYearDate
) {
this.$message.error("第二個數字格式有誤");
}
}