9.17/1
This commit is contained in:
67
frontend/pages/product/units.vue
Normal file
67
frontend/pages/product/units.vue
Normal file
@@ -0,0 +1,67 @@
|
||||
<template>
|
||||
<view class="page">
|
||||
<view class="toolbar">
|
||||
<input v-model.trim="name" placeholder="新单位名称" />
|
||||
<button size="mini" @click="create">新增</button>
|
||||
</view>
|
||||
<scroll-view scroll-y class="list">
|
||||
<view class="item" v-for="u in list" :key="u.id">
|
||||
<input v-model.trim="u.name" />
|
||||
<view class="ops">
|
||||
<button size="mini" @click="update(u)">保存</button>
|
||||
<button size="mini" type="warn" @click="remove(u)">删除</button>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { get, post, put, del } from '../../common/http.js'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return { name: '', list: [] }
|
||||
},
|
||||
onLoad() { this.reload() },
|
||||
methods: {
|
||||
async reload() {
|
||||
try {
|
||||
const res = await get('/api/product-units')
|
||||
this.list = Array.isArray(res?.list) ? res.list : (Array.isArray(res) ? res : [])
|
||||
} catch (_) {}
|
||||
},
|
||||
async create() {
|
||||
if (!this.name) return
|
||||
await post('/api/product-units', { name: this.name })
|
||||
this.name = ''
|
||||
this.reload()
|
||||
},
|
||||
async update(u) {
|
||||
await put('/api/product-units/' + u.id, { name: u.name })
|
||||
uni.showToast({ title: '已保存', icon: 'success' })
|
||||
},
|
||||
async remove(u) {
|
||||
uni.showModal({ content: '确定删除该单位?', success: async (r) => {
|
||||
if (!r.confirm) return
|
||||
await del('/api/product-units/' + u.id)
|
||||
this.reload()
|
||||
}})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.page { display:flex; flex-direction: column; height: 100vh; }
|
||||
.toolbar { display:flex; gap: 12rpx; padding: 16rpx; background:#fff; }
|
||||
.toolbar input { flex:1; background:#f6f6f6; border-radius: 12rpx; padding: 12rpx; }
|
||||
.list { flex:1; }
|
||||
.item { display:flex; gap: 12rpx; align-items:center; padding: 16rpx; background:#fff; border-bottom: 1rpx solid #f1f1f1; }
|
||||
.item input { flex:1; background:#f7f7f7; border-radius: 10rpx; padding: 12rpx; }
|
||||
.ops { display:flex; gap: 10rpx; }
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user