YangJian0701 1 an în urmă
părinte
comite
c91aeda123

+ 2 - 1
env.d.ts

@@ -1 +1,2 @@
-declare module 'element-plus/dist/locale/zh-cn.mjs'
+declare module 'element-plus/dist/locale/zh-cn.mjs'
+declare module 'element-plus/dist/locale/en.mjs'

+ 1 - 1
src/App.vue

@@ -6,7 +6,7 @@
 <script lang="ts" setup>
 import * as AOS from "aos";
 import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
-
+import en from 'element-plus/dist/locale/en.mjs'
 AOS.init();
 </script>
 <style lang="scss">

+ 1 - 0
src/assets/img/banbenxinxi.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#1296db" d="M812.1 87H211.9c-55.2 0-100 44.8-100 100v650c0 55.2 44.8 100 100 100H812c55.2 0 100-44.8 100-100V187c0.1-55.3-44.7-100-99.9-100zM655.8 712H343.2c-17.5 0-31.3-16.5-31.3-37.5s13.7-37.5 31.3-37.5h312.5c17.5 0 31.3 16.5 31.3 37.5S673.3 712 655.8 712zM312 499.5c0-21 14.3-37.5 32.5-37.5h260c18.2 0 32.5 16.5 32.5 37.5S622.7 537 604.5 537h-260c-18.2 0-32.5-16.5-32.5-37.5zM706.7 362H342.3c-17 0-30.4-16.5-30.4-37.5s13.4-37.5 30.4-37.5h364.3c17 0 30.4 16.5 30.4 37.5S723.7 362 706.7 362z"  /></svg>

BIN
src/assets/img/barcode.png


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
src/assets/img/ic_zhiyin_shoushi.svg


Fișier diff suprimat deoarece este prea mare
+ 0 - 0
src/assets/img/saoma.svg


+ 1 - 0
src/assets/img/xinxi.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M823.78 123.33H200.22A135.76 135.76 0 0 0 64.46 259.09V611a135.76 135.76 0 0 0 135.76 135.76h29.07l-0.55 140.5a13.33 13.33 0 0 0 20.94 11l98.17-68.2 119.22-82.82-0.67-0.48h357.38A135.76 135.76 0 0 0 959.54 611V259.09a135.76 135.76 0 0 0-135.76-135.76z m-206 201.1a42.68 42.68 0 0 1-42.68 42.69H323.78a42.68 42.68 0 0 1-42.68-42.69 42.69 42.69 0 0 1 42.68-42.69h251.34a42.69 42.69 0 0 1 42.68 42.69z" fill="#48E1AA" /><path d="M150.48 634a508.76 508.76 0 0 0 11.39 107.27 135.59 135.59 0 0 0 38.35 5.5h29.07l-0.55 140.5a13.33 13.33 0 0 0 20.94 11l98.17-68.2 119.22-82.82-0.67-0.48h357.38A135.76 135.76 0 0 0 959.54 611V259.09a135.62 135.62 0 0 0-4.44-34.53 504.15 504.15 0 0 0-298.16-97C377.23 127.53 150.48 354.28 150.48 634zM617.8 324.43a42.68 42.68 0 0 1-42.68 42.69H323.78a42.68 42.68 0 0 1-42.68-42.69 42.69 42.69 0 0 1 42.68-42.69h251.34a42.69 42.69 0 0 1 42.68 42.69z" fill="#35D895" /><path d="M773.1 303.23a507.41 507.41 0 0 0-155.41 24.23 42.69 42.69 0 0 1-42.57 39.66h-48.79c-155.71 86.74-261 253-261 443.92a512.06 512.06 0 0 0 5.18 72.77l77.38-53.75 119.22-82.82-0.67-0.48h357.34A135.76 135.76 0 0 0 959.54 611V338.55a506.58 506.58 0 0 0-186.44-35.32z" fill="#1DCE75" /><path d="M881.26 481.81c-196.35 0-365.44 116.71-441.7 284.54l27.51-19.11-0.67-0.48h357.38A135.76 135.76 0 0 0 959.54 611V488.11a487.86 487.86 0 0 0-78.28-6.3z" fill="#05C46D" /><path d="M589 426.47m24.63 0l147.95 0q24.63 0 24.63 24.63l0 9.91q0 24.63-24.63 24.63l-147.95 0q-24.63 0-24.63-24.63l0-9.91q0-24.63 24.63-24.63Z" fill="#FFFFFF" /><path d="M278.19 182c7.56 11.38-32.19 25.4-74.19 53.35s-70.2 59.26-77.76 47.91 15.66-50.26 57.61-78.19 86.77-34.38 94.34-23.07z" fill="#FFFFFF" /></svg>

