通知审批流优化
This commit is contained in:
@ -51,14 +51,14 @@ export const tabListData: TabItem[] = [
|
|||||||
// unreadNum: 0,
|
// unreadNum: 0,
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
key: '3',
|
key: '3', // 4
|
||||||
name: t('工作流'),
|
name: t('工作流'),
|
||||||
list: [],
|
list: [],
|
||||||
read: [],
|
read: [],
|
||||||
unreadNum: 0,
|
unreadNum: 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: '4',
|
key: '4', // 5
|
||||||
name: t('系统通知'),
|
name: t('系统通知'),
|
||||||
list: [],
|
list: [],
|
||||||
unreadNum: 0,
|
unreadNum: 0,
|
||||||
|
|||||||
@ -101,7 +101,7 @@
|
|||||||
@click="
|
@click="
|
||||||
() => {
|
() => {
|
||||||
it.read = 1;
|
it.read = 1;
|
||||||
setReadSingle(it.id, item.key);
|
setReadSingle(it.id, item.key, it);
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
@ -115,7 +115,19 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="notice-footer"
|
<div class="notice-footer"
|
||||||
><span @click="setReadAll(item.key)">{{ t('全部设置已读') }}</span
|
><span @click="setReadAll(item.key)">{{ t('全部设置已读') }}</span
|
||||||
><span>{{ t('查看更多') }} 》</span></div
|
>
|
||||||
|
<!-- <span>{{ t('查看更多') }} 》</span> -->
|
||||||
|
<router-link
|
||||||
|
class="opr"
|
||||||
|
style=" color: #02a7f0;"
|
||||||
|
:to="{
|
||||||
|
path: item.key=='1'? '/oaNews':'/OaNotice',
|
||||||
|
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
{{ t('查看更多') }} 》
|
||||||
|
</router-link>
|
||||||
|
</div
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<a-empty :image="simpleImage" v-else />
|
<a-empty :image="simpleImage" v-else />
|
||||||
@ -148,6 +160,9 @@
|
|||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</Popover>
|
</Popover>
|
||||||
|
<ModalPanel :visible="viewOpen" :width="800" :title="viewData.briefHead" @submit="handleViewClose" @close="handleViewClose">
|
||||||
|
<ViewModal v-if="viewOpen" :viewData="viewData" />
|
||||||
|
</ModalPanel>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
@ -166,6 +181,9 @@
|
|||||||
|
|
||||||
import ApprovalProcess from '/@/views/workflow/task/components/ApprovalProcess.vue';
|
import ApprovalProcess from '/@/views/workflow/task/components/ApprovalProcess.vue';
|
||||||
import LookProcess from '/@/views/workflow/task/components/LookProcess.vue';
|
import LookProcess from '/@/views/workflow/task/components/LookProcess.vue';
|
||||||
|
import ViewModal from '/@/views/dataconfig/oaNews/components/View.vue';
|
||||||
|
import { ModalPanel } from '/@/components/ModalPanel/index';
|
||||||
|
|
||||||
import { useI18n } from '/@/hooks/web/useI18n';
|
import { useI18n } from '/@/hooks/web/useI18n';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
@ -177,7 +195,9 @@
|
|||||||
Badge,
|
Badge,
|
||||||
Icon,
|
Icon,
|
||||||
ApprovalProcess,
|
ApprovalProcess,
|
||||||
LookProcess
|
LookProcess,
|
||||||
|
ViewModal,
|
||||||
|
ModalPanel
|
||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
@ -200,6 +220,16 @@
|
|||||||
let times: any = ref();
|
let times: any = ref();
|
||||||
const listData = ref(tabListData);
|
const listData = ref(tabListData);
|
||||||
const simpleImage = ref(Empty.PRESENTED_IMAGE_SIMPLE);
|
const simpleImage = ref(Empty.PRESENTED_IMAGE_SIMPLE);
|
||||||
|
|
||||||
|
const viewOpen = ref(false);
|
||||||
|
const viewData = ref({});
|
||||||
|
function handleView(record, num) {
|
||||||
|
viewData.value = {...record, typeId: num};
|
||||||
|
viewOpen.value = true;
|
||||||
|
}
|
||||||
|
function handleViewClose() {
|
||||||
|
viewOpen.value = false;
|
||||||
|
}
|
||||||
getDatas();
|
getDatas();
|
||||||
//停止循环获取通知
|
//停止循环获取通知
|
||||||
// times.value = setInterval(() => {
|
// times.value = setInterval(() => {
|
||||||
@ -217,6 +247,7 @@
|
|||||||
(res || []).forEach((o) => {
|
(res || []).forEach((o) => {
|
||||||
if (!o.readId) listData.value[0].unreadNum += 1;
|
if (!o.readId) listData.value[0].unreadNum += 1;
|
||||||
listData.value[0].list.push({
|
listData.value[0].list.push({
|
||||||
|
...o,
|
||||||
id: o.id,
|
id: o.id,
|
||||||
avatar: '',
|
avatar: '',
|
||||||
title: o.briefHead,
|
title: o.briefHead,
|
||||||
@ -224,13 +255,14 @@
|
|||||||
datetime: o.releaseTime,
|
datetime: o.releaseTime,
|
||||||
color: '',
|
color: '',
|
||||||
type: '3',
|
type: '3',
|
||||||
read: o.isRead
|
read: o.isRead,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
let res1 = await getOaNews(2);
|
let res1 = await getOaNews(2);
|
||||||
(res1 || []).forEach((o) => {
|
(res1 || []).forEach((o) => {
|
||||||
if (!o.readId) listData.value[1].unreadNum += 1;
|
if (!o.readId) listData.value[1].unreadNum += 1;
|
||||||
listData.value[1].list.push({
|
listData.value[1].list.push({
|
||||||
|
...o,
|
||||||
id: o.id,
|
id: o.id,
|
||||||
avatar: '',
|
avatar: '',
|
||||||
title: o.briefHead,
|
title: o.briefHead,
|
||||||
@ -319,7 +351,6 @@
|
|||||||
}
|
}
|
||||||
return count;
|
return count;
|
||||||
});
|
});
|
||||||
|
|
||||||
async function setReadAll(type) {
|
async function setReadAll(type) {
|
||||||
if (type == 1 || type == 2) {
|
if (type == 1 || type == 2) {
|
||||||
let ids: string[] = [];
|
let ids: string[] = [];
|
||||||
@ -343,15 +374,18 @@
|
|||||||
}
|
}
|
||||||
listData.value[type - 1].unreadNum = 0;
|
listData.value[type - 1].unreadNum = 0;
|
||||||
}
|
}
|
||||||
async function setReadSingle(ids, num) {
|
async function setReadSingle(ids, num, record) {
|
||||||
if (num == 3) {
|
console.log(num, 'num')
|
||||||
await setScheduleRead([ids]);
|
// if (num == 3) { // 日程
|
||||||
} else if (num == 4) {
|
// await setScheduleRead([ids]);
|
||||||
|
// } else
|
||||||
|
if (num == 3) { // 4
|
||||||
await setSingleRead(ids);
|
await setSingleRead(ids);
|
||||||
} else if (num == 5) {
|
} else if (num == 4) { // 5
|
||||||
await setSystemNoticeRead([ids]);
|
await setSystemNoticeRead([ids]);
|
||||||
} else {
|
} else {
|
||||||
await setOaRead([ids]);
|
await setOaRead([ids]);
|
||||||
|
handleView(record, num)
|
||||||
}
|
}
|
||||||
if (listData.value[num - 1].unreadNum > 0) listData.value[num - 1].unreadNum -= 1;
|
if (listData.value[num - 1].unreadNum > 0) listData.value[num - 1].unreadNum -= 1;
|
||||||
}
|
}
|
||||||
@ -366,7 +400,13 @@
|
|||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
router.push(record.path);
|
router.push({
|
||||||
|
path: record.path || '/form/systemNotice/' + record.id + '/viewForm',
|
||||||
|
query: {
|
||||||
|
formPath: 'system/systemNotice',
|
||||||
|
formName: '系统通知'
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
clearInterval(times.value);
|
clearInterval(times.value);
|
||||||
@ -404,7 +444,11 @@
|
|||||||
Approval,
|
Approval,
|
||||||
LookData,
|
LookData,
|
||||||
t,
|
t,
|
||||||
goToRouter
|
goToRouter,
|
||||||
|
viewData,
|
||||||
|
viewOpen,
|
||||||
|
handleView,
|
||||||
|
handleViewClose
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -90,7 +90,7 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
<a-form-item label="合同金额(万元)" name="amount">
|
<a-form-item label="合同金额(万元)" name="amount">
|
||||||
<a-input-number v-model:value="formState.amount" style="width: 100%" @blur="amountBlur(formState.amount)" :min="0" :disabled="isDisable" />
|
<a-input-number v-model:value="formState.amount" style="width: 100%" :formatter="value => ` ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')" @blur="amountBlur(formState.amount)" :min="0" :disabled="isDisable" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
@ -528,6 +528,7 @@
|
|||||||
formState.cpCount = dataList.value.length
|
formState.cpCount = dataList.value.length
|
||||||
}
|
}
|
||||||
if (btn == 'edit') {
|
if (btn == 'edit') {
|
||||||
|
curIdx.value = index
|
||||||
openModalUser(true, {record: record,isUpdate: true});
|
openModalUser(true, {record: record,isUpdate: true});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,9 +2,8 @@
|
|||||||
<a-spin :spinning="spinning" tip="加载中...">
|
<a-spin :spinning="spinning" tip="加载中...">
|
||||||
<div class="page-bg-wrap formViewStyle">
|
<div class="page-bg-wrap formViewStyle">
|
||||||
<a-form ref="formRef" :model="formState" :rules="rules" v-bind="layout">
|
<a-form ref="formRef" :model="formState" :rules="rules" v-bind="layout">
|
||||||
<Card title="客户基本信息" :bordered="false" >
|
<Card title="基本信息" :bordered="false" >
|
||||||
<div>
|
<div>
|
||||||
<h4>基本信息</h4>
|
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
<a-form-item label="客户编码" name="cuCode">
|
<a-form-item label="客户编码" name="cuCode">
|
||||||
@ -114,8 +113,9 @@
|
|||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
|
</Card>
|
||||||
|
<Card title="资信/业务信息" :bordered="false" >
|
||||||
<div>
|
<div>
|
||||||
<h4>资信/业务信息</h4>
|
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
<a-form-item label="客户分类" name="classCode">
|
<a-form-item label="客户分类" name="classCode">
|
||||||
|
|||||||
@ -38,7 +38,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</a-space>
|
</a-space>
|
||||||
</div>
|
</div>
|
||||||
<component v-if="customFormConfig.codeList.includes(curPageCode)" :is="componentName" ref="formInformation" :disabled="(rQuery.status=='COMPLETED'?false : readonly)" />
|
<component v-if="customFormConfig.codeList.includes(curPageCode)" :is="componentName" ref="formInformation" :disabled="(rQuery.status=='COMPLETED'?false : true)" />
|
||||||
<FormInformation
|
<FormInformation
|
||||||
v-else
|
v-else
|
||||||
:key="renderKey"
|
:key="renderKey"
|
||||||
@ -50,8 +50,12 @@
|
|||||||
:opinionsComponents="data.opinionsComponents"
|
:opinionsComponents="data.opinionsComponents"
|
||||||
@get-form-configs="(config) => (formConfigs = config)"
|
@get-form-configs="(config) => (formConfigs = config)"
|
||||||
/>
|
/>
|
||||||
<Title :font-size="18" default-value="流转信息"></Title>
|
<div class="formViewStyle">
|
||||||
<flow-history :items="getTaskRecords()"></flow-history>
|
<Card title="流转信息" :bordered="false" >
|
||||||
|
<!-- <Title :font-size="18" default-value="流转信息"></Title> -->
|
||||||
|
<flow-history :items="getTaskRecords()"></flow-history>
|
||||||
|
</Card>
|
||||||
|
</div>
|
||||||
<opinion-dialog ref="opinionDlg" />
|
<opinion-dialog ref="opinionDlg" />
|
||||||
<transfer-dialog ref="transferDlg" />
|
<transfer-dialog ref="transferDlg" />
|
||||||
<a-modal :closable="false" v-if="showFlowChart" visible="true" centered class="geg" title="流程图" width="1200px" @cancel="closeFlowChart">
|
<a-modal :closable="false" v-if="showFlowChart" visible="true" centered class="geg" title="流程图" width="1200px" @cancel="closeFlowChart">
|
||||||
@ -75,6 +79,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import { Card } from 'ant-design-vue';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
import { onMounted, reactive, ref, unref, createVNode, provide,computed,defineAsyncComponent } from 'vue';
|
import { onMounted, reactive, ref, unref, createVNode, provide,computed,defineAsyncComponent } from 'vue';
|
||||||
import FormInformation from '/@/views/secondDev/FormInformation.vue';
|
import FormInformation from '/@/views/secondDev/FormInformation.vue';
|
||||||
@ -413,8 +418,8 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
await formInformation.value.handleSubmit(true);
|
// await formInformation.value.handleSubmit(true);
|
||||||
validateSuccess.value = true
|
// validateSuccess.value = true
|
||||||
}
|
}
|
||||||
const params = await getApproveParams();
|
const params = await getApproveParams();
|
||||||
const nextNodes = await postGetNextTaskMaybeArrival(params);
|
const nextNodes = await postGetNextTaskMaybeArrival(params);
|
||||||
|
|||||||
@ -47,9 +47,10 @@
|
|||||||
<FormInformation v-else :key="randKey" ref="formInformation" :disabled="false" :formAssignmentData="data.formAssignmentData" :formInfos="data.formInfos" :opinions="data.opinions" :opinionsComponents="data.opinionsComponents" />
|
<FormInformation v-else :key="randKey" ref="formInformation" :disabled="false" :formAssignmentData="data.formAssignmentData" :formInfos="data.formInfos" :opinions="data.opinions" :opinionsComponents="data.opinionsComponents" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="rQuery.type == 'update'">
|
<div v-if="rQuery.type == 'update'" class="formViewStyle">
|
||||||
<Title :font-size="18" default-value="流转信息"></Title>
|
<Card title="流转信息" :bordered="false" >
|
||||||
<flow-history :items="historyList"></flow-history>
|
<flow-history :items="historyList"></flow-history>
|
||||||
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
<a-modal :visible="showFlowChart" centered class="geg" closable title="流程图" width="1200px" @cancel="closeFlowChart">
|
<a-modal :visible="showFlowChart" centered class="geg" closable title="流程图" width="1200px" @cancel="closeFlowChart">
|
||||||
<process-information :process-id="processId" :xml="data.xml" />
|
<process-information :process-id="processId" :xml="data.xml" />
|
||||||
@ -63,6 +64,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import { Card } from 'ant-design-vue';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
import userTaskItem from '/@/views/workflow/task/hooks/userTaskItem';
|
import userTaskItem from '/@/views/workflow/task/hooks/userTaskItem';
|
||||||
import FormInformation from '/@/views/secondDev/FormInformation.vue';
|
import FormInformation from '/@/views/secondDev/FormInformation.vue';
|
||||||
|
|||||||
@ -2,9 +2,8 @@
|
|||||||
<a-spin :spinning="spinning" tip="加载中...">
|
<a-spin :spinning="spinning" tip="加载中...">
|
||||||
<div class="page-bg-wrap formViewStyle">
|
<div class="page-bg-wrap formViewStyle">
|
||||||
<a-form ref="formRef" :model="formState" :rules="rules" v-bind="layout">
|
<a-form ref="formRef" :model="formState" :rules="rules" v-bind="layout">
|
||||||
<Card title="供应商基本信息" :bordered="false" >
|
<Card title="基本信息" :bordered="false" >
|
||||||
<div>
|
<div>
|
||||||
<h4>基本信息</h4>
|
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="8">
|
<a-col :span="8">
|
||||||
<a-form-item label="供应商编码" name="suCode">
|
<a-form-item label="供应商编码" name="suCode">
|
||||||
|
|||||||
Reference in New Issue
Block a user