Browse Source

BUG修复

master
wxc 2 years ago
parent
commit
f2b76368d8
  1. 4
      src/components/popup/index.vue
  2. 145
      src/layout/components/ChangePwd.vue
  3. 8
      src/layout/components/Header.vue
  4. 155
      src/layout/components/edit.vue
  5. 4
      src/views/home/components/Daily.vue
  6. 24
      src/views/home/components/MailTable.vue
  7. 6
      src/views/home/components/TabsTable.vue
  8. 6
      src/views/work/Dissatisfied.vue
  9. 9
      src/views/work/Done.vue
  10. 21
      src/views/work/Query.vue
  11. 54
      src/views/work/components/InitiateCountersign.vue
  12. 12
      src/views/work/components/MailDialog.vue
  13. 8
      src/views/work/components/MailTodoByChange.vue
  14. 1
      src/views/work/components/templates/DeptSelectForm.vue
  15. 2
      src/views/work/components/templates/ThreeHandling.vue
  16. 2
      src/views/work/components/templates/ThreeHandlingDetail.vue

4
src/components/popup/index.vue

@ -10,6 +10,7 @@
:center="center" :center="center"
:append-to-body="true" :append-to-body="true"
:close-on-click-modal="clickModalClose" :close-on-click-modal="clickModalClose"
:width="width"
@closed="close" @closed="close"
> >
<!-- 弹窗内容 --> <!-- 弹窗内容 -->
@ -82,6 +83,9 @@ export default defineComponent({
customClass: { customClass: {
type: String, type: String,
default: '' default: ''
},
width: {
type: String
} }
}, },
emits: ['confirm', 'cancel', 'close', 'open'], emits: ['confirm', 'cancel', 'close', 'open'],

145
src/layout/components/ChangePwd.vue

@ -0,0 +1,145 @@
<template>
<el-dialog
title="修改密码"
:async="true"
width="550px"
@confirm="handleSubmit"
>
<el-form
ref="formRef"
:model="formData"
label-width="84px"
:rules="formRules"
>
<el-form-item label="旧密码" prop="oldpassword">
<el-input
v-model.trim="formData.oldpassword"
show-password
clearable
placeholder="请输入旧密码"
/>
</el-form-item>
<el-form-item label="新密码" prop="password">
<el-input
v-model.trim="formData.password"
show-password
clearable
placeholder="请输入密码"
/>
</el-form-item>
<el-form-item label="确认密码" prop="passwordConfirm">
<el-input
v-model.trim="formData.passwordConfirm"
show-password
clearable
placeholder="请输入确认密码"
/>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="emit('close')">取消</el-button>
<el-button type="primary" @click="handleSubmit">确认修改</el-button>
</div>
</template>
</el-dialog>
</template>
<script lang="ts" setup>
import type { FormInstance } from "element-plus";
import {
adminAdd,
adminEdit,
adminDetail,
resetPassword,
} from "@/api/perms/admin";
import feedback from "@/utils/feedback";
const emit = defineEmits(["close"]);
const formRef = shallowRef<FormInstance>();
const formData = reactive({
oldpassword: "",
password: "",
passwordConfirm: "",
});
const password = (rule: object, value: string, callback: any) => {
if (formData.oldpassword) {
if (value == formData.oldpassword)
callback(new Error("旧密码和原密码相同!"));
}
callback();
};
const passwordConfirmValidator = (
rule: object,
value: string,
callback: any
) => {
if (formData.password) {
if (!value) callback(new Error("请再次输入密码"));
if (value !== formData.password)
callback(new Error("两次输入密码不一致!"));
}
callback();
};
const formRules = reactive({
oldpassword: [
{
required: true,
message: "请输入旧密码",
trigger: "blur",
},
] as any[],
password: [
{
required: true,
message: "请输入密码",
trigger: "blur",
},
{
validator: password,
trigger: "blur",
},
] as any[],
passwordConfirm: [
{
required: true,
message: "请再次输入密码",
trigger: "blur",
},
{
validator: passwordConfirmValidator,
trigger: "blur",
},
] as any[],
});
const handleSubmit = async () => {
await formRef.value?.validate();
await resetPassword(formData);
feedback.msgSuccess("密码修改成功");
emit("close");
}
const setFormData = async (row: any) => {
formRules.password = [
{
validator: password,
trigger: "blur",
},
];
formRules.passwordConfirm = [
{
validator: passwordConfirmValidator,
trigger: "blur",
},
];
};
const handleClose = () => {
emit("close");
};
</script>

