commit
This commit is contained in:
@@ -14,7 +14,8 @@
|
||||
<!-- 引入 core 包和对应 css-->
|
||||
<script src="/assets/platform/plugins/logicflow/logic-flow.js"></script>
|
||||
<link rel="stylesheet" href="/assets/platform/plugins/logicflow/index.css"/>
|
||||
<script src="https://cdn.jsdelivr.net/npm/@logicflow/extension@2.1.4/dist/index.min.js"></script>
|
||||
<script src="/assets/platform/plugins/logicflow/index.min.js"></script>
|
||||
<!-- <script src="https://cdn.jsdelivr.net/npm/@logicflow/extension@2.1.4/dist/index.min.js"></script>-->
|
||||
<script src="/assets/platform/plugins/snaker/SnakerflowDesigner.umd.js"></script>
|
||||
<style>
|
||||
#snaker-flow-preview {
|
||||
|
||||
@@ -103,6 +103,9 @@ const REGISTER_INFO_COMPONENT = {
|
||||
<dict-tag :options="dict.type.PROCESS_TASK_SUBMIT_TYPE"
|
||||
:value="task.ext.submitType"></dict-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="批复文件" v-if="!task.ext.isFirstTaskNode">
|
||||
<file-preview :files="task.taskFormData.approvalFiles" complete_result></file-preview>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="办理意见" v-if="!task.ext.isFirstTaskNode">{{
|
||||
task.taskFormData.opinion }}
|
||||
</el-descriptions-item>
|
||||
|
||||
@@ -5,6 +5,15 @@ layout("/layouts/platform.html"){
|
||||
.left-span-label {
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.flow-task-form .el-form-item {
|
||||
margin-bottom: 22px;
|
||||
}
|
||||
/* 可选:如果上传组件需要占满整行,可以强制其容器宽度 */
|
||||
.flow-task-form .el-form-item__content {
|
||||
/* 如果内容被挤压,可以取消注释下面这行 */
|
||||
/* width: calc(100% - 200px); */
|
||||
}
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
@@ -73,8 +82,17 @@ layout("/layouts/platform.html"){
|
||||
<div class="process-title">
|
||||
{{formData.taskName}}
|
||||
</div>
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="0" label-suffix=":"
|
||||
class="flow-task-form">
|
||||
<el-form :model="formData" ref="formRef" :rules="formRules" label-width="100px" label-suffix=":">
|
||||
<el-form-item label="批复文件" prop="approvalFiles" :rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<file-upload
|
||||
:value.sync="formData.tf_approvalFiles"
|
||||
:upload_number="5"
|
||||
upload_result_category="array"
|
||||
complete_result
|
||||
upload_mode="file"
|
||||
accept=".doc,.docx,.xls,.xlsx,.pdf"
|
||||
></file-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="审批意见" prop="tf_opinion"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||
@@ -122,7 +140,7 @@ layout("/layouts/platform.html"){
|
||||
this.$refs.guava.public(() => {
|
||||
this.formData = {
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
taskName: row.curTaskName,
|
||||
}
|
||||
this.showApprovalForm = true
|
||||
this.$refs.registerInfoRef.onOpen(row)
|
||||
@@ -145,6 +163,7 @@ layout("/layouts/platform.html"){
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ layout("/layouts/platform.html"){
|
||||
size="small"
|
||||
type="primary"
|
||||
@click="$refs.onePushFormalRef.onOpen(pageForm.teacherMeetId)"
|
||||
>候选人录入
|
||||
>候选委员录入
|
||||
</el-button>
|
||||
</table-tool>
|
||||
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ const DELEGATION_TWO_PUSH_FORMAL_DIALOG = {
|
||||
<el-dialog
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="dialogVisible"
|
||||
title="执委会\工会委员会候选人、经审委员会委员录入"
|
||||
title="候选委员录入"
|
||||
width="70%"
|
||||
|
||||
>
|
||||
|
||||
+223
@@ -0,0 +1,223 @@
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
<search-item label="姓名/工号">
|
||||
<el-input v-model="pageForm.searchKeyword" placeholder="请输入姓名或工号" clearable>
|
||||
</el-input>
|
||||
</search-item>
|
||||
<search-item label="教代会">
|
||||
<el-select
|
||||
v-model="pageForm.teacherMeetId"
|
||||
filterable
|
||||
placeholder="请选择教代会"
|
||||
style="width:100%;"
|
||||
@change="teacherMeetChange(pageForm.teacherMeetId)"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in teacherMeets"
|
||||
:key="item.id"
|
||||
:label="item.fullName"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属工会">
|
||||
<el-select clearable filterable placeholder="请选择所属工会" style="width: 100%"
|
||||
v-model="pageForm.unionId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in unionOptions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="代表团">
|
||||
<el-select clearable filterable placeholder="请选择代表团" style="width: 100%"
|
||||
v-model="pageForm.delegationId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in delegations"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="委员类别">
|
||||
<el-select
|
||||
v-model="pageForm.roleCode"
|
||||
filterable
|
||||
placeholder="请选择委员类别"
|
||||
clearable
|
||||
style="width:100%;"
|
||||
>
|
||||
<el-option label="执委会委员" value="1"></el-option>
|
||||
<el-option label="工会委员会委员" value="2"></el-option>
|
||||
<el-option label="经审委员会委员" value="3"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="上报列表">
|
||||
<el-button
|
||||
icon="el-icon-check"
|
||||
size="small"
|
||||
type="primary"
|
||||
@click="$refs.onePushFormalRef.onOpen(pageForm.teacherMeetId)"
|
||||
>正式委员录入
|
||||
</el-button>
|
||||
</table-tool>
|
||||
|
||||
<el-table
|
||||
ref="tableRef"
|
||||
:data="tableData"
|
||||
row-key="id"
|
||||
@sort-change="pageOrder"
|
||||
v-loading="tableLoading"
|
||||
>
|
||||
<el-table-column :index="indexMethod" align="center" header-align="center"
|
||||
label="序号"
|
||||
fixed
|
||||
type="index"
|
||||
width="50"></el-table-column>
|
||||
<el-table-column align="center" label="工号" prop="loginName"></el-table-column>
|
||||
<el-table-column align="center" label="姓名" prop="userName"></el-table-column>
|
||||
<el-table-column align="center" label="年龄" prop="age"></el-table-column>
|
||||
<el-table-column align="center" label="性别" prop="sex"></el-table-column>
|
||||
<el-table-column align="center" label="代表团" prop="delegationName"></el-table-column>
|
||||
<el-table-column align="center" label="所属工会" prop="unionName"></el-table-column>
|
||||
<el-table-column align="center" label="所属单位" prop="unitName"></el-table-column>
|
||||
<el-table-column label="委员类别" prop="roleCode">
|
||||
<template scope="{row}">
|
||||
<el-tag v-if="row.roleCode === '1'">执委会委员</el-tag>
|
||||
<el-tag v-if="row.roleCode === '2'">工会委员会委员</el-tag>
|
||||
<el-tag v-if="row.roleCode === '3'">经审委员会委员</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" label="操作" width="100" fixed="right">
|
||||
<template scope="{row}">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="danger"
|
||||
@click="onDelete(row)"
|
||||
>删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
</template>
|
||||
</guava>
|
||||
<push-formal-dialog ref="onePushFormalRef" @refresh="doSearch"></push-formal-dialog>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<!--#include("pushFormalDialog.js"){}#-->
|
||||
const vue = new Vue({
|
||||
el: '#app',
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
pageDataUrl: "/platform/executiveCommittee/formalPush/pageData",
|
||||
pageForm: {
|
||||
teacherMeetId: null,
|
||||
unionId: null
|
||||
},
|
||||
teacherMeets: [],
|
||||
unionOptions: [],
|
||||
delegations: []
|
||||
}
|
||||
},
|
||||
components: {
|
||||
"push-formal-dialog": PUSH_FORMAL_DIALOG
|
||||
},
|
||||
async created() {
|
||||
this.unionOptions = await this.$businessTool.listUnion()
|
||||
await this.getAllJdh()
|
||||
},
|
||||
methods: {
|
||||
async teacherMeetChange(val) {
|
||||
this.$set(this.pageForm, 'delegationId', null)
|
||||
this.getAllDelegation(val)
|
||||
this.doSearch()
|
||||
},
|
||||
getAllDelegation(id) {
|
||||
this.$axios.post("/platform/teacherCongress/common/listDelegation", {sessionId: id}).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.delegations = resp.data
|
||||
}
|
||||
})
|
||||
},
|
||||
getAllJdh() {
|
||||
this.$axios.post("/platform/teacherCongress/common/listSession", {}).then(resp => {
|
||||
if (resp.code === 0) {
|
||||
this.teacherMeets = resp.data
|
||||
if (this.teacherMeets && this.teacherMeets.length > 0) {
|
||||
this.$set(this.pageForm, 'teacherMeetId', this.teacherMeets[0].id)
|
||||
this.getAllDelegation(this.teacherMeets[0].id)
|
||||
this.pageData()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
onDelete(row) {
|
||||
this.$confirm('确定要删除该条数据吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(async () => {
|
||||
const resp = await this.$axios.post('/platform/executiveCommittee/formalPush/doDelete', {
|
||||
id: row.id,
|
||||
teacherMeetId: this.pageForm.teacherMeetId
|
||||
})
|
||||
if (resp.code === 0) {
|
||||
this.doSearch()
|
||||
this.$message.success(resp.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<style>
|
||||
|
||||
.pushFormDialog .el-transfer-panel__item.el-checkbox {
|
||||
height: auto;
|
||||
display: block;
|
||||
margin-right: 0;
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
.pushFormDialog .el-checkbox__input {
|
||||
vertical-align: top;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.pushFormDialog .transfer-item {
|
||||
padding: 5px;
|
||||
font-size: 12px;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
}
|
||||
|
||||
.pushFormDialog .el-transfer-panel {
|
||||
height: 60vh;
|
||||
width: unset !important;
|
||||
flex: 2 !important;
|
||||
}
|
||||
|
||||
.pushFormDialog .el-transfer-panel__body {
|
||||
height: calc(100% - 40px) !important;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.pushFormDialog .el-transfer-panel__list.is-filterable {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
+95
@@ -0,0 +1,95 @@
|
||||
const PUSH_FORMAL_DIALOG = {
|
||||
template: /*language=HTML*/ `
|
||||
<div class="pushFormDialog">
|
||||
<el-dialog
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="dialogVisible"
|
||||
title="正式委员录入"
|
||||
width="70%"
|
||||
|
||||
>
|
||||
<el-transfer
|
||||
ref="transfer"
|
||||
v-model="userValue"
|
||||
:data="userData"
|
||||
filter-placeholder="请按姓名模糊搜索"
|
||||
:filter-method="filterMethod"
|
||||
:props="{key: 'userId',label: 'name'}"
|
||||
:right-default-checked="rightChecked"
|
||||
:titles="['可推选人员名单', '当前选择']"
|
||||
filterable
|
||||
class="transfer-high"
|
||||
>
|
||||
<div slot-scope="{ option }">
|
||||
<div class="transfer-item">
|
||||
<div class="transfer-item-name">{{ option.userName }} - {{ option.loginName }} -
|
||||
{{option.unitName}}
|
||||
</div>
|
||||
<div class="transfer-item-details">
|
||||
<span class="detail-item">
|
||||
{{option.sex}}
|
||||
</span>
|
||||
<span class="detail-item">{{ option.age }}岁</span>
|
||||
<span class="detail-item">{{ option.professionalTitle }}</span>
|
||||
<span class="detail-item" style="color:#ee0a24;">{{ option.roleCode==='1'?'执委会委员':option.roleCode==='2'?'工会委员会委员':'经审委员会委员' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-transfer>
|
||||
<span slot="footer">
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="onConfirm">确 定</el-button>
|
||||
</span>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</div>
|
||||
`,
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
userValue: [],
|
||||
userData: [],
|
||||
rightChecked: [],
|
||||
attendanceRightChecked: [],
|
||||
teacherMeetId: null,
|
||||
prepareGroupQuotaCount: 0
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async onOpen(teacherMeetId) {
|
||||
this.dialogVisible = true
|
||||
this.teacherMeetId = teacherMeetId
|
||||
this.userValue = []
|
||||
this.userData = []
|
||||
const {
|
||||
code,
|
||||
data
|
||||
} = await this.$axios.post('/platform/executiveCommittee/formalPush/getDelegationUser', {teacherMeetId: teacherMeetId})
|
||||
if (code === 0) {
|
||||
data.userData.forEach(v => {
|
||||
this.userData.push({userId: v.userId, ...v})
|
||||
})
|
||||
this.prepareGroupQuotaCount = data.prepareGroupQuotaCount
|
||||
}
|
||||
},
|
||||
filterMethod(query, item) {
|
||||
return item.userName.indexOf(query) > -1
|
||||
},
|
||||
async onConfirm() {
|
||||
const {
|
||||
code,
|
||||
msg
|
||||
} = await this.$axios.post('/platform/executiveCommittee/formalPush/addOnePush', {
|
||||
userValue: JSON.stringify(this.userValue),
|
||||
teacherMeetId: this.teacherMeetId
|
||||
})
|
||||
if (code === 0) {
|
||||
this.dialogVisible = false
|
||||
this.$message.success(msg)
|
||||
this.$emit('refresh')
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
+1
-1
@@ -31,12 +31,12 @@ const PUSH_FORMAL_DIALOG = {
|
||||
</span>
|
||||
<span class="detail-item">{{ option.age }}岁</span>
|
||||
<span class="detail-item">{{ option.professionalTitle }}</span>
|
||||
<span class="detail-item" style="color:#ee0a24;">{{ option.roleCode==='1'?'执委会委员':option.roleCode==='2'?'工会委员会委员':'经审委员会委员' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-transfer>
|
||||
<span slot="footer">
|
||||
<span style="color:red;font-size: 15px; display:flex;text-align: right;">推选名额:{{prepareGroupQuotaCount}}个</span>
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="onConfirm">确 定</el-button>
|
||||
|
||||
+2
-2
@@ -71,9 +71,9 @@ const merge = {
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="审核意见" prop="approvalOpinion"
|
||||
<el-form-item label="审核意见" prop="tf_opinion"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.approvalOpinion"></user-opinion-textarea>
|
||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end">
|
||||
|
||||
+1
-1
@@ -209,7 +209,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
methods: {
|
||||
doUpData(){
|
||||
this.$.axios.post(loc()+"/doUpData")
|
||||
this.$axios.post(loc()+"/doUpData")
|
||||
},
|
||||
openView(row) {
|
||||
this.$refs.guava.edit(() => {
|
||||
|
||||
Reference in New Issue
Block a user