|
@@ -61,7 +61,7 @@
|
|
|
</view>
|
|
</view>
|
|
|
</template>
|
|
</template>
|
|
|
</vxe-column>
|
|
</vxe-column>
|
|
|
- <vxe-column title="检测项目" min-width="240">
|
|
|
|
|
|
|
+ <vxe-column title="检测项目" min-width="280">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
<view v-if="row?.items">
|
|
<view v-if="row?.items">
|
|
|
{{ row?.items }}
|
|
{{ row?.items }}
|
|
@@ -78,19 +78,19 @@
|
|
|
</vxe-column>
|
|
</vxe-column>
|
|
|
<vxe-column title="上架数量" field="totalCount" width="80" :formatter="colNoData"></vxe-column>
|
|
<vxe-column title="上架数量" field="totalCount" width="80" :formatter="colNoData"></vxe-column>
|
|
|
<vxe-column title="销量" field="orderedCount" width="80" :formatter="colNoData"></vxe-column>
|
|
<vxe-column title="销量" field="orderedCount" width="80" :formatter="colNoData"></vxe-column>
|
|
|
- <vxe-column title="开始时间" field="validFrom" width="120">
|
|
|
|
|
|
|
+ <vxe-column title="开始时间" field="validFrom" width="110">
|
|
|
<template #default="{ row }">{{ row?.validFrom }}</template>
|
|
<template #default="{ row }">{{ row?.validFrom }}</template>
|
|
|
</vxe-column>
|
|
</vxe-column>
|
|
|
- <vxe-column title="结束时间" field="validUntil" width="120">
|
|
|
|
|
|
|
+ <vxe-column title="结束时间" field="validUntil" width="110">
|
|
|
<template #default="{ row }">{{ row?.validUntil }}</template>
|
|
<template #default="{ row }">{{ row?.validUntil }}</template>
|
|
|
</vxe-column>
|
|
</vxe-column>
|
|
|
- <vxe-column title="剩余时间" field="restDay" width="100">
|
|
|
|
|
|
|
+ <vxe-column title="剩余时间" field="restDay" width="80">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
<span v-if="new Date(row?.validUntil) > new Date()">{{ Math.floor((new Date(row?.validUntil).getTime() - new Date().getTime())/(3600*24*1000))+1 }}天</span>
|
|
<span v-if="new Date(row?.validUntil) > new Date()">{{ Math.floor((new Date(row?.validUntil).getTime() - new Date().getTime())/(3600*24*1000))+1 }}天</span>
|
|
|
<span v-else>已过期</span>
|
|
<span v-else>已过期</span>
|
|
|
</template>
|
|
</template>
|
|
|
</vxe-column>
|
|
</vxe-column>
|
|
|
- <vxe-column title="创建人" field="createName" width="100"></vxe-column>
|
|
|
|
|
|
|
+ <vxe-column title="创建人" field="createName" width="90"></vxe-column>
|
|
|
<vxe-column title="创建时间" field="createTime" width="160"></vxe-column>
|
|
<vxe-column title="创建时间" field="createTime" width="160"></vxe-column>
|
|
|
<vxe-column title="套餐状态" align="center" width="90" fixed="right">
|
|
<vxe-column title="套餐状态" align="center" width="90" fixed="right">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
@@ -129,11 +129,13 @@
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<el-dialog title="套餐分享" v-model="shareDialog" width="350px">
|
|
<el-dialog title="套餐分享" v-model="shareDialog" width="350px">
|
|
|
- <div class="d-flex flex-cln">
|
|
|
|
|
- {{ sharePkgName }}
|
|
|
|
|
- <el-button type="primary" @click="download">下载</el-button>
|
|
|
|
|
|
|
+ <div ref="codeImgRef" class="d-flex flex-cln j-c a-c">
|
|
|
|
|
+ <div class="f-s-18 c-333 f-w-5 mb-16">{{ sharePkgName }}</div>
|
|
|
|
|
+ <vue-qr ref="qrCode" :text="shareText" v-if="shareText" :size="260" margin="0"></vue-qr>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="d-flex flex-cln pt-16">
|
|
|
|
|
+ <el-button type="primary" @click="downloadQrCode">下载</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
- <vue-qr ref="qrCode" :text="shareText" v-if="shareText" :size="300"></vue-qr>
|
|
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
<rowItems v-if="showRowItems" v-model:show="showRowItems" :packageId="rowId"></rowItems>
|
|
<rowItems v-if="showRowItems" v-model:show="showRowItems" :packageId="rowId"></rowItems>
|
|
|
</template>
|
|
</template>
|
|
@@ -145,6 +147,7 @@ import { searchTabs } from '@/views/models';
|
|
|
import NP from 'number-precision';
|
|
import NP from 'number-precision';
|
|
|
import { rowItems } from '../models';
|
|
import { rowItems } from '../models';
|
|
|
import { debounce } from 'lodash';
|
|
import { debounce } from 'lodash';
|
|
|
|
|
+import html2canvas from 'html2canvas';
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
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 { dm_package_type, dm_permit_type, vip_level } = toRefs<any>(proxy?.useDict('dm_package_type', 'dm_permit_type', 'vip_level'));
|
|
|
const router = useRouter();
|
|
const router = useRouter();
|
|
@@ -248,17 +251,25 @@ const showShareImg = (row) => {
|
|
|
shareDialog.value = true;
|
|
shareDialog.value = true;
|
|
|
}
|
|
}
|
|
|
const qrCode = ref<any>(null)
|
|
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()
|
|
|
|
|
|
|
+const codeImgRef = ref<any>(null)
|
|
|
|
|
+const downloadQrCode = () => {
|
|
|
|
|
+ // console.log('下载二维码');
|
|
|
|
|
+ html2canvas(codeImgRef.value, {
|
|
|
|
|
+ useCORS: true,
|
|
|
|
|
+ allowTaint: false,
|
|
|
|
|
+ scale: 2
|
|
|
|
|
+ }).then((canvas) => {
|
|
|
|
|
+ const url = canvas.toDataURL('image/png')
|
|
|
|
|
+ const a: any = document.createElement('a')
|
|
|
|
|
+ // 下载的文件名
|
|
|
|
|
+ a.download = `${sharePkgName.value}.png`
|
|
|
|
|
+ // url
|
|
|
|
|
+ a.href = url
|
|
|
|
|
+ // 触发点击
|
|
|
|
|
+ a.click()
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
const rowClassName = ({ row }) => {
|
|
const rowClassName = ({ row }) => {
|
|
|
- console.log(row, '---');
|
|
|
|
|
if (new Date(row?.validUntil) <= new Date()) {
|
|
if (new Date(row?.validUntil) <= new Date()) {
|
|
|
return 'row-expired';
|
|
return 'row-expired';
|
|
|
}
|
|
}
|