Selaa lähdekoodia

修复一些bug

xiaoyelj 10 kuukautta sitten
vanhempi
säilyke
9fe409e98a

+ 1 - 0
package.json

@@ -46,6 +46,7 @@
     "vue-cropper": "1.1.1",
     "vue-i18n": "10.0.5",
     "vue-json-pretty": "2.4.0",
+    "vue-qr": "^4.0.9",
     "vue-router": "4.4.5",
     "vue-types": "5.1.3",
     "vxe-table": "4.6.17"

+ 52 - 12
src/views/cdt/menus/index.vue

@@ -10,22 +10,27 @@
                     <div class="flex1 ov-hd d-flex j-ed">
                         <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="auto">
                             <el-form-item label="套餐名称:" prop="name">
-                                <el-input v-model="queryParams.name" placeholder="请输入套餐名称关键字" clearable style="width: 180px" @keyup.enter="handleQuery" />
+                                <el-input v-model="queryParams.name" placeholder="请输入套餐名称关键字" clearable style="width: 180px"
+                                    @keyup.enter="handleQuery" />
                             </el-form-item>
                             <el-form-item label="套餐状态" prop="status">
-                                <el-select style="width: 160px" v-model="queryParams.status" clearable placeholder="请选择套餐状态" @change="handleQuery">
+                                <el-select style="width: 160px" v-model="queryParams.status" clearable placeholder="请选择套餐状态"
+                                    @change="handleQuery">
                                     <el-option label="未上架" value="0"></el-option>
                                     <el-option label="在售" value="1"></el-option>
                                     <el-option label="已下架" value="2"></el-option>
                                 </el-select>
                             </el-form-item>
                             <el-form-item label="制定规则" prop="permitType">
-                                <el-select style="width: 160px" v-model="queryParams.permitType" clearable placeholder="请选择制定规则" @change="handleQuery">
-                                    <el-option v-for="item in dm_permit_type" :key="item.value" :label="item.label" :value="item.value"></el-option>
+                                <el-select style="width: 160px" v-model="queryParams.permitType" clearable
+                                    placeholder="请选择制定规则" @change="handleQuery">
+                                    <el-option v-for="item in dm_permit_type" :key="item.value" :label="item.label"
+                                        :value="item.value"></el-option>
                                 </el-select>
                             </el-form-item>
                             <el-form-item label="创建人" prop="createByName">
-                                <el-input v-model="queryParams.createByName" placeholder="请输入创建人关键字" clearable style="width: 160px" @keyup.enter="handleQuery" />
+                                <el-input v-model="queryParams.createByName" placeholder="请输入创建人关键字" clearable
+                                    style="width: 160px" @keyup.enter="handleQuery" />
                             </el-form-item>
                             <el-form-item>
                                 <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
@@ -36,13 +41,15 @@
                 </div>
             </div>
             <div class="flex1 ov-hd pd-16 d-flex flex-cln">
-                <searchTabs v-model="queryParams.publicFlag" @change="handleQuery" :list="tabs" key-label="name" key-value="type" key-count="num"></searchTabs>
+                <searchTabs v-model="queryParams.publicFlag" @change="handleQuery" :list="tabs" key-label="name"
+                    key-value="type" key-count="num"></searchTabs>
                 <div class="pd-8"></div>
                 <div class="flex1 ov-hd">
                     <vxe-table :loading="loading" border :data="list" min-height="0" max-height="100%">
                         <!-- 序号 -->
                         <vxe-column type="seq" fixed="left" width="60" title="序号" align="center" />
-                        <vxe-column title="套餐名称" fixed="left" align="center" field="name" min-width="100" :formatter="colNoData" />
+                        <vxe-column title="套餐名称" fixed="left" align="center" field="name" min-width="100"
+                            :formatter="colNoData" />
                         <vxe-column title="适用对象" field="applyType" min-width="100">
                             <template #default="{ row }">
                                 <view class="d-flex flex-cln">
@@ -81,12 +88,13 @@
                                 <template v-if="+row?.status === 0">
                                     <el-button @click="putaway(row)" text type="primary">上架</el-button>
                                     <span></span>
-                                    <el-button @click="router.push({ path: 'menus-form', query: { id: row?.id } })" text type="primary">编辑</el-button>
+                                    <el-button @click="router.push({ path: 'menus-form', query: { id: row?.id } })" text
+                                        type="primary">编辑</el-button>
                                 </template>
                                 <template v-if="+row?.status === 1">
                                     <el-button @click="soldOut(row)" text type="danger">下架</el-button>
                                     <span></span>
-                                    <el-button text type="primary">分享</el-button>
+                                    <el-button text type="primary" @click="showShareImg(row)">分享</el-button>
                                 </template>
                                 <template v-if="+row?.status === 2">
                                     <el-button @click="putaway(row)" text type="primary">上架</el-button>
@@ -96,18 +104,29 @@
                                 <span></span>
                                 <el-button @click="copyItem(row)" text type="primary">复制</el-button>
                                 <span></span>
-                                <el-button @click="router.push({ path: 'menus-detail', query: { id: row?.id } })" text type="primary">详情</el-button>
+                                <el-button @click="router.push({ path: 'menus-detail', query: { id: row?.id } })" text
+                                    type="primary">详情</el-button>
                             </template>
                         </vxe-column>
                     </vxe-table>
                 </div>
             </div>
