| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <template>
- <view class="bg-#FBFDFB border-#AFDDBB pd-24 b-radius mb-10">
- <view v-if="showClose" class="c-#F81242 f-s-36 ab2-10-10 pl-20 pr-10"
- style="position: absolute; right: 10rpx; top: 0rpx" @click="() => handleClose(index)"> × </view>
- <view class="d-flex a-c pb-10">
- <view class="c-primary pd-4 bg-#E7F4EA radius-10" style="font-style: italic">{{ index + 1 < 10 ? '0' +
- (index + 1) : index + 1 }}</view>
- <view class="c-#333 f-s-34 f-w-5 ml-10 mr-10">{{ data?.variety }}</view>
- <span class="f-s-24 c-#666">{{ selectDictLabel(pt_seed_type, data?.seedType) }}</span>
- </view>
- <view class="pt-6 pb-6 d-flex a-c">
- <view class="c-#666 f-s-28"> 入库批次号:</view>
- <view class="c-#333 f-s-28 f-w-5">{{ data?.batchCode }}</view>
- </view>
- <view class="pt-6 pb-6 d-flex a-c">
- <view class="c-#666 f-s-28"> 供应商:</view>
- <view class="c-#333 f-s-28 f-w-5">{{ data?.supplier }}</view>
- </view>
- <view class="pt-6 pb-6 d-flex a-c">
- <view class="c-#666 f-s-28 w-s-no"> 所在库房:</view>
- <view class="c-#333 f-s-28 f-w-5">{{ data?.warehouses }}</view>
- </view>
- <view class="pt-6 pb-6 d-flex mb-12">
- <view class="w-50% d-flex a-c">
- <view class="c-#666 f-s-28"> 入库量:</view>
- <view class="c-#333 f-s-28 f-w-5">{{ data?.capacity }}{{ data?.unit }}</view>
- </view>
- <view class="w-50% d-flex a-c">
- <view class="c-#666 f-s-28"> 剩余量:</view>
- <view class="c-primary f-s-28 f-w-5">{{ data?.restAmount }}{{ data?.unit }}</view>
- </view>
- </view>
- <up-line color="#AFDDBB" style="margin-left: -24rpx; margin-right: -24rpx; width: auto"></up-line>
- <view class="f-s-28 c-#666 pt-16">本次使用量:</view>
- <view class="pt-6 pb-6 d-flex a-c">
- <view class="flex1 mr-10">
- <up-input v-model="inputsModel.inputAmount" placeholder="请输入本次使用量" border="bottom"
- style="padding-left: 0">
- <template #suffix>
- <view class="c-#333 f-s-28 f-w-5">{{ data?.unit }}</view>
- </template>
- </up-input>
- </view>
- <view class="">
- <up-checkbox label="全部使用" usedAlone v-model:checked="hasChecked"
- @change="handleUseAllChange"></up-checkbox>
- </view>
- </view>
- </view>
- </template>
- <script setup lang="ts">
- import { ref, watch, computed, nextTick } from 'vue';
- const { proxy } = getCurrentInstance() as ComponentInternalInstance;
- const { pt_seed_instore_type, pt_seed_type, pt_fungus_code_type } = toRefs<any>(proxy?.useDict('pt_seed_instore_type', 'pt_seed_type', 'pt_fungus_code_type'));
- // 从外部获取数据
- const props = defineProps<{
- showClose?: boolean;
- index: number;
- data: any;
- }>();
- const emit = defineEmits<{
- close: [index: number];
- }>();
- const inputsModel = defineModel<any>('inputs', { default: () => { } });
- // 处理关闭事件
- const handleClose = (index: number) => {
- emit('close', index);
- };
- // 建立一个计算属性 如果props.data.restAmount 等于或者大于inputsModel.inputAmount 那么就为true
- const hasChecked = computed(() => {
- return +inputsModel?.value.inputAmount >= +props.data.restAmount;
- });
- const handleUseAllChange = () => {
- console.log(hasChecked.value, 'hasChecked.value');
- if (!hasChecked.value || +hasChecked.value == 0) {
- inputsModel.value.inputAmount = props.data.restAmount;
- }
- };
- watch(
- () => inputsModel.value?.inputAmount,
- (val) => {
- if (val === undefined || val === null) return;
- const numVal = Number(val);
- if (!isNaN(numVal) && numVal > props.data.restAmount) {
- // 使用 nextTick 确保 UI 更新
- nextTick(() => {
- inputsModel.value.inputAmount = props.data.restAmount;
- });
- }
- },
- { flush: 'post' },
- );
- </script>
|