帮扶申报
This commit is contained in:
302
packages/work/AppHelpDeclaration/components/Detail.vue
Normal file
302
packages/work/AppHelpDeclaration/components/Detail.vue
Normal file
@@ -0,0 +1,302 @@
|
||||
<template>
|
||||
<section class="detail">
|
||||
<ai-detail>
|
||||
<template #title>
|
||||
<ai-title title="帮扶申请详情" isShowBottomBorder isShowBack @onBackClick="cancel(true)">
|
||||
<template #rightBtn>
|
||||
<!-- <ai-wechat-selecter :instance="instance" v-model="addUser" :isMultiple="form.readType == '0' ? false : true" @change="onChange" v-if="form.status === '2' && form.readType == '0'">
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
icon="iconfont iconResetting">
|
||||
再次流转
|
||||
</el-button>
|
||||
</ai-wechat-selecter> -->
|
||||
<el-button type="primary" @click="changeStatus('转交事件')" size="small"> 转交事件</el-button>
|
||||
<el-button type="primary" @click="changeStatus('审核处理')" size="small"> 审核处理</el-button>
|
||||
</template>
|
||||
</ai-title>
|
||||
|
||||
</template>
|
||||
<template #content>
|
||||
<div style="display:flex;">
|
||||
<ai-card title="申请信息" style="flex:2;margin-right:32px;">
|
||||
<template slot="content">
|
||||
<ai-wrapper class="mar-t16" label-width="100px" :columnsNumber="2">
|
||||
<ai-info-item label="申请人姓名:"><span>{{form.documentCode || '-'}}</span></ai-info-item>
|
||||
<ai-info-item label="身份证号:"><span>{{$dict.getLabel("officialDocumentName", form.documentType) || '-'}}</span></ai-info-item>
|
||||
<ai-info-item label="联系方式:"><span>{{$dict.getLabel("officialDocumentConfidentialityLevel", form.confidentialityLevel) || '-'}}</span></ai-info-item>
|
||||
<ai-info-item label="申报方式:"><span>{{form.documentCode || '-'}}</span></ai-info-item>
|
||||
<ai-info-item label="家庭人口数:"><span>{{form.documentCode || '-'}}</span></ai-info-item>
|
||||
<ai-info-item label="排查人员:"><span>{{form.documentCode || '-'}}</span></ai-info-item>
|
||||
<ai-info-item label="申请帮扶原因:"><span>{{form.documentCode || '-'}}</span></ai-info-item>
|
||||
<ai-info-item label="上报时间:"><span>{{form.documentCode || '-'}}</span></ai-info-item>
|
||||
</ai-wrapper>
|
||||
<ai-wrapper label-width="100px" :columnsNumber="1">
|
||||
<ai-info-item label="风险说明:"><span>{{$dict.getLabel("officialDocumentReadType", form.readType) || '-'}}</span></ai-info-item>
|
||||
</ai-wrapper>
|
||||
<ai-file-list v-if="form.files && form.files.length"
|
||||
:fileList="form.files"
|
||||
:fileOps="{ name: 'name', size: 'fileSizeStr' }"
|
||||
></ai-file-list>
|
||||
</template>
|
||||
</ai-card>
|
||||
<ai-card title="办理进度" style="flex:1;">
|
||||
<template #right>
|
||||
<p style="color:#666;font-size:14px;">当前状态:待处理</p>
|
||||
</template>
|
||||
<template #content>
|
||||
<div class="ai-steps">
|
||||
<div class="ai-steps__item" v-for="(item, index) in form.flowUsers" :key="index">
|
||||
<div class="ai-steps__item--left">
|
||||
<div class="ai-steps__item--index">1</div>
|
||||
</div>
|
||||
<div class="ai-steps__item--right">
|
||||
<div class="ai-steps__item__avatar">
|
||||
<img :src="item.avatar" v-if="item.avatar">
|
||||
<h2 v-else>{{ formatName(item.flowUserName) }}</h2>
|
||||
</div>
|
||||
<div class="ai-steps__item--content">
|
||||
<h2>李四发起排查上报,等待处理</h2>
|
||||
<p>{{ item.flowTime }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</ai-card>
|
||||
</div>
|
||||
<ai-dialog :title="dialogTitie" :visible.sync="showDialog" @onConfirm="queMeeting('writeInfo')" @onCancel="showDialog=false;" @close="$refs.dialogInfo.resetFields()" width="520px">
|
||||
<div class="addother_main" style="width:400px;margin:auto;">
|
||||
<el-form :model="dialogInfo" status-icon ref="writeInfo" label-width="100px" class="demo-ruleForm">
|
||||
<el-form-item label="请假原因:" prop="reason" autocomplete="off" :rules="{ required: true, message: '请假原因不能为空', trigger: 'blur' }">
|
||||
<el-input v-model.trim="dialogInfo.reason" autocomplete="off" size="mini" placeholder="请输入..." type="textarea" :rows="4" :maxlength="100" show-word-limit></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</ai-dialog>
|
||||
</template>
|
||||
</ai-detail>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "detail",
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
permissions: Function,
|
||||
params: Object
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
form: {},
|
||||
showDialog: false,
|
||||
dialogTitle: '',
|
||||
dialogInfo: {}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
||||
},
|
||||
created() {
|
||||
this.dict.load('issuingUnit','officialDocumentEmergencyLevel', 'officialDocumentReadType', 'officialDocumentConfidentialityLevel', 'officialDocumentName', 'documentFlowStatus', 'readingStatus');
|
||||
},
|
||||
mounted() {
|
||||
this.form = this.params
|
||||
this.getDetail()
|
||||
},
|
||||
methods: {
|
||||
formatName (name) {
|
||||
if(name == undefined){
|
||||
return
|
||||
}
|
||||
return name.substr(name.length - 2, name.length > 2 ? (name.length - 1) : name.length)
|
||||
},
|
||||
onChange() {
|
||||
if (!this.addUser.length) {
|
||||
return this.$message.error('请选择流转人员')
|
||||
}
|
||||
|
||||
if (this.form.readType === '0' && this.form.status === '0') {
|
||||
// 开始流转
|
||||
let data = this.form
|
||||
const flowUsers = [...this.addUser].map(item => {
|
||||
return {
|
||||
flowUserId: item.id,
|
||||
flowUserName: item.name,
|
||||
avatar: item.avatar
|
||||
}
|
||||
})
|
||||
const fileIds = data.files.length ? data.files.map(item => item.id) : []
|
||||
delete data.files
|
||||
this.instance.post(`/app/appofficialdocumentinfo/addOrUpdate`, {
|
||||
id: this.form.id,
|
||||
...data,
|
||||
status: '1',
|
||||
flowUsers: flowUsers,
|
||||
fileIds
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('流转成功')
|
||||
this.getDetail()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// 再次流转
|
||||
this.instance.post(`/app/appofficialdocumentinfo/flowById`, null, {
|
||||
params: {
|
||||
flag: '1',
|
||||
flowUserId: this.addUser[0].id,
|
||||
flowUserName: this.addUser[0].name,
|
||||
avatar: this.addUser[0].avatar,
|
||||
id: this.form.id
|
||||
}
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('添加成功')
|
||||
this.getDetail(this.id)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
getDetail() {
|
||||
this.instance.post(`/app/appofficialdocumentinfo/queryDetailById?id=${this.params.id}&flag=0`, null).then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.form = {...res.data}
|
||||
this.form.files = this.form.files || []
|
||||
if (res.data.readType === '1') {
|
||||
this.tableData = res.data.flowUsers
|
||||
this.total = res.data.flowUsers.length
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel(isRefresh) {
|
||||
this.$emit('change', {
|
||||
type: 'list',
|
||||
isRefresh: !!isRefresh
|
||||
})
|
||||
},
|
||||
changeStatus(title) {
|
||||
this.dialogTitle = title
|
||||
this.showDialog = true
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.detail {
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
background: #f3f6f9;
|
||||
.above{
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
.left{
|
||||
width: 50%;
|
||||
float: left;
|
||||
}
|
||||
.right{
|
||||
width: 50%;
|
||||
float: right;
|
||||
}
|
||||
.el-select{
|
||||
width: 100%;
|
||||
}
|
||||
.el-date-editor.el-input{
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.iconEdit,.Edit{
|
||||
color:#5088FF;
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
padding-left: 8px;
|
||||
}
|
||||
}
|
||||
.ai-steps {
|
||||
padding-bottom: 40px;
|
||||
.ai-steps__item {
|
||||
display: flex;
|
||||
position: relative;
|
||||
padding-bottom: 44px;
|
||||
|
||||
&:after {
|
||||
position: absolute;
|
||||
left: 12px;
|
||||
top: 26px;
|
||||
width: 1px;
|
||||
height: calc(100% - 30px);
|
||||
background: #DDDDDD;
|
||||
content: " ";
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
padding-bottom: 0;
|
||||
|
||||
&:after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.ai-steps__item--left {
|
||||
position: relative;
|
||||
margin-right: 16px;
|
||||
.ai-steps__item--index{
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
border-radius: 50%;
|
||||
border: 1px solid #ddd;
|
||||
text-align: center;
|
||||
color: #ddd;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.ai-steps__item--right {
|
||||
flex-shrink: 0;
|
||||
color: #666;
|
||||
font-size: 14px;
|
||||
display: flex;
|
||||
.ai-steps__item--content {
|
||||
span {
|
||||
color: #333;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #666666;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 8px;
|
||||
color: #666666;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
.ai-steps__item__avatar {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin-right: 8px;
|
||||
|
||||
img, h2 {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
background: #2266FF;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user