mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-09-18 03:16:40 +08:00
Pre Merge pull request !28 from 大熊/master
This commit is contained in:
commit
ffb198b543
@ -65,7 +65,7 @@ public class InvoiceController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "删除发票信息 @author 善逸")
|
@Operation(summary = "删除发票信息 @author 善逸")
|
||||||
@GetMapping("/invoice/delete/{invoiceId}")
|
@GetMapping("/oa/invoice/delete/{invoiceId}")
|
||||||
public ResponseDTO<String> deleteInvoice(@PathVariable Long invoiceId) {
|
public ResponseDTO<String> deleteInvoice(@PathVariable Long invoiceId) {
|
||||||
return invoiceService.deleteInvoice(invoiceId);
|
return invoiceService.deleteInvoice(invoiceId);
|
||||||
}
|
}
|
||||||
|
@ -208,6 +208,8 @@ public class NoticeService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
NoticeUpdateFormVO updateFormVO = SmartBeanUtil.copy(noticeEntity, NoticeUpdateFormVO.class);
|
NoticeUpdateFormVO updateFormVO = SmartBeanUtil.copy(noticeEntity, NoticeUpdateFormVO.class);
|
||||||
|
NoticeTypeVO noticeType = noticeTypeService.getByNoticeTypeId(noticeEntity.getNoticeTypeId());
|
||||||
|
updateFormVO.setNoticeTypeName(noticeType.getNoticeTypeName());
|
||||||
if (!updateFormVO.getAllVisibleFlag()) {
|
if (!updateFormVO.getAllVisibleFlag()) {
|
||||||
List<NoticeVisibleRangeVO> noticeVisibleRangeList = noticeDao.queryVisibleRange(noticeId);
|
List<NoticeVisibleRangeVO> noticeVisibleRangeList = noticeDao.queryVisibleRange(noticeId);
|
||||||
List<Long> employeeIdList = noticeVisibleRangeList.stream().filter(e -> NoticeVisibleRangeDataTypeEnum.EMPLOYEE.getValue().equals(e.getDataType()))
|
List<Long> employeeIdList = noticeVisibleRangeList.stream().filter(e -> NoticeVisibleRangeDataTypeEnum.EMPLOYEE.getValue().equals(e.getDataType()))
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { getDownload } from '/@/lib/axios';
|
|
||||||
import { fileApi } from '/src/api/support/file-api';
|
import { fileApi } from '/src/api/support/file-api';
|
||||||
import { smartSentry } from '/@/lib/smart-sentry';
|
import { smartSentry } from '/@/lib/smart-sentry';
|
||||||
import { SmartLoading } from '/@/components/framework/smart-loading';
|
import { SmartLoading } from '/@/components/framework/smart-loading';
|
||||||
@ -62,7 +61,7 @@
|
|||||||
setVisible(true);
|
setVisible(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
window.open(fileItem.fileUrl);
|
fileApi.downLoadFile(fileItem.fileKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 判断图片类型
|
// 判断图片类型
|
||||||
|
@ -22,8 +22,9 @@
|
|||||||
v-for="(item, index) in fileList"
|
v-for="(item, index) in fileList"
|
||||||
:key="index"
|
:key="index"
|
||||||
:src="item.fileUrl"
|
:src="item.fileUrl"
|
||||||
:style="{ display: type === 'text' ? 'none' : '' }"
|
:style="{ display: type === 'text' ? 'none' : '', padding: '2px', height: '100px' }"
|
||||||
:width="width"
|
:width="width"
|
||||||
|
@click="preview(item, index)"
|
||||||
/>
|
/>
|
||||||
</a-image-preview-group>
|
</a-image-preview-group>
|
||||||
</a-space>
|
</a-space>
|
||||||
@ -31,7 +32,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import { getDownload } from '/@/lib/axios';
|
import { fileApi } from '/src/api/support/file-api';
|
||||||
|
|
||||||
let props = defineProps({
|
let props = defineProps({
|
||||||
fileList: {
|
fileList: {
|
||||||
@ -45,10 +46,10 @@
|
|||||||
type: String,
|
type: String,
|
||||||
default: 'text',
|
default: 'text',
|
||||||
},
|
},
|
||||||
// image宽度
|
// image 宽度
|
||||||
width: {
|
width: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 150,
|
default: 100,
|
||||||
},
|
},
|
||||||
// 分隔符 可设置html标签 例如:<br/>
|
// 分隔符 可设置html标签 例如:<br/>
|
||||||
separator: {
|
separator: {
|
||||||
@ -64,7 +65,7 @@
|
|||||||
previewCurrent.value = index;
|
previewCurrent.value = index;
|
||||||
visible.value = true;
|
visible.value = true;
|
||||||
} else {
|
} else {
|
||||||
window.open(file.fileUrl);
|
fileApi.downLoadFile(file.fileKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
<a-descriptions-item label="创建时间">{{ detail.createTime }}</a-descriptions-item>
|
<a-descriptions-item label="创建时间">{{ detail.createTime }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="创建人">{{ detail.createUserName }}</a-descriptions-item>
|
<a-descriptions-item label="创建人">{{ detail.createUserName }}</a-descriptions-item>
|
||||||
<a-descriptions-item label="营业执照">
|
<a-descriptions-item label="营业执照">
|
||||||
<FilePreview :default-file-list="detail.businessLicense" />
|
<FilePreview :file-list="detail.businessLicense" />
|
||||||
</a-descriptions-item>
|
</a-descriptions-item>
|
||||||
</a-descriptions>
|
</a-descriptions>
|
||||||
</div>
|
</div>
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<a-card style="margin-bottom: 15px" size="small">
|
<a-card style="margin-bottom: 15px" size="small">
|
||||||
<a-descriptions :title="noticeDetail.title" :columns="4" size="small">
|
<a-descriptions :title="noticeDetail.title" :column="4" size="small">
|
||||||
<template #extra>
|
<template #extra>
|
||||||
<a-button v-if="!noticeDetail.publishFlag" type="primary" size="small" @click="onEdit">编辑</a-button>
|
<a-button v-if="!noticeDetail.publishFlag" type="primary" size="small" @click="onEdit">编辑</a-button>
|
||||||
</template>
|
</template>
|
||||||
@ -28,7 +28,7 @@
|
|||||||
<a class="file-item" v-for="item in noticeDetail.attachment" :key="item.fileId" @click="onPrevFile(item)">{{ item.fileName }}</a>
|
<a class="file-item" v-for="item in noticeDetail.attachment" :key="item.fileId" @click="onPrevFile(item)">{{ item.fileName }}</a>
|
||||||
</div>
|
</div>
|
||||||
</a-descriptions-item>
|
</a-descriptions-item>
|
||||||
<a-descriptions-item label="可见范围" :span="2">
|
<a-descriptions-item label="可见范围">
|
||||||
<template v-if="noticeDetail.allVisibleFlag">全部可见</template>
|
<template v-if="noticeDetail.allVisibleFlag">全部可见</template>
|
||||||
<div class="visible-list">
|
<div class="visible-list">
|
||||||
<div class="visible-item" v-for="item in noticeDetail.visibleRangeList" :key="item.dataId">
|
<div class="visible-item" v-for="item in noticeDetail.visibleRangeList" :key="item.dataId">
|
||||||
@ -59,37 +59,37 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { onMounted, ref } from 'vue';
|
import { onMounted, ref } from 'vue';
|
||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
import NoticeFormDrawer from './components/notice-form-drawer.vue';
|
import NoticeFormDrawer from './components/notice-form-drawer.vue';
|
||||||
import NoticeViewRecordList from './components/notice-view-record-list.vue';
|
import NoticeViewRecordList from './components/notice-view-record-list.vue';
|
||||||
import { noticeApi } from '/@/api/business/oa/notice-api';
|
import { noticeApi } from '/@/api/business/oa/notice-api';
|
||||||
import { SmartLoading } from '/@/components/framework/smart-loading';
|
import { SmartLoading } from '/@/components/framework/smart-loading';
|
||||||
import FilePreviewModal from '/@/components/support/file-preview-modal/index.vue';
|
import FilePreviewModal from '/@/components/support/file-preview-modal/index.vue';
|
||||||
import { smartSentry } from '/@/lib/smart-sentry';
|
import { smartSentry } from '/@/lib/smart-sentry';
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
newsType: {
|
newsType: {
|
||||||
type: Number,
|
type: Number,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const activeKey = ref(1);
|
const activeKey = ref(1);
|
||||||
|
|
||||||
const noticeDetail = ref({});
|
const noticeDetail = ref({});
|
||||||
const noticeViewRecordList = ref();
|
const noticeViewRecordList = ref();
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (route.query.noticeId) {
|
if (route.query.noticeId) {
|
||||||
queryNoticeDetail();
|
queryNoticeDetail();
|
||||||
noticeViewRecordList.value.onSearch();
|
noticeViewRecordList.value.onSearch();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 查询详情
|
// 查询详情
|
||||||
async function queryNoticeDetail() {
|
async function queryNoticeDetail() {
|
||||||
try {
|
try {
|
||||||
SmartLoading.show();
|
SmartLoading.show();
|
||||||
const result = await noticeApi.getUpdateNoticeInfo(route.query.noticeId);
|
const result = await noticeApi.getUpdateNoticeInfo(route.query.noticeId);
|
||||||
@ -99,27 +99,27 @@ async function queryNoticeDetail() {
|
|||||||
} finally {
|
} finally {
|
||||||
SmartLoading.hide();
|
SmartLoading.hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 点击编辑
|
// 点击编辑
|
||||||
const noticeFormDrawerRef = ref();
|
const noticeFormDrawerRef = ref();
|
||||||
function onEdit() {
|
function onEdit() {
|
||||||
noticeFormDrawerRef.value.showModal(noticeDetail.value.noticeId);
|
noticeFormDrawerRef.value.showModal(noticeDetail.value.noticeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 预览附件
|
// 预览附件
|
||||||
const filePreviewRef = ref();
|
const filePreviewRef = ref();
|
||||||
function onPrevFile(fileItem) {
|
function onPrevFile(fileItem) {
|
||||||
filePreviewRef.value.showPreview(fileItem);
|
filePreviewRef.value.showPreview(fileItem);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
:deep(.ant-descriptions-item-content) {
|
:deep(.ant-descriptions-item-content) {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
.file-list {
|
.file-list {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
@ -127,18 +127,18 @@ function onPrevFile(fileItem) {
|
|||||||
display: block;
|
display: block;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.visible-list {
|
.visible-list {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
.visible-item {
|
.visible-item {
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.content-html {
|
.content-html {
|
||||||
img {
|
img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -27,43 +27,41 @@
|
|||||||
<!--endprint-->
|
<!--endprint-->
|
||||||
</div>
|
</div>
|
||||||
<a-divider />
|
<a-divider />
|
||||||
<div>附件:<file-preview :fileList="noticeDetail.attachment" /></div>
|
<div>
|
||||||
|
附件:
|
||||||
|
<file-preview v-if="!$lodash.isEmpty(noticeDetail.attachment)" :fileList="noticeDetail.attachment" />
|
||||||
|
<span v-else>无</span>
|
||||||
|
</div>
|
||||||
</a-card>
|
</a-card>
|
||||||
|
|
||||||
<a-card title="记录" size="small" class="smart-margin-top10">
|
<a-card title="记录" size="small" class="smart-margin-top10">
|
||||||
<NoticeViewRecordList ref="noticeViewRecordList" :noticeId="route.query.noticeId" />
|
<NoticeViewRecordList ref="noticeViewRecordList" :noticeId="route.query.noticeId" />
|
||||||
</a-card>
|
</a-card>
|
||||||
|
|
||||||
<!-- 预览附件 -->
|
|
||||||
<FilePreviewModal ref="filePreviewRef" />
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { onMounted, ref } from 'vue';
|
import { onMounted, ref } from 'vue';
|
||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
import NoticeViewRecordList from './components/notice-view-record-list.vue';
|
import NoticeViewRecordList from './components/notice-view-record-list.vue';
|
||||||
import { noticeApi } from '/@/api/business/oa/notice-api';
|
import { noticeApi } from '/@/api/business/oa/notice-api';
|
||||||
import { SmartLoading } from '/@/components/framework/smart-loading';
|
import { SmartLoading } from '/@/components/framework/smart-loading';
|
||||||
import FilePreviewModal from '/@/components/support/file-preview-modal/index.vue';
|
import FilePreview from '/@/components/support/file-preview/index.vue';
|
||||||
import FilePreview from '/@/components/support/file-preview/index.vue';
|
import { smartSentry } from '/@/lib/smart-sentry';
|
||||||
import { smartSentry } from '/@/lib/smart-sentry';
|
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
|
||||||
const activeKey = ref(1);
|
const noticeDetail = ref({});
|
||||||
|
|
||||||
const noticeDetail = ref({});
|
onMounted(() => {
|
||||||
|
|
||||||
onMounted(() => {
|
|
||||||
if (route.query.noticeId) {
|
if (route.query.noticeId) {
|
||||||
queryNoticeDetail();
|
queryNoticeDetail();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const noticeViewRecordList = ref();
|
const noticeViewRecordList = ref();
|
||||||
|
|
||||||
// 查询详情
|
// 查询详情
|
||||||
async function queryNoticeDetail() {
|
async function queryNoticeDetail() {
|
||||||
try {
|
try {
|
||||||
SmartLoading.show();
|
SmartLoading.show();
|
||||||
const result = await noticeApi.view(route.query.noticeId);
|
const result = await noticeApi.view(route.query.noticeId);
|
||||||
@ -75,22 +73,16 @@ async function queryNoticeDetail() {
|
|||||||
} finally {
|
} finally {
|
||||||
SmartLoading.hide();
|
SmartLoading.hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 点击编辑
|
// 点击编辑
|
||||||
const noticeFormDrawerRef = ref();
|
const noticeFormDrawerRef = ref();
|
||||||
function onEdit() {
|
function onEdit() {
|
||||||
noticeFormDrawerRef.value.showModal(noticeDetail.value.noticeId);
|
noticeFormDrawerRef.value.showModal(noticeDetail.value.noticeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 预览附件
|
// 打印
|
||||||
const filePreviewRef = ref();
|
function print() {
|
||||||
function onPrevFile(fileItem) {
|
|
||||||
filePreviewRef.value.showPreview(fileItem);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 打印
|
|
||||||
function print() {
|
|
||||||
let bdhtml = window.document.body.innerHTML;
|
let bdhtml = window.document.body.innerHTML;
|
||||||
let sprnstr = '<!--startprint-->'; //必须在页面添加<!--startprint-->和<!--endprint-->而且需要打印的内容必须在它们之间
|
let sprnstr = '<!--startprint-->'; //必须在页面添加<!--startprint-->和<!--endprint-->而且需要打印的内容必须在它们之间
|
||||||
let eprnstr = '<!--endprint-->';
|
let eprnstr = '<!--endprint-->';
|
||||||
@ -102,15 +94,15 @@ function print() {
|
|||||||
newWin.focus(); //在IE浏览器中使用必须添加这一句
|
newWin.focus(); //在IE浏览器中使用必须添加这一句
|
||||||
newWin.print(); //打印
|
newWin.print(); //打印
|
||||||
newWin.close(); //关闭窗口
|
newWin.close(); //关闭窗口
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
:deep(.ant-descriptions-item-content) {
|
:deep(.ant-descriptions-item-content) {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
.file-list {
|
.file-list {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
@ -118,16 +110,16 @@ function print() {
|
|||||||
display: block;
|
display: block;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.visible-list {
|
.visible-list {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
.visible-item {
|
.visible-item {
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.content-header {
|
.content-header {
|
||||||
.content-header-title {
|
.content-header-title {
|
||||||
margin: 10px 0px;
|
margin: 10px 0px;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
@ -144,10 +136,10 @@ function print() {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.content-html {
|
.content-html {
|
||||||
img {
|
img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
<a-table rowKey="feedbackId" :dataSource="tableData" :columns="tableColumns" :pagination="false" :loading="tableLoading" size="small" bordered>
|
<a-table rowKey="feedbackId" :dataSource="tableData" :columns="tableColumns" :pagination="false" :loading="tableLoading" size="small" bordered>
|
||||||
<template #bodyCell="{ text, column }">
|
<template #bodyCell="{ text, column }">
|
||||||
<template v-if="column.dataIndex === 'feedbackAttachment'">
|
<template v-if="column.dataIndex === 'feedbackAttachment'">
|
||||||
<FilePreview :fileList="text" />
|
<FilePreview :fileList="text" type="picture" />
|
||||||
</template>
|
</template>
|
||||||
<template v-if="column.dataIndex === 'userType'">
|
<template v-if="column.dataIndex === 'userType'">
|
||||||
<span>{{ $smartEnumPlugin.getDescByValue('USER_TYPE_ENUM', text) }}</span>
|
<span>{{ $smartEnumPlugin.getDescByValue('USER_TYPE_ENUM', text) }}</span>
|
||||||
|
@ -86,13 +86,13 @@
|
|||||||
<p class="line"></p>
|
<p class="line"></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="login-type">
|
<div class="login-type">
|
||||||
<img src="/@/assets/images/login/wechat-icon.png" />
|
<img :src="wechatIcon" />
|
||||||
<img src="/@/assets/images/login/ali-icon.png" />
|
<img :src="aliIcon" />
|
||||||
<img src="/@/assets/images/login/douyin-icon.png" />
|
<img :src="douyinIcon" />
|
||||||
<img src="/@/assets/images/login/qq-icon.png" />
|
<img :src="qqIcon" />
|
||||||
<img src="/@/assets/images/login/weibo-icon.png" />
|
<img :src="weiboIcon" />
|
||||||
<img src="/@/assets/images/login/feishu-icon.png" />
|
<img :src="feishuIcon" />
|
||||||
<img src="/@/assets/images/login/google-icon.png" />
|
<img :src="googleIcon" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -106,10 +106,16 @@
|
|||||||
import { SmartLoading } from '/@/components/framework/smart-loading';
|
import { SmartLoading } from '/@/components/framework/smart-loading';
|
||||||
import { LOGIN_DEVICE_ENUM } from '/@/constants/system/login-device-const';
|
import { LOGIN_DEVICE_ENUM } from '/@/constants/system/login-device-const';
|
||||||
import { useUserStore } from '/@/store/modules/system/user';
|
import { useUserStore } from '/@/store/modules/system/user';
|
||||||
import gongzhonghao from '/@/assets/images/1024lab/1024lab-gzh.jpg';
|
|
||||||
import zhuoda from '/@/assets/images/1024lab/zhuoda-wechat.jpg';
|
import zhuoda from '/@/assets/images/1024lab/zhuoda-wechat.jpg';
|
||||||
import loginQR from '/@/assets/images/login/login-qr.png';
|
import loginQR from '/@/assets/images/login/login-qr.png';
|
||||||
import gzh from '/@/assets/images/1024lab/gzh.jpg';
|
import gzh from '/@/assets/images/1024lab/gzh.jpg';
|
||||||
|
import wechatIcon from '/@/assets/images/login/wechat-icon.png';
|
||||||
|
import aliIcon from '/@/assets/images/login/ali-icon.png';
|
||||||
|
import douyinIcon from '/@/assets/images/login/douyin-icon.png';
|
||||||
|
import qqIcon from '/@/assets/images/login/qq-icon.png';
|
||||||
|
import weiboIcon from '/@/assets/images/login/weibo-icon.png';
|
||||||
|
import feishuIcon from '/@/assets/images/login/feishu-icon.png';
|
||||||
|
import googleIcon from '/@/assets/images/login/google-icon.png';
|
||||||
|
|
||||||
import { buildRoutes } from '/@/router/index';
|
import { buildRoutes } from '/@/router/index';
|
||||||
import { smartSentry } from '/@/lib/smart-sentry';
|
import { smartSentry } from '/@/lib/smart-sentry';
|
||||||
|
@ -50,13 +50,13 @@
|
|||||||
<p class="line"></p>
|
<p class="line"></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="login-type">
|
<div class="login-type">
|
||||||
<img src="/@/assets/images/login/wechat-icon.png" />
|
<img :src="wechatIcon" />
|
||||||
<img src="/@/assets/images/login/ali-icon.png" />
|
<img :src="aliIcon" />
|
||||||
<img src="/@/assets/images/login/douyin-icon.png" />
|
<img :src="douyinIcon" />
|
||||||
<img src="/@/assets/images/login/qq-icon.png" />
|
<img :src="qqIcon" />
|
||||||
<img src="/@/assets/images/login/weibo-icon.png" />
|
<img :src="weiboIcon" />
|
||||||
<img src="/@/assets/images/login/feishu-icon.png" />
|
<img :src="feishuIcon" />
|
||||||
<img src="/@/assets/images/login/google-icon.png" />
|
<img :src="googleIcon" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -71,6 +71,13 @@
|
|||||||
import { LOGIN_DEVICE_ENUM } from '/@/constants/system/login-device-const';
|
import { LOGIN_DEVICE_ENUM } from '/@/constants/system/login-device-const';
|
||||||
import { useUserStore } from '/@/store/modules/system/user';
|
import { useUserStore } from '/@/store/modules/system/user';
|
||||||
import loginQR from '/@/assets/images/login/login-qr.png';
|
import loginQR from '/@/assets/images/login/login-qr.png';
|
||||||
|
import wechatIcon from '/@/assets/images/login/wechat-icon.png';
|
||||||
|
import aliIcon from '/@/assets/images/login/ali-icon.png';
|
||||||
|
import douyinIcon from '/@/assets/images/login/douyin-icon.png';
|
||||||
|
import qqIcon from '/@/assets/images/login/qq-icon.png';
|
||||||
|
import weiboIcon from '/@/assets/images/login/weibo-icon.png';
|
||||||
|
import feishuIcon from '/@/assets/images/login/feishu-icon.png';
|
||||||
|
import googleIcon from '/@/assets/images/login/google-icon.png';
|
||||||
|
|
||||||
import { buildRoutes } from '/@/router/index';
|
import { buildRoutes } from '/@/router/index';
|
||||||
import { smartSentry } from '/@/lib/smart-sentry';
|
import { smartSentry } from '/@/lib/smart-sentry';
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
<p>欢迎登录 SmartAdmin V3</p>
|
<p>欢迎登录 SmartAdmin V3</p>
|
||||||
<p class="sub-welcome">高质量代码的快速开发平台</p>
|
<p class="sub-welcome">高质量代码的快速开发平台</p>
|
||||||
</div>
|
</div>
|
||||||
<img class="welcome-img" src="/@/assets/images/login/left-bg2.png" />
|
<img class="welcome-img" :src="leftBg2" />
|
||||||
</div>
|
</div>
|
||||||
<div class="box-item login">
|
<div class="box-item login">
|
||||||
<img class="login-qr" :src="loginQR" />
|
<img class="login-qr" :src="loginQR" />
|
||||||
@ -51,13 +51,13 @@
|
|||||||
<p class="line"></p>
|
<p class="line"></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="login-type">
|
<div class="login-type">
|
||||||
<img src="/@/assets/images/login/wechat-icon.png" />
|
<img :src="wechatIcon" />
|
||||||
<img src="/@/assets/images/login/ali-icon.png" />
|
<img :src="aliIcon" />
|
||||||
<img src="/@/assets/images/login/douyin-icon.png" />
|
<img :src="douyinIcon" />
|
||||||
<img src="/@/assets/images/login/qq-icon.png" />
|
<img :src="qqIcon" />
|
||||||
<img src="/@/assets/images/login/weibo-icon.png" />
|
<img :src="weiboIcon" />
|
||||||
<img src="/@/assets/images/login/feishu-icon.png" />
|
<img :src="feishuIcon" />
|
||||||
<img src="/@/assets/images/login/google-icon.png" />
|
<img :src="googleIcon" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -72,6 +72,14 @@
|
|||||||
import { LOGIN_DEVICE_ENUM } from '/@/constants/system/login-device-const';
|
import { LOGIN_DEVICE_ENUM } from '/@/constants/system/login-device-const';
|
||||||
import { useUserStore } from '/@/store/modules/system/user';
|
import { useUserStore } from '/@/store/modules/system/user';
|
||||||
import loginQR from '/@/assets/images/login/login-qr.png';
|
import loginQR from '/@/assets/images/login/login-qr.png';
|
||||||
|
import leftBg2 from '/@/assets/images/login/left-bg2.png';
|
||||||
|
import wechatIcon from '/@/assets/images/login/wechat-icon.png';
|
||||||
|
import aliIcon from '/@/assets/images/login/ali-icon.png';
|
||||||
|
import douyinIcon from '/@/assets/images/login/douyin-icon.png';
|
||||||
|
import qqIcon from '/@/assets/images/login/qq-icon.png';
|
||||||
|
import weiboIcon from '/@/assets/images/login/weibo-icon.png';
|
||||||
|
import feishuIcon from '/@/assets/images/login/feishu-icon.png';
|
||||||
|
import googleIcon from '/@/assets/images/login/google-icon.png';
|
||||||
|
|
||||||
import { buildRoutes } from '/@/router/index';
|
import { buildRoutes } from '/@/router/index';
|
||||||
import { smartSentry } from '/@/lib/smart-sentry';
|
import { smartSentry } from '/@/lib/smart-sentry';
|
||||||
|
Loading…
Reference in New Issue
Block a user