This commit is contained in:
2026-02-10 09:56:08 +08:00
commit d7802b25f2
147 changed files with 17439 additions and 0 deletions
+291
View File
@@ -0,0 +1,291 @@
<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>