|
@@ -1,88 +1,45 @@
|
|
|
<!-- 扫码 -->
|
|
|
<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" :before-close="closeFun" draggable
|
|
|
- :close-on-click-modal="false" :close-on-press-escape="false" 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-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-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-divider content-position="center">入库信息</el-divider>
|
|
|
+ <el-form-item class="el-form-item-main" label="数量" :label-width="formLabelWidth" prop="quantity">
|
|
|
+ <el-input v-model="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="form.name" autocomplete="off" class="inputWidth" />
|
|
|
+ <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">
|
|
|
- <el-date-picker v-model="form.region" type="date" placeholder="疫苗效期" clearable style="width: 200px;" />
|
|
|
+ <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-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 v-model="initParam.forwardingUnit" placeholder="请选择发货单位" class="inputWidth">
|
|
|
+ <el-option :value="it" v-for="it,j in data.itemPir" :key="j" />
|
|
|
</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-form-item label="经办人" :label-width="formLabelWidth" prop="operator">
|
|
|
+ <el-select v-model="initParam.operator" placeholder="请选择经办人" class="inputWidth">
|
|
|
+ <el-option :label="it" :value="it" v-for="(it,j) in data.itemOpen" :key="j+Math.random()" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<template #footer>
|
|
|
<span class="dialog-footer">
|
|
|
- <el-button>加入缓存</el-button>
|
|
|
- <el-button type="primary" @click="innerVisible = true">查看缓存</el-button>
|
|
|
+ <el-button @click="submitForm(ruleFormRef)">加入暂存</el-button>
|
|
|
+ <el-button type="primary" @click="showinnerVisible">查看暂存</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">
|
|
@@ -121,21 +78,45 @@
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
import { reactive, ref } from 'vue'
|
|
|
+import type { FormInstance, FormRules } from 'element-plus'
|
|
|
+import { syrulesData } from "@/plugins/rulesData";
|
|
|
const dialogFormVisible = ref(false)
|
|
|
+const ruleFormRef = ref<FormInstance>()
|
|
|
+
|
|
|
+let rules:any = reactive({})
|
|
|
+
|
|
|
+import {
|
|
|
+ medicListStock,
|
|
|
+ stockunit,//发货单位
|
|
|
+ operatorList,//经办人
|
|
|
+} from "@/api";
|
|
|
const innerVisible = ref(false)
|
|
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
import {Delete,Edit,} from '@element-plus/icons-vue'
|
|
|
const formLabelWidth = '110px'
|
|
|
-const form = reactive({
|
|
|
- name: '',
|
|
|
- region: '',
|
|
|
- date1: '',
|
|
|
- date2: '',
|
|
|
- delivery: false,
|
|
|
- type: [],
|
|
|
- resource: '',
|
|
|
- desc: '',
|
|
|
+const initParam:any = reactive({
|
|
|
+ "date": "",
|
|
|
+ "forwardingUnit": "",
|
|
|
+ "medicineInfo": {},
|
|
|
+ "operator":'',
|
|
|
+ "quantity": null,
|
|
|
+ "unitPrice":null
|
|
|
})
|
|
|
+const submitForm = async (formEl: FormInstance | undefined) => {
|
|
|
+ if (!formEl) return
|
|
|
+ await formEl.validate((valid, fields) => {
|
|
|
+ if (valid) {
|
|
|
+ console.log('submit!',initParam)
|
|
|
+ } else {
|
|
|
+ console.log('error submit!', initParam)
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+let data:any = reactive({
|
|
|
+ showDiaData:[],
|
|
|
+ itemPir:[],
|
|
|
+ itemOpen:[]
|
|
|
+})
|
|
|
//函数
|
|
|
const closeFun = async () => {
|
|
|
ElMessageBox.confirm('请检查录入数据是否已经提交,该操作将放弃录入信息,是否放弃?', '提示', {
|
|
@@ -151,7 +132,40 @@ const closeFun = async () => {
|
|
|
ElMessage.success('放弃')
|
|
|
})
|
|
|
}
|
|
|
+//收发货单位
|
|
|
+const itemPirFun = async()=>{
|
|
|
+ const reslut:any = await stockunit({ type: 3 })
|
|
|
+ data.itemPir = reslut.data.list
|
|
|
+}
|
|
|
+//经办人Api
|
|
|
+const operatorListApi = async()=>{
|
|
|
+ const reslut:any = await operatorList({})
|
|
|
+ data.itemOpen = reslut.data.list
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
+//函数
|
|
|
+const showinnerVisible = async ()=>{
|
|
|
+ innerVisible.value = true
|
|
|
+}
|
|
|
+const showDia = async ()=>{
|
|
|
+ dialogFormVisible.value = true
|
|
|
+ itemPirFun()//发货单位
|
|
|
+ operatorListApi()//经办人
|
|
|
+ const reslut:any = await medicListStock({})
|
|
|
+ console.log('返回',reslut)
|
|
|
+ if(reslut.code==200 && reslut.msg=='查询成功'){
|
|
|
+ data.showDiaData = reslut.data.list
|
|
|
+ let rules1:any = {}
|
|
|
+ reslut.data.list.forEach((value:any) => { //value设置成key
|
|
|
+ initParam.medicineInfo[value.field_name] = ''; // 这里可以根据需要设置其他值作为键的内容
|
|
|
+ if(['product_id','enterprise_id','spec_id','batch_number','expiry_date','approval_number'].includes(value.field_name)){
|
|
|
+ rules1['medicineInfo.'+value.field_name] = [{required: true,message: '必填项',trigger: 'change',}]
|
|
|
+ }
|
|
|
+ });
|
|
|
+ Object.assign(rules,{...rules1,...syrulesData})
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
const handleClick = (data:any) => {
|
|
|
console.log('click',data)
|