Browse Source

BUG修复

master
wxc 2 years ago
parent
commit
8620cee67c
  1. 0
      public/mp3/new-mail.mp3
  2. BIN
      public/mp3/todo.mp3
  3. 11
      src/layout/Index.vue
  4. 15
      src/layout/components/MultipleTabs.vue
  5. 6
      src/layout/components/NoticeMessage.vue
  6. 3
      src/permission.ts
  7. 2
      src/stores/modules/multipleTabs.ts
  8. 2
      src/utils/echartsInstance.js
  9. 14
      src/views/home/components/MailTable.vue
  10. 8
      src/views/work/components/InitiateCountersign.vue
  11. 13
      src/views/work/components/MailDialog.vue
  12. 2
      src/views/work/components/ReviewComments.vue
  13. 7
      src/views/work/components/templates/CountersignForm.vue
  14. 4
      src/views/work/components/templates/MailTypeForm.vue
  15. 87
      src/views/work/components/templates/ThreeHandling.vue

0
public/mp3/notice.mp3 → public/mp3/new-mail.mp3

BIN
public/mp3/todo.mp3

Binary file not shown.

11
src/layout/Index.vue

@ -4,7 +4,13 @@
<LayoutAside />
<div>
<MultipleTabs />
<main><router-view /></main>
<main>
<router-view v-slot="{ Component, route }">
<keep-alive :max="20">
<component :is="Component" :key="route.fullPath" />
</keep-alive>
</router-view>
</main>
</div>
</div>
</template>
@ -12,6 +18,9 @@
import Header from "./components/Header.vue";
import LayoutAside from "./components/Aside.vue";
import MultipleTabs from "./components/MultipleTabs.vue";
import useTabsStore from '@/stores/modules/multipleTabs'
const tabsStore = useTabsStore()
</script>
<style lang="scss" scoped>

15
src/layout/components/MultipleTabs.vue

