新增待办信息
This commit is contained in:
@@ -14,7 +14,6 @@
|
|||||||
<span class="info-item">时间:{{ NoticeList?.createTime || '-' }}</span>
|
<span class="info-item">时间:{{ NoticeList?.createTime || '-' }}</span>
|
||||||
<span class="info-item">类型:{{ getTypeText(NoticeList?.type) }}</span>
|
<span class="info-item">类型:{{ getTypeText(NoticeList?.type) }}</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- 优化后的内容展示区域 -->
|
|
||||||
<div class="detail-content">
|
<div class="detail-content">
|
||||||
<pre class="db-content">{{ NoticeList?.description || '无内容' }}</pre>
|
<pre class="db-content">{{ NoticeList?.description || '无内容' }}</pre>
|
||||||
</div>
|
</div>
|
||||||
@@ -43,22 +42,34 @@
|
|||||||
import { defineComponent, ref, onMounted, onUnmounted } from 'vue';
|
import { defineComponent, ref, onMounted, onUnmounted } from 'vue';
|
||||||
import { useMessage } from '@jeesite/core/hooks/web/useMessage';
|
import { useMessage } from '@jeesite/core/hooks/web/useMessage';
|
||||||
import { BasicModal, useModalInner } from '@jeesite/core/components/Modal';
|
import { BasicModal, useModalInner } from '@jeesite/core/components/Modal';
|
||||||
import { bizListItemSflow, BizListItem } from '@jeesite/biz/api/biz/listItem';
|
import { bizListItemSflow, bizListItemList, BizListItem, TabItem } from '@jeesite/biz/api/biz/listItem';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: { BasicModal },
|
components: { BasicModal },
|
||||||
emits: ['modalClose'],
|
emits: ['modalClose'],
|
||||||
setup(props, { emit }) {
|
setup(props, { emit }) {
|
||||||
|
|
||||||
const TodoValue = ref();
|
const TodoValue = ref();
|
||||||
const NoticeList = ref();
|
const NoticeList = ref<BizListItem>();
|
||||||
|
const getDataList = async ( params: any) => {
|
||||||
|
try {
|
||||||
|
const result = await bizListItemList(params);
|
||||||
|
NoticeList.value = result.bizListItem || [];
|
||||||
|
TodoValue.value = result.bizListItem.extraDesc|| '';
|
||||||
|
} catch (error) {
|
||||||
|
NoticeList.value = undefined ;
|
||||||
|
console.error('获取数据失败:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const { createMessage } = useMessage();
|
const { createMessage } = useMessage();
|
||||||
// 模态框注册
|
// 模态框注册
|
||||||
const [register, { closeModal }] = useModalInner(async (data: any) => {
|
const [register, { closeModal }] = useModalInner(async (data: any) => {
|
||||||
if (!data) return;
|
if (!data) return;
|
||||||
NoticeList.value = Array.isArray(data) ? data[0] : data;
|
const params = {
|
||||||
TodoValue.value = NoticeList.value.extraDesc|| '';
|
id : data.id
|
||||||
|
}
|
||||||
|
await getDataList(params);
|
||||||
});
|
});
|
||||||
|
|
||||||
const getTypeText = (type: string) => {
|
const getTypeText = (type: string) => {
|
||||||
@@ -120,9 +131,9 @@
|
|||||||
/* 主容器样式 - 淡蓝色系优化 */
|
/* 主容器样式 - 淡蓝色系优化 */
|
||||||
.detail-container {
|
.detail-container {
|
||||||
background-color: #f0f8ff; /* 统一淡蓝色背景 */
|
background-color: #f0f8ff; /* 统一淡蓝色背景 */
|
||||||
padding: 20px;
|
padding: 12px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
min-height: 200px;
|
min-height: 400px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
$props.titleRows && $props.titleRows > 0 ? { rows: $props.titleRows, tooltip: !!item.title } : false
|
$props.titleRows && $props.titleRows > 0 ? { rows: $props.titleRows, tooltip: !!item.title } : false
|
||||||
"
|
"
|
||||||
:content="item.title"
|
:content="item.title"
|
||||||
|
@click="openModal(true, item)"
|
||||||
/>
|
/>
|
||||||
<div class="extra" v-if="item.extra">
|
<div class="extra" v-if="item.extra">
|
||||||
<a-tag class="tag" :color="item.color">
|
<a-tag class="tag" :color="item.color">
|
||||||
@@ -52,14 +53,17 @@
|
|||||||
</a-list-item>
|
</a-list-item>
|
||||||
</template>
|
</template>
|
||||||
</a-list>
|
</a-list>
|
||||||
|
<Modal @register="register" />
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { computed, defineComponent, PropType, ref, watch, unref } from 'vue';
|
import { computed, defineComponent, PropType, ref, watch, unref } from 'vue';
|
||||||
import { BizListItem } from '@jeesite/biz/api/biz/listItem';
|
import { BizListItem, tabListDataAll } from '@jeesite/biz/api/biz/listItem';
|
||||||
import { useDesign } from '@jeesite/core/hooks/web/useDesign';
|
import { useDesign } from '@jeesite/core/hooks/web/useDesign';
|
||||||
|
import { useModal } from '@jeesite/core/components/Modal';
|
||||||
import { List, Avatar, Tag, Typography } from 'ant-design-vue';
|
import { List, Avatar, Tag, Typography } from 'ant-design-vue';
|
||||||
import { Icon } from '@jeesite/core/components/Icon';
|
import { Icon } from '@jeesite/core/components/Icon';
|
||||||
import { isNumber } from '@jeesite/core/utils/is';
|
import { isNumber } from '@jeesite/core/utils/is';
|
||||||
|
import Modal from './NoticeInfo.vue';
|
||||||
|
|
||||||
interface ExtendedBizListItem extends BizListItem {
|
interface ExtendedBizListItem extends BizListItem {
|
||||||
titleDelete?: '0' | '1' | string;
|
titleDelete?: '0' | '1' | string;
|
||||||
@@ -74,6 +78,7 @@
|
|||||||
ATypographyParagraph: Typography.Paragraph,
|
ATypographyParagraph: Typography.Paragraph,
|
||||||
[Tag.name as string]: Tag,
|
[Tag.name as string]: Tag,
|
||||||
Icon,
|
Icon,
|
||||||
|
Modal,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
list: {
|
list: {
|
||||||
@@ -103,6 +108,9 @@
|
|||||||
},
|
},
|
||||||
emits: ['update:currentPage'],
|
emits: ['update:currentPage'],
|
||||||
setup(props, { emit }) {
|
setup(props, { emit }) {
|
||||||
|
|
||||||
|
const [register, { openModal }] = useModal();
|
||||||
|
|
||||||
const { prefixCls } = useDesign('header-notify-list');
|
const { prefixCls } = useDesign('header-notify-list');
|
||||||
const current = ref(props.currentPage || 1);
|
const current = ref(props.currentPage || 1);
|
||||||
|
|
||||||
@@ -144,8 +152,15 @@
|
|||||||
function handleTitleClick(item: ExtendedBizListItem) {
|
function handleTitleClick(item: ExtendedBizListItem) {
|
||||||
props.onTitleClick && props.onTitleClick(item);
|
props.onTitleClick && props.onTitleClick(item);
|
||||||
}
|
}
|
||||||
|
return {
|
||||||
return { prefixCls, getPagination, getData, handleTitleClick, isTitleClickable };
|
prefixCls,
|
||||||
|
getPagination,
|
||||||
|
getData,
|
||||||
|
handleTitleClick,
|
||||||
|
isTitleClickable,
|
||||||
|
register,
|
||||||
|
openModal,
|
||||||
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -9,33 +9,29 @@
|
|||||||
<template v-for="item in listData" :key="item.key">
|
<template v-for="item in listData" :key="item.key">
|
||||||
<TabPane>
|
<TabPane>
|
||||||
<template #tab>
|
<template #tab>
|
||||||
{{ item.name }}
|
<span @click="getDataList()">{{ item.name }}</span>
|
||||||
<span v-if="item.list.length !== 0">({{ item.list.length }})</span>
|
<span v-if="item.list.length !== 0">({{ item.list.length }})</span>
|
||||||
</template>
|
</template>
|
||||||
<NoticeList :list="item.list" v-if="item.list.length > 0" @click="openModal(true, item.list)" />
|
<NoticeList :list="item.list" />
|
||||||
</TabPane>
|
</TabPane>
|
||||||
</template>
|
</template>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
</template>
|
</template>
|
||||||
</Popover>
|
</Popover>
|
||||||
</div>
|
</div>
|
||||||
<Modal @register="register" @modalClose="getDataList()" />
|
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { computed, defineComponent, onMounted, ref } from 'vue';
|
import { computed, defineComponent, onMounted, ref } from 'vue';
|
||||||
import { Popover, Tabs, Badge } from 'ant-design-vue';
|
import { Popover, Tabs, Badge } from 'ant-design-vue';
|
||||||
import { BellOutlined } from '@ant-design/icons-vue';
|
import { BellOutlined } from '@ant-design/icons-vue';
|
||||||
import NoticeList from './NoticeList.vue';
|
import NoticeList from './NoticeList.vue';
|
||||||
import { useModal } from '@jeesite/core/components/Modal';
|
|
||||||
import { useDesign } from '@jeesite/core/hooks/web/useDesign';
|
import { useDesign } from '@jeesite/core/hooks/web/useDesign';
|
||||||
import { useMessage } from '@jeesite/core/hooks/web/useMessage';
|
import { useMessage } from '@jeesite/core/hooks/web/useMessage';
|
||||||
import { tabListDataAll, bizListItemSflow, TabItem, BizListItem } from '@jeesite/biz/api/biz/listItem';
|
import { tabListDataAll, bizListItemSflow, TabItem, BizListItem } from '@jeesite/biz/api/biz/listItem';
|
||||||
import Modal from './NoticeInfo.vue';
|
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: { Popover, BellOutlined, Tabs, TabPane: Tabs.TabPane, Badge, NoticeList, Modal },
|
components: { Popover, BellOutlined, Tabs, TabPane: Tabs.TabPane, Badge, NoticeList },
|
||||||
setup() {
|
setup() {
|
||||||
const [register, { openModal }] = useModal();
|
|
||||||
|
|
||||||
const { prefixCls } = useDesign('header-notify');
|
const { prefixCls } = useDesign('header-notify');
|
||||||
const listData = ref<TabItem[]>([]);
|
const listData = ref<TabItem[]>([]);
|
||||||
@@ -65,8 +61,6 @@
|
|||||||
prefixCls,
|
prefixCls,
|
||||||
listData,
|
listData,
|
||||||
count,
|
count,
|
||||||
register,
|
|
||||||
openModal,
|
|
||||||
numberStyle: {},
|
numberStyle: {},
|
||||||
getDataList,
|
getDataList,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
import { Icon } from '@jeesite/core/components/Icon';
|
import { Icon } from '@jeesite/core/components/Icon';
|
||||||
import { BasicForm, FormSchema, useForm } from '@jeesite/core/components/Form';
|
import { BasicForm, FormSchema, useForm } from '@jeesite/core/components/Form';
|
||||||
import { BasicModal, useModalInner } from '@jeesite/core/components/Modal';
|
import { BasicModal, useModalInner } from '@jeesite/core/components/Modal';
|
||||||
|
import { formatToDateTime } from '@jeesite/core/utils/dateUtil';
|
||||||
import { BizCalendarSchedule, bizCalendarScheduleSave, bizCalendarScheduleForm } from '@jeesite/biz/api/biz/calendarSchedule';
|
import { BizCalendarSchedule, bizCalendarScheduleSave, bizCalendarScheduleForm } from '@jeesite/biz/api/biz/calendarSchedule';
|
||||||
|
|
||||||
const emit = defineEmits(['success', 'register']);
|
const emit = defineEmits(['success', 'register']);
|
||||||
@@ -168,7 +168,11 @@
|
|||||||
|
|
||||||
async function handleSubmit() {
|
async function handleSubmit() {
|
||||||
try {
|
try {
|
||||||
const data = await validate();
|
const orgData = await validate();
|
||||||
|
const data = {
|
||||||
|
... orgData,
|
||||||
|
updateTime: formatToDateTime(new Date()) ,
|
||||||
|
}
|
||||||
setModalProps({ confirmLoading: true });
|
setModalProps({ confirmLoading: true });
|
||||||
const params: any = {
|
const params: any = {
|
||||||
isNewRecord: record.value.isNewRecord,
|
isNewRecord: record.value.isNewRecord,
|
||||||
|
|||||||
Reference in New Issue
Block a user