+ 19 - 0
src/components/bgPure.vue

@@ -0,0 +1,19 @@
+<!-- 纯色背景 -->
+<template>
+    <div class="bg">
+        <slot name="bg"></slot>
+    </div>
+</template>
+<style lang="scss">
+.bg {
+    border-radius: var(--el-card-border-radius);
+    background-color: var(--el-card-bg-color);
+    overflow: hidden;
+    color: var(--el-text-color-primary);
+    transition: var(--el-transition-duration);
+    --el-card-border-color: var(--el-border-color-light);
+    --el-card-border-radius: 4px;
+    --el-card-bg-color: var(--el-fill-color-blank);
+    padding: var(--y-padding);
+    margin-bottom: var(--y-margin);
+}</style>

+ 3 - 1
src/components/card.vue

@@ -19,7 +19,9 @@
   justify-content: space-between;
   align-items: center;
 }
-
+.el-card.is-always-shadow {
+  box-shadow:none;
+}
 .text {
   font-size: 14px;
 }

+ 4 - 4
src/components/echart/echart-bar.vue

@@ -89,7 +89,7 @@ const initEcharts = () => {
             {
                 data: [Math.random(), Math.random(), Math.random(), Math.random(), Math.random(), Math.random(), Math.random()],
                 type: 'bar',
-                barMaxWidth:'10%',//宽度
+                barMaxWidth:'20%',//宽度
                 itemStyle: { //面积图颜色设置
                     // normal: {//柱状图上方显示数值
                     //     label: {
@@ -115,13 +115,13 @@ const initEcharts = () => {
                         ],
                         globalCoord: false // 缺省为 false
                     },
-                    barBorderRadius: [30, 30,30,30] //圓角
+                    barBorderRadius: [10] //圓角
                 },
             },
             {
                 data: [Math.random(), Math.random(), Math.random(), Math.random(), Math.random(), Math.random(), Math.random()],
                 type: 'bar',
-                barMaxWidth:'10%',//宽度
+                barMaxWidth:'20%',//宽度
                 itemStyle: { //面积图颜色设置
                     color: {
                         type: 'linear',
@@ -136,7 +136,7 @@ const initEcharts = () => {
                         ],
                         globalCoord: false // 缺省为 false
                     },
-                    barBorderRadius: [30, 30,30,30] //圓角
+                    barBorderRadius: [10] //圓角
                 },
             }
         ]

+ 17 - 11
src/components/routerMenu.vue

@@ -1,5 +1,5 @@
 <template>
-  <div>
+  <div class="routerMenu">
     <el-menu background-color="none" :default-active="data.isRouter" :ellipsis="false" router>
       <el-menu-item :index="item.path" v-for="item, index in routerData" :key="index" @click="setTag(item)">
         <span class="iconfont" :class="item.icon" style="font-size: 17px;font-weight: 600;"></span>
@@ -10,7 +10,7 @@
 </template>
 
 <script lang="ts" setup>
-import { watch,reactive } from "vue";
+import { watch, reactive } from "vue";
 import { useRouter } from 'vue-router';
 import { useStore } from 'vuex'
 
@@ -22,13 +22,13 @@ let router = useRouter()
 
 //当前路由
 const data = reactive({
-  isRouter:router.options.history.location
+  isRouter: router.options.history.location
 })
-let isRouter = 
+let isRouter =
 
