YangJian0701 1 year ago
parent
commit
4b368c6beb

+ 1 - 0
src/assets/img/BarCodeQR.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 t="1703836388491" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7152" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M170.6496 263.68h20.48v503.5776h-20.48z m50.3552 0h98.0224v503.5776H221.0048z m120.32 0h55.296v503.5776h-55.296z m465.408 0h55.296v503.5776h-55.296z m-232.704 0h18.432v503.5776h-18.432z m170.6496 0h18.432v503.5776h-18.432z m-325.7856 0h92.16v503.5776h-92.16z m201.6768 0h92.16v503.5776h-92.16z m333.5936 684.1344v-157.9776H1024V1024h-221.4912v-76.1856h151.6544zM1024 117.0176v117.0176h-69.8368V76.0576h-151.6544V0H1024zM69.7344 947.8144h151.6288V1024H0v-234.1632h69.7344z m0-871.7568v157.9776H0V0h221.3632v76.0576H69.7344z" fill="#409eff" p-id="7153"></path></svg>

+ 0 - 7
src/views/home/index.vue

@@ -74,18 +74,12 @@ import echartBarRow from '@/components/echart/echart-bar-row.vue'
 import bgPure from '@/components/bgPure.vue'
 import cards from '@/components/card.vue'
 import statistics from '@/components/statistics.vue'
-import { userInfo } from "@/api";
 import { useStore } from "vuex";
 import tables from "@/components/table.vue";
 import * as echarts from 'echarts'
 provide('echart', echarts)
 const store = useStore()
 const TableRef = ref()