8
src/layout/components/Header.vue

@ -26,7 +26,7 @@
<span>退出登录</span> <span>退出登录</span>
</li> </li>
</ul> </ul>
<edit-popup v-if="showEdit" ref="editRef" @success="getLists" @close="showEdit = false" /> <ChangePwd v-model="changePwdShow" @close="changePwdShow = false" />
<div class="overlay" v-if="supportShow" @click="supportShow = false"> <div class="overlay" v-if="supportShow" @click="supportShow = false">
<div class="position-center support-box"> <div class="position-center support-box">
@ -43,17 +43,17 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import NoticeMessage from "./NoticeMessage.vue"; import NoticeMessage from "./NoticeMessage.vue";
import EditPopup from './edit.vue' import ChangePwd from './ChangePwd.vue'
import useUserStore from "@/stores/modules/user"; import useUserStore from "@/stores/modules/user";
const userStore = useUserStore(); const userStore = useUserStore();
const dropdownShow = ref(false) const dropdownShow = ref(false)
const editRef = shallowRef<InstanceType<typeof EditPopup>>(); const editRef = shallowRef<InstanceType<typeof EditPopup>>();
const showEdit = ref(false); const changePwdShow = ref(false);
const supportShow = ref(false) const supportShow = ref(false)
const handleEdit = async () => { const handleEdit = async () => {
showEdit.value = true changePwdShow.value = true
await nextTick() await nextTick()
editRef.value?.open('edit') editRef.value?.open('edit')
} }

155
src/layout/components/edit.vue

@ -1,155 +0,0 @@
<template>
<div class="edit-popup">
<popup
ref="popupRef"
:title="popupTitle"
:async="true"
width="550px"
@confirm="handleSubmit"
@close="handleClose"
>
<el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
<el-form-item label="旧密码" prop="oldpassword">
<el-input
v-model.trim="formData.oldpassword"
show-password
clearable
placeholder="请输入旧密码"
/>
</el-form-item>
<el-form-item label="新密码" prop="password">
<el-input
v-model.trim="formData.password"
show-password
clearable
placeholder="请输入密码"
/>
</el-form-item>
<el-form-item label="确认密码" prop="passwordConfirm">
<el-input
v-model.trim="formData.passwordConfirm"
show-password
clearable
placeholder="请输入确认密码"
/>
</el-form-item>
</el-form>
</popup>
</div>
</template>
<script lang="ts" setup>
import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import { adminAdd, adminEdit, adminDetail, resetPassword } from '@/api/perms/admin'
import { useDictOptions } from '@/hooks/useDictOptions'
import { roleAll } from '@/api/perms/role'
import { postAll } from '@/api/org/post'
import { deptLists } from '@/api/org/department'
import feedback from '@/utils/feedback'
const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add')
const popupTitle = computed(() => {
return '修改密码'
})
const formData = reactive({
oldpassword: '',
password: '',
passwordConfirm: '',
})
const popupTrue = computed(() => {
return mode.value == 'edit' ? true: false
})
const password = (rule: object, value: string, callback: any) => {
if (formData.oldpassword) {
if (value == formData.oldpassword) callback(new Error('旧密码和原密码相同!'))
}
callback()
}
const passwordConfirmValidator = (rule: object, value: string, callback: any) => {
if (formData.password) {
if (!value) callback(new Error('请再次输入密码'))
if (value !== formData.password) callback(new Error('两次输入密码不一致!'))
}
callback()
}
const formRules = reactive({
oldpassword: [
{
required: true,
message: '请输入旧密码',
trigger: 'blur'
}
] as any[],
password: [
{
required: true,
message: '请输入密码',
trigger: 'blur'
},
{
validator: password,
trigger: 'blur'
}
] as any[],
passwordConfirm: [
{
required: true,
message: '请再次输入密码',
trigger: 'blur'
},
{
validator: passwordConfirmValidator,
trigger: 'blur'
}
] as any[]
})
const handleSubmit = async () => {
await formRef.value?.validate()
await resetPassword(formData)
popupRef.value?.close()
feedback.msgSuccess('操作成功')
emit('success')
}
const open = (type = 'add') => {
mode.value = type
popupRef.value?.open()
}
const setFormData = async (row: any) => {
formRules.password = [
{
validator: password,
trigger: 'blur'
}
]
formRules.passwordConfirm = [
{
validator: passwordConfirmValidator,
trigger: 'blur'
}
]
}
const handleClose = () => {
emit('close')
}
defineExpose({
open,
setFormData
})
</script>

