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
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>
|