-//获取用户信息
-const getuserInfoApi = async () => {
-  const result: any = await userInfo({})
-  if (result.code == 200) store.commit('setIsUserInfo', result?.data) //存储用户个人信息
-}
 
 // 渲染表格
 const columns: any = [
@@ -138,7 +132,6 @@ onMounted(async () => {
 
 })
 onMounted(() => {
-  getuserInfoApi()
   stockHomeListApi()
 })
 

+ 1 - 1
src/views/salesmanagement/storageOrderGoods/index.vue

@@ -75,7 +75,7 @@ const columns: any = [
     { prop: 'spec_name', label: '规格(剂/支或粒)', width: 150 },
     { prop: 'enterprise_name', label: '生产企业', width: 150 },
     { prop: 'batch_number', label: '血液制品批号', width: 150 },
-    { prop: 'expiry_date', label: '效期', width: 120 },
+    { prop: 'expiry_date', label: '期', width: 120 },
     
     { prop: 'approval_number', label: '批准文号', width: 120 },
     { prop: 'quantity', label: '数量', width: 120 },

+ 4 - 4
src/views/stockcontrol/storageFrom/Editinventory.vue

@@ -20,14 +20,14 @@
                 <el-form-item class="el-form-item-main" label="数量" :label-width="formLabelWidth" prop="quantity">
                     <el-input v-model.number="initParam.quantity" autocomplete="off" class="inputWidth" />
                 </el-form-item>
-                <el-form-item class="el-form-item-main" label="购进单价" :label-width="formLabelWidth">
+                <el-form-item class="el-form-item-main" label="销售单价" :label-width="formLabelWidth">
                     <el-input v-model="initParam.unit_price" autocomplete="off" class="inputWidth"/>
                 </el-form-item>
                 <el-form-item class="el-form-item-main" label="入库日期" :label-width="formLabelWidth" prop="date">
                     <el-date-picker v-model="initParam.date" type="date" placeholder="血液制品效期" value-format="YYYY-MM-DD" clearable style="width: 200px;" />
                 </el-form-item>
                 <el-form-item class="el-form-item-main" label="收货单位" :label-width="formLabelWidth">
-                    <el-autocomplete v-model="initParam.forwarding_unit" :fetch-suggestions="querySearch1" clearable class="inputWidth"
+                    <el-autocomplete v-model="initParam.receiving_unit" :fetch-suggestions="querySearch1" clearable class="inputWidth"
                         placeholder="收货单位" />
                 </el-form-item>
                 <el-form-item label="经办人" :label-width="formLabelWidth" prop="operator">
@@ -75,7 +75,7 @@ const formLabelWidth = '110px'
 let initParam:any = reactive({
     "id":"",
     "date": "",
-    "forwarding_unit": "",
+    "receiving_unit": "",
     "medicineInfo": {},
     "operator":'',
     "quantity": null,
@@ -198,7 +198,7 @@ const medicListStockFun = async ()=>{
             initParam.medicineInfo[value.field_name] = ''; // 这里可以根据需要设置其他值作为键的内容
             if(['product_id','enterprise_id','spec_id','batch_number','expiry_date','approval_number'].includes(value.field_name)){
                 if(value.type==6){
-                    data.rules1['medicineInfo.'+value.field_name] =  [{required: true,message: '必填项',trigger: 'change'},{ pattern: /^([1-9]\d*|0)(\.\d{1,2})?$/, message: '请输入>=0,(最多两位小数)', trigger: "blur" },]
+                    data.rules1['medicineInfo.'+value.field_name] =  [{required: true,message: '必填项',trigger: 'change'}]
                 }else if(value.type==7){
                     data.rules1['medicineInfo.'+value.field_name] =  [{required: true,message: '必填项',trigger: 'change'},{ pattern: /^(?:[1-9]\d*)$/, message: '请输入正整数', trigger: "blur" },]
                 }else{

+ 18 - 3
src/views/stockcontrol/storageFrom/index.vue

@@ -58,7 +58,7 @@ import {
     medicineColumns,//表头
 } from "@/api";
 import Editinventory from './Editinventory.vue'
-import { reactive, ref,onMounted } from "vue";
+import { reactive, ref,onMounted,onBeforeMount } from "vue";
 import tables from "@/components/table.vue";
 import searchAdd from "@/components/searchAdd.vue";
 import bg from '@/components/bg.vue'
@@ -74,6 +74,21 @@ const scanCodeFun = async ()=>{
 const editinventFun = async ()=>{
     TableRef.value?.getTableList()
 }
+
+//函数
+const datepickFn = ()=>{
+    const today =  new Date()
+    const year = today.getFullYear();
+    const month = (today.getMonth() + 1).toString().padStart(2,'0'); // 注意月份从0开始,所以要加1
+    const date = (today.getDate()).toString().padStart(2,'0');
+    const j = year +'-' + month + '-'+date
+    data.datepick = [j,j]
+    initParam.startDate = j; initParam.endDate = j
+}
+onBeforeMount(()=>{
+    datepickFn()
+})
+
 const columns:any = []
 //提交参数
 const initParam = reactive({
@@ -86,8 +101,8 @@ const initParam = reactive({
 })
 
 
-const data = reactive({
-    datepick: ''
+const data:any = reactive({
+    datepick: []
 })
 /**
  * 

+ 5 - 5
src/views/stockcontrol/storageFrom/scanCode.vue

@@ -19,7 +19,7 @@
                 <el-form-item class="el-form-item-main" label="数量" :label-width="formLabelWidth" prop="quantity">
                     <el-input v-model.number="initParam.quantity" autocomplete="off" class="inputWidth" />
                 </el-form-item>
-                <el-form-item class="el-form-item-main" label="购进单价" :label-width="formLabelWidth">
+                <el-form-item class="el-form-item-main" label="销售单价" :label-width="formLabelWidth">
                     <el-input v-model="initParam.unitPrice" autocomplete="off" class="inputWidth"/>
                 </el-form-item>
                 <el-form-item class="el-form-item-main" label="出库日期" :label-width="formLabelWidth" prop="date">
@@ -53,7 +53,7 @@
                     </el-table-column>
                     <el-table-column prop="quantity" label="数量" min-width="110" show-overflow-tooltip/>
                     <el-table-column prop="unitPrice" label="购进单价" min-width="110" show-overflow-tooltip/>
-                    <el-table-column prop="forwardingUnit" label="货单位"  min-width="110" show-overflow-tooltip/>
+                    <el-table-column prop="forwardingUnit" label="货单位"  min-width="110" show-overflow-tooltip/>
                     <el-table-column prop="date" label="出库日期" min-width="110" show-overflow-tooltip/>
                     <el-table-column prop="operator" label="经办人" min-width="110" show-overflow-tooltip/>
 
@@ -158,11 +158,11 @@ const submitForm = async (formEl: FormInstance | undefined) => {
         console.log('提交',data.editStrot)
         if(data.editStrot){//编辑状态
             let {date,forwardingUnit,operator,quantity,unitPrice,medicineInfo} = initParam
-            data.tableData.splice(data.editIndex,1,{date,forwardingUnit,operator,quantity,unitPrice:parseInt(unitPrice),medicineInfo:{...medicineInfo}})
+            data.tableData.splice(data.editIndex,1,{date,forwardingUnit,operator,quantity,unitPrice:unitPrice,medicineInfo:{...medicineInfo}})
             console.log('编辑状态',data.tableData)
         }else{//正常添加
             let {date,forwardingUnit,operator,quantity,unitPrice,medicineInfo} = initParam
-            data.tableData.push({date,forwardingUnit,operator,quantity,unitPrice:parseInt(unitPrice),medicineInfo:{...medicineInfo}})
+            data.tableData.push({date,forwardingUnit,operator,quantity,unitPrice:unitPrice,medicineInfo:{...medicineInfo}})
             console.log('正常添加',data.tableData)
         }
     } else {
@@ -286,7 +286,7 @@ const medicListStockFun = async ()=>{
             initParam.medicineInfo[value.field_name] = ''; // 这里可以根据需要设置其他值作为键的内容
             if(['product_id','enterprise_id','spec_id','batch_number','expiry_date','approval_number'].includes(value.field_name)){
                 if(value.type==6){
-                    data.rules1['medicineInfo.'+value.field_name] =  [{required: true,message: '必填项',trigger: 'change'},{ pattern: /^([1-9]\d*|0)(\.\d{1,2})?$/, message: '请输入>=0,(最多两位小数)', trigger: "blur" },]
+                    data.rules1['medicineInfo.'+value.field_name] =  [{required: true,message: '必填项',trigger: 'change'}]
                 }else if(value.type==7){
                     data.rules1['medicineInfo.'+value.field_name] =  [{required: true,message: '必填项',trigger: 'change'},{ pattern: /^(?:[1-9]\d*)$/, message: '请输入正整数', trigger: "blur" },]
                 }else{

+ 2 - 2
src/views/stockcontrol/storageInquire/index.vue

@@ -20,7 +20,7 @@
                 <el-form-item label="血液制品批号">
                     <el-input v-model="initParam.batchNumber" placeholder="血液制品批号" clearable style="width: 200px;" />
                 </el-form-item>
-                <el-form-item label="血液制品效期">
+                <el-form-item label="失效日期">
                     <el-date-picker v-model="data.datepick" type="daterange" placeholder="出/入库日期" clearable
                         start-placeholder="开始" end-placeholder="结束" value-format="YYYY-MM-DD" style="width: 200px;"
                         @change="changFun" />
@@ -83,7 +83,7 @@ const columns: any = [
     { prop: 'purchase_unit_price', label: '购进单价', width: 150 },
     { prop: 'sales_unit_price', label: '销售单价', width: 150 },
     { prop: 'batch_number', label: '批号', name: 'T_State' },
-    { prop: 'expiry_date', label: '效期', width: 150 },
+    { prop: 'expiry_date', label: '期', width: 150 },
     { prop: 'approval_number', label: '批准文号', width: 150 },
     { prop: 'qualification_number', label: '批签发编号', width: 150 },
 ]

+ 1 - 1
src/views/stockcontrol/storagePut/Editinventory.vue

@@ -195,7 +195,7 @@ const medicListStockFun = async ()=>{
             initParam.medicineInfo[value.field_name] = ''; // 这里可以根据需要设置其他值作为键的内容
             if(['product_id','enterprise_id','spec_id','batch_number','expiry_date','approval_number'].includes(value.field_name)){
                 if(value.type==6){
-                    data.rules1['medicineInfo.'+value.field_name] =  [{required: true,message: '必填项',trigger: 'change'},{ pattern: /^([1-9]\d*|0)(\.\d{1,2})?$/, message: '请输入>=0,(最多两位小数)', trigger: "blur" },]
+                    data.rules1['medicineInfo.'+value.field_name] =  [{required: true,message: '必填项',trigger: 'change'}]
                 }else if(value.type==7){
                     data.rules1['medicineInfo.'+value.field_name] =  [{required: true,message: '必填项',trigger: 'change'},{ pattern: /^(?:[1-9]\d*)$/, message: '请输入正整数', trigger: "blur" },]
                 }else{

+ 321 - 12
src/views/stockcontrol/storagePut/Labour.vue

@@ -1,25 +1,334 @@
 <!-- 手动 -->
 <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
+        <el-button el-button type="primary" icon="Pointer" @click="showDia">手动入库</el-button>
+        <el-dialog v-model="dialogFormVisible" title="手动入库" :append-to-body="true" :before-close="closeFun" draggable
+            :close-on-click-modal="false" :close-on-press-escape="false" width="60%">
+            <el-form ref="ruleFormRef" :rules="rules" :model="initParam" :inline="true">
+                <el-divider content-position="center">药品信息</el-divider>
+                <el-form-item :label="item.name" :label-width="formLabelWidth" v-for="(item, index) in data.showDiaData"
+                    :key="index" :prop="'medicineInfo.' + item.field_name">
+                    <el-select v-model="initParam.medicineInfo[item.field_name]" :placeholder="'请选择' + item.name"
+                        class="inputWidth" v-if="[1, 2, 3, 4, 5].includes(item.type)">
+                        <el-option :label="itemIt.name" :value="itemIt.id" v-for="itemIt, i in item.list" :key="i" />
+                    </el-select>
+                    <el-input v-model="initParam.medicineInfo[item.field_name]" autocomplete="off"
+                        :placeholder="'请输入' + item.name" class="inputWidth" v-if="item.type == 6" />
+                    <el-input v-model="initParam.medicineInfo[item.field_name]" autocomplete="off"
+                        :placeholder="'请输入' + item.name" class="inputWidth" v-if="item.type == 7" />
+                    <el-input v-model="initParam.medicineInfo[item.field_name]" autocomplete="off"
+                        :placeholder="'请输入' + item.name" class="inputWidth" v-if="item.type == 8" />
+                    <el-date-picker v-model="initParam.medicineInfo[item.field_name]" type="date" value-format="YYYY-MM-DD"
+                        :placeholder="'请输入' + item.name" clearable style="width: 200px;" v-if="item.type == 9" />
+                    <el-date-picker v-model="initParam.medicineInfo[item.field_name]" type="datetime"
+                        value-format="YYYY-MM-DD HH:mm:ss" :placeholder="'请输入' + item.name" clearable style="width: 200px;"
+                        v-if="item.type == 10" />
+                </el-form-item>
+                <el-divider content-position="center">入库信息</el-divider>
+                <el-form-item class="el-form-item-main" label="数量" :label-width="formLabelWidth" prop="quantity">
+                    <el-input v-model.number="initParam.quantity" autocomplete="off" class="inputWidth" />
+                </el-form-item>
+                <el-form-item class="el-form-item-main" label="购进单价" :label-width="formLabelWidth">
+                    <el-input v-model="initParam.unitPrice" autocomplete="off" class="inputWidth" />
+                </el-form-item>
+                <el-form-item class="el-form-item-main" label="入库日期" :label-width="formLabelWidth" prop="date">
+                    <el-date-picker v-model="initParam.date" type="date" placeholder="入库日期" value-format="YYYY-MM-DD"
+                        clearable style="width: 200px;" />
+                </el-form-item>
+                <el-form-item class="el-form-item-main" label="发货单位" :label-width="formLabelWidth">
+                    <el-autocomplete v-model="initParam.forwardingUnit" :fetch-suggestions="querySearch1" clearable class="inputWidth"
+                        placeholder="发货单位" />
+                </el-form-item>
+                <el-form-item label="经办人" :label-width="formLabelWidth" prop="operator">
+                    <el-autocomplete v-model="initParam.operator" :fetch-suggestions="querySearch" clearable class="inputWidth"
+                        placeholder="经办人" />
+                </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>
+                    <el-button type="primary" @click="submitForm(ruleFormRef)">加入暂存</el-button>
+                    <el-button @click="showinnerVisible">查看暂存</el-button>
+                    <el-button type="danger" @click="resetForm(ruleFormRef)">重置数据</el-button>
                 </span>
             </template>
+            <el-dialog v-model="innerVisible" title="入库数据" width="95%" append-to-body draggable
+                :close-on-click-modal="false" :close-on-press-escape="false">
+                <el-table :data="data.tableData" style="width: 100%" border max-height="450"
+                    :header-cell-style="{ 'background-color': '#ccc', 'color': 'white' }">
+                    <el-table-column :label="item.label" v-for="item, i in data.columns" :key="i" min-width="110"
+                        show-overflow-tooltip>
+                        <template #default="scope"><!--scope.row.medicineInfo[item.prop] -->
+                            {{ findFun(scope.row.medicineInfo[item.prop], item.list) }}
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="quantity" label="数量" min-width="110" show-overflow-tooltip />
+                    <el-table-column prop="unitPrice" label="购进单价" min-width="110" show-overflow-tooltip />
+                    <el-table-column prop="forwardingUnit" label="发货单位" min-width="110" show-overflow-tooltip />
+                    <el-table-column prop="date" label="入库日期" min-width="110" show-overflow-tooltip />
+                    <el-table-column prop="operator" label="经办人" min-width="110" show-overflow-tooltip />
+
+                    <el-table-column fixed="right" label="操作" min-width="110">
+                        <template #default="scope">
+                            <el-button type="primary" :icon="Edit" @click="handleClick(scope.row, scope.$index)" circle />
+                            <el-button type="danger" :icon="Delete" @click="delClick(scope.$index)" circle />
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <template #footer>
+                    <span class="dialog-footer">
+                        <el-button @click="innerVisible = false">关闭</el-button>
+                        <el-button type="primary" @click="subStock">立即入库</el-button>
+                    </span>
+                </template>
+            </el-dialog>
         </el-dialog>
     </div>
 </template>
 
 <script setup lang="ts">
-import { reactive, ref } from 'vue'
-const dialogFormVisible = ref(true)
+import { reactive, ref ,onMounted} from 'vue'
+import type { FormInstance, FormRules } from 'element-plus'
+import { ElNotification } from 'element-plus'
+import { syrulesData, columnsTable } from "@/plugins/rulesData";
+const dialogFormVisible = ref(false)
+const ruleFormRef = ref<FormInstance>()
+
+let rules: any = reactive({})
+
+import {
+    medicListStock,
+    stockunit,//发货单位
+    operatorList,//经办人
+    stockTemplateIn,//单个入库
+    stockTemplateBatchIn,//批量入库
+} from "@/api";
+const innerVisible = ref(false)
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { Delete, Edit, } from '@element-plus/icons-vue'
+const formLabelWidth = '110px'
+let initParam: any = reactive({
+    "date": "",
+    "forwardingUnit": "",
+    "medicineInfo": {},
+    "operator": '',
+    "quantity": '',
+    "unitPrice":null
+})
+
+
+
+interface RestaurantItem {
+  value: string
+  link: string
+}
+const restaurants = ref<RestaurantItem[]>([])
+const querySearch = (queryString: string, cb: any) => {
+  const results = queryString
+    ? restaurants.value.filter(createFilter(queryString))
+    : restaurants.value
+  cb(results)
+}
+const createFilter = (queryString: string) => {
+  return (restaurant: RestaurantItem) => {
+    return (
+      restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0
+    )
+  }
+}
+
+const restaurants1 = ref<RestaurantItem[]>([])
+const querySearch1 = (queryString: string, cb: any) => {
+  const results = queryString
+    ? restaurants1.value.filter(createFilter(queryString))
+    : restaurants1.value
+  cb(results)
+}
+
+let data: any = reactive({
+    tableData: [],
+    showDiaData: [],
+    itemPir: [],
+    rules1: {},
+    columns: [],// 渲染表格
+    selectType: [],//表格的下拉对应
+    editStrot: false,
+    editIndex: null
+})
+const emit: any = defineEmits(['scanCode'])
+//立即入库
+const subStock = async () => {
+    const reslut: any = await stockTemplateBatchIn({ "stockInList": data.tableData })
+    console.log('返回', reslut)
+    if (reslut.code == 200 && reslut.msg == '入库成功') {
+        ElMessage.success(reslut.msg)
+        dialogFormVisible.value = false
+        innerVisible.value = false
+        emit('scanCode', '')
+        data.tableData = []
+    }
+}
+
+//函数
+const findFun = (data: any, list: any) => {
+    if (list) {
+        const b = list.find((item: any) => item.id == data)
+        if (b) return b.name
+        else return ''
+    } else {
+        return data
+    }
+}
+const resetForm = (formEl: FormInstance | undefined) => {
+    if (!formEl) return
+    formEl.resetFields()
+}
+//加入暂存区
+const submitForm = async (formEl: FormInstance | undefined) => {
+    if (!formEl) return
+    await formEl.validate((valid, fields) => {
+        if (valid) {
+            ElNotification({
+                title: '暂存成功',
+                message: 'ok,加入暂存成功,右下角按钮查看/提交暂存',
+                type: 'success',
+            })
+            console.log('提交', data.editStrot)
+            if (data.editStrot) {//编辑状态
+                let { date, forwardingUnit, operator, quantity, unitPrice, medicineInfo } = initParam
+                data.tableData.splice(data.editIndex, 1, { date, forwardingUnit, operator, quantity, unitPrice: unitPrice, medicineInfo: { ...medicineInfo } })
+                console.log('编辑状态', data.tableData)
+            } else {//正常添加
+                let { date, forwardingUnit, operator, quantity, unitPrice, medicineInfo } = initParam
+                data.tableData.push({ date, forwardingUnit, operator, quantity, unitPrice: unitPrice, medicineInfo: { ...medicineInfo } })
+                console.log('正常添加', data.tableData)
+            }
+        } else {
+            ElMessage.error('请完善必填项')
+        }
+    })
+}
+
+//函数
+const closeFun = async () => {
+    if (data.tableData.length == 0) {
+        dialogFormVisible.value = false
+        data.tableData = []
+    } else {
+        ElMessageBox.confirm('请检查录入数据是否已经提交,该操作将放弃录入信息,是否放弃?', '提示', {
+            confirmButtonText: '立即去入库',
+            cancelButtonText: '放弃数据',
+            type: 'warning',
+            draggable: true,
+            center: true,
+        }).then(() => {
+            innerVisible.value = true
+        }).catch(() => {
+            dialogFormVisible.value = false
+            ElMessage.success('已放弃入库数据')
+        })
+    }
+}
+//收发货单位
+const itemPirFun = async () => {
+    const reslut: any = await stockunit({ type: 3 })
+    const arrMap = reslut.data?.list
+    const arr:any = []
+    arrMap.forEach((item:any)=>{
+        arr.push({ value: item, link: item})  
+    })
+    restaurants1.value = arr
+}
+//经办人Api
+const operatorListApi = async () => {
+    const reslut: any = await operatorList({})
+    const arrMap = reslut.data?.list
+    const arr:any = []
+    arrMap.forEach((item:any)=>{
+        arr.push({ value: item, link: item})  
+    })
+    restaurants.value = arr
+}
+
+
+//函数
+const showinnerVisible = async () => {
+    innerVisible.value = true
+    data.editStrot = false
+    console.log(data.tableData)
+}
+
+const showDia = async () => {
+    data.tableData = []
+    data.showDiaData = []
+    data.rules1 = []
+    data.columns = []
+    data.selectType = []
+    data.editStrot = false
+    resetFun()//复原表单
+
+    medicListStockFun()//获取入库表单
+    itemPirFun()//发货单位
+    operatorListApi()//经办人
+}
+//复原表单
+const resetFun = async () => {
+    initParam.date = ''
+    initParam.forwardingUnit = ''
+    initParam.medicineInfo = {}
+    initParam.operator = ''
+    initParam.quantity = ''
+    initParam.unitPrice = null
+    resetForm(ruleFormRef.value)
+}
+//获取入库表单Api
+const medicListStockFun = async () => {
+    data.columns = []
+    const reslut: any = await medicListStock({})
+    if (reslut.code == 200 && reslut.msg == '查询成功') {
+        data.showDiaData = reslut.data?.list
+        data.rules1 = {}
+        data.columns = []
+        data.selectType = []
+        reslut.data?.list.forEach((value: any) => { //value设置成key
+            data.selectType.push({ type: value.type, list: value.list })
+            data.columns.push({ prop: value.field_name, label: value.name, list: value.list })
+            initParam.medicineInfo[value.field_name] = ''; // 这里可以根据需要设置其他值作为键的内容
+            if (['product_id', 'enterprise_id', 'spec_id', 'batch_number', 'expiry_date', 'approval_number'].includes(value.field_name)) {
+                if (value.type == 6) {
+                    data.rules1['medicineInfo.' + value.field_name] = [{ required: true, message: '必填项', trigger: 'change' }, { pattern: /^([1-9]\d*|0)(\.\d{1,2})?$/, message: '请输入>=0,(最多两位小数)', trigger: "blur" },]
+                } else if (value.type == 7) {
+                    data.rules1['medicineInfo.' + value.field_name] = [{ required: true, message: '必填项', trigger: 'change' }, { pattern: /^(?:[1-9]\d*)$/, message: '请输入正整数', trigger: "blur" },]
+                } else {
+                    data.rules1['medicineInfo.' + value.field_name] = [{ required: true, message: '必填项', trigger: 'change', }]
+                }
+            }
+        });
+        Object.assign(rules, { ...data.rules1, ...syrulesData })
+        console.log('表格', data.selectType)
+        dialogFormVisible.value = true
+    }
+}
+
+const handleClick = (datas: any, index: any) => {
+    data.editStrot = true
+    data.editIndex = index
+    let { date, forwardingUnit, operator, quantity, unitPrice, medicineInfo } = datas
+    Object.assign(initParam, { date, forwardingUnit, operator, quantity, unitPrice, medicineInfo: { ...medicineInfo } })
+    innerVisible.value = false
+}
+const delClick = (index: any) => {
+    ElMessageBox.confirm('删除一条信息,是否继续?', '删除', {
+        confirmButtonText: '确认删除',
+        cancelButtonText: 'Cancel',
+        type: 'warning',
+        center: true,
+    }).then(() => {
+        data.tableData.splice(index, 1);
+        ElMessage.success('已删除')
+    })
+}
+
 </script>
-<style lang="scss">
-/* @import url(); 引入css类 */
-</style>
+<style lang="scss">.inputWidth {
+    width: 200px;
+}</style>

+ 21 - 6
src/views/stockcontrol/storagePut/index.vue

@@ -35,8 +35,8 @@
         </searchAdd>
         <bg istitle="基本信息">
             <template #btn>
-                <scanCode style="margin-right: 20px;" @scanCode="scanCodeFun"></scanCode>
-                <!-- <Labour></Labour> -->
+                <Labour style="margin-right: 20px;"></Labour>
+                <scanCode @scanCode="scanCodeFun"></scanCode>
             </template>
             <template #bg>
                 <tables ref="TableRef" :requestApi="stockInList" :columns="columns" :initParam="initParam">
@@ -57,11 +57,13 @@ import {
     stockunit,//收发货单位
     medicineColumns,//表头
 } from "@/api";
-import { reactive, ref,onMounted } from "vue";
+import { reactive, ref,onMounted,onBeforeMount } from "vue";
 import tables from "@/components/table.vue";
 import searchAdd from "@/components/searchAdd.vue";
 import bg from '@/components/bg.vue'
+import Labour from './Labour.vue'
 import scanCode from './scanCode.vue'
+
 import Editinventory from './Editinventory.vue'
 
 const TableRef = ref()
@@ -72,7 +74,19 @@ const scanCodeFun = async ()=>{
     console.log('添加完成')
     TableRef.value?.getTableList()
 }
-
+//函数
+const datepickFn = ()=>{
+    const today =  new Date()
+    const year = today.getFullYear();
+    const month = (today.getMonth() + 1).toString().padStart(2,'0'); // 注意月份从0开始,所以要加1
+    const date = (today.getDate()).toString().padStart(2,'0');
+    const j = year +'-' + month + '-'+date
+    data.datepick = [j,j]
+    initParam.startDate = j; initParam.endDate = j
+}
+onBeforeMount(()=>{
+    datepickFn()
+})
 const columns:any = []
 //提交参数
 const initParam = reactive({
@@ -83,9 +97,10 @@ const initParam = reactive({
     "productId": null,
     "forwardingUnit": ""
 })
-const data = reactive({
-    datepick: ''
+const data:any = reactive({
+    datepick:[]
 })
+
 /**
  * 
  * @param val 子传值

+ 83 - 0
src/views/stockcontrol/storagePut/inputSearch.vue

@@ -0,0 +1,83 @@
+<template>
+    <div class="Qr">
+        <div class="Qr-img">
+            <img src="@/assets/img/BarCodeQR.svg" style="width: 80%;height: 80%;">
+        </div>
+        <div class="Qr-input">
+            <input class="Qr-input-type" ref="myInput" v-model="data.value" type="text" placeholder="请扫描追数码">
+            <el-icon :size="18" style="cursor: pointer;" @click="data.value = ''"><CircleClose/></el-icon>
+        </div>
+        <button class="Qr-isButton">确认</button>
+    </div>
+</template>
+
+<script setup lang="ts">
+import { ref,reactive,onMounted} from "vue";
+const myInput = ref()
+const data:any = reactive({
+    value:''
+})
+//函数
+const delvalue = async ()=>{
+
+}
+onMounted(()=>{
+    console.log('myInput',myInput)
+    myInput.value.focus()
+})
+</script>
+<style lang="scss">
+/* @import url(); 引入css类 */
+.Qr{
+    display: flex;
+    margin-bottom: 20px;
+    border: 1px solid #409eff;
+    box-sizing: border-box;
+    min-width:450px;
+    width: 30%;
+    border-radius: 6px;
+    overflow: hidden;
+    &-img{
+        width: 30px;
+        height: 30px;
+        margin-top: 10px;
+        margin-bottom: 10px;
+        padding:0 20px;
+        flex-shrink: 0;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        border-right: .5px solid #409eff;
+        user-select: none;
+    }
+    &-input{
+        flex: 1;
+        padding: 0 20px;
+        display: flex;
+        align-items: center;
+        &-type{
+            outline: none;
+            border: none;
+            flex: 1;
+            font-weight: bold;
+        font-size: 18px;
+        }
+    }
+    &-isButton{
+        background: #409eff;
+        outline: none;
+        border: none;
+        color: #fff;
+        min-width: 100px;
+        flex-shrink: 0;
+        cursor: pointer;
+        user-select: none;
+    }
+    &-isButton:hover{
+        background: #a0cfff;
+    }
+    &-isButton:active {
+        background-color: #337ecc;
+    }
+}
+</style>

+ 45 - 267
src/views/stockcontrol/storagePut/scanCode.vue

@@ -1,149 +1,55 @@
 <!-- 扫码 -->
 <template>
     <div class="">
-        <el-button el-button type="primary" icon="Camera" @click="showDia">入库</el-button>
-        <el-dialog v-model="dialogFormVisible" title="入库" :append-to-body="true" :before-close="closeFun" draggable
-            :close-on-click-modal="false" :close-on-press-escape="false" width="60%">
-            <el-form ref="ruleFormRef" :rules="rules" :model="initParam" :inline="true">
-                <el-divider content-position="center">药品信息</el-divider>
-                <el-form-item :label="item.name" :label-width="formLabelWidth" v-for="(item, index) in data.showDiaData"
-                    :key="index" :prop="'medicineInfo.' + item.field_name">
-                    <el-select v-model="initParam.medicineInfo[item.field_name]" :placeholder="'请选择' + item.name"
-                        class="inputWidth" v-if="[1, 2, 3, 4, 5].includes(item.type)">
-                        <el-option :label="itemIt.name" :value="itemIt.id" v-for="itemIt, i in item.list" :key="i" />
-                    </el-select>
-                    <el-input v-model="initParam.medicineInfo[item.field_name]" autocomplete="off"
-                        :placeholder="'请输入' + item.name" class="inputWidth" v-if="item.type == 6" />
-                    <el-input v-model="initParam.medicineInfo[item.field_name]" autocomplete="off"
-                        :placeholder="'请输入' + item.name" class="inputWidth" v-if="item.type == 7" />
-                    <el-input v-model="initParam.medicineInfo[item.field_name]" autocomplete="off"
-                        :placeholder="'请输入' + item.name" class="inputWidth" v-if="item.type == 8" />
-                    <el-date-picker v-model="initParam.medicineInfo[item.field_name]" type="date" value-format="YYYY-MM-DD"
-                        :placeholder="'请输入' + item.name" clearable style="width: 200px;" v-if="item.type == 9" />
-                    <el-date-picker v-model="initParam.medicineInfo[item.field_name]" type="datetime"
-                        value-format="YYYY-MM-DD HH:mm:ss" :placeholder="'请输入' + item.name" clearable style="width: 200px;"
-                        v-if="item.type == 10" />
-                </el-form-item>
-                <el-divider content-position="center">入库信息</el-divider>
-                <el-form-item class="el-form-item-main" label="数量" :label-width="formLabelWidth" prop="quantity">
-                    <el-input v-model.number="initParam.quantity" autocomplete="off" class="inputWidth" />
-                </el-form-item>
-                <el-form-item class="el-form-item-main" label="购进单价" :label-width="formLabelWidth">
-                    <el-input v-model="initParam.unitPrice" autocomplete="off" class="inputWidth" />
-                </el-form-item>
-                <el-form-item class="el-form-item-main" label="入库日期" :label-width="formLabelWidth" prop="date">
-                    <el-date-picker v-model="initParam.date" type="date" placeholder="入库日期" value-format="YYYY-MM-DD"
-                        clearable style="width: 200px;" />
-                </el-form-item>
-                <el-form-item class="el-form-item-main" label="发货单位" :label-width="formLabelWidth">
-                    <el-autocomplete v-model="initParam.forwardingUnit" :fetch-suggestions="querySearch1" clearable class="inputWidth"
-                        placeholder="发货单位" />
-                </el-form-item>
-                <el-form-item label="经办人" :label-width="formLabelWidth" prop="operator">
-                    <el-autocomplete v-model="initParam.operator" :fetch-suggestions="querySearch" clearable class="inputWidth"
-                        placeholder="经办人" />
-                </el-form-item>
-            </el-form>
+        <el-button el-button type="primary" icon="Camera" @click="showDia">扫码入库</el-button>
+        <el-dialog v-model="dialogFormVisible" title="扫码入库" :append-to-body="true" draggable :close-on-click-modal="false"
+            :close-on-press-escape="false" width="95%">
+            <inputSearch></inputSearch>
+            <el-table :data="data.tableData" style="width: 100%" border height="450">
+                <el-table-column :label="item.label" v-for="item, i in data.columns" :key="i" min-width="110"
+                    show-overflow-tooltip>
+                    <template #default="scope"><!--scope.row.medicineInfo[item.prop] -->
+                        {{ findFun(scope.row.medicineInfo[item.prop], item.list) }}
+                    </template>
+                </el-table-column>
+                <el-table-column prop="quantity" label="数量" min-width="110" show-overflow-tooltip />
+                <el-table-column prop="unitPrice" label="购进单价" min-width="110" show-overflow-tooltip />
+                <el-table-column prop="forwardingUnit" label="发货单位" min-width="110" show-overflow-tooltip />
+                <el-table-column prop="date" label="入库日期" min-width="110" show-overflow-tooltip />
+                <el-table-column prop="operator" label="经办人" min-width="110" show-overflow-tooltip />
+
+                <el-table-column fixed="right" label="操作" min-width="110">
+                    <template #default="scope">
+                        <el-button type="primary" :icon="Edit" @click="handleClick(scope.row, scope.$index)" circle />
+                        <el-button type="danger" :icon="Delete" @click="delClick(scope.$index)" circle />
+                    </template>
+                </el-table-column>
+            </el-table>
             <template #footer>
                 <span class="dialog-footer">
-                    <el-button type="primary" @click="submitForm(ruleFormRef)">加入暂存</el-button>
-                    <el-button @click="showinnerVisible">查看暂存</el-button>
-                    <el-button type="danger" @click="resetForm(ruleFormRef)">重置数据</el-button>
+                    <el-button @click="dialogFormVisible = false">关闭</el-button>
+                    <el-button type="primary" @click="subStock">立即入库</el-button>
                 </span>
             </template>
-            <el-dialog v-model="innerVisible" title="入库数据" width="95%" append-to-body draggable
-                :close-on-click-modal="false" :close-on-press-escape="false">
-                <el-table :data="data.tableData" style="width: 100%" border max-height="450"
-                    :header-cell-style="{ 'background-color': '#ccc', 'color': 'white' }">
-                    <el-table-column :label="item.label" v-for="item, i in data.columns" :key="i" min-width="110"
-                        show-overflow-tooltip>
-                        <template #default="scope"><!--scope.row.medicineInfo[item.prop] -->
-                            {{ findFun(scope.row.medicineInfo[item.prop], item.list) }}
-                        </template>
-                    </el-table-column>
-                    <el-table-column prop="quantity" label="数量" min-width="110" show-overflow-tooltip />
-                    <el-table-column prop="unitPrice" label="购进单价" min-width="110" show-overflow-tooltip />
-                    <el-table-column prop="forwardingUnit" label="发货单位" min-width="110" show-overflow-tooltip />
-                    <el-table-column prop="date" label="入库日期" min-width="110" show-overflow-tooltip />
-                    <el-table-column prop="operator" label="经办人" min-width="110" show-overflow-tooltip />
-
-                    <el-table-column fixed="right" label="操作" min-width="110">
-                        <template #default="scope">
-                            <el-button type="primary" :icon="Edit" @click="handleClick(scope.row, scope.$index)" circle />
-                            <el-button type="danger" :icon="Delete" @click="delClick(scope.$index)" circle />
-                        </template>
-                    </el-table-column>
-                </el-table>
-                <template #footer>
-                    <span class="dialog-footer">
-                        <el-button @click="innerVisible = false">关闭</el-button>
-                        <el-button type="primary" @click="subStock">立即入库</el-button>
-                    </span>
-                </template>
-            </el-dialog>
         </el-dialog>
     </div>
 </template>
 
 <script setup lang="ts">
-import { reactive, ref ,onMounted} from 'vue'
-import type { FormInstance, FormRules } from 'element-plus'
-import { ElNotification } from 'element-plus'
-import { syrulesData, columnsTable } from "@/plugins/rulesData";
+import { reactive, ref } from 'vue'
+import type { FormInstance } from 'element-plus'
+import inputSearch from "./inputSearch.vue";
 const dialogFormVisible = ref(false)
 const ruleFormRef = ref<FormInstance>()
-
-let rules: any = reactive({})
+    import { Search } from '@element-plus/icons-vue'
 
 import {
     medicListStock,
-    stockunit,//发货单位
-    operatorList,//经办人
-    stockTemplateIn,//单个入库
-    stockTemplateBatchIn,//批量入库
 } from "@/api";
 const innerVisible = ref(false)
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { Delete, Edit, } from '@element-plus/icons-vue'
-const formLabelWidth = '110px'
-let initParam: any = reactive({
-    "date": "",
-    "forwardingUnit": "",
-    "medicineInfo": {},
-    "operator": '',
-    "quantity": null,
-    "unitPrice": null
-})
-
-
-
-interface RestaurantItem {
-  value: string
-  link: string
-}
-const restaurants = ref<RestaurantItem[]>([])
-const querySearch = (queryString: string, cb: any) => {
-  const results = queryString
-    ? restaurants.value.filter(createFilter(queryString))
-    : restaurants.value
-  cb(results)
-}
-const createFilter = (queryString: string) => {
-  return (restaurant: RestaurantItem) => {
-    return (
-      restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0
-    )
-  }
-}
-
-const restaurants1 = ref<RestaurantItem[]>([])
-const querySearch1 = (queryString: string, cb: any) => {
-  const results = queryString
-    ? restaurants1.value.filter(createFilter(queryString))
-    : restaurants1.value
-  cb(results)
-}
-
+import { syrulesData, columnsTable } from "@/plugins/rulesData";
 let data: any = reactive({
     tableData: [],
     showDiaData: [],
@@ -154,136 +60,25 @@ let data: any = reactive({
     editStrot: false,
     editIndex: null
 })
-const emit: any = defineEmits(['scanCode'])
-//立即入库
-const subStock = async () => {
-    const reslut: any = await stockTemplateBatchIn({ "stockInList": data.tableData })
-    console.log('返回', reslut)
-    if (reslut.code == 200 && reslut.msg == '入库成功') {
-        ElMessage.success(reslut.msg)
-        dialogFormVisible.value = false
-        innerVisible.value = false
-        emit('scanCode', '')
-        data.tableData = []
-    }
-}
-
-//函数
-const findFun = (data: any, list: any) => {
-    if (list) {
-        const b = list.find((item: any) => item.id == data)
-        if (b) return b.name
-        else return ''
-    } else {
-        return data
-    }
-}
-const resetForm = (formEl: FormInstance | undefined) => {
-    if (!formEl) return
-    formEl.resetFields()
-}
-//加入暂存区
-const submitForm = async (formEl: FormInstance | undefined) => {
-    if (!formEl) return
-    await formEl.validate((valid, fields) => {
-        if (valid) {
-            ElNotification({
-                title: '暂存成功',
-                message: 'ok,加入暂存成功,右下角按钮查看/提交暂存',
-                type: 'success',
-            })
-            console.log('提交', data.editStrot)
-            if (data.editStrot) {//编辑状态
-                let { date, forwardingUnit, operator, quantity, unitPrice, medicineInfo } = initParam
-                data.tableData.splice(data.editIndex, 1, { date, forwardingUnit, operator, quantity, unitPrice: parseInt(unitPrice), medicineInfo: { ...medicineInfo } })
-                console.log('编辑状态', data.tableData)
-            } else {//正常添加
-                let { date, forwardingUnit, operator, quantity, unitPrice, medicineInfo } = initParam
-                data.tableData.push({ date, forwardingUnit, operator, quantity, unitPrice: parseInt(unitPrice), medicineInfo: { ...medicineInfo } })
-                console.log('正常添加', data.tableData)
-            }
-        } else {
-            ElMessage.error('请完善必填项')
-        }
-    })
-}
-
-//函数
-const closeFun = async () => {
-    if (data.tableData.length == 0) {
-        dialogFormVisible.value = false
-        data.tableData = []
-    } else {
-        ElMessageBox.confirm('请检查录入数据是否已经提交,该操作将放弃录入信息,是否放弃?', '提示', {
-            confirmButtonText: '立即去入库',
-            cancelButtonText: '放弃数据',
-            type: 'warning',
-            draggable: true,
-            center: true,
-        }).then(() => {
-            innerVisible.value = true
-        }).catch(() => {
-            dialogFormVisible.value = false
-            ElMessage.success('已放弃入库数据')
-        })
-    }
-}
-//收发货单位
-const itemPirFun = async () => {
-    const reslut: any = await stockunit({ type: 3 })
-    const arrMap = reslut.data?.list
-    const arr:any = []
-    arrMap.forEach((item:any)=>{
-        arr.push({ value: item, link: item})  
-    })
-    restaurants1.value = arr
-}
-//经办人Api
-const operatorListApi = async () => {
-    const reslut: any = await operatorList({})
-    const arrMap = reslut.data?.list
-    const arr:any = []
-    arrMap.forEach((item:any)=>{
-        arr.push({ value: item, link: item})  
-    })
-    restaurants.value = arr
-}
-
-
-//函数
-const showinnerVisible = async () => {
-    innerVisible.value = true
-    data.editStrot = false
-    console.log(data.tableData)
-}
-
+let initParam: any = reactive({
+    "date": "",
+    "forwardingUnit": "",
+    "medicineInfo": {},
+    "operator": '',
+    "quantity": '',
+    "unitPrice": null
+})
+let rules: any = reactive({})
 const showDia = async () => {
-    data.tableData = []
-    data.showDiaData = []
-    data.rules1 = []
-    data.columns = []
-    data.selectType = []
-    data.editStrot = false
-    resetFun()//复原表单
-
+    dialogFormVisible.value = true
     medicListStockFun()//获取入库表单
-    itemPirFun()//发货单位
-    operatorListApi()//经办人
-}
-//复原表单
-const resetFun = async () => {
-    initParam.date = ''
-    initParam.forwardingUnit = ''
-    initParam.medicineInfo = {}
-    initParam.operator = ''
-    initParam.quantity = null
-    initParam.unitPrice = null
-    resetForm(ruleFormRef.value)
 }
 //获取入库表单Api
 const medicListStockFun = async () => {
     data.columns = []
     const reslut: any = await medicListStock({})
+    console.log('表格', reslut)
+    return
     if (reslut.code == 200 && reslut.msg == '查询成功') {
         data.showDiaData = reslut.data?.list
         data.rules1 = {}
@@ -309,26 +104,9 @@ const medicListStockFun = async () => {
     }
 }
 
-const handleClick = (datas: any, index: any) => {
-    data.editStrot = true
-    data.editIndex = index
-    let { date, forwardingUnit, operator, quantity, unitPrice, medicineInfo } = datas
-    Object.assign(initParam, { date, forwardingUnit, operator, quantity, unitPrice, medicineInfo: { ...medicineInfo } })
-    innerVisible.value = false
-}
-const delClick = (index: any) => {
-    ElMessageBox.confirm('删除一条信息,是否继续?', '删除', {
-        confirmButtonText: '确认删除',
-        cancelButtonText: 'Cancel',
-        type: 'warning',
-        center: true,
-    }).then(() => {
-        data.tableData.splice(index, 1);
-        ElMessage.success('已删除')
-    })
-}
 
 </script>
-<style lang="scss">.inputWidth {
+<style lang="scss">
+.inputWidth {
     width: 200px;
 }</style>

+ 2 - 2
src/views/stockcontrol/transmitReceive/downing.vue

@@ -11,14 +11,14 @@
                 </el-select>
             </el-form-item>
             <el-form-item label="生产企业" :label-width="formLabelWidth" prop="enterpriseId">
-                <el-select v-model.number="initParam.enterpriseId" filterable remote reserve-keyword placeholder="疫苗名称"
+                <el-select v-model.number="initParam.enterpriseId" filterable remote reserve-keyword placeholder="生产企业"
                     :remote-method="remoteMethod2" :loading="loading" clearable style="width: 100%;"
                     @clear="initParam.enterpriseId = null" @click="click2">
                     <el-option v-for="item in options2" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
             </el-form-item>
             <el-form-item label="规格" :label-width="formLabelWidth" prop="specId">
-                <el-select v-model.number="initParam.specId" filterable remote reserve-keyword placeholder="疫苗名称"
+                <el-select v-model.number="initParam.specId" filterable remote reserve-keyword placeholder="规格"
                     :remote-method="remoteMethod3" :loading="loading" clearable style="width: 100%;"
                     @clear="initParam.specId = null" @click="click3">
                     <el-option v-for="item in options3" :key="item.value" :label="item.label" :value="item.value" />

+ 19 - 3
src/views/stockcontrol/transmitReceive/index.vue

@@ -73,6 +73,9 @@ import bg from '@/components/bg.vue'
 import { ElTable } from 'element-plus'
 const loading = ref(false)
 
+
+
+
 interface RuleForm {
     page: number,
     pageSize: number,
@@ -95,8 +98,7 @@ const initParam = reactive<RuleForm>({//请求参数
 })
 const data: any = reactive({
     tableData: [],
-    
-    datepick:'',
+    datepick:[],
     total: 0,
     str: ''
 })
@@ -116,7 +118,7 @@ const columns: any = [
     { prop: 'enterprise_name', label: '生产企业', width: '120px' },
     { prop: 'approval_number', label: '批准文号', width: '120px' },
     { prop: 'batch_number', label: '血液制品批号', width: 120 },
-    { prop: 'expiry_date', label: '血液制品效期', width: 120 },
+    { prop: 'expiry_date', label: '失效日期', width: 120 },
     { prop: 'total_in', label: '收入数量', width: 100 },
     { prop: 'total_out', label: '发出数量', width: 80 },
     { prop: 'balance', label: '结余数量', width: 100 },
@@ -128,12 +130,26 @@ const columns: any = [
     { prop: 'date', label: '日期', width:120},
     // { prop: 'operation', label: '操作', fixed: 'right'}
 ]
+
+//设置时间
+const datepickFn = ()=>{
+    const today =  new Date()
+    const year = today.getFullYear();
+    const month = (today.getMonth() + 1).toString().padStart(2,'0'); 
+    const date = (today.getDate()).toString().padStart(2,'0');
+    const j = year +'-' + month + '-'+date
+    data.datepick = [j,j]
+    initParam.startDate = j; 
+    initParam.endDate = j
+}
+datepickFn()
 const userListApi = async () => {
     const result: any = await inventoryList(initParam)
     data.tableData = result.data?.list || []
     data.total = result.data?.count || 0
 }
 userListApi()
+
 //函数
 const printFun = async ()=>{
     window.print() //打印

+ 11 - 2
src/views/usermanagement/company/index.vue

@@ -51,8 +51,8 @@
 import bg from '@/components/bg.vue'
 import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'
 import searchAdd from "@/components/searchAdd.vue";
-import { reactive } from "vue";
-import { companyDept, postTree,deleteTree,putTree,lateInit } from "@/api";
+import { reactive,onMounted} from "vue";
+import { companyDept, postTree,deleteTree,putTree,lateInit,userInfo } from "@/api";
 import {enterCompanyFun} from '@/router';
 
 import { useStore } from "vuex";
@@ -76,6 +76,15 @@ const getDeptApi = async () => {
 }
 getDeptApi()
 
+//获取用户信息
+const getuserInfoApi = async () => {
+  const result: any = await userInfo({})
+  if (result.code == 200) store.commit('setIsUserInfo', result?.data) //存储用户个人信息
+}
+
+onMounted(() => {
+  getuserInfoApi()
+})
 
 
 //添加一级目录