Browse Source

BUG修复

master
wxc 2 years ago
parent
commit
c443581ab5
  1. 2
      src/components/FileList.vue
  2. 19
      src/views/home/components/TabsTable.vue
  3. 33
      src/views/permission/admin/edit.vue
  4. 5
      src/views/work/Dissatisfied.vue
  5. 2
      src/views/work/Done.vue
  6. 12
      src/views/work/Query.vue
  7. 1
      src/views/work/Todo.vue
  8. 40
      src/views/work/components/AppealProgress.vue
  9. 2
      src/views/work/components/InitiateCountersign.vue
  10. 5
      src/views/work/components/MailDialog.vue
  11. 2
      src/views/work/components/templates/CoHandling.vue
  12. 6
      src/views/work/components/templates/CompletionDetail.vue
  13. 22
      src/views/work/components/templates/Countersign.vue
  14. 16
      src/views/work/components/templates/CountersignForm.vue
  15. 2
      src/views/work/components/templates/MailApprovalDetail.vue
  16. 4
      src/views/work/components/templates/ThreeHandling.vue
  17. 12
      src/views/work/components/templates/ThreeHandlingDetail.vue

2
src/components/FileList.vue

@ -31,7 +31,7 @@
<span class="filename">{{ item.orgiinFilename }}</span>
<a
class="remove-btn"
@click="remove(index)"
@click.stop="remove(index)"
v-if="removeEnable"
>
<icon name="el-icon-CircleCloseFilled" :size="20" />

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

