|
|
@@ -0,0 +1,279 @@ |
|
|
|
<template> |
|
|
|
<view id="notice" class="page"> |
|
|
|
<!-- 顶部页签 --> |
|
|
|
<l-nav v-model="tab" :items="['表单信息', '流程信息']" type="flex" class="solid-bottom" /> |
|
|
|
<view v-if="ready && tab == 0"> |
|
|
|
<l-select :value="formData.CreateUser" :range="dataSource.DepartmentWeek.CreateUser" title="发布人" |
|
|
|
disabled /> |
|
|
|
<l-select :value="formData.Department" :range="dataSource.DepartmentWeek.Department" title="部门" |
|
|
|
disabled /> |
|
|
|
<l-input disabled |
|
|
|
:value="formData.Title" title="标题" /> |
|
|
|
<l-select :value="formData.Week" |
|
|
|
:range="dataSource.DepartmentWeek.Week" title="周别" disabled /> |
|
|
|
<l-datetime-picker :value="formData.CreateTime" disabled title="发布时间" /> |
|
|
|
<view class="tableTitle"> |
|
|
|
一、常规工作安排 |
|
|
|
</view> |
|
|
|
<view class="hasNotData" v-if="!formData.Firset.length"> |
|
|
|
暂无数据 |
|
|
|
</view> |
|
|
|
<l-customform-table :value="formData.Firset" |
|
|
|
:item="Firset" :edit="false" /> |
|
|
|
<view class="tableTitle"> |
|
|
|
二、特色、创新(小微改革)工作安排 |
|
|
|
</view> |
|
|
|
<view class="hasNotData" v-if="!formData.Second.length"> |
|
|
|
暂无数据 |
|
|
|
</view> |
|
|
|
<l-customform-table :value="formData.Second" |
|
|
|
:item="Second" :edit="false" /> |
|
|
|
<l-workflow-action |
|
|
|
@audit="audit" |
|
|
|
@action="action" |
|
|
|
:type="type" |
|
|
|
:currentNode="currentNode" |
|
|
|
:currentTask="currentTask" |
|
|
|
/> |
|
|
|
</view> |
|
|
|
<view v-if="ready && tab == 1" class="progress"><l-workflow-timeline :processList="processList" /></view> |
|
|
|
<!-- <view class="padding-sm text-grey notice-info"> |
|
|
|
<view class="text-right">本页内容发布于 {{ time }}</view> |
|
|
|
<view class="text-right">{{ date }}</view> |
|
|
|
</view> --> |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import moment from 'moment' |
|
|
|
import workflowFormMixins from '@/pages/nworkflow/workflow.js' |
|
|
|
|
|
|
|
export default { |
|
|
|
mixins: [workflowFormMixins], |
|
|
|
data() { |
|
|
|
return { |
|
|
|
tab:0, |
|
|
|
type:'view', |
|
|
|
currentNode:null, |
|
|
|
currentTask:null, |
|
|
|
taskId:'', |
|
|
|
processId:'', |
|
|
|
processInfo:null, |
|
|
|
processList:[], |
|
|
|
formData:{}, |
|
|
|
ready: false, |
|
|
|
content: '', |
|
|
|
|
|
|
|
time: '', |
|
|
|
date: '', |
|
|
|
fileList:[], |
|
|
|
|
|
|
|
// 数据源 |
|
|
|
Firset: { |
|
|
|
type: 'girdtable', title: '常规工作安排', __defaultItem__: {}, fieldsData: [ |
|
|
|
{ field: 'MainWork', type: 'input', name: '主要工作' }, |
|
|
|
{ field: 'TimeLimitFinish', type: 'input', name: '完成时限' }, |
|
|
|
{ field: 'PersonAndDepartment', type: 'input', name: '负责人及关联部门' }, |
|
|
|
{ field: 'QuestSpecialProject', type: 'input', name: '对接专项任务' }, |
|
|
|
{ field: 'Remark', type: 'input', name: '备注' }, |
|
|
|
] |
|
|
|
}, |
|
|
|
Second: { |
|
|
|
type: 'girdtable', title: '特色、创新(小微改革)工作安排', __defaultItem__: {}, fieldsData: [ |
|
|
|
{ field: 'MainWork', type: 'input', name: '主要工作' }, |
|
|
|
{ field: 'TimeLimitFinish', type: 'input', name: '完成时限' }, |
|
|
|
{ field: 'PersonAndDepartment', type: 'input', name: '负责人及关联部门' }, |
|
|
|
{ field: 'QuestSpecialProject', type: 'input', name: '对接专项任务' }, |
|
|
|
{ field: 'Remark', type: 'input', name: '备注' }, |
|
|
|
] |
|
|
|
}, |
|
|
|
// 数据源 |
|
|
|
dataSource: { |
|
|
|
DepartmentWeek: { |
|
|
|
Department: Object.entries(this.GET_GLOBAL('department')).map(e => { |
|
|
|
return { |
|
|
|
value: e[0], |
|
|
|
text: e[1].name |
|
|
|
} |
|
|
|
}), |
|
|
|
CreateUser: Object.entries(this.GET_GLOBAL('user')).map(e => { |
|
|
|
return { |
|
|
|
value: e[0], |
|
|
|
text: e[1].name |
|
|
|
} |
|
|
|
}), |
|
|
|
Week: Object.values(this.GET_GLOBAL('dataDictionary').Week).map(t => ({ |
|
|
|
value: t.value, |
|
|
|
text: t.text |
|
|
|
})), |
|
|
|
}, |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
async onLoad({type}) { |
|
|
|
await this.init(type) |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
async init(type) { |
|
|
|
if(type){this.type = type} |
|
|
|
this.LOADING('加载中…') |
|
|
|
const noticeItem = this.GET_PARAM() |
|
|
|
this.processList = noticeItem.logList |
|
|
|
this.currentNode = noticeItem.currentNode |
|
|
|
this.currentTask = noticeItem.currentTask |
|
|
|
this.processInfo = noticeItem.processInfo |
|
|
|
this.taskId = this.currentTask.F_TaskId |
|
|
|
this.processId = this.currentTask.F_Id |
|
|
|
this.formValue = noticeItem.formValue |
|
|
|
this.scheme = noticeItem.scheme |
|
|
|
// 拉取表单数据,同时拉取所有来自数据源的选单数据 |
|
|
|
await Promise.all([ |
|
|
|
() => {} |
|
|
|
]) |
|
|
|
await this.getFormData(this.processList[0].F_ProcessId) |
|
|
|
this.HIDE_LOADING(); |
|
|
|
|
|
|
|
// this.content = this.CONVERT_HTML(noticeItem.f_content) |
|
|
|
|
|
|
|
// this.time = moment(noticeItem.f_time).format('HH : mm') |
|
|
|
// this.date = moment(noticeItem.f_time).format('YYYY年 M月 D日') |
|
|
|
// this.SET_TITLE(noticeItem.f_title) |
|
|
|
// this.HIDE_LOADING() |
|
|
|
}, |
|
|
|
// 获取表单数据 |
|
|
|
getFormData(ProcessId){ |
|
|
|
return this.HTTP_GET("learun/departmentWeek/getFormDataByProcessId",ProcessId,"加载数据时出错").then(async result=>{ |
|
|
|
if(result){ |
|
|
|
this.formData = { ...result.DepartmentWeek, Firset: result.Firset || [], Second: result.Second || [] } |
|
|
|
this.ready = true |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
// 点击审批相关按钮 |
|
|
|
async audit(action) { |
|
|
|
this.LOADING('加载中…') |
|
|
|
const currentTask = this.processInfo.task.find(t => t.F_NodeId === this.currentNode.id) |
|
|
|
const postData = await this.getPostData(this.formValue, this.scheme) |
|
|
|
const pageParam = { |
|
|
|
type: 'sign', |
|
|
|
processId: currentTask.F_ProcessId, |
|
|
|
taskId: currentTask.F_Id, |
|
|
|
formreq: postData.formreq, |
|
|
|
taskName: this.currentTask.F_Title, |
|
|
|
currentNode:this.currentNode, |
|
|
|
code:this.code||'' |
|
|
|
} |
|
|
|
// 不是加签 |
|
|
|
if (action.code !== '__sign__') { |
|
|
|
Object.assign(pageParam, action) |
|
|
|
pageParam.type = 'verify' |
|
|
|
pageParam.auditors = JSON.stringify({}) |
|
|
|
pageParam.isFromSignAudit = Number(this.currentTask.F_TaskType) === 3 |
|
|
|
} |
|
|
|
this.HIDE_LOADING() |
|
|
|
this.NAV_TO('/pages/nworkflow/myflow/sign', pageParam, true) |
|
|
|
}, |
|
|
|
// 点击操作按钮(非审批类按钮) |
|
|
|
async action(taskType) { |
|
|
|
switch (taskType) { |
|
|
|
// 点击「催办」/「撤销流程」/「标记已阅」按钮 |
|
|
|
case 'urge': |
|
|
|
case 'revoke': |
|
|
|
case 'refer': |
|
|
|
const actionText = { urge: '催办', revoke: '撤销', refer: '已阅' }[taskType] |
|
|
|
const actionUrl = { urge: '/urge', revoke: '/revoke', refer: '/refer' }[taskType] |
|
|
|
|
|
|
|
let actionData = this.processId |
|
|
|
if (taskType === 'refer') { |
|
|
|
actionData = { processId: this.processId, taskId: this.taskId } |
|
|
|
} |
|
|
|
|
|
|
|
if (!(await this.CONFIRM(`${actionText}确认`, `确定要提交${actionText}吗?`, true))) { |
|
|
|
return |
|
|
|
} |
|
|
|
this.LOADING(`提交${actionText}中…`) |
|
|
|
this.HTTP_POST(`/learun/adms/newwf${actionUrl}`, actionData, `提交${actionText}失败`).then(success => { |
|
|
|
this.HIDE_LOADING() |
|
|
|
if (success) { |
|
|
|
this.EMIT('task-list-change') |
|
|
|
this.TOAST(`成功提交${actionText}`, 'success') |
|
|
|
if (taskType === 'revoke') { |
|
|
|
this.NAV_BACK() |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
break |
|
|
|
// 点击「提交草稿」按钮 |
|
|
|
case 'draft': |
|
|
|
this.CONFIRM('不支持此操作') |
|
|
|
return |
|
|
|
if (!(await this.CONFIRM('提交确认', '确定要提交草稿吗?', true))) { |
|
|
|
return |
|
|
|
} |
|
|
|
this.LOADING('正在提交…') |
|
|
|
const draftFormValue = this.$refs.form.getFormValue() |
|
|
|
const draftPostData = await this.getPostData(draftFormValue, this.scheme) |
|
|
|
this.HTTP_POST('/learun/adms/newwf/draft', draftPostData, '提交草稿失败').then(success => { |
|
|
|
this.HIDE_LOADING() |
|
|
|
if (success) { |
|
|
|
this.EMIT('task-list-change') |
|
|
|
this.NAV_BACK() |
|
|
|
this.TOAST('草稿已保存', 'success') |
|
|
|
} |
|
|
|
}) |
|
|
|
break |
|
|
|
// 点击「发起流程」按钮 |
|
|
|
case 'submit': |
|
|
|
this.CONFIRM('不支持此操作') |
|
|
|
return |
|
|
|
const verifyResult = this.$refs.form.verifyValue() |
|
|
|
if (verifyResult.length > 0) { |
|
|
|
this.CONFIRM('表单验证失败', verifyResult.join('\n')) |
|
|
|
return |
|
|
|
} |
|
|
|
if (!(await this.CONFIRM('提交确认', '确定要发起流程吗?', true))) { |
|
|
|
return |
|
|
|
} |
|
|
|
this.LOADING('正在提交…') |
|
|
|
const formValue = this.$refs.form.getFormValue() |
|
|
|
const postData = await this.getPostData(formValue, this.scheme) |
|
|
|
postData.auditors = JSON.stringify({}) |
|
|
|
|
|
|
|
if (this.type === 'child') { |
|
|
|
postData.parentProcessId = this.processId |
|
|
|
postData.parentTaskId = this.taskId |
|
|
|
} |
|
|
|
const errorTips = '流程发起失败' |
|
|
|
this.HTTP_POST('/newwf/createchildflow', postData, errorTips).then(success => { |
|
|
|
this.HIDE_LOADING() |
|
|
|
if (success) { |
|
|
|
this.EMIT('task-list-change') |
|
|
|
this.NAV_BACK() |
|
|
|
this.TOAST('流程发起成功', 'success') |
|
|
|
} |
|
|
|
}) |
|
|
|
break |
|
|
|
default: |
|
|
|
break |
|
|
|
} |
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
<style> |
|
|
|
.tableTitle{ |
|
|
|
font-size: 15px; |
|
|
|
color: #2f2f2f; |
|
|
|
padding: 14px; |
|
|
|
} |
|
|
|
.hasNotData{ |
|
|
|
text-align: center; |
|
|
|
font-size: 14px; |
|
|
|
padding: 14px; |
|
|
|
color: #666; |
|
|
|
} |
|
|
|
</style> |