-            <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
+            <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
+                v-model:limit="queryParams.pageSize" @pagination="getList" />
+
         </div>
     </div>
+    <el-dialog title="套餐分享" v-model="shareDialog" width="350px">
+        <div class="d-flex flex-cln">
+            {{ sharePkgName }}
+            <el-button type="primary" @click="download">下载</el-button>
+        </div>
+        <vue-qr ref="qrCode" :text="shareText" v-if="shareText" :size="300"></vue-qr>
+    </el-dialog>
     <rowItems v-if="showRowItems" v-model:show="showRowItems" :packageId="rowId"></rowItems>
 </template>
 <script setup name="Menus" lang="ts">
+import vueQr from 'vue-qr/src/packages/vue-qr.vue'
 import { copyTestPackage, testPackageList, testPackageListCount, testPackageSale, testPackageUnSale } from '@/api/cdt/menus';
 import { colNoData } from '@/utils/noData';
 import { searchTabs } from '@/views/models';
@@ -146,7 +165,9 @@ const resetQuery = () => {
 // 获取tabs统计数据
 const tabs = ref<any[]>([]);
 const getTabsCount = debounce(async () => {
-    const res = await testPackageListCount({ ...queryParams.value });
+    const params = { ...queryParams.value }
+    params.publicFlag = ''
+    const res = await testPackageListCount(params);
     if (!res || res.code !== 200) return;
     // this.tabsList = res.rows;
     tabs.value = res.data;
@@ -205,6 +226,25 @@ const queryRowItems = (row: any) => {
     rowId.value = row?.id;
     showRowItems.value = true;
 };
+//二维码分享
+const shareText = ref('');
+const sharePkgName = ref('');
+const shareDialog = ref(false);
+const showShareImg = (row) => {
+    shareText.value = `http://dm.share.yujin.shuziyunyao.com/package?id=${row?.id}`;
+    sharePkgName.value = row?.name;
+    shareDialog.value = true;
+}
+const qrCode=ref<any>(null)
+const download = () => {
+    const a:any = document.createElement('a')
+    // 下载的文件名
+    a.download = `${sharePkgName.value}.png`
+    // url
+    a.href = qrCode.value.$el.src
+    // 触发点击
+    a.click()
+}
 onMounted(() => {
     getTabsCount();
     getList();

+ 8 - 5
src/views/cdt/models/menuInfo.vue

@@ -8,12 +8,15 @@
                 <el-descriptions-item label="制定规则:">{{ selectDictLabel(dm_permit_type,form?.permitType ) }}</el-descriptions-item>
                 <el-descriptions-item v-if="form?.permitType === '1'" label="适用类型:">{{ selectDictLabels(vip_level, form?.permit, ',') || '-' }}</el-descriptions-item>
                 <el-descriptions-item v-if="form?.permitType === '2'" label="适用企业:">{{ form?.permitCpyNames.toString()|| '-' }}</el-descriptions-item>
-                <el-descriptions-item label="检测周期:">{{ form?.period || '-' }}</el-descriptions-item>
+                <el-descriptions-item label="检测周期:">{{ form?.period || '-' }}工作日</el-descriptions-item>
                 <el-descriptions-item label="上架数量:">{{ form?.totalCount || '-' }}</el-descriptions-item>
-                <el-descriptions-item label="执行标准:">{{ form?.standard || '-' }}</el-descriptions-item>
-                <el-descriptions-item label="送样信息:" :span="2">{{ form?.description || '-' }}</el-descriptions-item>
-                <el-descriptions-item label="购买须知:" :span="2">{{ form?.purchaseNotes || '-' }}</el-descriptions-item>
-                <el-descriptions-item label="失效日期:">{{ form?.validUntil || '-' }}</el-descriptions-item>
+                <el-descriptions-item ></el-descriptions-item>
+                <el-descriptions-item ></el-descriptions-item>
+                <el-descriptions-item  label="执行标准:" :span="2">{{ form?.standard || '-' }}</el-descriptions-item>
+                <el-descriptions-item   label="送样信息:" :span="2">{{ form?.description || '-' }}</el-descriptions-item>
+                <el-descriptions-item   label="购买须知:" :span="2">{{ form?.purchaseNotes || '-' }}</el-descriptions-item>
+                <el-descriptions-item label="创建人:">{{ form?.createName || '-' }}</el-descriptions-item>
+                <el-descriptions-item label="创建时间:">{{ form?.createTime || '-' }}</el-descriptions-item>
             </el-descriptions>
             <el-divider />
             <el-descriptions :column="4" direction="vertical">

+ 1 - 1
src/views/cdt/models/orderInfo.vue

@@ -117,7 +117,7 @@
                         </el-steps>
                         <el-divider />
                     </template>
-                    <template v-if="+info.status >= 2  && +info?.originStatus >= 2">
+                    <template v-if="+info.status >= 2  && +info?.originStatus >= 2 && info?.sendAddress">
                         <div class="f-s-16 c-333 f-w-6 mb-16">寄样信息</div>
                         <div class="d-flex a-c">
                             <div class="card-blcok pd-16 d-flex flex1">

+ 2 - 2
src/views/cdt/models/rowItems.vue

@@ -2,8 +2,8 @@
     <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">
+                <div class="flex1 ov-hd" style="height:50vh">
+                    <vxe-table :loading="loading" border :data="list" height="auto" >
                         <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" />