91 lines
2.3 KiB
JavaScript
91 lines
2.3 KiB
JavaScript
var app = getApp()
|
|
|
|
Page({
|
|
data: {
|
|
items: [],
|
|
inputDate: "",
|
|
values: {},
|
|
existingRecords: []
|
|
},
|
|
|
|
onLoad: function () {
|
|
var today = this.formatDate(new Date())
|
|
this.setData({ inputDate: today, items: app.globalData.items })
|
|
this.loadExisting(today)
|
|
},
|
|
|
|
onShow: function () {
|
|
var items = app.globalData.items
|
|
if (items.length !== this.data.items.length ||
|
|
items.some(function (v, i) { return v !== this.data.items[i] }, this)) {
|
|
this.setData({ items: items })
|
|
}
|
|
this.loadExisting(this.data.inputDate)
|
|
},
|
|
|
|
loadExisting: function (date) {
|
|
var records = app.globalData.records.filter(function (r) { return r.date === date })
|
|
this.setData({ existingRecords: records })
|
|
},
|
|
|
|
onDateChange: function (e) {
|
|
var date = e.detail.value
|
|
this.setData({ inputDate: date, values: {} })
|
|
this.loadExisting(date)
|
|
},
|
|
|
|
onValueInput: function (e) {
|
|
var item = e.currentTarget.dataset.item
|
|
var value = e.detail.value
|
|
var update = {}
|
|
update["values." + item] = value
|
|
this.setData(update)
|
|
},
|
|
|
|
onSubmit: function () {
|
|
var items = this.data.items
|
|
var inputDate = this.data.inputDate
|
|
var values = this.data.values
|
|
var savedCount = 0
|
|
var that = this
|
|
|
|
items.forEach(function (item) {
|
|
var raw = values[item]
|
|
if (!raw || raw.trim() === "") return
|
|
var v = parseFloat(raw)
|
|
if (isNaN(v) || v <= 0) return
|
|
|
|
var existing = app.globalData.records.find(function (r) { return r.item === item && r.date === inputDate })
|
|
if (existing) {
|
|
existing.value = v
|
|
} else {
|
|
app.addRecord({ item: item, date: inputDate, value: v })
|
|
}
|
|
savedCount++
|
|
})
|
|
|
|
if (savedCount === 0) {
|
|
wx.showToast({ title: "请至少输入一项有效数值", icon: "none" })
|
|
return
|
|
}
|
|
|
|
app.saveData()
|
|
this.setData({ values: {} })
|
|
this.loadExisting(inputDate)
|
|
wx.showToast({ title: "已保存 " + savedCount + " 项", icon: "success", duration: 1500 })
|
|
},
|
|
|
|
goItems: function () {
|
|
wx.navigateTo({ url: '/pages/items/items' })
|
|
},
|
|
|
|
formatDate: function (d) {
|
|
var y = d.getFullYear()
|
|
var m = String(d.getMonth() + 1)
|
|
if (m.length === 1) m = "0" + m
|
|
var day = String(d.getDate())
|
|
if (day.length === 1) day = "0" + day
|
|
return y + "-" + m + "-" + day
|
|
}
|
|
})
|