4
src/views/home/components/Daily.vue

@ -7,7 +7,7 @@
<div class="number">{{ daily.mailToday }}</div> <div class="number">{{ daily.mailToday }}</div>
<span>今日来信</span> <span>今日来信</span>
</section> </section>
<section class="flex column v-center item pointer" > <section class="flex column v-center item pointer" @click="goMailQuery('completedToday')">
<div class="number">{{ daily.completedToday }}</div> <div class="number">{{ daily.completedToday }}</div>
<span>今日办结</span> <span>今日办结</span>
</section> </section>
@ -56,7 +56,7 @@ function goMailQuery(key) {
} }
if (key === 'completedToday') { if (key === 'completedToday') {
routerParams.setParams({ routerParams.setParams({
mailTime: [moment().format('YYYY-MM-DD') + ' 00:00:00', moment().format('YYYY-MM-DD') + ' 23:59:59'] completionTime: [moment().format('YYYY-MM-DD') + ' 00:00:00', moment().format('YYYY-MM-DD') + ' 23:59:59']
}) })
} }
if (key === 'mailTotal') { if (key === 'mailTotal') {

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

@ -14,10 +14,8 @@
<el-table-column label="信件来源" align="center" width="100"> <el-table-column label="信件来源" align="center" width="100">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ <span>{{
dictData.mail_source.filter( getDictLable(dictData.mail_source, row.source)
(item) => item.value === row.source }}</span>
)[0].name
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -71,10 +69,8 @@
<el-table-column label="信件来源" align="center" width="100"> <el-table-column label="信件来源" align="center" width="100">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ <span>{{
dictData.mail_source.filter( getDictLable(dictData.mail_source, row.source)
(item) => item.value === row.source }}</span>
)[0].name
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -128,10 +124,8 @@
<el-table-column label="信件来源" align="center" width="100"> <el-table-column label="信件来源" align="center" width="100">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ <span>{{
dictData.mail_source.filter( getDictLable(dictData.mail_source, row.source)
(item) => item.value === row.source }}</span>
)[0].name
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -185,10 +179,8 @@
<el-table-column label="信件来源" align="center" width="100"> <el-table-column label="信件来源" align="center" width="100">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ <span>{{
dictData.mail_source.filter( getDictLable(dictData.mail_source, row.source)
(item) => item.value === row.source }}</span>
)[0].name
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column

6
src/views/home/components/TabsTable.vue

@ -21,10 +21,8 @@
<el-table-column label="信件来源" align="center" width="100"> <el-table-column label="信件来源" align="center" width="100">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ <span>{{
dictData.mail_source.filter( getDictLable(dictData.mail_source, row.source)
(item) => item.value === row.source }}</span>
)[0].name
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column

6
src/views/work/Dissatisfied.vue

@ -81,10 +81,8 @@
<el-table-column label="信件来源" align="center" width="94"> <el-table-column label="信件来源" align="center" width="94">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ <span>{{
dictData.mail_source.filter( getDictLable(dictData.mail_source, row.source)
(item) => item.value === row.source }}</span>
)[0].name
}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="contactName" label="姓名" align="center" width="80" /> <el-table-column prop="contactName" label="姓名" align="center" width="80" />

9
src/views/work/Done.vue

@ -140,9 +140,7 @@
<el-table-column label="信件来源" align="center" width="90"> <el-table-column label="信件来源" align="center" width="90">
<template #default="{ row }"> <template #default="{ row }">
<span>{{ <span>{{
dictData.mail_source.filter( getDictLable(dictData.mail_source, row.source)
(item) => item.value === row.source
)[0].name
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -271,6 +269,7 @@ const { dictData } = useDictData(["mail_source", "mail_level", "mail_state"]);
const query = ref({ const query = ref({
size: 10, size: 10,
current: 1, current: 1,
contactField: 'name'
}); });
const totalSize = reactive({ const totalSize = reactive({
total: 0, total: 0,
@ -303,7 +302,9 @@ function getList() {
} }
function reset() { function reset() {
query.value = {}; query.value = {
contactField: 'name'
};
getList(); getList();
} }

21
src/views/work/Query.vue

@ -109,6 +109,13 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6">
<el-form-item label="办结时间" prop="completionTime">
<el-date-picker v-model="query.completionTime" value-format="YYYY-MM-DD HH:mm:ss"
type="datetimerange" format="YYYY-MM-DD HH:mm:ss" range-separator="~"
start-placeholder="开始日期" end-placeholder="结束日期" />
</el-form-item>
</el-col>
</el-row> </el-row>
<div style="display: flex; justify-content: space-between; margin-bottom: 20px;"> <div style="display: flex; justify-content: space-between; margin-bottom: 20px;">
<div> <div>
@ -145,9 +152,8 @@
<el-table-column prop="mailTime" label="来信时间" align="center" width="160" /> <el-table-column prop="mailTime" label="来信时间" align="center" width="160" />
<el-table-column label="信件来源" align="center" width="100" show-overflow-tooltip> <el-table-column label="信件来源" align="center" width="100" show-overflow-tooltip>
<template #default="{ row }"> <template #default="{ row }">
<span>{{ dictData.mail_source.filter( <span>{{
(item) => item.value === row.source getDictLable(dictData.mail_source, row.source)
)[0].name
}}</span> }}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -445,6 +451,11 @@ function getList() {
query.value.mailTime = useRouterParams.params.mailTime query.value.mailTime = useRouterParams.params.mailTime
useRouterParams.removeParams() useRouterParams.removeParams()
} }
if (useRouterParams.params.completionTime) {
collapse.value = false
query.value.completionTime = useRouterParams.params.completionTime
useRouterParams.removeParams()
}
if (useRouterParams.params.mailState) { if (useRouterParams.params.mailState) {
query.value.mailState = useRouterParams.params.mailState query.value.mailState = useRouterParams.params.mailState
useRouterParams.removeParams() useRouterParams.removeParams()
@ -506,7 +517,9 @@ const { optionsData } = useDictOptions<{
} }
}) })
function reset() { function reset() {
query.value = {} query.value = {
contactField: 'name'
}
getList() getList()
} }
const checkMail = () => { const checkMail = () => {

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

@ -8,7 +8,7 @@
style="min-height: 50vh" style="min-height: 50vh"
> >
<h2>会签具体要求</h2> <h2>会签具体要求</h2>
<el-form-item prop="countersignRequirement" class="mb-40"> <el-form-item prop="countersignRequirement" class="mb-20">
<el-input <el-input
v-model="form.countersignRequirement" v-model="form.countersignRequirement"
type="textarea" type="textarea"
@ -28,6 +28,7 @@
v-model="countersignDeptIds[index]" v-model="countersignDeptIds[index]"
style="width: 300px" style="width: 300px"
@change="handleChange" @change="handleChange"
filterable
> >
<el-option <el-option
v-for="item in depts" v-for="item in depts"
@ -46,10 +47,21 @@
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
<p style="color: #999" class="mb-10">会签部门数量最多3个</p> <el-button type="primary" plain @click="handleAddDept" class="mb-10"
<el-button type="primary" plain @click="handleAddDept"
>添加部门</el-button >添加部门</el-button
> >
<p style="color: #888" class="mb-10">会签部门数量最多3个次责单位无法参与会签</p>
<p class="mb-10">
<span class="mr-16" >二级主责单位<span class="primary">{{ mail.firstDistributeInfo?.mainDept?.name }}</span></span>
<span class="mr-16" v-if="mail.firstDistributeInfo?.secondDept1?.id">二级次责单位1<span class="primary">{{ mail.firstDistributeInfo?.secondDept1?.name }}</span></span>
<span v-if="mail.firstDistributeInfo?.secondDept2?.id">二级次责单位2<span class="primary">{{ mail.firstDistributeInfo?.secondDept2?.name }}</span></span>
</p>
<p>
<span class="mr-16">三级主责单位<span class="primary">{{ mail.secondDistributeInfo?.mainDept?.name }}</span></span>
<span class="mr-16" v-if="mail.secondDistributeInfo?.secondDept1?.id">三级次责单位1<span class="primary">{{ mail.secondDistributeInfo?.secondDept1?.name }}</span></span>
<span v-if="mail.secondDistributeInfo?.secondDept2?.id">三级次责单位2<span class="primary">{{ mail.secondDistributeInfo?.secondDept1?.name }}</span></span>
</p>
</el-form> </el-form>
<footer class="flex end"> <footer class="flex end">
<el-button type="primary" size="large" @click="submit" <el-button type="primary" size="large" @click="submit"
@ -94,12 +106,14 @@ const props = defineProps({
const mail = inject('mail'); const mail = inject('mail');
const selectLeaderVisible = ref(false); const selectLeaderVisible = ref(false);
const deptIds = ref(new Set())
watch( watch(
() => mail.value.id, () => mail.value.id,
(val) => { (val) => {
formRef.value?.resetFields(); formRef.value?.resetFields();
countersignDeptIds.value = []; countersignDeptIds.value = [];
getDeptIds()
} }
); );
watch( watch(
@ -118,6 +132,7 @@ function handleChange() {
if (arr.length) { if (arr.length) {
form.countersignDeptIds = arr form.countersignDeptIds = arr
} }
getDeptIds()
} }
function handleAddDept() { function handleAddDept() {
@ -138,21 +153,26 @@ function submit() {
} }
}); });
} }
// id // id
const deptIds = computed(() => { function getDeptIds() {
const arr = []; const arr = new Set();
arr.push(mail.value.firstDistributeInfo?.mainDept?.id); arr.add(mail.value.firstDistributeInfo?.mainDept?.id);
arr.push(mail.value.firstDistributeInfo?.secondDeptId1?.id); arr.add(mail.value.firstDistributeInfo?.secondDept1?.id);
arr.push(mail.value.firstDistributeInfo?.secondDeptId2?.id); arr.add(mail.value.firstDistributeInfo?.secondDept2?.id);
arr.push(mail.value.secondDistributeInfo?.mainDept?.id); arr.add(mail.value.secondDistributeInfo?.mainDept?.id);
arr.push(mail.value.secondDistributeInfo?.secondDeptId1?.id); arr.add(mail.value.secondDistributeInfo?.secondDept1?.id);
arr.push(mail.value.secondDistributeInfo?.secondDeptId2?.id); arr.add(mail.value.secondDistributeInfo?.secondDept2?.id);
arr.push(...countersignDeptIds.value) countersignDeptIds.value.forEach(item => {
return arr; arr.add(item)
}); })
deptIds.value = arr;
console.log('mail', mail.value)
console.log('getDeptIds', arr)
}
function isDisabled(id) { function isDisabled(id) {
return deptIds.value.indexOf(id) > -1; return deptIds.value.has(id);
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -161,4 +181,8 @@ h2 {
font-size: 20px; font-size: 20px;
color: #333; color: #333;
} }
span.primary {
color: var(--primary-color);
font-weight: 700;
}
</style> </style>

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

@ -225,29 +225,29 @@
</template> </template>
<div class="card-info flex mb-4" v-if="mail.firstDistributeInfo?.mainDept?.name"> <div class="card-info flex mb-4" v-if="mail.firstDistributeInfo?.mainDept?.name">
<div class="col" style="width: 33%"> <div class="col" style="width: 33%">
<label>主责单位</label> <label>二级主责单位</label>
<span>{{ mail.firstDistributeInfo?.mainDept?.name }}</span> <span>{{ mail.firstDistributeInfo?.mainDept?.name }}</span>
</div> </div>
<div class="col" style="width: 33%" v-if="mail.firstDistributeInfo?.secondDept1?.name"> <div class="col" style="width: 33%" v-if="mail.firstDistributeInfo?.secondDept1?.name">
<label>次责单位1</label> <label>二级次责单位1</label>
<span>{{ mail.firstDistributeInfo?.secondDept1?.name }}</span> <span>{{ mail.firstDistributeInfo?.secondDept1?.name }}</span>
</div> </div>
<div class="col" style="width: 33%" v-if="mail.firstDistributeInfo?.secondDept2?.name"> <div class="col" style="width: 33%" v-if="mail.firstDistributeInfo?.secondDept2?.name">
<label>次责单位2</label> <label>二级次责单位2</label>
<span>{{ mail.firstDistributeInfo?.secondDept2?.name }}</span> <span>{{ mail.firstDistributeInfo?.secondDept2?.name }}</span>
</div> </div>
</div> </div>
<div class="card-info flex mb-4" v-if="mail.secondDistributeInfo?.mainDept?.name"> <div class="card-info flex mb-4" v-if="mail.secondDistributeInfo?.mainDept?.name">
<div class="col" style="width: 33%"> <div class="col" style="width: 33%">
<label>主责单位</label> <label>三级主责单位</label>
<span>{{ mail.secondDistributeInfo?.mainDept?.name }}</span> <span>{{ mail.secondDistributeInfo?.mainDept?.name }}</span>
</div> </div>
<div class="col" style="width: 33%" v-if="mail.secondDistributeInfo?.secondDept1?.name"> <div class="col" style="width: 33%" v-if="mail.secondDistributeInfo?.secondDept1?.name">
<label>次责单位1</label> <label>三级次责单位1</label>
<span>{{ mail.secondDistributeInfo?.secondDept1?.name }}</span> <span>{{ mail.secondDistributeInfo?.secondDept1?.name }}</span>
</div> </div>
<div class="col" style="width: 33%" v-if="mail.secondDistributeInfo?.secondDept2?.name"> <div class="col" style="width: 33%" v-if="mail.secondDistributeInfo?.secondDept2?.name">
<label>次责单位2</label> <label>三级次责单位2</label>
<span>{{ mail.secondDistributeInfo?.secondDept2?.name }}</span> <span>{{ mail.secondDistributeInfo?.secondDept2?.name }}</span>
</div> </div>
</div> </div>

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

@ -151,7 +151,8 @@ import { Printer, DocumentAdd } from "@element-plus/icons-vue"
import { getMailFlowDetail } from "@/api/mail" import { getMailFlowDetail } from "@/api/mail"
import { useDictData } from "@/hooks/useDictOptions"; import { useDictData } from "@/hooks/useDictOptions";
import { mailChange } from "@/api/work"; import { mailChange } from "@/api/work";
import { ElMessage, ElLoading } from "element-plus"; import { ElMessage } from "element-plus";
import { getDictLable } from "@/utils/util";
const loading = ref(false); const loading = ref(false);
const steps = ref([]); const steps = ref([]);
const activeStep = ref(0); const activeStep = ref(0);
@ -215,9 +216,8 @@ const getDetail = () => {
getMailFlowDetail(props.mailId).then((res: any) => { getMailFlowDetail(props.mailId).then((res: any) => {
console.log(res) console.log(res)
mail.value = res.mail mail.value = res.mail
mail.value.source = dictData.mail_source.filter( mail.value.source = getDictLable(dictData.mail_source, mail.value.source)
(item) => item.value === mail.value.source
)[0].name
if (mail.value.contactSex) { if (mail.value.contactSex) {
switch (mail.value.contactSex) { switch (mail.value.contactSex) {
case 'M': case 'M':

1
src/views/work/components/templates/DeptSelectForm.vue

@ -111,6 +111,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<p style="font-size: 13px">备注次责单位为信件次要责任单位请勿选择中立单位法制大队</p>
</template> </template>
</el-form> </el-form>
</div> </div>

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

@ -60,7 +60,7 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-if="form.contactFlag"> <el-col :span="12" v-if="form.contactFlag !== undefined">
<el-form-item label="联系时间" prop="contactTime"> <el-form-item label="联系时间" prop="contactTime">
<el-date-picker <el-date-picker
type="datetime" type="datetime"

2
src/views/work/components/templates/ThreeHandlingDetail.vue

@ -32,7 +32,7 @@
<div class="flex mb-12" v-if="mail.contactPoliceName"> <div class="flex mb-12" v-if="mail.contactPoliceName">
<div class="col" v-if="mail.mainDeptSignTime"> <div class="col" v-if="mail.mainDeptSignTime">
<label>主单位签收时长</label> <label>主单位签收时长</label>
<span :danger="mail.mainDeptSignTime > 600">{{ formatTimeText(mail.mainDeptSignTime) }}</span> <span :danger="mail.mainDeptSignTime > 600">{{ mail.contactFlag ? formatTimeText(mail.mainDeptSignTime) : '未取得联系'}}</span>
</div> </div>
<div class="col"> <div class="col">
<label>联系民警</label> <label>联系民警</label>

Loading…
Cancel
Save