@ -3,7 +3,6 @@
<div>
<el-tabs
:model-value="currentTab"
:closable="tabsLists.length > 1"
@tab-change="handleChange"
@tab-remove="removeTab($event)"
type="border-card"
@ -17,18 +16,6 @@
</template>
</el-tabs>
</div>
<!-- <el-dropdown @command="handleCommand">
<span class="flex items-center px-3">
<icon :size="16" name="el-icon-arrow-down" />
</span>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item command="closeCurrent"> 关闭当前 </el-dropdown-item>
<el-dropdown-item command="closeOther"> 关闭其他 </el-dropdown-item>
<el-dropdown-item command="closeAll"> 关闭全部 </el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown> -->
</div>
</template>
@ -57,8 +44,6 @@ const handleChange = (fullPath: any) => {
router.push(getRouteParams(tabItem));
};
console.log("tabsLists", tabsLists);
const handleCommand = (command: any) => {
switch (command) {
case "closeCurrent":

6
src/layout/components/NoticeMessage.vue

@ -5,7 +5,7 @@
</el-badge>
<div class="ml-20">{{ notice.content }}</div>
<audio src="/mp3/notice.mp3" ref="audioRef"></audio>
<audio src="/mp3/todo.mp3" ref="todoAudioRef"></audio>
</div>
</template>
<script setup>
@ -16,11 +16,11 @@ import { noticeTotal } from '@/api/notice'
initSocket()
const audioRef = ref()
const todoAudioRef = ref()
emitter.on('notice',()=>{
console.log('notice event')
getNoticeTotal()
audioRef.value.play()
todoAudioRef.value.play()
})
const total = ref(0)

3
src/permission.ts

@ -53,7 +53,6 @@ router.beforeEach(async (to, from, next) => {
}
tabsStore.setRouteName(routeName!)
INDEX_ROUTE.redirect = { name: routeName }
// 动态添加index路由
router.addRoute(INDEX_ROUTE)
@ -73,7 +72,7 @@ router.beforeEach(async (to, from, next) => {
} catch (err) {
//ext({ ...to, replace: true })
clearAuthInfo()
next({ path: loginPath, query: { redirect: to.fullPath } })
next({ path: loginPath })
}
}
} else {

2
src/stores/modules/multipleTabs.ts

@ -45,7 +45,6 @@ const findTabsIndex = (fullPath: string, tabList: TabItem[]) => {
}
const getComponentName = (route: RouteLocationNormalized) => {
console.log(route)
return route.matched.at(-1)?.components?.default?.name
}
@ -85,7 +84,6 @@ const useTabsStore = defineStore({
if (componentName && this.cacheTabList.has(componentName)) {
this.cacheTabList.delete(componentName)
}
console.log(this.cacheTabList)
},
clearCache() {
this.cacheTabList.clear()

2
src/utils/echartsInstance.js

@ -426,14 +426,12 @@ const allOptions = {
}
},
barOptions: (dataList) => {
console.log(dataList)
let length = dataList.series.length
if(dataList.series.length>6){
dataList.xAxis = dataList.xAxis.slice(0,6)
dataList.series = dataList.series.slice(0,6)
}else if(dataList.series.length&&dataList.series.length<6){
for(var i=0;i<6-length;i++){
console.log(i)
dataList.series.push(0)
dataList.xAxis.push('')
}

14
src/views/home/components/MailTable.vue

@ -196,9 +196,13 @@
</el-tab-pane>
</el-tabs>
<audio loop ref="newMailAudioRef">
<source :src="NewMailMp3" type="audio/mpeg">
</audio>
</template>
<script setup>
import TabsTable from "./TabsTable.vue";
import NewMailMp3 from '/mp3/new-mail.mp3'
import { useDictData } from "@/hooks/useDictOptions";
import { getTodos } from "@/api/work";
@ -206,6 +210,7 @@ import { getDictLable, getFlowTagType } from "@/utils/util";
const { dictData } = useDictData(["mail_state"]);
import emitter from "@/utils/bus";
import { nextTick } from "vue";
emitter.on('notice',()=>{
todoList()
@ -228,6 +233,14 @@ const todos = ref([]);
const superviseTodos = ref([]);
const highTodos = ref([]);
const showModel = ref(false);
const newMailAudioRef = ref()
watch(todos, (val) => {
nextTick(() => {
todos.value.filter(item => item.flowName === '待签收').length > 0 ? newMailAudioRef.value.play() : newMailAudioRef.value.pause()
})
})
todoList();
function todoList() {
getTodos({
@ -261,6 +274,7 @@ function highTodoList() {
const activeMailId = ref("");
const activeWorkId = ref(0);
const activeWorkType = ref("");
function handleMail(row) {
showModel.value = true;
activeMailId.value = row.mailId;

8
src/views/work/components/InitiateCountersign.vue

@ -105,6 +105,14 @@ const props = defineProps({
},
});
const selectLeaderVisible = ref(false);
watch(
() => props.mail.id,
(val) => {
formRef.value?.resetFields();
countersignDeptIds.value = [];
}
);
watch(
() => props.flowKey,
(val) => {

13
src/views/work/components/MailDialog.vue

@ -154,7 +154,7 @@
item.createTime
}}</span>
<span class="mr-8">{{
item.handlerDeptName
getFlowHandler(item)
}}</span>
<span class="primary">{{
item.flowAfterName
@ -337,7 +337,7 @@
<el-button
size="large"
type="primary"
@click="handleAction('countersign')"
@click="handleAction('submitCountersign')"
>提交会签</el-button
>
</template>
@ -589,7 +589,7 @@ watch(
if (
requestData.value.mailFirstCategory === "无效类" ||
requestData.value.mailFirstCategory === "终止类" ||
requestData.value.mailFirstCategory === "感谢信"
requestData.value.mailFirstCategory === "感谢信"
) {
completionBtnFlag.value = true;
} else {
@ -774,6 +774,13 @@ function handleExtensionApprovalSubmit() {
handleExtensionApproval(false)
})
}
function getFlowHandler(item) {
if (item.handlerRoleId === 1 || item.handlerRoleId === 2 || item.handlerRoleId === 3) {
return `${item.handlerDeptName}专班 ${item.handlerName}`
}
return `${item.handlerDeptName} ${item.handlerName}`
}
</script>
<style lang="scss" scoped>
.dialog-header {

2
src/views/work/components/ReviewComments.vue

@ -57,7 +57,7 @@ const props = defineProps({
},
});
watch(() => props.mail.id, () => {
form = reactive({})
formRef.value?.resetFields();
})
const selectLeaderVisible = ref(false)

7
src/views/work/components/templates/CountersignForm.vue

@ -28,7 +28,7 @@
</el-form-item>
<div class="flex">
<div style="width: 50%">
<el-form-item label="上传材料">
<el-form-item label="上传材料" prop="attachments">
<Upload v-model="form.attachments" />
</el-form-item>
</div>
@ -43,6 +43,7 @@
</template>
<script setup>
import feedback from "@/utils/feedback";
import { watch } from "vue";
const form = reactive({})
const formRef = ref()
@ -65,6 +66,10 @@ const props = defineProps({
default: {},
}
});
watch(() => props.mail.id, () => {
formRef.value.resetFields();
form.attachments = []
})
const emits = defineEmits(["update:data"]);

4
src/views/work/components/templates/MailTypeForm.vue

@ -16,7 +16,7 @@
label="信件等级"
prop="mailLevel"
v-if="
form.mailCategory !== '感谢信' &&
form.mailCategory !== '感谢信' &&
form.mailCategory !== '无效类' &&
form.mailCategory !== '终止类'
"
@ -75,7 +75,7 @@
</el-form-item>
<el-form-item
label="下发单位"
v-if="form.mailCategory === '感谢信'"
v-if="form.mailCategory === '感谢信'"
>
<div class="flex gap" style="width: 100%">
<el-select

87
src/views/work/components/templates/ThreeHandling.vue

@ -357,8 +357,18 @@
请上传核查办理报告处理反馈表及相关的法律文件比如受案回执立案决定书不予立案决定书等和佐证材料比如谈话笔录调解协议等
</div>
<div>
<a :href="`${VITE_API_URL}/api/file/download/template/《核查办理报告》.doc`" target="_blank" class="link">核查办理报告 下载</a>
<a :href="`${VITE_API_URL}/api/file/download/template/《处理反馈表》.doc`" target="_blank" class="link">处理反馈表 下载</a>
<a
:href="`${VITE_API_URL}/api/file/download/template/《核查办理报告》.doc`"
target="_blank"
class="link"
>核查办理报告 下载</a
>
<a
:href="`${VITE_API_URL}/api/file/download/template/《处理反馈表》.doc`"
target="_blank"
class="link"
>处理反馈表 下载</a
>
</div>
</el-form-item>
</el-col>
@ -544,26 +554,33 @@ if (props.mail.simpleFlowFlag) {
}
const step = ref(1);
watch(
() => props.mail.id,
() => {
formRef.value.resetFields();
initForm()
}
);
watch(
() => props.mail.flowKey,
() => {
updateStep();
}
);
watch(
() => props.mail.coHandlingPolices,
(val) => updateCoHandlingPolices);
(val) => updateCoHandlingPolices
);
if (props.mail.coHandlingPolices) {
updateCoHandlingPolices()
updateCoHandlingPolices();
}
function updateCoHandlingPolices() {
const data = { ...props.data};
data.coHandlingPolices = props.mail.coHandlingPolices
const data = { ...props.data };
data.coHandlingPolices = props.mail.coHandlingPolices;
emits("update:data", data);
}
@ -614,8 +631,8 @@ function getDepts(mail) {
depts.value = [];
depts.value.push({
id: mail.threeDeptId,
name: mail.threeDeptName
})
name: mail.threeDeptName,
});
}
}
@ -635,28 +652,33 @@ function handleChangePolice(val, index) {
reportedPolices.value[index].name = police.name;
}
const form = ref({
contactPolice: props.mail.contactPolice,
contactFlag: props.mail.contactFlag,
contactTime: props.mail.contactTime,
contactDuration: props.mail.contactDuration,
// 访
interviewType: props.mail.verifyDetails,
interviewIsLeader: props.mail.interviewIsLeader,
interviewPoliceEmpNo: props.mail.interviewPoliceEmpNo,
interviewDetails: props.mail.interviewDetails,
interviewAttachments: props.mail.interviewAttachments,
//
verifyDetails: props.mail.verifyDetails,
verifyIsTrue: props.mail.verifyIsTrue,
verifyProblem: props.mail.verifyProblem || [],
verifyNeedAccountability: props.mail.verifyNeedAccountability,
verifyIsResolved: props.mail.verifyIsResolved,
verifyFeedback: props.mail.verifyFeedback,
verifyFollowupPolice: props.mail.verifyFollowupPolice,
verifyAttachments: props.mail.verifyAttachments || [],
verifyPunish: props.mail.verifyPunish || [],
});
const form = ref({});
initForm();
function initForm() {
form.value = {
contactPolice: props.mail.contactPolice,
contactFlag: props.mail.contactFlag,
contactTime: props.mail.contactTime,
contactDuration: props.mail.contactDuration,
// 访
interviewType: props.mail.verifyDetails,
interviewIsLeader: props.mail.interviewIsLeader,
interviewPoliceEmpNo: props.mail.interviewPoliceEmpNo,
interviewDetails: props.mail.interviewDetails,
interviewAttachments: props.mail.interviewAttachments,
//
verifyDetails: props.mail.verifyDetails,
verifyIsTrue: props.mail.verifyIsTrue,
verifyProblem: props.mail.verifyProblem || [],
verifyNeedAccountability: props.mail.verifyNeedAccountability,
verifyIsResolved: props.mail.verifyIsResolved,
verifyFeedback: props.mail.verifyFeedback,
verifyFollowupPolice: props.mail.verifyFollowupPolice,
verifyAttachments: props.mail.verifyAttachments || [],
verifyPunish: props.mail.verifyPunish || [],
};
}
const reportedPolices = ref([]);
const formRef = ref();
@ -721,5 +743,4 @@ span[danger="true"] {
p {
margin: 0;
}
</style>
Loading…
Cancel
Save