@ -11,14 +11,14 @@
</div>
</header>
<div>
<el-table :data="rows.slice(0, Math.min(rows.length, 8))" style="width: 100%" stripe>
<el-table :data="rows" style="width: 100%" stripe height="394">
<el-table-column
prop="mailTime"
label="来信时间"
align="center"
width="180"
/>
<el-table-column label="信件来源" align="center" width="100">
<el-table-column label="信件来源" align="center" width="100" show-overflow-tooltip>
<template #default="{ row }">
<span>{{
getDictLable(dictData.mail_source, row.source)
@ -41,13 +41,6 @@
label="信件内容"
show-overflow-tooltip
/>
<el-table-column prop="mailState" label="信件状态">
<template #default="{ row }">
<span>{{
getDictLable(dictData.mail_state, row.mailState)
}}</span>
</template>
</el-table-column>
<el-table-column label="流程节点">
<template #default="{ row }">
<el-tag :type="getFlowTagType(row.flowName)">{{
@ -55,6 +48,14 @@
}}</el-tag>
</template>
</el-table-column>
<el-table-column align="center">
<template #header>
<FlowLimitedExplanation />
</template>
<template #default="{ row }">
<FlowLimited :time="row.flowLimitedRemainingTime" />
</template>
</el-table-column>
<el-table-column label="操作">
<template #default="{ row }">
<el-button type="primary" link @click="handleMail(row)"

33
src/views/permission/admin/edit.vue

@ -43,7 +43,7 @@
clearable
/>
</el-form-item>
<el-form-item label="归属部门" prop="deptIds">
<el-form-item label="归属部门&nbsp;&nbsp;" prop="deptIds">
<el-tree-select
class="flex-1"
v-model="formData.deptIds"
@ -59,8 +59,14 @@
placeholder="请选择归属部门"
filterable
/>
<el-tooltip
content="设置民警实际归属的部门"
placement="top"
>
<icon name="el-icon-QuestionFilled" class="tooltip-icon" :size="16" color="var(--primary-color)" />
</el-tooltip>
</el-form-item>
<el-form-item label="职位" prop="postIds">
<el-form-item label="职位&nbsp;&nbsp;" prop="postIds">
<el-select
class="flex-1"
clearable
@ -75,9 +81,16 @@
/>
</el-select>
<el-tooltip
:raw-content="true"
content="角色、职位的说明:<br/>1、角色为“二/三级机构专班”建议选择职位为“普通民警”<br/>2、职位为“正/副职领导”需参与审批流程,不可同时为“二/三级机构专班”角色,建议选择“二/三级机构领导”角色"
placement="top"
>
<icon name="el-icon-QuestionFilled" class="tooltip-icon" :size="16" color="var(--primary-color)" />
</el-tooltip>
</el-form-item>
<el-form-item label="角色" prop="roleIds">
<el-form-item label="角色&nbsp;&nbsp;" prop="roleIds">
<el-select
v-model="formData.roleIds"
:disabled="isRoot"
@ -94,6 +107,13 @@
:disabled="isClasses(item.id) && (formData.postIds === 1 || formData.postIds == 2)"
/>
</el-select>
<el-tooltip
:raw-content="true"
content="角色、职位的说明:<br/>1、角色为“二/三级机构专班”建议选择职位为“普通民警”<br/>2、职位为“正/副职领导”需参与审批流程,不可同时为“二/三级机构专班”角色,建议选择“二/三级机构领导”角色"
placement="top"
>
<icon name="el-icon-QuestionFilled" class="tooltip-icon" :size="16" color="var(--primary-color)" />
</el-tooltip>
</el-form-item>
<el-form-item label="数据部门&nbsp;&nbsp;" prop="deptDataIds">
<el-tree-select
@ -114,7 +134,7 @@
/>
<el-tooltip
:raw-content="true"
content="数据部门:设置系统展示的数据权限范围。<br/>如政工科某民警为二级机构专班,可查看分局数据则设置“数据部门”为对应二级机构,“归属部门”设置“政工科”。<br/>归属部门:设置民警实际归属的部门。"
content="设置系统展示的数据权限范围。<br/>如政工科某民警为二级机构专班,可查看分局数据则设置“数据部门”为对应二级机构,“归属部门”设置“政工科”。"
placement="top"
>
<icon name="el-icon-QuestionFilled" class="tooltip-icon" :size="16" color="var(--primary-color)" />
@ -146,10 +166,7 @@
:inactive-value="1"
/>
</el-form-item>
<p style="font-size: 12px; color: #666">
<p style="font-weight: 700">角色职位的说明</p>
1角色为/三级机构专班建议选择职位为普通民警<br/>
2职位为/副职领导需参与审批流程不可同时为/三级机构专班角色建议选择/三级机构领导角色</p>
</el-form>
</popup>
</div>

5
src/views/work/Dissatisfied.vue

@ -61,7 +61,7 @@
</el-col>
<el-col :span="6">
<el-form-item label="申诉状态">
<el-select v-model="query.appealState" placeholder="" clearable st>
<el-select v-model="query.appealState" placeholder="请选择申诉状态" clearable>
<el-option v-for="item in dictData.appeal_state" :key="item.value" :label="item.name"
:value="item.value"></el-option>
</el-select>
@ -122,8 +122,7 @@
<mail-level :value="row.mailLevel" :list="dictData.mail_level" />
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" width="120" align="center">
<el-table-column label="操作" fixed="right" width="240">
<template #default="{ row }">
<el-button type="primary" link @click="handleDetail(row.id)">详情</el-button>
<el-button type="primary" link

2
src/views/work/Done.vue

@ -234,7 +234,7 @@
:page-sizes="[10, 20, 50]"
:page-size="query.size"
v-model:current-page="query.current"
layout="total,sizes, prev, pager, next, jumper"
layout="total, sizes, prev, pager, next"
:total="totalSize.total"
>
</el-pagination>

12
src/views/work/Query.vue

@ -116,6 +116,14 @@
start-placeholder="开始日期" end-placeholder="结束日期" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="不满意申诉状态">
<el-select v-model="query.appealState" placeholder="请选择不满意新信件申诉状态" clearable>
<el-option v-for="item in dictData.appeal_state" :key="item.value" :label="item.name"
:value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<div style="display: flex; justify-content: space-between; margin-bottom: 20px;">
<div>
@ -213,7 +221,7 @@
<div>
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="query.current" :page-sizes="[10, 15, 20, 40, 50]" :page-size="query.size"
layout="total,sizes, prev, pager, next, jumper" :total="totalSize.total">
layout="total, sizes, prev, pager, next" :total="totalSize.total">
</el-pagination>
</div>
</div>
@ -252,7 +260,7 @@ const loading = ref(false)
const tableRef = ref<InstanceType<typeof ElTable>>();
const mailStore = useMailStore();
mailStore.getMailCategorys();
const { dictData } = useDictData(["mail_source", "mail_level", "mail_state"]);
const { dictData } = useDictData(["mail_source", "mail_level", "mail_state", "appeal_state"]);
const showLabel = ref(false);
const showCheck = ref(false)

1
src/views/work/Todo.vue

@ -241,6 +241,7 @@
:page-size="query.size"
v-model:current-page="query.current"
:total="totalSize.total"
layout="total, sizes, prev, pager, next"
>
</el-pagination>
</div>

40
src/views/work/components/AppealProgress.vue

@ -9,13 +9,13 @@
<div class="dialog-body">
<el-row class="mb-20">
<el-col :span="4">
<span class="main-label">申诉</span>
<span class="main-label">申诉进度</span>
</el-col>
<el-col :span="20">
<el-steps :active="active" class="steps" ref="steps">
<el-step :status="stepStatus[0]" title="提交申诉"></el-step>
<el-step :status="stepStatus[1]" title="二级专班审批"></el-step>
<el-step :status="stepStatus[2]" title="市局专班审批"></el-step>
<el-step :status="stepStatus[0]" title="提交申诉" description=" "></el-step>
<el-step :status="stepStatus[1]" title="二级专班审批" :description="appeal.secondDeptCondition"></el-step>
<el-step :status="stepStatus[2]" title="市局专班审批" :description="appeal.firstDeptCondition"></el-step>
</el-steps>
</el-col>
</el-row>
@ -61,8 +61,11 @@ watch(
getDetail()
}
);
const appeal = ref({})
const getDetail = () => {
getAppeal({ id: props.mailId }).then((res) => {
appeal.value = res
stepStatus.value = []
appealReason.value = res.appealReason
fileList.value = JSON.parse(res.attachments)
@ -156,11 +159,10 @@ $publicHeight: 35px;
.steps {
width: 100%;
margin: auto 0;
height: $publicHeight;
::v-deep .el-step {
height: 100%;
vertical-align: top;
.el-step__icon.is-text {
background-color: $publicColor;
@ -171,31 +173,21 @@ $publicHeight: 35px;
}
.el-step__main {
width: 200px;
}
.el-step__line {
background-color: rgba(0, 0, 0, 0.15);
margin-right: 10px;
margin-left: 135px;
top: 50%;
height: 1px;
}
.el-step__title {
color: #333333;
width: 100%;
position: absolute;
top: calc((100% - 135%)/2);
left: calc(0% + 30px);
width: 240px;
.el-step__description {
white-space: pre-wrap;
}
}
.el-step__title.is-wait {
width: 100%;
color: #999999;
}
.el-step__head {
margin-bottom: 8px;
}
.el-step__head.is-wait {
.el-step__icon.is-text {
background: #FFF;

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

@ -50,7 +50,7 @@
<el-button type="primary" plain @click="handleAddDept" class="mb-10"
>添加部门</el-button
>
<p style="color: #888" class="mb-10">会签部门数量最多3个次责单位无法参与会签</p>
<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>

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

@ -634,13 +634,14 @@ async function getDetail() {
.map((item) => item.trim());
}
actions.value = data.actions;
nextTick(() => {
flowMaxHeight.value =
if (leftContainerRef.value.offsetHeight) {
flowMaxHeight.value =
leftContainerRef.value.offsetHeight -
(mailInfoRef.value?.offsetHeight || 0) -
flowHeaderRef.value.offsetHeight -
(timerRef.value?.offsetHeight || 0);
}
});
}

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

@ -20,7 +20,7 @@
<label style="color: #FF0E00">报告材料说明</label>
<div>
<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/《核查办理报告》.docx`" target="_blank" class="link">核查办理报告 下载</a>
</div>
</div>
</el-col>

6
src/views/work/components/templates/CompletionDetail.vue

@ -26,7 +26,8 @@
<div class="col">
<label>群众回复情况</label>
<span>
<span v-if="mail.satisfaction">{{ SATISFACTION[mail.satisfaction] }}(群众)</span>
<span v-if="mail.appealSatisfaction" class="mr-16">{{ mail.appealSatisfaction }}(申诉)</span>
<span v-if="mail.satisfaction" class="mr-16">{{ SATISFACTION[mail.satisfaction] }}(群众)</span>
<span v-if="mail.satisfactionStatus">{{ mail.satisfactionStatus }}(市局)</span>
</span>
</div>
@ -59,5 +60,8 @@ const SATISFACTION = {
<style lang="scss" scoped>
.col {
width: 25%;
.content {
max-width: calc(100% - 116px);
}
}
</style>

22
src/views/work/components/templates/Countersign.vue

@ -1,7 +1,7 @@
<template>
<h2>部门会签</h2>
<div class="flex mb-12">
<div class="col">
<div class="col" style="width: 25%">
<label>会签发起人</label>
<span>{{
mail.countersignPromoterDeptName +
@ -9,19 +9,21 @@
mail.countersignPromoterName
}}</span>
</div>
<div class="col" style="width: auto">
<div class="col" style="width: 75%">
<label>会签部门</label>
<span
<div class="flex wrap">
<span
v-for="item in mail.countersigns"
:key="item.id"
class="mr-16"
>
<span>{{ item.deptName }}</span>
<span>(</span>
<span v-if="item.comments" style="color: #009706">已提交</span>
<span v-else style="color: #999">未提交</span>
<span>)</span>
</span>
>
<span>{{ item.deptName }}</span>
<span>(</span>
<span v-if="item.comments" style="color: #009706">已提交</span>
<span v-else style="color: #999">未提交</span>
<span>)</span>
</span>
</div>
</div>
</div>
<div class="mb-12">

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

@ -7,13 +7,15 @@
</div>
<div class="col" style="width: auto">
<label>会签部门</label>
<span v-for="item in mail.countersigns" :key="item.id" class="mr-16">
<span>{{ item.deptName }}</span>
<span>(</span>
<span v-if="item.comments" style="color: #009706">已提交</span>
<span v-else style="color: #999">未提交</span>
<span>)</span>
</span>
<div class="flex wrap">
<span v-for="item in mail.countersigns" :key="item.id" class="mr-16">
<span>{{ item.deptName }}</span>
<span>(</span>
<span v-if="item.comments" style="color: #009706">已提交</span>
<span v-else style="color: #999">未提交</span>
<span>)</span>
</span>
</div>
</div>
</div>
<div class="mb-12">

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

@ -21,7 +21,7 @@
</div>
</div>
</el-collapse-item>
<el-collapse-item title="来信反映主要问题" name="2">
<el-collapse-item title="信件内容" name="2">
<div class="content">{{ mail.content }}</div>
<div style="margin: 2px">
<FileList

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

@ -356,13 +356,13 @@
</div>
<div>
<a
:href="`${VITE_API_URL}/api/file/download/template/《核查办理报告》.doc`"
:href="`${VITE_API_URL}/api/file/download/template/《核查办理报告》.docx`"
target="_blank"
class="link"
>核查办理报告 下载</a
>
<a
:href="`${VITE_API_URL}/api/file/download/template/《处理反馈表》.doc`"
:href="`${VITE_API_URL}/api/file/download/template/《处理反馈表》.docx`"
target="_blank"
class="link"
>处理反馈表 下载</a

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

@ -174,7 +174,7 @@
v-if="mail.verifyPunish && mail.verifyPunish.length"
>
<div class="flex">
<div class="col">
<div class="col" style="width: 100%">
<label>责任追究</label>
<span
v-for="(item, index) in mail.verifyPunish"
@ -238,9 +238,19 @@ const disabled = inject("disabled");
const mail = inject("mail");
const interviewDetails = ref(mail.value.interviewDetails);
watch(() => mail.value.interviewDetails, (val) => {
interviewDetails.value = val
})
const verifyDetails = ref(mail.value.verifyDetails);
watch(() => mail.value.verifyDetails, (val) => {
verifyDetails.value = val
})
const interviewDetailsEditable = ref(false);
const verifyDetailsEditable = ref(false);
watch(() => mail.value.id, () => {
interviewDetailsEditable.value = false;
verifyDetailsEditable.value = false;
})
function sumbitInterviewDetails() {
sumbitDetail();

Loading…
Cancel
Save