!28 部分细节优化

Merge pull request !28 from 大熊/master
This commit is contained in:
1024创新实验室 2024-04-16 13:39:23 +00:00 committed by Gitee
commit ad8ae5bb0f
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
11 changed files with 217 additions and 202 deletions

View File

@ -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);
} }

View File

@ -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()))

View File

@ -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);
} }
// //

View File

@ -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: {
@ -48,7 +49,7 @@
// 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);
} }
} }

View File

@ -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>

View File

@ -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">

View File

@ -27,15 +27,16 @@
<!--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>
@ -44,14 +45,11 @@ 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(() => {
@ -83,12 +81,6 @@ function onEdit() {
noticeFormDrawerRef.value.showModal(noticeDetail.value.noticeId); noticeFormDrawerRef.value.showModal(noticeDetail.value.noticeId);
} }
//
const filePreviewRef = ref();
function onPrevFile(fileItem) {
filePreviewRef.value.showPreview(fileItem);
}
// //
function print() { function print() {
let bdhtml = window.document.body.innerHTML; let bdhtml = window.document.body.innerHTML;

View File

@ -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>

View File

@ -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';

View File

@ -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';

View File

@ -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';