Files
endo_an/pages/set/endomanage.vue
T
2026-02-10 09:56:08 +08:00

291 lines
8.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<view class="ant-layout page">
<page-header></page-header>
<head-title title="内镜信息">
<template #rightBtn>
<view class="ant-btn" @click="add">新增</view>
</template>
</head-title>
<view class="ant-layout-content content">
<table class="ant-table">
<thead class="ant-table-thead">
<tr>
<th>序号</th>
<th>钢印号</th>
<th>品牌</th>
<th>型号</th>
<th>类型</th>
<th>卡号</th>
</tr>
</thead>
<tbody class="ant-table-tbody">
<tr v-for="(item, index) in list" :key="index">
<td>{{ index + 1 }}</td>
<td>{{ item.rfid }}</td>
<td>{{ item.brand }}</td>
<td>{{ item.model }}</td>
<td>{{ item.type }}</td>
<td>{{ item.ic }}</td>
</tr>
</tbody>
</table>
</view>
<view class="ant-layout-footer footer">
<view class="pagenation">
<uni-row style="margin: 0;">
<uni-col :span="8" style="text-align: left;">
<view class="ant-btn" @click="pre">上一页</view>
</uni-col>
<uni-col :span="8" style="line-height: 48px;">
{{ page }}/ {{ totalPage }}
</uni-col>
<uni-col :span="8" style="text-align: right;">
<view class="ant-btn" @click="next">下一页</view>
</uni-col>
</uni-row>
</view>
</view>
<notice ref="notice"/>
<uni-popup ref="popup" :mask-click="false">
<view class="pop-content">
<uni-row>
<uni-col :span="8">
<view class="ant-input-group">
<view class="ant-form-item-label">*钢印号</view>
</view>
</uni-col>
<uni-col :span="16">
<input class="ant-input" v-model="form.rfid"/>
</uni-col>
</uni-row>
<uni-row>
<uni-col :span="8">
<view class="ant-input-group">
<view class="ant-form-item-label">*卡号</view>
</view>
</uni-col>
<uni-col :span="16">
<input class="ant-input" v-model="form.ic"/>
</uni-col>
</uni-row>
<uni-row>
<uni-col :span="8">
<view class="ant-input-group">
<view class="ant-form-item-label">品牌</view>
</view>
</uni-col>
<uni-col :span="16">
<input class="ant-input" v-model="form.brand"/>
</uni-col>
</uni-row>
<uni-row>
<uni-col :span="8">
<view class="ant-input-group">
<view class="ant-form-item-label">型号</view>
</view>
</uni-col>
<uni-col :span="16">
<input class="ant-input" v-model="form.model"/>
</uni-col>
</uni-row>
<uni-row>
<uni-col :span="8">
<view class="ant-input-group">
<view class="ant-form-item-label">类型</view>
</view>
</uni-col>
<uni-col :span="16">
<input class="ant-input" v-model="form.type"/>
</uni-col>
</uni-row>
<uni-row>
<uni-col>
<view class="form-btn">
<view class="ant-btn" @click="submit">保存</view>
<view class="ant-btn" style="margin-left: 20px;" @click="close">取消</view>
</view>
</uni-col>
</uni-row>
</view>
</uni-popup>
</view>
</template>
<script>
import PageHeader from '@/components/PageHeader.vue'
import HeadTitle from '@/components/HeadTitle.vue'
import Notice from '@/components/Notice.vue';
import * as db from '@/db/sqlite.js'
export default {
components: {
PageHeader,Notice,HeadTitle
},
data() {
return {
list: [
{
ic: '11111111111111',
brand: '奥林巴斯',
model: 'GIF290',
type: '胃',
rfid: '1111111111',
}
],
page: 1,
totalPage: 0,
form: {
rfid: '',
ic: '',
model: '',
brand: '',
type: ''
}
}
},
onLoad() {
this.getList()
},
methods: {
add() {
this.$refs.popup.open()
this.form = {
rfid: '',
ic: '',
model: '',
brand: '',
type: ''
}
uni.$on('ic', (val) => { this.form.ic = val })
},
close() {
this.$refs.popup.close()
uni.$off('ic')
},
async submit() {
if (this.form.rfid == '' || this.form.ic == '') {
return false
}
let tableName = 'endo'
let isTable = await db.isTable(tableName)
if (!isTable) {
await db.addEndoTable()
}
try {
await db.addTabItem(tableName, { ...this.form })
this.$refs.popup.close()
uni.showToast({
title: '保存成功',
icon: 'none'
})
this.getList()
} catch (error) {
uni.showToast({
title: '保存失败',
icon: 'none'
})
}
},
getList() {
db.getDataList('endo', this.page, 15, '', '').then(res => {
this.list = res.list
this.totalPage = res.totalPage
})
},
// 上一页
pre() {
if (this.page > 1) {
this.page--
this.getList()
}
},
// 下一页
next() {
if (this.page < this.totalPage) {
this.page++
this.getList()
}
},
},
}
</script>
<style scoped>
.page{
background: transparent;
height: 100%;
}
.content{
color: #747A8D;
flex: 1;
height: 100%;
padding: 20px;
}
.footer{
background: transparent;
padding: 20px;
}
.pagenation{
height: 50px;
color: #747A8D;
font-size: 16px;
letter-spacing: 2px;
}
.pagenation .ant-btn{
width: 143px;
height: 50px;
border-radius: 50px;
box-shadow: none;
font-size: 24px;
font-weight: 500;
background: #2F3242;
color: #fff;
border-color: #2F3242;
line-height: 40px;
}
.pop-content{
padding: 30px;
padding-top: 50px;
width: 500px;
min-height: 400px;
border-radius: 15px;
background: #777D90;
}
.pop-content .uni-row{
margin-bottom: 16px;
}
.ant-form-item-label{
color: #fff;
font-size: 18px;
line-height: 40px;
}
.ant-input{
height: 40px;
font-size: 18px;
}
.form-text{
color: #747A8D;
line-height: 40px;
text-align: left;
font-size: 18px;
}
.ant-btn{
line-height: 38px;
background: #2F3242;
border-color: #2F3242;
height: 46px;
width: 128px;
border-radius: 50px;
color: #fff;
font-size: 16px;
}
.form-btn{
margin-top: 30px;
}
</style>