lisy пре 2 недеља
родитељ
комит
2e208a4e4d

+ 1 - 1
src/components/ut-datetime-picker/ut-datetime-picker.vue

@@ -39,7 +39,7 @@ const props = withDefaults(defineProps<Props>(), {
     mode: 'datetime' as DateTimeMode,
     border: false,
     hasInput: false,
-    minDate: new Date(2000, 0, 1).getTime(),
+    minDate: new Date(1990, 0, 1).getTime(),
     maxDate: new Date(2050, 0, 1).getTime(),
     dateFields: 'day',
     // 留空以便按粒度自动输出:year→{y},month→{y}-{m},day→{y}-{m}-{d}

+ 40 - 0
src/pages.json

@@ -400,6 +400,46 @@
                 }
             ]
         },
+        // 包装
+        {
+            "root": "plant/packaging",
+            "pages": [
+                // 包装任务列表
+                {
+                    "path": "list/index",
+                    "style": {
+                        "navigationBarTitleText": "包装任务列表"
+                    }
+                },
+                {
+                    "path": "create/index",
+                    "style": {
+                        "navigationBarTitleText": "创建包装任务"
+                    }
+                },
+                // 包装任务详情
+                {
+                    "path": "detail/index",
+                    "style": {
+                        "navigationBarTitleText": "包装任务详情"
+                    }
+                },
+                // 打印追溯码
+                {
+                    "path": "print/index",
+                    "style": {
+                        "navigationBarTitleText": "打印追溯码"
+                    }
+                },
+                // 选择任务包装的对象
+                {
+                    "path": "select-object/index",
+                    "style": {
+                        "navigationBarTitleText": "选择包装对象"
+                    }
+                }
+            ]
+        },
         // 往来单位管理
         {
             "root": "plant/contact-unit",

+ 3 - 0
src/plant/packaging/create/index.vue

@@ -0,0 +1,3 @@
+<template>
+    <view>xx</view>
+</template>

+ 3 - 0
src/plant/packaging/detail/index.vue

@@ -0,0 +1,3 @@
+<template>
+    <view>xx</view>
+</template>

+ 3 - 0
src/plant/packaging/list/index.vue

@@ -0,0 +1,3 @@
+<template>
+    <view>xx</view>
+</template>

+ 3 - 0
src/plant/packaging/print/index.vue

@@ -0,0 +1,3 @@
+<template>
+    <view>xx</view>
+</template>

+ 3 - 0
src/plant/packaging/select-object/index.vue

@@ -0,0 +1,3 @@
+<template>
+    <view>xx</view>
+</template>

+ 1 - 1
src/plant/storage/agro-product/info-edit/index.vue

@@ -252,7 +252,7 @@ const submitForm = async () => {
 };
 const changeSupplierProducerFlag = () => {
     if (form.value.supplierProducerFlag === '1') {
-        form.value.producer = form.value.supplierInfo?.name || '';
+        form.value.producer = form.value.supplierInfo?.cusName || '';
     } else {
         form.value.producer = '';
     }

+ 1 - 1
src/plant/storage/agro-product/info-update/index.vue

@@ -383,7 +383,7 @@ const getDetailById = async (id: string) => {
 };
 const changeSupplierProducerFlag = () => {
     if (form.value.supplierProducerFlag === '1') {
-        form.value.producer = form.value.supplierInfo?.name || '';
+        form.value.producer = form.value.supplierInfo?.cusName || '';
     } else {
         form.value.producer = '';
     }

+ 1 - 1
src/plant/storage/agro-product/list/index.vue

@@ -1,7 +1,7 @@
 <template>
     <z-paging ref="paging" v-model="list" bgColor="#f7f7f7" @query="query" hide-no-more-inside>
         <template #top>
-            <ut-navbar title="农资库" :fixed="false"></ut-navbar>
+            <ut-navbar title="农资库" :fixed="false" :breadcrumb="false"></ut-navbar>
         </template>
 
         <view class="pd3-24-24-0">

+ 4 - 26
src/plant/storage/fresh-goods/detail/index.vue

@@ -18,12 +18,12 @@
             </view>
             <view class="bg-#fff pd-24">
                 <view class="d-flex j-sb a-c li-item-head mb-16">
-                    <view class="li-left-tag" :class="{ [`bg-instore-${form?.instoreType}`]: true }">{{ form?.seedLevel || '' }}{{ selectDictLabel(pt_seed_instore_type, form?.instoreType) }}</view>
+                    <view class="li-left-tag" :class="{ [`bg-instore-${form?.instoreType}`]: true }">{{ selectDictLabel(pt_seed_instore_type, form?.instoreType) }}</view>
                     <view class="f-s-22 c-#666">{{ form?.instoreBizInfo?.instoreDate }}</view>
                 </view>
                 <view class="mb-10">
                     <span class="f-s-34 c-#333 f-w-500 mr-10">{{ form?.variety }}</span>
-                    <span v-if="form?.partName" class="f-s-24 c-#666">{{ form?.partName }}</span>
+                    <span v-if="form?.partName" class="f-s-24 c-#666">{{ form?.level || '' }}{{ form?.partName }}</span>
                 </view>
                 <template v-if="form?.instoreType == '2'">
                     <view class="pd2-4-0 f-s-28">
@@ -69,28 +69,6 @@
                     <up-button @click="navigateToInventoryLoss" type="warning" plain :customStyle="{ background: '#FFF9EF', borderColor: '#F9D9A3' }">库存有消耗?库存损耗登记{{ '>' }}</up-button>
                 </view>
             </view>
-            <view class="pd-24">
-                <view class="startline-title">采收信息</view>
-            </view>
-            <view class="bg-#fff pd-24" v-if="form?.harvestInfo">
-                <view class="f-s-30 pd2-16-0 info-border-bottom">
-                    <span class="c-#666">采收日期:</span>
-                    <span class="c-#333 f-w-600">{{ form?.harvestInfo?.harvestDate || '-' }}至{{ form?.harvestInfo?.harvestDateEnd || '-' }}</span>
-                </view>
-                <view class="f-s-30 pd2-16-0 info-border-bottom">
-                    <span class="c-#666">采收批号:</span>
-                    <span class="c-#333 f-w-600">
-                        {{ form?.harvestInfo?.harvestCode || '-' }}
-                    </span>
-                </view>
-                <!-- 基地挖坑 -->
-                <view class="f-s-30 pd2-16-0 info-border-bottom">
-                    <span class="c-#666">种源加工处理工艺:</span>
-                    <span class="c-#333 f-w-600">
-                        {{ form?.harvestInfo?.ptech ? form?.harvestInfo?.ptech.replace(/,/g, '→') : '-' }}
-                    </span>
-                </view>
-            </view>
             <view class="pd-24">
                 <view class="startline-title">鲜货信息</view>
             </view>
@@ -132,9 +110,9 @@
                     <span class="c-#333 f-w-600">{{ form?.producePlaceName || form?.producePlace || '-' }}</span>
                 </view>
 
-                <view class="f-s-30 pd2-16-0 info-border-bottom">
+                <view v-if="form?.instoreType == '2'" class="f-s-30 pd2-16-0 info-border-bottom">
                     <span class="c-#666">采收日期:</span>
-                    <span class="c-#333 f-w-600">{{ form?.productDate || '-' }}</span>
+                    <span class="c-#333 f-w-600">{{ form?.productDate || '-' }}~{{ form?.productDateEnd || '-' }}</span>
                 </view>
 
                 <template v-if="['2'].includes(form?.sourceType as string)">

+ 31 - 10
src/plant/storage/fresh-goods/info-edit/index.vue

@@ -112,14 +112,33 @@
                     </up-form-item>
                 </PickerAreaInput>
                 <view class="h-1" id="productDatepppp"></view>
-                <ut-datetime-picker v-model="form.productDate" :maxDate="new Date()" mode="date">
-                    <up-form-item borderBottom label="采收日期" prop="productDate" required>
-                        <up-input v-model="form.productDate" readonly placeholder="请选择采收日期" border="none" clearable></up-input>
-                        <template #right>
-                            <up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill"></up-icon>
-                        </template>
-                    </up-form-item>
-                </ut-datetime-picker>
+                <view class="h-1" id="productDateEndpppp"></view>
+                <up-form-item prop="productDate" required label="采收日期" class="form-item-bottom-padding-0">
+                    <view class="flex1 d-flex">
+                        <view class="flex1">
+                            <ut-datetime-picker v-model="form.productDate" :maxDate="form.productDateEnd || new Date()" mode="date">
+                                <up-form-item borderBottom prop="productDate" class="form-item-top-padding-0">
+                                    <up-input v-model="form.productDate" readonly placeholder="请选择开始日期" border="none" clearable></up-input>
+                                    <template #right>
+                                        <up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill"></up-icon>
+                                    </template>
+                                </up-form-item>
+                            </ut-datetime-picker>
+                        </view>
+                        <view class="pd2-0-20"></view>
+                        <view class="flex1">
+                            <ut-datetime-picker v-model="form.productDateEnd" :minDate="form.productDate" :maxDate="new Date()" mode="date">
+                                <up-form-item borderBottom prop="productDateEnd" class="form-item-top-padding-0">
+                                    <up-input v-model="form.productDateEnd" readonly placeholder="请选择结束日期" border="none" clearable></up-input>
+                                    <template #right>
+                                        <up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill"></up-icon>
+                                    </template>
+                                </up-form-item>
+                            </ut-datetime-picker>
+                        </view>
+                    </view>
+                </up-form-item>
+
                 <!-- 媒体与附件 -->
                 <up-form-item borderBottom label="鲜货图片" prop="imgs">
                     <ut-upload v-model="form.imgs" :max-count="9" valueType="string"></ut-upload>
@@ -165,6 +184,7 @@ const createDefaultForm = (): FreshGoodsInstoreItemForm => ({
     productDate: '',
     imgs: '',
     vedios: '',
+    productDateEnd: '',
 });
 
 const form = ref<FreshGoodsInstoreItemForm>(createDefaultForm());
@@ -198,7 +218,8 @@ const rules = reactive({
         },
     ],
     producePlace: [{ required: true, message: '请选择鲜货产地' }],
-    productDate: [{ required: true, message: '请选择采收日期' }],
+    productDate: [{ required: true, message: '请选择开始日期' }],
+    productDateEnd: [{ required: true, message: '请选择结束日期' }],
 });
 
 const submitForm = async () => {
@@ -246,7 +267,7 @@ const selectVarietyId = () => {
 };
 const changeSupplierProducerFlag = (value: string) => {
     if (value === '1') {
-        form.value.producer = form.value.supplierInfo?.name || '';
+        form.value.producer = form.value.supplierInfo?.cusName || '';
     } else {
         form.value.producer = '';
     }

+ 96 - 18
src/plant/storage/fresh-goods/info-update/index.vue

@@ -87,8 +87,8 @@
                         <ut-upload v-model="form.examinReport" :max-count="50" valueType="array" accept="image,file"></ut-upload>
                     </up-form-item>
                     <!-- 鲜货产地 -->
+                    <view class="h-1" id="producePlacepppp"></view>
                     <PickerAreaInput v-model="form.producePlace" v-model:full-name="form.producePlaceName" title="选择鲜货产地">
-                        <view class="h-1" id="producePlacepppp"></view>
                         <up-form-item borderBottom label="鲜货产地" prop="producePlace" required>
                             <view v-if="form.producePlace" class="f-s-30 c-333 f-w-5 flex1">{{ form.producePlaceName }}</view>
                             <view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择鲜货产地</view>
@@ -98,14 +98,32 @@
                         </up-form-item>
                     </PickerAreaInput>
                     <view class="h-1" id="productDatepppp"></view>
-                    <ut-datetime-picker v-model="form.productDate" :maxDate="new Date()" mode="date">
-                        <up-form-item borderBottom label="采收日期" prop="productDate" required>
-                            <up-input v-model="form.productDate" readonly placeholder="请选择采收日期" border="none" clearable></up-input>
-                            <template #right>
-                                <up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill"></up-icon>
-                            </template>
-                        </up-form-item>
-                    </ut-datetime-picker>
+                    <view class="h-1" id="productDateEndpppp"></view>
+                    <up-form-item prop="productDate" required label="采收日期" class="form-item-bottom-padding-0">
+                        <view class="flex1 d-flex">
+                            <view class="flex1">
+                                <ut-datetime-picker v-model="form.productDate" :maxDate="form.productDateEnd || new Date()" mode="date">
+                                    <up-form-item borderBottom prop="productDate" class="form-item-top-padding-0">
+                                        <up-input v-model="form.productDate" readonly placeholder="请选择开始日期" border="none" clearable></up-input>
+                                        <template #right>
+                                            <up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill"></up-icon>
+                                        </template>
+                                    </up-form-item>
+                                </ut-datetime-picker>
+                            </view>
+                            <view class="pd2-0-20"></view>
+                            <view class="flex1">
+                                <ut-datetime-picker v-model="form.productDateEnd" :minDate="form.productDate" :maxDate="new Date()" mode="date">
+                                    <up-form-item borderBottom prop="productDateEnd" class="form-item-top-padding-0">
+                                        <up-input v-model="form.productDateEnd" readonly placeholder="请选择结束日期" border="none" clearable></up-input>
+                                        <template #right>
+                                            <up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill"></up-icon>
+                                        </template>
+                                    </up-form-item>
+                                </ut-datetime-picker>
+                            </view>
+                        </view>
+                    </up-form-item>
                     <!-- 媒体与附件 -->
                     <up-form-item borderBottom label="鲜货图片" prop="imgs">
                         <ut-upload v-model="form.imgs" :max-count="9" valueType="string"></ut-upload>
@@ -211,13 +229,41 @@
                     </up-form-item>
                     <!-- 鲜货产地 -->
                     <view class="h-1" id="producePlacepppp"></view>
-                    <up-form-item borderBottom label="鲜货产地" required>
-                        <view v-if="form.producePlace" class="f-s-30 c-333 f-w-5 flex1">{{ form.producePlaceName }}</view>
-                        <view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择鲜货产地</view>
-                    </up-form-item>
+                    <PickerAreaInput v-model="form.producePlace" v-model:full-name="form.producePlaceName" title="选择鲜货产地">
+                        <up-form-item borderBottom label="鲜货产地" prop="producePlace" required>
+                            <view v-if="form.producePlace" class="f-s-30 c-333 f-w-5 flex1">{{ form.producePlaceName }}</view>
+                            <view v-else class="f-s-30 c-ccc f-w-4 flex1">请选择鲜货产地</view>
+                            <template #right>
+                                <up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill"></up-icon>
+                            </template>
+                        </up-form-item>
+                    </PickerAreaInput>
                     <view class="h-1" id="productDatepppp"></view>
-                    <up-form-item borderBottom label="采收日期" required>
-                        <up-input v-model="form.productDate" readonly placeholder="请选择采收日期" border="none" clearable></up-input>
+                    <view class="h-1" id="productDateEndpppp"></view>
+                    <up-form-item prop="productDate" required label="采收日期" class="form-item-bottom-padding-0">
+                        <view class="flex1 d-flex">
+                            <view class="flex1">
+                                <ut-datetime-picker v-model="form.productDate" :maxDate="form.productDateEnd || new Date()" mode="date">
+                                    <up-form-item borderBottom prop="productDate" class="form-item-top-padding-0">
+                                        <up-input v-model="form.productDate" readonly placeholder="请选择开始日期" border="none" clearable></up-input>
+                                        <template #right>
+                                            <up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill"></up-icon>
+                                        </template>
+                                    </up-form-item>
+                                </ut-datetime-picker>
+                            </view>
+                            <view class="pd2-0-20"></view>
+                            <view class="flex1">
+                                <ut-datetime-picker v-model="form.productDateEnd" :minDate="form.productDate" :maxDate="new Date()" mode="date">
+                                    <up-form-item borderBottom prop="productDateEnd" class="form-item-top-padding-0">
+                                        <up-input v-model="form.productDateEnd" readonly placeholder="请选择结束日期" border="none" clearable></up-input>
+                                        <template #right>
+                                            <up-icon size="22rpx" color="#2A6D52" name="arrow-down-fill"></up-icon>
+                                        </template>
+                                    </up-form-item>
+                                </ut-datetime-picker>
+                            </view>
+                        </view>
                     </up-form-item>
                     <!-- 媒体与附件 -->
                     <up-form-item borderBottom label="鲜货图片" prop="imgs">
@@ -288,7 +334,39 @@ const form = ref<FreshGoodsInfoType | any>({
         remark: '',
     },
 });
-const rules = reactive({});
+const rules = reactive({
+    varietyId: [{ required: true, message: '请选择动植物名称' }],
+    part: [{ required: true, message: '请选择药用部位/对象' }],
+    sourceType: [{ required: true, message: '请选择鲜货来源' }],
+    capacity: [
+        { required: true, message: '请输入入库量' },
+        {
+            asyncValidator: (rule: any, value: any) => {
+                if (value === 0 || value === '0') return Promise.reject('入库量需大于0');
+                if (value === undefined || value === null || value === '') return Promise.resolve();
+                const num = Number(value);
+                if (Number.isNaN(num)) return Promise.reject('入库量请输入数字');
+                if (num <= 0) return Promise.reject('入库量需大于0');
+                return Promise.resolve();
+            },
+        },
+    ],
+    unit: [{ required: true, message: '请选择单位' }],
+    supplierId: [
+        {
+            asyncValidator: (rule: any, value: any) => {
+                if (['2'].includes(form.value.sourceType as string)) {
+                    if (!value) return Promise.reject('请选择供应商');
+                }
+                return Promise.resolve();
+            },
+        },
+    ],
+    producePlace: [{ required: true, message: '请选择鲜货产地' }],
+    productDate: [{ required: true, message: '请选择开始日期' }],
+    productDateEnd: [{ required: true, message: '请选择结束日期' }],
+    'instoreBizInfo.instoreMg': [{ required: true, message: '请输入入库人' }],
+});
 
 // 提交:当前页面改为单条鲜货信息,直接提交合并后的对象
 const submitForm = async () => {
@@ -313,7 +391,7 @@ const submitForm = async () => {
                     title: '提交成功',
                     icon: 'success',
                 });
-                uni.$emit('seed-source-detail-refresh');
+                uni.$emit('fresh-goods-detail-refresh');
                 uni.$emit('refreshStorageRoomList');
                 setTimeout(() => {
                     uni.navigateBack({
@@ -361,7 +439,7 @@ const getDetailById = async (id: string) => {
 };
 const changeSupplierProducerFlag = (value: string) => {
     if (value === '1') {
-        form.value.producer = form.value.supplierInfo?.name || '';
+        form.value.producer = form.value.supplierInfo?.cusName || '';
     } else {
         form.value.producer = '';
     }

+ 7 - 5
src/plant/storage/fresh-goods/list/index.vue

@@ -1,7 +1,7 @@
 <template>
     <z-paging ref="paging" v-model="list" bgColor="#f7f7f7" @query="query" hide-no-more-inside>
         <template #top>
-            <ut-navbar title="鲜货库" :fixed="false"></ut-navbar>
+            <ut-navbar title="鲜货库" :fixed="false" :breadcrumb="false"></ut-navbar>
         </template>
 
         <view class="pd3-24-24-0">
@@ -10,7 +10,7 @@
             </view>
             <view class="d-flex a-c">
                 <view class="min-w-230 flex1">
-                    <ut-action-sheet v-model="form.instoreType" :tabs="[{ label: '全部', value: '' }, ...pt_fresh_instore_type]" mode="custom" @change="onRefresh" title="选择入库类型">
+                    <ut-action-sheet v-model="form.instoreType" :tabs="tabs_pt_fresh_instore_type" mode="custom" @change="onRefresh" title="选择入库类型">
                         <view class="d-flex search-select-item a-c">
                             <view class="flex1 ov-hd f-s-28 c-333 text-center f-w-5 w-s-no">{{ selectDictLabel(pt_fresh_instore_type, form.instoreType) || '全部' }} </view>
                             <up-icon size="24rpx" color="#333" name="arrow-down-fill" class="mr-5"></up-icon>
@@ -28,13 +28,13 @@
                 <up-swipe-action-item v-for="(item, index) in list" :key="index" :name="item?.id" :options="optionsActionTemp" @click="clickTempSwipe($event, item)" class="mb-20 b-radius">
                     <view class="b-radius bg-#fff pd-20 p-rtv" @click.stop="$u.route({ url: '/plant/storage/fresh-goods/detail/index', params: { id: item.id } })">
                         <view class="d-flex j-sb a-c li-item-head mb-16">
-                            <view class="li-left-tag" :class="{ [`bg-instore-${item?.instoreType}`]: true }">{{ item?.level || '' }}{{ selectDictLabel(pt_fresh_instore_type, item?.instoreType) }}</view>
+                            <view class="li-left-tag" :class="{ [`bg-instore-${item?.instoreType}`]: true }">{{ selectDictLabel(pt_fresh_instore_type, item?.instoreType) }}</view>
                             <view class="f-s-22 c-#666">{{ item?.instoreBizInfo?.instoreDate }}</view>
                         </view>
                         <view class="d-flex flex1 mb-10">
                             <view class="flex1">
                                 <span class="f-s-34 c-#333 f-w-500 mr-10">{{ item?.variety }}</span>
-                                <span v-if="item?.partName" class="f-s-24 c-#666">{{ item?.partName }}</span>
+                                <span v-if="item?.partName" class="f-s-24 c-#666">{{ item?.level || '' }}{{ item?.partName }}</span>
                             </view>
                             <view>
                                 <view v-if="item?.examinReport?.length" class="tag-span c-primary bg-#EBF6EE">已检验</view>
@@ -111,7 +111,9 @@ const tabs = ref([
     { label: '有库存', value: '1' },
     { label: '无库存', value: '0' },
 ]);
-
+const tabs_pt_fresh_instore_type = computed(() => {
+    return [{ label: '全部', value: '' }, ...pt_fresh_instore_type.value].filter((item: any) => item.value != '4');
+});
 const changeSeach = () => {
     paging.value.reload();
 };

+ 4 - 4
src/plant/storage/loss-register/index.vue

@@ -45,12 +45,12 @@
                     </template>
                     <template v-if="info?.stockType === '2'">
                         <view class="d-flex j-sb a-c li-item-head mb-16">
-                            <view class="li-left-tag" :class="{ [`bg-instore-${info?.instoreType}`]: true }">{{ info?.seedLevel }}{{ selectDictLabel(pt_seed_instore_type, info?.instoreType) }}</view>
+                            <view class="li-left-tag" :class="{ [`bg-instore-${info?.instoreType}`]: true }">{{ selectDictLabel(pt_seed_instore_type, info?.instoreType) }}</view>
                             <view class="f-s-22 c-#666">{{ info?.updateTime || info?.createTime }}</view>
                         </view>
                         <view class="mb-10">
                             <span class="f-s-34 c-#333 f-w-500 mr-10">{{ info?.variety }}</span>
-                            <span class="f-s-24 c-#666">{{ selectDictLabel(pt_seed_type, info?.seedType) }}</span>
+                            <span class="f-s-24 c-#666">{{ info?.seedLevel }}{{ selectDictLabel(pt_seed_type, info?.seedType) }}</span>
                         </view>
                         <view class="pd2-4-0 f-s-28">
                             <span class="c-#666">入库批号:</span>
@@ -81,12 +81,12 @@
                     </template>
                     <template v-if="info?.stockType === '4'">
                         <view class="d-flex j-sb a-c li-item-head mb-16">
-                            <view class="li-left-tag" :class="{ [`bg-instore-${info?.instoreType}`]: true }">{{ info?.level }}{{ selectDictLabel(pt_seed_instore_type, info?.instoreType) }}</view>
+                            <view class="li-left-tag" :class="{ [`bg-instore-${info?.instoreType}`]: true }">{{ selectDictLabel(pt_seed_instore_type, info?.instoreType) }}</view>
                             <view class="f-s-22 c-#666">{{ info?.instoreBizInfo?.instoreDate }}</view>
                         </view>
                         <view class="mb-10">
                             <span class="f-s-34 c-#333 f-w-500 mr-10">{{ info?.variety }}</span>
-                            <span v-if="info?.partName" class="f-s-24 c-#666">{{ info?.partName }}</span>
+                            <span v-if="info?.partName" class="f-s-24 c-#666">{{ info?.level }}{{ info?.partName }}</span>
                         </view>
                         <view class="pd2-4-0 f-s-28">
                             <span class="c-#666">入库批号:</span>

+ 17 - 32
src/plant/storage/medicine/list/index.vue

@@ -1,7 +1,7 @@
 <template>
     <z-paging ref="paging" v-model="list" bgColor="#f7f7f7" @query="query">
         <template #top>
-            <ut-navbar title="鲜货库" :fixed="false"></ut-navbar>
+            <ut-navbar title="药材库" :fixed="false" :breadcrumb="false"></ut-navbar>
         </template>
 
         <view class="pd3-24-24-0">
@@ -10,9 +10,9 @@
             </view>
             <view class="d-flex a-c">
                 <view class="min-w-230 flex1">
-                    <ut-action-sheet v-model="form.instoreType" :tabs="[{ label: '全部', value: '' }, ...pt_fresh_instore_type]" mode="custom" @change="onRefresh" title="选择入库类型">
+                    <ut-action-sheet v-model="form.processType" :tabs="[{ label: '全部', value: '' }, ...st_medicine_process_type]" mode="custom" @change="onRefresh" title="选择入库类型">
                         <view class="d-flex search-select-item a-c">
-                            <view class="flex1 ov-hd f-s-28 c-333 text-center f-w-5 w-s-no">{{ selectDictLabel(pt_fresh_instore_type, form.instoreType) || '全部' }} </view>
+                            <view class="flex1 ov-hd f-s-28 c-333 text-center f-w-5 w-s-no">{{ selectDictLabel(st_medicine_process_type, form.processType) || '全部' }} </view>
                             <up-icon size="24rpx" color="#333" name="arrow-down-fill" class="mr-5"></up-icon>
                         </view>
                     </ut-action-sheet>
@@ -28,7 +28,7 @@
                 <up-swipe-action-item v-for="(item, index) in list" :key="index" :name="item?.id" :options="optionsActionTemp" @click="clickTempSwipe" class="mb-20 b-radius">
                     <view class="b-radius bg-#fff pd-20 p-rtv" @click.stop="$u.route({ url: '/plant/storage/fresh-goods/detail/index', params: { id: item.id } })">
                         <view class="d-flex j-sb a-c li-item-head mb-16">
-                            <view class="li-left-tag" :class="{ [`bg-instore-${item?.instoreType}`]: true }">{{ item?.seedLevel || '' }}{{ selectDictLabel(pt_fresh_instore_type, item?.instoreType) }}</view>
+                            <view class="li-left-tag" :class="{ [`bg-instore-${item?.instoreBizInfo?.processType}`]: true }">{{ item?.seedLevel || '' }}{{ selectDictLabel(st_medicine_process_type, item?.instoreBizInfo?.processType) }}</view>
                             <view class="f-s-22 c-#666">{{ item?.instoreBizInfo?.instoreDate }}</view>
                         </view>
                         <view class="d-flex flex1 mb-10">
@@ -41,32 +41,17 @@
                                 <view v-else class="tag-span c-danger bg-#F9ECEA">未检验</view>
                             </view>
                         </view>
-                        <template v-if="item?.instoreType == '2'">
-                            <view class="pd2-4-0 f-s-28">
-                                <span class="c-#666">入库批号:</span>
-                                <span class="c-#333 f-w-500">{{ item?.batchCode || '-' }}</span>
-                            </view>
-                            <view v-if="item?.supplierId" class="pd2-4-0 f-s-28">
-                                <span class="c-#666">供应商:</span>
-                                <span class="c-#333 f-w-500">{{ item?.supplierInfo?.cusName || '-' }}</span>
-                            </view>
-                        </template>
-                        <template v-if="item?.instoreType == '3'">
-                            <view class="pd2-4-0 f-s-28">
-                                <span class="c-#666">采收批号:</span>
-                                <span class="c-#333 f-w-500">{{ item?.harvestInfo?.harvestCode || '-' }}</span>
-                            </view>
-                            <view class="pd2-4-0 f-s-28">
-                                <span class="c-#666">采收基地:</span>
-                                <span class="c-#333 f-w-500">
-                                    {{ item?.harvestInfo?.baseInfo?.baseName || '-' }}
-                                </span>
-                            </view>
-                        </template>
-
-                        <view v-if="item?.warehouses?.length" class="pd2-4-0 f-s-28">
-                            <span class="c-#666">存放库房:</span>
-                            <span class="c-#333 f-w-500">{{ getStorageRoomNames(item?.warehouses) || '-' }}</span>
+                        <view class="pd2-4-0 f-s-28">
+                            <span class="c-#666">生产批号:</span>
+                            <span class="c-#333 f-w-500">{{ item?.batchCode || '-' }}</span>
+                        </view>
+                        <view class="pd2-4-0 f-s-28">
+                            <span class="c-#666">执行标准:</span>
+                            <span class="c-#333 f-w-500">{{ item?.supplierInfo?.cusName || '-' }}</span>
+                        </view>
+                        <view class="pd2-4-0 f-s-28">
+                            <span class="c-#666">加工工艺:</span>
+                            <span class="c-#333 f-w-500">{{ item?.supplierInfo?.cusName || '-' }}</span>
                         </view>
                         <view class="pd2-4-0 f-s-28">
                             <span class="c-#666">入库量:</span>
@@ -100,9 +85,9 @@ import { selectDictListClass } from '@/utils/ruoyi';
 import { getStorageRoomNames } from '@/utils/common';
 import FreshGoodsBottom from './model/fresh-goods-bottom.vue';
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-const { pt_fresh_instore_type } = toRefs<any>(proxy?.useDict('pt_fresh_instore_type'));
+const { st_medicine_process_type } = toRefs<any>(proxy?.useDict('st_medicine_process_type'));
 const list = ref<any[]>();
-const form = ref({ keyword: '', restFlag: '1', instoreType: '', storageType: '4' });
+const form = ref({ keyword: '', restFlag: '1', processType: '', storageType: '5' });
 const paging = ref();
 const tabs = ref([
     { label: '有库存', value: '1' },

+ 22 - 20
src/plant/storage/seed-source/detail/index.vue

@@ -85,28 +85,30 @@
                     <up-button @click="navigateToInventoryLoss" type="warning" plain :customStyle="{ background: '#FFF9EF', borderColor: '#F9D9A3' }">库存有消耗?库存损耗登记{{ '>' }}</up-button>
                 </view>
             </view>
-            <view class="pd-24">
-                <view class="startline-title">采收信息</view>
-            </view>
-            <view class="bg-#fff pd-24" v-if="form?.harvestInfo">
-                <view class="f-s-30 pd2-16-0 info-border-bottom">
-                    <span class="c-#666">采收日期:</span>
-                    <span class="c-#333 f-w-600">{{ form?.harvestInfo?.harvestDate || '-' }}至{{ form?.harvestInfo?.harvestDateEnd || '-' }}</span>
-                </view>
-                <view class="f-s-30 pd2-16-0 info-border-bottom">
-                    <span class="c-#666">采收批号:</span>
-                    <span class="c-#333 f-w-600">
-                        {{ form?.harvestInfo?.harvestCode || '-' }}
-                    </span>
+            <template v-if="form?.instoreType == '3'">
+                <view class="pd-24">
+                    <view class="startline-title">采收信息</view>
                 </view>
-                <!-- 基地挖坑 -->
-                <view class="f-s-30 pd2-16-0 info-border-bottom">
-                    <span class="c-#666">种源加工处理工艺:</span>
-                    <span class="c-#333 f-w-600">
-                        {{ form?.harvestInfo?.ptech ? form?.harvestInfo?.ptech.replace(/,/g, '→') : '-' }}
-                    </span>
+                <view class="bg-#fff pd-24" v-if="form?.harvestInfo">
+                    <view class="f-s-30 pd2-16-0 info-border-bottom">
+                        <span class="c-#666">采收日期:</span>
+                        <span class="c-#333 f-w-600">{{ form?.harvestInfo?.harvestDate || '-' }}至{{ form?.harvestInfo?.harvestDateEnd || '-' }}</span>
+                    </view>
+                    <view class="f-s-30 pd2-16-0 info-border-bottom">
+                        <span class="c-#666">采收批号:</span>
+                        <span class="c-#333 f-w-600">
+                            {{ form?.harvestInfo?.harvestCode || '-' }}
+                        </span>
+                    </view>
+                    <!-- 基地挖坑 -->
+                    <view class="f-s-30 pd2-16-0 info-border-bottom">
+                        <span class="c-#666">种源加工处理工艺:</span>
+                        <span class="c-#333 f-w-600">
+                            {{ form?.harvestInfo?.ptech ? form?.harvestInfo?.ptech.replace(/,/g, '→') : '-' }}
+                        </span>
+                    </view>
                 </view>
-            </view>
+            </template>
             <view class="pd-24">
                 <view class="startline-title">种源信息</view>
             </view>

+ 1 - 1
src/plant/storage/seed-source/info-edit/index.vue

@@ -484,7 +484,7 @@ const selectMotherVarietyId = () => {
 };
 const changeSupplierProducerFlag = () => {
     if (form.value.supplierProducerFlag === '1') {
-        form.value.producer = form.value.supplierInfo?.name || '';
+        form.value.producer = form.value.supplierInfo?.cusName || '';
     } else {
         form.value.producer = '';
     }

+ 3 - 1
src/plant/storage/seed-source/info-update/index.vue

@@ -566,6 +566,7 @@ const form = ref<seedInfoListType | any>({
         instoreDate: '',
         instoreMg: '',
         remark: '',
+        animals: [],
     },
     generationMaterial: '',
     instoreType: '2',
@@ -712,13 +713,14 @@ const getDetailById = async (id: string) => {
             instoreBizInfo: {
                 ...form.value.instoreBizInfo,
                 ...res.data.instoreBizInfo,
+                animals: res.data.instoreBizInfo?.animals || [],
             },
         };
     }
 };
 const changeSupplierProducerFlag = () => {
     if (form.value.supplierProducerFlag === '1') {
-        form.value.producer = form.value.supplierInfo?.name || '';
+        form.value.producer = form.value.supplierInfo?.cusName || '';
     } else {
         form.value.producer = '';
     }

+ 3 - 3
src/plant/storage/seed-source/list/index.vue

@@ -1,7 +1,7 @@
 <template>
     <z-paging ref="paging" v-model="list" bgColor="#f7f7f7" @query="query">
         <template #top>
-            <ut-navbar title="种源库" :fixed="false"></ut-navbar>
+            <ut-navbar title="种源库" :fixed="false" :breadcrumb="false"></ut-navbar>
         </template>
 
         <view class="pd3-24-24-0">
@@ -28,13 +28,13 @@
                 <up-swipe-action-item v-for="(item, index) in list" :key="index" :name="item?.id" :options="optionsActionTemp" @click="clickTempSwipe($event, item)" class="mb-20 b-radius">
                     <view class="b-radius bg-#fff pd-20 p-rtv" @click.stop="$u.route({ url: '/plant/storage/seed-source/detail/index', params: { id: item.id } })">
                         <view class="d-flex j-sb a-c li-item-head mb-16">
-                            <view class="li-left-tag" :class="{ [`bg-instore-${item?.instoreType}`]: true }">{{ item?.seedLevel }}{{ selectDictLabel(pt_seed_instore_type, item?.instoreType) }}</view>
+                            <view class="li-left-tag" :class="{ [`bg-instore-${item?.instoreType}`]: true }">{{ selectDictLabel(pt_seed_instore_type, item?.instoreType) }}</view>
                             <view class="f-s-22 c-#666">{{ item?.instoreBizInfo?.instoreDate }}</view>
                         </view>
                         <view class="d-flex flex1 mb-10">
                             <view class="flex1">
                                 <span class="f-s-34 c-#333 f-w-500 mr-10">{{ item?.variety }}</span>
-                                <span class="f-s-24 c-#666">{{ selectDictLabel(pt_seed_type, item?.seedType) }}</span>
+                                <span class="f-s-24 c-#666">{{ item?.seedLevel }}{{ selectDictLabel(pt_seed_type, item?.seedType) }}</span>
                             </view>
                             <view>
                                 <view v-if="item?.examinReport?.length" class="tag-span c-primary bg-#EBF6EE">已检验</view>

+ 2 - 0
src/plant/storage/seed-source/models/animals-input.vue

@@ -137,6 +137,8 @@ const onScan = () => {
 watch(
     () => props.modelValue,
     (newVal) => {
+        console.log(newVal, '------');
+        
         list.value = newVal;
     },
 );