-watch(() =>router , (toPath:any) => {
-  data.isRouter = toPath.options.history.location
-}, {immediate:true,deep: true })
+  watch(() => router, (toPath: any) => {
+    data.isRouter = toPath.options.history.location
+  }, { immediate: true, deep: true })
 
 
 const screenWidth = ref()
@@ -52,17 +52,23 @@ const setTag = (data: any) => {
 </script>
 
 <style scoped lang="scss">
+.routerMenu {
+  height: 100%;
+  overflow-y: auto;
+}
+
 /*去掉左侧菜单自带的右侧边框*/
 .el-menu--horizontal.el-menu {
   border: none !important;
   user-select: none;
 }
+
 .el-menu-item.is-active {
-    color: var(--el-menu-active-color);
-    background: #f6f8fa;
+  color: var(--el-menu-active-color);
+  background: #f6f8fa;
 }
+
 .el-menu {
   border: none !important;
   --el-menu-hover-bg-color: none !important; //解决去掉导航背景色后鼠标放上去颜色为黑色
-}
-</style>
+}</style>

+ 1 - 1
src/components/searchAdd.vue

@@ -53,7 +53,7 @@ const subClick = () => {
   --el-card-border-color: var(--el-border-color-light);
   --el-card-border-radius: 4px;
   --el-card-bg-color: var(--el-fill-color-blank);
-  padding: var(--y-padding);
+  padding:  var(--y-padding) var(--y-padding) 0 var(--y-padding);
   display: flex;
   justify-content: space-between;
   align-items: center;

+ 39 - 0
src/components/statistics.vue

@@ -0,0 +1,39 @@
+<!-- 统计组件 -->
+<template>
+    <div class="statistics">
+        <div class="statistics-left">
+            <img :src="props.imgUrl" style="width: 60px;height: 60px;">
+        </div>
+        <div class="statistics-right">
+            <el-statistic :title="props.titles" :value="props.subhea" />
+        </div>
+    </div>
+</template>
+
+<script setup lang="ts">
+const props = defineProps({
+    imgUrl:{
+        type: String,
+        default: () => '',
+    },
+    titles:{
+        type: String,
+        default: () => '',
+    },
+    subhea:{
+        type: String,
+        default: () => '',
+    }
+})
+</script>
+<style lang="scss">
+.statistics{
+    display: flex;
+    align-items: center;
+    &-right{
+        display: block;
+        line-height: 25px;
+        margin-left: var(--y-margin);
+    }
+}
+</style>

+ 1 - 1
src/components/table.vue

@@ -3,7 +3,7 @@
     <div class="y-tabs">
         <el-table v-loading="loading" :data="tableData" @row-click="props.rowClick"
             @selection-change="props.selectionChange" :row-key="props.getRowKey"
-            :row-style="tableRowClassName">
+            :row-style="tableRowClassName" table-layout="auto">
            <!-- 默认插槽 -->
       <slot></slot>
       <template v-for="item in tableColumns" :key="item">

+ 5 - 0
src/plugins/setFun.ts

@@ -12,6 +12,11 @@ export function exitFun (key:any) {
         case 2:
             break; 
         case 3:
+            if (window.innerHeight === window.screen.height) {// 利用屏幕分辨率和window对象的内高度来判断兼容IE
+                document.exitFullscreen()
+            } else {
+                document.documentElement.requestFullscreen()
+            }
             break;
         default:
             ElMessageBox.confirm(

+ 17 - 3
src/views/company/index.vue

@@ -3,12 +3,22 @@
     <div class="company">
         <searchAdd isButtom="查询">
             <template #searchConter>
-                <el-form-item label="添加一级目录">
-                    <el-input v-model="datas.input" placeholder="请输入一级目录" clearable />
+                <el-form-item label="公司名称">
+                    <el-input v-model="datas.input" placeholder="请输入公司名称" clearable />
                 </el-form-item>
             </template>
         </searchAdd>
         <bg istitle="公司列表">
+            <template #btn>
+                <el-form :inline="true" class="demo-form-inline">
+                    <el-form-item label="添加一级目录">
+                        <el-input v-model="datas.input" placeholder="请输入添加一级目录" clearable />
+                    </el-form-item>
+                    <el-form-item style="margin-right: 20px;">
+                        <el-button type="primary">添加</el-button>
+                    </el-form-item>
+                </el-form>
+            </template>
             <template #bg>
                 <el-tree :data="data" :props="defaultProps" accordion draggable>
                     <template #default="{ node, data }">
@@ -43,7 +53,7 @@ import { ElMessage, ElMessageBox } from 'element-plus'
 import searchAdd from "@/components/searchAdd.vue";
 import { reactive } from "vue";
 const datas = reactive({
-  input:''
+    input: ''
 })
 /**
  * 
@@ -178,6 +188,10 @@ const data: Tree[] = [
     height: 50px;
 }
 
+// .el-form-item {
+//     margin-bottom: 0;
+// }
+
 .custom-tree-node {
     flex: 1;
     display: flex;

+ 39 - 31
src/views/home/index.vue

@@ -1,26 +1,38 @@
 <!--  -->
 <template>
   <div class="home">
-    <!-- <Carousel></Carousel> -->
+    <div class="home-main">
+      <bgPure>
+        <template #bg>
+          <statistics :imgUrl="require('@/assets/img/1700227167756.jpg')" titles="药品信息管理" subhea="2154"></statistics>
+        </template>
+      </bgPure>
+      <bgPure #bg>
+        <statistics :imgUrl="require('@/assets/img/1700227576514.jpg')" titles="疫苗名称" subhea="87546"></statistics>
+      </bgPure>
+      <bgPure #bg>
+        <statistics :imgUrl="require('@/assets/img/1700228167058.jpg')" titles="生产企业" subhea="931"></statistics>
+      </bgPure>
+    </div>
     <cards>
-      <template #card-tit>
-        <div style="display: flex;align-items: center;">
-          <p>单位(栋)</p>
-        <div style="display: flex;align-items: center;margin:0 30px ;">
-          <div style="width: 15px;height: 15px;border-radius: 50%;background: #2251f7;"></div>
-          <p style="margin-left: 10px;">楼宇数量</p>
-        </div>
-        <div style="display: flex;align-items: center;">
-          <div style="width: 15px;height: 15px;border-radius: 50%;background: #fd8c38;"></div>
-          <p style="margin-left: 10px;">写字楼数量</p>
-        </div>
-        </div>
-      </template>
-      <template #card-subhead>行政区划选择</template>
-      <template #card-content>
-        <echartbar id="bar0"></echartbar>
-      </template>
-    </cards>
+        <template #card-tit>
+          <div style="display: flex;align-items: center;">
+            <p>单位(栋)</p>
+            <div style="display: flex;align-items: center;margin:0 30px ;">
+              <div style="width: 15px;height: 15px;border-radius: 50%;background: #2251f7;"></div>
+              <p style="margin-left: 10px;">楼宇数量</p>
+            </div>
+            <div style="display: flex;align-items: center;">
+              <div style="width: 15px;height: 15px;border-radius: 50%;background: #fd8c38;"></div>
+              <p style="margin-left: 10px;">写字楼数量</p>
+            </div>
+          </div>
+        </template>
+        <template #card-subhead>行政区划选择</template>
+        <template #card-content>
+          <echartbar id="bar0"></echartbar>
+        </template>
+      </cards>
   </div>
 </template>
 
@@ -29,17 +41,9 @@ import { reactive, provide, ref } from "vue";
 import echartbar from '@/components/echart/echart-bar.vue'
 import echartbarlR from '@/components/echart/echart-bar-LR.vue'
 import echartline from '@/components/echart/echart-line.vue'
-import Carousel from '@/components/Carousel.vue'
-
-
-
+import bgPure from '@/components/bgPure.vue'
 import cards from '@/components/card.vue'
-import tables from '@/components/table.vue'
-import titles from '@/components/titles.vue'
-
-
-
-
+import statistics from '@/components/statistics.vue'
 
 import * as echarts from 'echarts'
 provide('echart', echarts)
@@ -58,7 +62,11 @@ const data = reactive({
 <style lang="scss">
 .home {
   overflow-y: auto;
-}
-
 
+  &-main {
+    display: grid;
+    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
+    grid-gap: 20px;
+  }
+}
 </style>

+ 1 - 0
src/views/layout/index.vue

@@ -49,6 +49,7 @@ import breadcrumb from "@/components/breadcrumb.vue";
             flex-shrink: 0;
             background: #fefefe;
             border-radius: 0 0 100px 0;
+            overflow-y: hidden;
         }
         &-views{
             flex: 1;

+ 25 - 0
src/views/storagePut/Labour.vue

@@ -0,0 +1,25 @@
+<!-- 手动 -->
+<template>
+    <div class="">
+        <el-button el-button type="warning" icon="Pointer" @click="dialogFormVisible = true">手动</el-button>
+        <el-dialog v-model="dialogFormVisible" title="手动添加" :append-to-body="true" draggable width="60%">
+            123456
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button @click="dialogFormVisible = false">Cancel</el-button>
+                    <el-button type="primary" @click="dialogFormVisible = false">
+                        Confirm
+                    </el-button>
+                </span>
+            </template>
+        </el-dialog>
+    </div>
+</template>
+
+<script setup lang="ts">
+import { reactive, ref } from 'vue'
+const dialogFormVisible = ref(true)
+</script>
+<style lang="scss">
+/* @import url(); 引入css类 */
+</style>

+ 72 - 30
src/views/storagePut/index.vue

@@ -1,49 +1,91 @@
 <!--  -->
 <template>
     <div class="storagePut">
-        <el-result title="扫码添加" sub-title="扫条形码,可以自动识别填写信息哦">
-            <template #icon>
-                <el-image :src="srcimg" style="width: 300px;height: auto;" />
+        <searchAdd isButtom="查询">
+            <template #searchConter>
+                <el-form-item label="疫苗批号">
+                    <el-input v-model="formInline.user" placeholder="疫苗批号" clearable />
+                </el-form-item>
+                <el-form-item label="疫苗名称">
+                    <el-select v-model="formInline.region" placeholder="生产企业" clearable>
+                        <el-option label="Zone one" value="shanghai" />
+                        <el-option label="Zone two" value="beijing" />
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="生产企业">
+                    <el-select v-model="formInline.region" placeholder="生产企业" clearable>
+                        <el-option label="Zone one" value="shanghai" />
+                        <el-option label="Zone two" value="beijing" />
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="疫苗效期">
+                    <el-date-picker v-model="formInline.date" type="date" placeholder="出/入库日期" clearable />
+                </el-form-item>
             </template>
-            <template #extra>
-                <el-button type="primary">扫码添加</el-button>
+        </searchAdd>
+        <bg istitle="基本信息">
+            <template #btn>
+                <scanCode style="margin-right: 20px;"></scanCode>
+                <Labour></Labour>
             </template>
-        </el-result>
-        <el-result title="手动添加" sub-title="手动填写信息">
-            <template #icon>
-                <el-image :src="srcimg1" style="width: 300px;height: auto;" />
+            <template #bg>
+                <tables ref="TableRef" :requestApi="userList" :columns="columns" :initParam="data.initParam">
+                </tables>
             </template>
-            <template #extra>
-                <el-button type="primary">手动添加</el-button>
-            </template>
-        </el-result>
-        <el-result title="查看入库" sub-title="管理入库信息,查看入库情况">
-            <template #icon>
-                <el-image :src="srcimg2" style="width: 300px;height: auto;" />
-            </template>
-            <template #extra>
-                <el-button type="primary">查看入库数据</el-button>
-            </template>
-        </el-result>
+        </bg>
     </div>
 </template>
 
 <script setup lang="ts">
-const srcimg: any = require('@/assets/img/down14.webp')
-const srcimg1: any = require('@/assets/img/down13.webp')
-const srcimg2: any = require('@/assets/img/down22.webp')
+import { userList } from "@/api";
+import { reactive, ref } from "vue";
+import tables from "@/components/table.vue";
+import searchAdd from "@/components/searchAdd.vue";
+import bg from '@/components/bg.vue'
+import scanCode from './scanCode.vue'
+import Labour from './Labour.vue'
+
 
 
+const formInline = reactive({
+    user: '',
+    region: '',
+    date: '',
+})
+const datas = reactive({
+    input: ''
+})
+// 渲染表格
+const columns: any = [
+    { prop: 'nickName', label: '疫苗名称'},
+    { prop: 'username', label: '生产企业'},
+    { prop: 'nickName', label: '批准文号'},
+    { prop: 'username', label: '批签发合格编号'},
+    { prop: 'nickName', label: '规格(剂/支或粒)'},
+    { prop: 'username', label: '生产日期',  },
+    // { prop: 'nickName', label: '疫苗批号', width: 100 },
+    // { prop: 'username', label: '疫苗效期', width: 100 },
+    // { prop: 'username', label: '数量', width: 100 },
+    // { prop: 'username', label: '单位', width: 80 },
+    // { prop: 'username', label: '剂型', width: 100 },
+    // { prop: 'username', label: '领苗人', width: 100 },
+    // { prop: 'username', label: '发货单位', width: 200 },
+    // { prop: 'username', label: '入库日期', width: 100 },
+]
+const activeName = ref('first')
+
+const data = reactive({
+    initParam: { username: '' },//请求参数
+    str: ''
+})
+
 
 </script>
 <style lang="scss">
 .storagePut {
     user-select: none;
-
-    display: flex;
-    gap: 20px;
-    justify-content: center;
-    align-items: center;
-    height: 100%;
+}
+.el-form-item {
+    // margin-bottom: 0;
 }
 </style>

+ 113 - 0
src/views/storagePut/scanCode.vue

@@ -0,0 +1,113 @@
+<!-- 扫码 -->
+<template>
+    <div class="">
+        <el-button el-button type="primary" icon="Camera" @click="dialogFormVisible = true">扫码</el-button>
+        <el-dialog v-model="dialogFormVisible" title="扫码添加" :append-to-body="true" draggable width="60%">
+            <el-divider content-position="center">药品信息</el-divider>
+            <el-form :model="form" :inline="true">
+                <el-form-item label="疫苗名称" :label-width="formLabelWidth">
+                    <el-select v-model="form.region" placeholder="Please select a zone" class="inputWidth">
+                        <el-option label="Zone No.1" value="shanghai" />
+                        <el-option label="Zone No.2" value="beijing" />
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="生产企业" :label-width="formLabelWidth">
+                    <el-select v-model="form.region" placeholder="Please select a zone" class="inputWidth">
+                        <el-option label="Zone No.1" value="shanghai" />
+                        <el-option label="Zone No.2" value="beijing" />
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="规格" :label-width="formLabelWidth">
+                    <el-select v-model="form.region" placeholder="Please select a zone" class="inputWidth">
+                        <el-option label="Zone No.1" value="shanghai" />
+                        <el-option label="Zone No.2" value="beijing" />
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="剂型" :label-width="formLabelWidth">
+                    <el-select v-model="form.region" placeholder="Please select a zone" class="inputWidth">
+                        <el-option label="Zone No.1" value="shanghai" />
+                        <el-option label="Zone No.2" value="beijing" />
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="单位" :label-width="formLabelWidth">
+                    <el-select v-model="form.region" placeholder="Please select a zone" class="inputWidth">
+                        <el-option label="Zone No.1" value="shanghai" />
+                        <el-option label="Zone No.2" value="beijing" />
+                    </el-select>
+                </el-form-item>
+
+
+                <el-form-item class="el-form-item-main" label="批准文号" :label-width="formLabelWidth">
+                    <el-input v-model="form.name" autocomplete="off" class="inputWidth" />
+                </el-form-item>
+                <el-form-item class="el-form-item-main" label="批签发合格编号" :label-width="formLabelWidth">
+                    <el-input v-model="form.name" autocomplete="off" class="inputWidth" />
+                </el-form-item>
+                <el-form-item class="el-form-item-main" label="疫苗批号" :label-width="formLabelWidth">
+                    <el-input v-model="form.name" autocomplete="off" class="inputWidth" />
+                </el-form-item>
+                <el-form-item label="疫苗效期" :label-width="formLabelWidth">
+                    <el-date-picker v-model="form.region" type="date" placeholder="疫苗效期" clearable style="width: 200px;" />
+                </el-form-item>
+
+                <el-form-item label="生产日期" :label-width="formLabelWidth">
+                    <el-date-picker v-model="form.region" type="date" placeholder="生产日期" clearable style="width: 200px;" />
+                </el-form-item>
+            </el-form>
+            <el-divider content-position="center">入库信息</el-divider>
+            <el-form :model="form" :inline="true">
+                <el-form-item class="el-form-item-main" label="数量" :label-width="formLabelWidth">
+                    <el-input v-model="form.name" autocomplete="off" class="inputWidth" />
+                </el-form-item>
+                <el-form-item class="el-form-item-main" label="购进单价" :label-width="formLabelWidth">
+                    <el-input v-model="form.name" autocomplete="off" class="inputWidth" />
+                </el-form-item>
+                <el-form-item class="el-form-item-main" label="入库日期" :label-width="formLabelWidth">
+                    <el-date-picker v-model="form.region" type="date" placeholder="疫苗效期" clearable style="width: 200px;" />
+                </el-form-item>
+                <el-form-item class="el-form-item-main" label="发货单位" :label-width="formLabelWidth">
+                    <el-select v-model="form.region" placeholder="Please select a zone" class="inputWidth">
+                        <el-option label="Zone No.1" value="shanghai" />
+                        <el-option label="Zone No.2" value="beijing" />
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="经办人" :label-width="formLabelWidth">
+                    <el-select v-model="form.region" placeholder="Please select a zone" class="inputWidth">
+                        <el-option label="Zone No.1" value="shanghai" />
+                        <el-option label="Zone No.2" value="beijing" />
+                    </el-select>
+                </el-form-item>
+            </el-form>
+
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button @click="dialogFormVisible = false">Cancel</el-button>
+                    <el-button type="primary" @click="dialogFormVisible = false">
+                        Confirm
+                    </el-button>
+                </span>
+            </template>
+        </el-dialog>
+    </div>
+</template>
+
+<script setup lang="ts">
+import { reactive, ref } from 'vue'
+const dialogFormVisible = ref(false)
+const formLabelWidth = '110px'
+const form = reactive({
+    name: '',
+    region: '',
+    date1: '',
+    date2: '',
+    delivery: false,
+    type: [],
+    resource: '',
+    desc: '',
+})
+</script>
+<style lang="scss">
+.inputWidth {
+    width: 200px;
+}
+</style>Labour

+ 1 - 1
src/views/user/adduser.vue

@@ -65,7 +65,7 @@ const rules = reactive<FormRules<RuleForm>>({
     ],
     password: [{
         required: true,
-        message: '请填写密码(5-18位)',
+        message: '请填写密码(6-18位)',
         trigger: 'change',
         // pattern: /^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])).{8,18}$/,//大写+小写+数字
         // pattern: /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d].{7,18}$/,//字母+数字

+ 3 - 4
src/views/user/index.vue

@@ -6,13 +6,12 @@
           <el-input v-model="data.initParam.username" placeholder="请输入用户名" />
         </el-form-item>
       </template>
-      <template #searchBtn to="body">
-        <el-button type="primary" @click="addtFun">添加</el-button>
-        <!-- <adduser ref="adduserRef" @event="eventFun" /> -->
-      </template>
     </searchAdd>
     <div class="user-conter-table">
       <bg istitle="用户列表">
+        <template #btn>
+          <el-button type="primary" @click="addtFun">添加</el-button>
+        </template>
         <template #bg>
           <tables ref="TableRef" :requestApi="userList" :columns="columns" :initParam="data.initParam">
             <template #right="{ row }">

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff