Merge branch 'deploy-2.0' into feat/deploy-2.0
| New file |
| | |
| | | const fs = require('fs'); |
| | | const path = require('path'); |
| | | |
| | | function findVueFiles(dir, fileList = []) { |
| | | const files = fs.readdirSync(dir); |
| | | files.forEach((file) => { |
| | | const filePath = path.join(dir, file); |
| | | if (fs.statSync(filePath).isDirectory()) { |
| | | findVueFiles(filePath, fileList); |
| | | } else if (filePath.endsWith('.vue')) { |
| | | fileList.push(filePath); |
| | | } |
| | | }); |
| | | return fileList; |
| | | } |
| | | |
| | | const allVueFiles = findVueFiles(path.join(__dirname, 'src')); |
| | | let modifiedCount = 0; |
| | | |
| | | allVueFiles.forEach((file) => { |
| | | let content = fs.readFileSync(file, 'utf8'); |
| | | |
| | | if (content.includes('src="/src/assets/element-img/no-data.png"')) { |
| | | // 1. Replace all occurrences |
| | | content = content.replace(/src="\/src\/assets\/element-img\/no-data\.png"/g, ':src="noDataImg"'); |
| | | |
| | | // 2. Check if already imported |
| | | if (!content.includes('noDataImg') || !content.includes('@/assets/element-img/no-data.png')) { |
| | | const scriptSetupMatch = content.match(/<script\s+setup[^>]*>/); |
| | | if (scriptSetupMatch) { |
| | | const insertIndex = scriptSetupMatch.index + scriptSetupMatch[0].length; |
| | | const importStr = `\nimport noDataImg from '@/assets/element-img/no-data.png'`; |
| | | content = content.slice(0, insertIndex) + importStr + content.slice(insertIndex); |
| | | } else { |
| | | console.log(`Warning: No <script setup> found in ${file}`); |
| | | } |
| | | } |
| | | |
| | | fs.writeFileSync(file, content, 'utf8'); |
| | | modifiedCount++; |
| | | console.log(`Modified: ${file}`); |
| | | } |
| | | }); |
| | | |
| | | console.log(`Total files modified: ${modifiedCount}`); |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns, SelectOption } from 'naive-ui' |
| | | import dayjs from 'dayjs' |
| | | import { useRoute } from 'vue-router' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width:123px;height:125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { FormInst, FormRules } from 'naive-ui' |
| | | import { NButton, NSpace } from 'naive-ui' |
| | | import VehicleSelectModal from './VehicleSelectModal.vue' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { NButton, NImage, NSelect, NSpace } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px"> |
| | | <img :src="noDataImg" style="width:123px;height:125px"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { fetchVehiclePageList } from '@/service/api/fleet' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { NButton, NIcon, NSpace, NTag } from 'naive-ui' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | |
| | | class="collapse-icon" |
| | | :class="{ 'is-collapsed': !isFleetInfoExpanded }" |
| | | @click="toggleFleetInfo" |
| | | /> |
| | | > |
| | | <span class="header-title">车队详情</span> |
| | | </div> |
| | | <NButton |
| | |
| | | <n-gi> |
| | | <div class="info-item"> |
| | | <span class="label">负责人:</span> |
| | | <span class="value" |
| | | >{{ fleetInfo.operationsUserName || "-" |
| | | }}{{ |
| | | fleetInfo.phoneNumber ? `-${fleetInfo.phoneNumber}` : "" |
| | | }}</span |
| | | > |
| | | <span class="value">{{ fleetInfo.operationsUserName || "-" |
| | | }}{{ |
| | | fleetInfo.phoneNumber ? `-${fleetInfo.phoneNumber}` : "" |
| | | }}</span> |
| | | </div> |
| | | </n-gi> |
| | | <n-gi> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | /> |
| | | > |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | :class="{ 'arrow-icon--open': isRoleSelectOpen }" |
| | | style="width: 16px; height: 16px" |
| | | alt="arrow" |
| | | /> |
| | | > |
| | | </template> |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | /> |
| | | > |
| | | </div> |
| | | </template> |
| | | </n-select> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | /> |
| | | > |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns, FormInst } from 'naive-ui' |
| | | import { onActivated } from 'vue' |
| | | import { NButton, NSpace } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px"> |
| | | <img :src="noDataImg" style="width:123px;height:125px"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { h, onMounted, reactive, ref } from 'vue' |
| | | import type { FormInst, FormRules } from 'naive-ui' |
| | | import { NTag, useMessage } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { ImageInst } from 'naive-ui' |
| | | import { NButton, NCard, NImage, NModal, NSpin } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | |
| | | |
| | | <div v-if="!loading && listData.length === 0" class="empty-wrap"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | class="empty-img" |
| | | > |
| | | </div> |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onMounted, ref, watch } from "vue"; |
| | | import type { FormInst, FormRules, UploadFileInfo } from "naive-ui"; |
| | | import dayjs from "dayjs"; |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | /> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | /> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns, FormInst } from 'naive-ui' |
| | | import { NButton, NEllipsis, NSpace } from 'naive-ui' |
| | | import { onActivated, watch } from 'vue' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { NButton, NCard, NCascader, NDataTable, NDatePicker, NForm, NFormItem, NImage, NInput, NSelect, NSpace, NTabPane, NTabs, NTag, tooltipDark } from 'naive-ui' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | | import { useBoolean } from '@/hooks' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns, FormInst } from 'naive-ui' |
| | | import { onActivated } from 'vue' |
| | | import { NButton, NEllipsis, NSpace, NTag } from 'naive-ui' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | alt="no-data" |
| | | /> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px"> |
| | | <img :src="noDataImg" style="width:123px;height:125px"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { computed, onMounted, reactive, ref } from 'vue' |
| | | import { NButton, NSpace } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onMounted, ref, watch } from 'vue' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | | import { NButton, NInput, NRadio, NRadioGroup, NSelect, useDialog, useMessage } from 'naive-ui' |
| | |
| | | <div v-else> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <div v-else> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { NButton, NDatePicker, NInput, NRadio, NRadioGroup, NSelect, useDialog, useMessage } from 'naive-ui' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import dayjs from 'dayjs' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { NButton, NSpace, NTooltip } from 'naive-ui' |
| | | import { computed, onActivated, onMounted, ref } from 'vue' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { computed, onMounted, ref } from 'vue' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="empty-wrap"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="empty-wrap"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { computed, h, ref, watch } from 'vue' |
| | | import { useMessage } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onActivated, onMounted, ref, watch } from 'vue' |
| | | import { useRouter } from 'vue-router' |
| | | import { useDialog, useMessage } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue' |
| | | import { useBoolean } from '@/hooks' |
| | | import { useScriptTag } from '@vueuse/core' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { copyFence, exportFenceExcel, getFenceList } from '@/service/api/operations' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { deleteOpenCity, fetchOpenCityList, updateOpenCityStatus } from '@/service/api/operations' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { useScriptTag } from '@vueuse/core' |
| | | import dayjs from 'dayjs' |
| | | import { |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, nextTick, onMounted, onUnmounted, ref, shallowRef, watch } from 'vue' |
| | | import { useScriptTag } from '@vueuse/core' |
| | | import { useRoute } from 'vue-router' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { NButton, NDatePicker, NInput, NSelect, NSpace } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns, FormInst } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { NButton, NDatePicker, NInput, NSelect, NSpace } from 'naive-ui' |
| | |
| | | case '测试中': |
| | | return 'testing' |
| | | case '测试不通过': |
| | | case '失效': |
| | | case '已失效': |
| | | return 'test-fail' |
| | | case '可运营': |
| | | return 'test-pass' |
| | |
| | | { label: '待生效', value: 5 }, |
| | | { label: '启用中', value: 6 }, |
| | | { label: '已停用', value: 7 }, |
| | | { label: '失效', value: 8 }, |
| | | { label: '已失效', value: 8 }, |
| | | ] |
| | | |
| | | const conditionOptions = [ |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { NButton, NSwitch, NTag } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/ab6c7ff4-403a-4a2c-9ebf-310c023dc20f.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/ab6c7ff4-403a-4a2c-9ebf-310c023dc20f.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, ref } from "vue"; |
| | | import type { FormInst, FormRules } from "naive-ui"; |
| | | import dayjs from "dayjs"; |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | /> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | /> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, h, ref } from 'vue' |
| | | import { useBoolean } from '@/hooks' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { ref, computed } from 'vue' |
| | | import { useBoolean } from '@/hooks' |
| | | import { useRoute } from 'vue-router' |
| | |
| | | :row-height="18" :scroll-x="1510" class="flex-1"> |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, ref } from 'vue' |
| | | import { useBoolean } from '@/hooks' |
| | | import { useRouter } from 'vue-router' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { NButton, NSwitch, NTag } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/ab6c7ff4-403a-4a2c-9ebf-310c023dc20f.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/ab6c7ff4-403a-4a2c-9ebf-310c023dc20f.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onMounted, ref } from 'vue' |
| | | import { useRouter } from 'vue-router' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/ab6c7ff4-403a-4a2c-9ebf-310c023dc20f.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/ab6c7ff4-403a-4a2c-9ebf-310c023dc20f.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, h, onMounted, reactive, ref } from 'vue' |
| | | import { useRouter } from 'vue-router' |
| | | import SelectPointModal from './components/SelectPointModal.vue' |
| | |
| | | </template> |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width: 50%" alt="no-data"> |
| | | <img :src="noDataImg" style="width: 50%" alt="no-data"> |
| | | </div> |
| | | </template> |
| | | </n-select> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" style="width: 123px; height: 125px" |
| | | :src="noDataImg" style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | | </div> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, ref } from 'vue' |
| | | import { NDataTable, NModal, NSpin } from 'naive-ui' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { onMounted, ref, watch } from 'vue' |
| | | import { addCheckLocation, getCheckLocationList } from '@/service/api/attendance' |
| | | import AddressFormModal from '@/views/operations/attendance/address/components/AddressFormModal.vue' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onActivated, onMounted, ref } from 'vue' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/ab6c7ff4-403a-4a2c-9ebf-310c023dc20f.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/ab6c7ff4-403a-4a2c-9ebf-310c023dc20f.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { h, ref } from 'vue' |
| | | import { useBoolean } from '@/hooks' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, nextTick, ref } from 'vue' |
| | | import type { FormInst, FormRules, UploadCustomRequestOptions, UploadFileInfo, UploadInst } from 'naive-ui' |
| | | import { customUploadRequest } from '@/utils/upload' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | /> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, h, onActivated, ref } from 'vue' |
| | | import { useBoolean, usePermission } from '@/hooks' |
| | | import { useRouter } from 'vue-router' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onMounted, reactive, ref } from 'vue' |
| | | import type { FormInst, FormRules } from 'naive-ui' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { computed, onActivated, onMounted, ref } from 'vue' |
| | | import dayjs from 'dayjs' |
| | |
| | | ), |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style={{ width: '50%' }} alt="no-data" /> |
| | | <img :src="noDataImg" style={{ width: '50%' }} alt="no-data" /> |
| | | </div> |
| | | ), |
| | | }} |
| | |
| | | ), |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style={{ width: '50%' }} alt="no-data" /> |
| | | <img :src="noDataImg" style={{ width: '50%' }} alt="no-data" /> |
| | | </div> |
| | | ), |
| | | }} |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { computed, ref, watch } from 'vue' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%;" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { computed, onMounted, ref } from 'vue' |
| | | import { useBoolean } from '@/hooks' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center" style="justify-content: center;"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onMounted, ref, watch } from 'vue' |
| | | import type { FormInst, FormRules, UploadFileInfo, UploadInst } from 'naive-ui' |
| | | import { useScriptTag } from '@vueuse/core' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { useBoolean } from "@/hooks"; |
| | | import { |
| | | getOperationsUserListNoPage, |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | /> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { NButton, NSpace } from 'naive-ui' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, h, onMounted, ref } from 'vue' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { NButton, NTag, NTooltip } from 'naive-ui' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, h, onMounted, ref } from 'vue' |
| | | import { useI18n } from 'vue-i18n' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, h, onMounted, ref } from 'vue' |
| | | import { useI18n } from 'vue-i18n' |
| | | import type { DataTableColumns, FormInst, FormRules } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, nextTick, ref, watch } from "vue"; |
| | | import { useI18n } from "vue-i18n"; |
| | | import type { FormInst, FormRules, UploadFileInfo, UploadInst } from "naive-ui"; |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | /> |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, ref, watch } from "vue"; |
| | | import { useI18n } from "vue-i18n"; |
| | | import type { FormInst, FormRules, UploadFileInfo } from "naive-ui"; |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | /> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | /> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | /> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | /> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, h, onActivated, onMounted, ref } from 'vue' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { NButton, NTag } from 'naive-ui' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width:123px;height:125px" |
| | | @error="(e: any) => { |
| | | e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { deleteAccounts, fetchAccountList, switchStatus } from '@/service' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { FormInst, FormRules } from 'naive-ui' |
| | | import SearchPanel from '@/components/custom/SearchPanel.vue' |
| | | import Pagination from '@/components/common/Pagination.vue' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | class="empty-image" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | class="empty-image" |
| | | > |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | class="empty-image" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { deletePermissionGroup, fetchPermissionGroupPage } from '@/service' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { NButton, NCard, NDataTable, NInput, NSpace, NTabPane, NTabs, NTree } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | class="empty-image" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | /> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | class="empty-image" |
| | | /> |
| | | </div> |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { FormInst, FormRules } from 'naive-ui' |
| | | import { |
| | | NButton, |
| | |
| | | </div> |
| | | <div v-if="!visibleModuleItems.length" class="module-empty"> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <div v-else class="permission-empty"> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div v-if="!visibleModuleItems.length" class="module-empty"> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <div v-else class="permission-empty"> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { onActivated } from 'vue' |
| | | import { useBoolean } from '@/hooks' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onActivated, onMounted, reactive, ref } from 'vue' |
| | | import type { DataTableColumns, FormInst, FormRules, UploadFileInfo } from 'naive-ui' |
| | | import { NButton } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { computed, h, onMounted, reactive, ref, watch } from 'vue' |
| | | import { NButton, NTag, NTooltip, useMessage } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%;" |
| | | > |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { computed, onMounted, ref } from 'vue' |
| | | import { NButton, NTag, useMessage } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns, FormInst } from 'naive-ui' |
| | | import { NButton, NCard, NDataTable, NForm, NFormItem, NGi, NInput, NSelect, NTooltip } from 'naive-ui' |
| | | import dayjs from 'dayjs' |
| | |
| | | ), |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style={{ width: '50%' }} /> |
| | | <img :src="noDataImg" style={{ width: '50%' }} /> |
| | | </div> |
| | | ), |
| | | }} |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width:123px;height:125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue' |
| | | import { useBoolean } from '@/hooks' |
| | | import { useScriptTag } from '@vueuse/core' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean, usePermission } from '@/hooks' |
| | | import { copyFence, getFenceList } from '@/service/api/copyText' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns, FormInst } from 'naive-ui' |
| | | import { NButton, NDataTable, NDatePicker, NInput, NSelect, NSpace, NTag, NTooltip } from 'naive-ui' |
| | | import { computed, onActivated, onMounted, reactive, ref, watch } from 'vue' |
| | |
| | | return ( |
| | | <div class="flex-center py-12px"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style="width: 123px; height: 125px" |
| | | alt="no-data" |
| | | /> |
| | |
| | | {{ empty: ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style="width: 123px; height: 125px" |
| | | alt="no-data" |
| | | /> |
| | |
| | | let params: Record<string, any> = {} |
| | | if (checkedRowKeys.value.length > 0) { |
| | | params = { pointIds: checkedRowKeys.value } |
| | | } else { |
| | | } |
| | | else { |
| | | params = { |
| | | ...pointModel.value, |
| | | cityCode: buildQueryCityCode(pointModel.value.cityCode), |
| | |
| | | let params: Record<string, any> = {} |
| | | if (checkedRowKeys.value.length > 0) { |
| | | params = { ids: checkedRowKeys.value } |
| | | } else { |
| | | } |
| | | else { |
| | | params = { |
| | | cityCode: buildQueryCityCode(stationModel.value.cityCode), |
| | | stationNameOrNumber: stationModel.value.stationNameOrNumber || undefined, |
| | |
| | | placeholder="请选择" |
| | | clearable |
| | | multiple |
| | | max-tag-count="responsive" |
| | | max-tag-count="responsive" |
| | | onUpdate:show={(val: boolean) => isStationPointNumOpen.value = val} |
| | | > |
| | | {{ |
| | |
| | | placeholder="请选择" |
| | | clearable |
| | | multiple |
| | | max-tag-count="responsive" |
| | | max-tag-count="responsive" |
| | | onUpdate:show={(val: boolean) => isStationStatusOpen.value = val} |
| | | > |
| | | {{ |
| | |
| | | { |
| | | label: '点位ID', |
| | | path: 'pointNumber', |
| | | render: () => <NInput v-model:value={pointModel.value.pointNumber} placeholder="请输入" inputmode="numeric" allow-input={onlyAllowNumberInput} />, |
| | | render: () => <NInput v-model:value={pointModel.value.pointNumber} placeholder="请输入" inputmode="numeric" allow-input={onlyAllowNumberInput} />, |
| | | }, |
| | | { |
| | | label: '点位名称', |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { useScriptTag } from '@vueuse/core' |
| | | import dayjs from 'dayjs' |
| | | import { |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, h, nextTick, onMounted, onUnmounted, ref, watch } from 'vue' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | | import { useTabStore } from '@/store' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px"> |
| | | <img :src="noDataImg" style="width:123px;height:125px"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px"> |
| | | <img :src="noDataImg" style="width:123px;height:125px"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import dayjs from 'dayjs' |
| | | import { computed, onMounted, ref, watch } from 'vue' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { NButton, NSpace, NTooltip } from 'naive-ui' |
| | | import { computed, onActivated, onMounted, ref } from 'vue' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px"> |
| | | <img :src="noDataImg" style="width:123px;height:125px"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { ref, computed, watch } from 'vue' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | | import { NButton, NSpace, NTag, NTooltip, NForm, NFormItemGi, NRadioGroup, NRadioButton, NInput, NSwitch, NDataTable, NGrid, useDialog } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | /> |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | /> |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | /> |
| | | </div> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { computed, ref, watch } from 'vue' |
| | | import { NButton, NCard, NDataTable, NInput, NModal, NSelect, NTag, useMessage } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { computed, ref, watch } from 'vue' |
| | | import { NButton, NCard, NDataTable, NInput, NModal, NSelect, NSpace, NTag, useDialog, useMessage } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns, DataTableRowKey } from 'naive-ui' |
| | | import { getPointStatusText, getStatusClass } from '@/views/testDemo/operationWorkbench/status' |
| | | import { computed, ref, watch } from 'vue' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width: 50%" alt="no-data"> |
| | | <img :src="noDataImg" style="width: 50%" alt="no-data"> |
| | | </div> |
| | | </template> |
| | | </NSelect> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns, DataTableRowKey } from 'naive-ui' |
| | | import { computed, ref, watch } from 'vue' |
| | | import { NModal, NCard, NInput, NButton, NDataTable, useMessage } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, ref, watch } from 'vue' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | | import { NButton, NDataTable, NForm, NFormItem, NSpace, NTag, useDialog, useMessage } from 'naive-ui' |
| | |
| | | return ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | alt="no-data" |
| | | /> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | alt="no data" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | alt="no data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { NButton, NSpace, NTag, NTooltip, useDialog, useMessage } from 'naive-ui' |
| | | import { computed, onMounted, ref } from 'vue' |
| | |
| | | } |
| | | |
| | | function handleSearch() { |
| | | if (!validateRange(model.value.minPointCount, model.value.maxPointCount, '关联点位')) return |
| | | if (!validateRange(model.value.minVehicleCount, model.value.maxVehicleCount, '关联车辆数')) return |
| | | if (!validateRange(model.value.minOrderCount, model.value.maxOrderCount, '测试订单数')) return |
| | | if (!validateRange(model.value.minPointCount, model.value.maxPointCount, '关联点位')) |
| | | return |
| | | if (!validateRange(model.value.minVehicleCount, model.value.maxVehicleCount, '关联车辆数')) |
| | | return |
| | | if (!validateRange(model.value.minOrderCount, model.value.maxOrderCount, '测试订单数')) |
| | | return |
| | | pageParams.value.pageNum = 1 |
| | | getList() |
| | | } |
| | |
| | | }, |
| | | }, |
| | | { |
| | | title: '操作', |
| | | title: '操作', |
| | | key: 'actions', |
| | | width: 200, |
| | | align: 'left', |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | alt="no-data" |
| | | /> |
| | |
| | | > |
| | | <template #header> |
| | | <n-flex justify="space-between"> |
| | | <NButton @click="handleOpenOperationLog" v-permission="2026061521"> |
| | | <NButton v-permission="2026061521" @click="handleOpenOperationLog"> |
| | | 操作日志 |
| | | </NButton> |
| | | <NButton type="primary" v-permission="2026061520" secondary style="background-color: #E6F4FF; border-color: #7ABDFF; color: #0068FF;" @click="handleAdd"> |
| | | <NButton v-permission="2026061520" type="primary" secondary style="background-color: #E6F4FF; border-color: #7ABDFF; color: #0068FF;" @click="handleAdd"> |
| | | 添加测试计划 |
| | | </NButton> |
| | | </n-flex> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" alt="no-data"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" alt="no-data"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, nextTick, onMounted, onUnmounted, ref, shallowRef, watch } from 'vue' |
| | | import { useScriptTag } from '@vueuse/core' |
| | | import { useRoute } from 'vue-router' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { NButton, NDatePicker, NInput, NSelect, NSpace } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { computed, onMounted, ref } from 'vue' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { computed, ref, watch } from 'vue' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { computed, ref, watch } from 'vue' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | > |
| | | </div> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { computed, onMounted, ref } from 'vue' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { computed, onActivated, onMounted, ref } from 'vue' |
| | | import { useBoolean } from '@/hooks' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '123px', height: '125px' }} |
| | | onError={(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }} |
| | | /> |
| | |
| | | <template #empty> |
| | | <div class="flex-center" style="justify-content: center;"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { useBoolean } from '@/hooks' |
| | | import { addRoutePlan, editRoutePlan, getCityList } from '@/service/api/transaction' |
| | | import type { FormItemRule } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { deleteRoutePlan, getRoutePlanList } from '@/service/api/transaction' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | | import { getOrderEvaluateList } from '@/service/api/transaction' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { NRadio } from 'naive-ui' |
| | | import type { DataTableColumns, DataTableRowKey } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width: 123px; height: 125px" alt="no-data"> |
| | | <img :src="noDataImg" style="width: 123px; height: 125px" alt="no-data"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onMounted, onUnmounted, ref } from 'vue' |
| | | import type { DataTableColumns, DataTableRowKey } from 'naive-ui' |
| | | import { bootstrapAuthEntry, useBoolean } from '@/hooks' |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onMounted, ref, watch } from 'vue' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | | import { NButton, NCheckbox, NDatePicker, NForm, NInputNumber, NSelect, NSpace, NSwitch, useDialog, useMessage } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%;" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%;" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { computed, onActivated, onMounted, ref } from 'vue' |
| | | import { useBoolean } from '@/hooks' |
| | |
| | | <template #empty> |
| | | <div class="flex-center" style="justify-content: center;"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { useBoolean } from '@/hooks' |
| | | import { addPricing, editPricing, getCityList, getPricingDetail } from '@/service/api/transaction' |
| | | import type { FormItemRule } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { useBoolean } from '@/hooks' |
| | | import { useTabStore } from '@/store' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { onActivated } from 'vue' |
| | | import { useBoolean } from '@/hooks' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { useBoolean } from '@/hooks' |
| | | import { NButton, NCheckbox, NCheckboxGroup, NRadio, NRadioGroup, NSpace } from 'naive-ui' |
| | | import { useTabStore } from '@/store' |
| | |
| | | </template> |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width: 50%" alt="no-data"> |
| | | <img :src="noDataImg" style="width: 50%" alt="no-data"> |
| | | </div> |
| | | </template> |
| | | </n-select> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import dayjs from 'dayjs' |
| | | import { computed, onMounted, ref, watch } from 'vue' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |
| | |
| | | </template> |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width: 50%" alt="no-data"> |
| | | <img :src="noDataImg" style="width: 50%" alt="no-data"> |
| | | </div> |
| | | </template> |
| | | </NSelect> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, ref } from 'vue' |
| | | import { NButton, NDataTable, NImage, NModal, NSpin } from 'naive-ui' |
| | | import dayjs from 'dayjs' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" |
| | | :src="noDataImg" style="width:123px;height:125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" |
| | | :src="noDataImg" style="width:123px;height:125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" |
| | | :src="noDataImg" style="width:123px;height:125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | | </div> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onMounted, ref } from 'vue' |
| | | import { |
| | | NButton, |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed } from 'vue' |
| | | import { NDataTable, NModal } from 'naive-ui' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, ref, watch } from 'vue' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { NTag } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onMounted, ref } from 'vue' |
| | | import { |
| | | NButton, |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, ref, watch } from 'vue' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { NTag, useMessage } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onActivated, onMounted, ref } from 'vue' |
| | | import { useRouter } from 'vue-router' |
| | | import { NButton, NInput, NSelect, NSpace, NTag, useDialog, useMessage } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" |
| | | :src="noDataImg" style="width:123px;height:125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | | </div> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, ref, watch } from 'vue' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { NTag, useMessage } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onMounted, ref, watch } from 'vue' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | | import type { FormInst, FormRules } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 50%" |
| | | alt="no-data" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onActivated, onMounted, ref } from 'vue' |
| | | import { useRouter } from 'vue-router' |
| | | import { NButton, NSelect, NTag, useDialog, useMessage } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { ref, watch } from 'vue' |
| | | import type { FormInst, FormRules, UploadCustomRequestOptions, UploadFileInfo } from 'naive-ui' |
| | | import { useDialog, useMessage } from 'naive-ui' |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style=" width: 50%" |
| | | > |
| | | </div> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, h, onMounted, ref } from 'vue' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { NImage, NSwitch, NTag, useDialog, useMessage } from 'naive-ui' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onMounted, ref } from 'vue' |
| | | import { useRoute, useRouter } from 'vue-router' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="ts"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, h, onMounted, ref, watch } from 'vue' |
| | | import { useRouter } from 'vue-router' |
| | | import { NButton, NDataTable, NPopconfirm, NSpace, useMessage } from 'naive-ui' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { NButton, useDialog, useMessage } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </n-data-table> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import { computed, onMounted, ref } from 'vue' |
| | | import SearchPanel from '@/components/custom/SearchPanel.vue' |
| | | import { |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | return ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | onError={(e: any) => { e.target.src = noDataFallbackImg }} |
| | | /> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width: 123px; height: 125px"> |
| | | <img :src="noDataImg" style="width: 123px; height: 125px"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width: 123px; height: 125px"> |
| | | <img :src="noDataImg" style="width: 123px; height: 125px"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns } from 'naive-ui' |
| | | import { NButton, NTag, useDialog, useMessage } from 'naive-ui' |
| | | import { useBoolean } from '@/hooks' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | :src="noDataImg" |
| | | style="width: 123px; height: 125px" |
| | | @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }" |
| | | > |
| | |
| | | <script setup lang="tsx"> |
| | | import noDataImg from '@/assets/element-img/no-data.png' |
| | | import type { DataTableColumns, FormInst } from 'naive-ui' |
| | | import { NButton, NCard, NDataTable, NDatePicker, NForm, NFormItem, NGi, NInput, NSelect, NTooltip, useMessage } from 'naive-ui' |
| | | import dayjs from 'dayjs' |
| | |
| | | empty: () => ( |
| | | <div class="flex-center"> |
| | | <img |
| | | src="/src/assets/element-img/no-data.png" |
| | | src={noDataImg} |
| | | style={{ width: '50%' }} |
| | | /> |
| | | </div> |
| | |
| | | <NCard class="flex-1 robotaxi-table-card" content-style="display: flex; flex-direction: column; flex: 1; min-height: 0;"> |
| | | <template #header> |
| | | <n-flex justify="flex-end" align="center"> |
| | | <NButton v-permission="30131" @click="handleExport"> |
| | | <NButton v-permission="30131" @click="handleExport"> |
| | | 导出 |
| | | </NButton> |
| | | </n-flex> |
| | |
| | | > |
| | | <template #empty> |
| | | <div class="flex-center"> |
| | | <img src="/src/assets/element-img/no-data.png" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | <img :src="noDataImg" style="width:123px;height:125px" @error="(e: any) => { e.target.src = 'https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/9bed493b-a6aa-4ef6-ac10-7f67f5c6adc5.png' }"> |
| | | </div> |
| | | </template> |
| | | </NDataTable> |