huangxw 10 luni în urmă
părinte
comite
3fdf5cf0c4

+ 1 - 1
src/views/cdt/menus/form/index.vue

@@ -81,7 +81,7 @@
                             <template v-if="form.permitType === '2'">
                                 <el-col :span="8">
                                     <el-form-item label="适用企业" prop="permitCpys">
-                                        <SearchSelect v-model="form.permitCpys" :params="{ reviewStatus: '1' }" @changeItem="changeItemCpy"></SearchSelect>
+                                        <SearchSelect v-model="form.permitCpys" :limit="1" :params="{ reviewStatus: '1' }" @changeItem="changeItemCpy"></SearchSelect>
                                     </el-form-item>
                                 </el-col>
                             </template>

+ 9 - 1
src/views/cdt/menus/index.vue

@@ -58,7 +58,7 @@
                         <template #default="{ row }">
                             <view v-if="row?.items">
                                 {{ row?.items }}
-                                <el-button type="primary" text>点击查看详情{{ '>' }}</el-button>
+                                <el-button @click="queryRowItems(row)" type="primary" text>点击查看详情{{ '>' }}</el-button>
                             </view>
                             <view v-else>-</view>
                         </template>
@@ -103,12 +103,14 @@
             <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
         </div>
     </div>
+    <rowItems v-if="showRowItems" v-model:show="showRowItems" :packageId="rowId"></rowItems>
 </template>
 <script setup name="Menus" lang="ts">
 import { copyTestPackage, testPackageList, testPackageListCount, testPackageSale, testPackageUnSale } from '@/api/cdt/menus';
 import { colNoData } from '@/utils/noData';
 import { searchTabs } from '@/views/models';
 import NP from 'number-precision';
+import { rowItems } from '../models';
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const { dm_package_type, dm_permit_type, vip_level } = toRefs<any>(proxy?.useDict('dm_package_type', 'dm_permit_type', 'vip_level'));
 const router = useRouter();
@@ -118,6 +120,7 @@ const queryParams = ref<any>({
     publicFlag: '1'
 });
 const queryFormRef = ref<any>();
+const showRowItems = ref(false);
 const loading = ref(false);
 const total = ref(0);
 const list = ref<any>([]);
@@ -194,6 +197,11 @@ const copyItem = async (row: any) => {
     proxy.$modal.msgSuccess('复制成功!');
     getList();
 };
+const rowId = ref('');
+const queryRowItems = (row: any) => {
+    rowId.value = row?.id;
+    showRowItems.value = true;
+};
 onMounted(() => {
     getTabsCount();
     getList();

+ 1 - 0
src/views/cdt/models/index.ts

@@ -1 +1,2 @@
 export { default as TransferItems } from './transferItems.vue'; // 选择检测项目
+export { default as rowItems } from './rowItems.vue'; // 查看检测项目

+ 88 - 0
src/views/cdt/models/rowItems.vue

@@ -0,0 +1,88 @@
+<template>
+    <vxe-modal v-model="dialogVisible" :title="title" show-zoom resize show-footer destroy-on-close transfer @hide="close" :width="width">
+        <template #default>
+            <div class="d-flex flex-cln" style="height: 60vh;">
+                <div class="flex1 ov-hd">
+                    <vxe-table :loading="loading" border :data="list">
+                        <vxe-column type="seq" width="60" title="序号" align="center" />
+                        <vxe-column title="检测项目" align="center" field="name" min-width="100" :formatter="colNoData" />
+                        <vxe-column title="单价(元、批次)" align="center" field="price" min-width="100" :formatter="colNoData" />
+                        <vxe-column title="备注" align="center" field="description" min-width="100" :formatter="colNoData" />
+                    </vxe-table>
+                </div>
+                <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
+            </div>
+        </template>
+        <template #footer>
+            <el-button type="primary" @click="close">知道了</el-button>
+        </template>
+    </vxe-modal>
+</template>
+<script setup name="Pay-log" lang="ts">
+import { getTestPackageItems } from '@/api/cdt/menus';
+import { colNoData } from '@/utils/noData';
+import { propTypes } from '@/utils/propTypes';
+const emit = defineEmits(['update:show', 'close']);
+const props = defineProps({
+    packageId: propTypes.string.def(''),
+    title: propTypes.string.def('检测项目明细'),
+    width: propTypes.number.def(800),
+    show: propTypes.bool.def(false)
+})
+const dialogVisible = ref(false);
+const { query }: any = useRoute()
+const router = useRouter();
+const { proxy } = getCurrentInstance() as ComponentInternalInstance;
+const list = ref<any[]>([]);
+const loading = ref(true);
+const total = ref(0);
+const queryFormRef = ref<ElFormInstance>();
+const data = reactive<any>({
+    queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+    }
+});
+const { queryParams } = toRefs(data);
+
+/** 查询会员信息列表 */
+const getList = async () => {
+    loading.value = true;
+    const res = await getTestPackageItems({ ...queryParams.value, packageId: props?.packageId });
+    list.value = res.rows;
+    total.value = res.total;
+    loading.value = false;
+};
+
+/** 搜索按钮操作 */
+const handleQuery = (level?: any) => {
+    queryParams.value.pageNum = 1;
+    getList();
+};
+
+/** 重置按钮操作 */
+const resetQuery = () => {
+    queryFormRef.value?.resetFields();
+    queryParams.value.startDate = '';
+    queryParams.value.endDate = '';
+    handleQuery();
+};
+
+const close = () => {
+    // formRef.value?.resetFields();
+    emit('update:show', false);
+    emit('close', false);
+};
+
+
+watch(
+    () => props.show,
+    (val) => {
+        dialogVisible.value = val;
+    },
+    { immediate: true }
+);
+onMounted(() => {
+    getList();
+});
+</script>

+ 5 - 1
src/views/models/SearchSelect.vue

@@ -1,5 +1,5 @@
 <template>
-    <el-select ref="selectDropRef" @change="changeSelect" multiple v-model="value" filterable popper-class="custom-dropdown" remote reserve-keyword :remote-method="remoteMethod" remote-show-suffix clearable placeholder="请选择适用企业">
+    <el-select ref="selectDropRef" :multiple-limit="limit" @change="changeSelect" multiple v-model="value" filterable popper-class="custom-dropdown" remote reserve-keyword :remote-method="remoteMethod" remote-show-suffix clearable placeholder="请选择适用企业">
         <div class="optionBox" infinite-scroll-delay="500" infinite-scroll-distance="20" v-infinite-scroll="load">
             <el-option v-for="item in options" :key="item.value" filterable :label="item.cpyName" :value="item.id"></el-option>
         </div>
@@ -17,6 +17,10 @@ const props = defineProps({
     params: {
         type: Object,
         default: () => ({})
+    },
+    limit: {
+        type: Number,
+        default: 0
     }
 })
 const emit = defineEmits(['change', 'update:modelValue', 'changeItem'])