You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

100 lines
2.8 KiB

<script setup lang="ts">
import { addLog } from 'apis/log'
import { editSols, getSolsList, saveSols } from 'apis/solution'
import { userList as userListApi } from 'apis/user'
import FtButton from 'components/common/FTButton/index.vue'
import { FtMessage } from 'libs/message'
import { useSystemStore } from 'stores/systemStore'
import { inject, onMounted, ref } from 'vue'
const props = defineProps({
data: {
type: Object,
default: () => ({}),
},
})
const emits = defineEmits(['ok', 'cancel'])
const systemStore = useSystemStore()
onMounted(async () => {
await getUserList()
await getSolutionList()
})
const form = ref<Log.LogItem>({})
const formRef = ref()
const rules = {
name: [
{ required: true, message: '请输入溶液名称', trigger: 'blur' },
],
}
const userList = ref<User.User[]>([])
const getUserList = async () => {
userList.value = (await userListApi()).list
}
const solutionList = ref<Solution.SolutionItem[]>([])
const getSolutionList = async () => {
solutionList.value = (await getSolsList()).list
}
const okHandle = async () => {
try {
const valid = await formRef.value.validate()
if (!valid) {
return
}
const params = {
...form.value,
channelCode: props.data.channelCode,
}
await addLog(params)
FtMessage.success('保存成功')
emits('ok', params)
}
catch (error) {
console.log(error)
}
}
const cancel = () => {
emits('cancel')
}
const channelMap = {
CHANNEL_1: '通道1',
CHANNEL_2: '通道2',
CHANNEL_3: '通道3',
CHANNEL_4: '通道4',
}
</script>
<template lang="pug">
FtDialog(visible :title="`${channelMap[data?.channelCode]}-领取`" width="30%" :ok-handle="okHandle" @cancel="cancel")
el-form(ref="formRef" label-width="auto" :model="form" :rules="rules")
el-form-item(label="溶液名称" prop="solutionId")
el-select(v-model="form.solutionId" placeholder="请选择溶液")
el-option(v-for="item in solutionList" :key="item.id" :label="item.name" :value="item.id")
el-form-item(label="溶液浓度" prop="concentration")
ft-input(v-model="form.concentration" placeholder="请输入溶液浓度" layoutName="number")
template(#append)
span %
el-form-item(label="发放人" prop="issuerId")
el-select(v-model="form.issuerId" placeholder="请选择发放人")
el-option(v-for="item in userList" :key="item.id" :label="item.nickname" :value="item.id")
el-form-item(label="领取人" prop="receiverId")
el-tag {{systemStore.systemStatus.currentUser.nickname}}
el-form-item(label="容量" prop="receivedVolume")
ft-input(v-model="form.receivedVolume" placeholder="请输入容量" layoutName="number")
template(#append)
span mL
</template>
<style lang="stylus" scoped>
.el-tag
margin-right 5px
</style>