123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706 |
- <template>
- <view style="background-color: #fff;" v-if="content != null">
- <view
- style="height: 100rpx;display: flex;align-items: center;justify-content: space-around;border-bottom: 1px solid #ceccca;"
- v-if="type==0">
- <!-- <u-tabs :list="list1" :current="current" @click="click"></u-tabs> -->
- <view class="tab" :class="current==0?'active':''" @click="current = 0">
- 待办内容
- </view>
- <view style="border-left: 1px solid #ceccca;height: 80%;">
- </view>
- <view class="tab" :class="current==0?'':'active'" @click="current = 1">
- 流转记录
- </view>
- </view>
- <swiper style="background-color:#fff ;" :style="{height:type==0?'calc(100vh - 100rpx)':'100vh'}"
- :current="current" disable-touch>
- <swiper-item>
- <view style="height: 100%;overflow: auto;">
- <u--form labelPosition="left" labelAlign="center" :model="content" ref="uForm"
- :labelStyle="{fontSize:'32rpx'}" labelWidth="120">
- <u-form-item label="信息标题:" borderBottom ref="item1">
- <!-- <u--input v-model="content.title" border="none" readonly></u--input> -->
- <view class="content">
- {{content.title}}
- </view>
- </u-form-item>
- <!-- <u-form-item label="来文单位:" borderBottom ref="item1">
- <view class="content">
- {{content.sender}}
- </view>
- </u-form-item> -->
- <u-form-item label="来文日期:" borderBottom ref="item1">
- <view class="content">
- {{content.createTime}}
- </view>
- </u-form-item>
- <u-form-item label="信息发布栏目:" borderBottom ref="item1">
- <view class="content">
- {{content.columnName}}
- </view>
- </u-form-item>
- <u-form-item label="正文查看:" borderBottom ref="item1">
- <view class="content">
- <u-button type="primary" text="查看" @click="msgshow = true"></u-button>
- </view>
- </u-form-item>
- <view v-if="type==0">
- <u-form-item label="下一节点:" borderBottom ref="item1" v-if="overType==false">
- <uni-data-select v-model="content.jdindex" placeholder="请选择下一节点" :clear="false"
- :localdata="list" @change="change"></uni-data-select>
- </u-form-item>
- <u-form-item label="处理人员:" borderBottom v-if="DeliveryWay==4" ref="item1"
- @click="choosePeo">
- <view :style="{color:content.users==null?'rgb(192, 196, 204)':''}">
- {{content.users==null?'请选择人员': content.userList}}
- </view>
- </u-form-item>
- <u-form-item label="审批意见:" borderBottom ref="item1" v-if="gdType == false">
- <u--textarea v-model="content.reviewMsg" placeholder="请输入审批意见" autoHeight
- border="none"></u--textarea>
- </u-form-item>
- <view v-if="gdType == true">
- <!-- <u-form-item label="密级:" borderBottom ref="item1">
- <uni-data-select v-model="content.levels" placeholder="请选择密级" :clear="false"
- :localdata="gd"></uni-data-select>
- </u-form-item> -->
- <u-form-item label="档案编号:" borderBottom ref="item1">
- <u--input v-model="content.archiveNo" placeholder="请输入档案编号"
- border="none"></u--input>
- </u-form-item>
- <u-form-item label="档案分类:" borderBottom ref="item1" @click="chooseGd">
- <view :style="{color:content.typeId==null?'rgb(192, 196, 204)':''}">
- {{content.typeId==null?'请选择档案分类': content.gdtype}}
- </view>
- </u-form-item>
- <u-form-item label="打印份数:" borderBottom ref="item1">
- <u--input v-model="content.printNum" placeholder="请输入打印份数" border="none"></u--input>
- </u-form-item>
- </view>
- <!-- <view v-if="backType == true">
- <u-form-item label="退回节点:" borderBottom ref="item1">
- <uni-data-select v-model="content.returnToNodeID" placeholder="请选择节点" :clear="false"
- :localdata="backlist"></uni-data-select>
- </u-form-item>
- <u-form-item label="退回意见:" borderBottom ref="item1">
- <u--textarea v-model="content.backMsg" placeholder="请输入退回意见" autoHeight
- border="none"></u--textarea>
- </u-form-item>
- </view> -->
- <view style="margin-top: 40rpx;padding: 0 20rpx;box-sizing: border-box;"
- v-if="gdType == false">
- <u-button type="primary" text="提交" @click="submit"></u-button>
- </view>
- <view style="margin-top: 40rpx;padding: 0 20rpx;box-sizing: border-box;"
- v-if="gdType == true">
- <u-button type="primary" text="归档" @click="save"></u-button>
- </view>
- <view style="margin-top: 40rpx;padding: 0 20rpx;box-sizing: border-box;"
- v-if="backType == true">
- <u-button type="error" text="退回" @click="show = true"></u-button>
- </view>
- </view>
- <view style="padding: 20rpx;box-sizing: border-box;width: 100%;box-sizing: border-box;" v-else>
- <u-steps :current="100" direction="column" v-if="record != null">
- <view v-for="(v,i) in record" :key="i">
- <view v-if="v.ActionType22 != undefined">
- <u-steps-item :error="v.ActionType==2?true:false"
- v-for="(item,index) in v.ActionType22" :key="index"
- :title='item.NDFromT+"("+v.ActionTypeText+")"'>
- <view slot="desc" style="color:#606266;">
- <view style="font-size: 28rpx;">
- 收文部门:{{item.NodeData.split("DeptName=")[1]}}
- </view>
- <view style="font-size: 28rpx;">
- 处理人:{{item.Exer.split(',')[1]}}
- </view>
- <view style="font-size: 28rpx;">
- 处理时间:{{item.RDT}}
- </view>
- <view style="font-size: 28rpx;">
- 审核意见:{{item.Msg}}
- </view>
- </view>
- </u-steps-item>
- </view>
- <u-steps-item :error="v.ActionType==2?true:false"
- :title='v.NDFromT+"("+v.ActionTypeText+")"' v-else>
- <view slot="desc" style="color: #606266">
- <view style="font-size: 28rpx;">
- 收文部门:{{v.NodeData.split("DeptName=")[1]}}
- </view>
- <view style="font-size: 28rpx;">
- 处理人:{{v.Exer.split(',')[1]}}
- </view>
- <view style="font-size: 28rpx;">
- 处理时间:{{v.RDT}}
- </view>
- </view>
- </u-steps-item>
- </view>
- </u-steps>
- </view>
- </u--form>
- </view>
- </swiper-item>
- <swiper-item>
- <view style="padding: 20rpx;box-sizing: border-box;width: 100%;height: 100%;overflow: auto;">
- <u-steps :current="lzNum-1" direction="column" dot v-if="record != null">
- <view v-for="(v,i) in record" :key="i">
- <u-steps-item :error="v.ActionType==2?true:false"
- :title='v.NDFromT+"("+v.ActionTypeText+")"' v-if="v.ActionType==='28'">
- <view slot="desc" style="color: #606266">
- <view style="font-size: 28rpx;">
- 处理人:{{v.EmpFromT}}
- </view>
- <view style="font-size: 28rpx;">
- 到达时间:{{v.SDT}}
- </view>
- </view>
- </u-steps-item>
- <view v-else-if="v.ActionType22 != undefined">
- <u-steps-item :error="v.ActionType==2?true:false" v-for="(item,index) in v.ActionType22"
- :key="index" :title='item.NDFromT+"("+v.ActionTypeText+")"'>
- <view slot="desc" style="color:#606266;">
- <view style="font-size: 28rpx;">
- 处理部门:{{item.NodeData.split("DeptName=")[1]}}
- </view>
- <view style="font-size: 28rpx;">
- 处理人:{{item.Exer.split(',')[1]}}
- </view>
- <view style="font-size: 28rpx;">
- 处理时间:{{item.RDT}}
- </view>
- <view style="font-size: 28rpx;">
- 审核意见:{{item.Msg}}
- </view>
- </view>
- </u-steps-item>
- </view>
- <u-steps-item :error="v.ActionType==2?true:false"
- :title='v.NDFromT+"("+v.ActionTypeText+")"' v-else>
- <view slot="desc" style="color: #606266">
- <view style="font-size: 28rpx;">
- 处理部门:{{v.NodeData.split("DeptName=")[1]}}
- </view>
- <view style="font-size: 28rpx;">
- 处理人:{{v.Exer.split(',')[1]}}
- </view>
- <view style="font-size: 28rpx;">
- 处理时间:{{v.RDT}}
- </view>
- <view style="font-size: 28rpx;">
- 审核意见:{{v.Msg}}
- </view>
- </view>
- </u-steps-item>
- </view>
- </u-steps>
- </view>
- </swiper-item>
- </swiper>
- <u-modal :show="msgshow" title="内容" @confirm="msgshow = false">
- <view class="slot-content">
- <rich-text :nodes="content.content"></rich-text>
- </view>
- </u-modal>
- <u-modal :show="show" title="退回" :closeOnClickOverlay="true" showCancelButton @cancel="close" @close="close"
- @confirm="back">
- <view class="slot-content" style="width: 100%;">
- <u--form labelPosition="left" labelAlign="center" :model="content" ref="uForm1"
- :labelStyle="{fontSize:'32rpx'}" labelWidth="100">
- <u-form-item label="退回节点:" borderBottom ref="item1">
- <uni-data-select v-model="content.returnToNodeID" placeholder="请选择节点" :clear="false"
- :localdata="backlist"></uni-data-select>
- </u-form-item>
- <u-form-item label="退回意见:" borderBottom ref="item1">
- <u--textarea v-model="content.backMsg" placeholder="请输入退回意见" autoHeight
- border="none"></u--textarea>
- </u-form-item>
- </u--form>
- </view>
- </u-modal>
- </view>
- </template>
- <script>
- export default {
- data() {
- return {
- current: 0,
- content: null,
- statusList: [],
- //流转记录
- record: null,
- //待办已办
- type: 0,
- //节点列表
- list: [],
- //是否选择下发人员
- selectType: 3,
- workid: null,
- flowNo: null,
- id: null,
- //tabs
- list1: [{
- name: '待办内容'
- },
- {
- name: '流转记录'
- }
- ],
- DeliveryWay: null,
- gd: null, //密级列表
- gdType: false, //判断是否是归档
- overType: false, //判断是否结束
- //上个页面传过来的参数
- parameter: null,
- msgshow: false,
- //退回状态
- backType: false,
- //退回节点列表
- backlist: [],
- show: false
- }
- },
- onLoad(options) {
- let that = this
- this.getDicts()
- this.getContent(options.workid)
- this.getRecord(options.workid)
- that.parameter = options
- // this.getLmList()
- if (options.nodeName.indexOf('归档') != -1) {
- that.gdType = true
- that.getgd()
- }
- // this.getgd()
- this.type = options.type
- this.workid = options.workid
- this.flowNo = options.flowNo
- uni.setNavigationBarTitle({
- title: options.title
- })
- // if (options.type == 0) {
- // setTimeout(() => {
- // this.isOver(options)
- // }, 500)
- // }
- },
- onShow() {
- uni.$once('query', (query) => {
- if (query.a == 1) {
- this.content.users = getApp().globalData.peoIdList
- this.content.userList = getApp().globalData.peoList
- this.$forceUpdate()
- } else if (query.a == 2) {
- this.content.typeId = getApp().globalData.gdId.split(",")[0]
- this.content.gdtype = getApp().globalData.gdId.split(",")[1]
- this.$forceUpdate()
- }
- })
- },
- methods: {
- click(e) {
- this.current = e.index
- },
- //查询收文详情
- getContent(id) {
- uni.$u.http.get('/oa/article/sel/' + id).then(res => {
- // console.log(res)
- this.content = res.data
- this.content.workid = this.workid
- this.content.reviewMsg = null
- this.getLmList(res.data.columnId)
- if (this.gdType == true) {
- this.content.typeId = null //归档分类
- this.content.levels = null //密级
- this.content.archiveNo = null //档案编号
- this.content.archiveFormNo = null
- this.content.printNum = null //打印份数
- this.content.name = res.data.title //档案名称
- this.content.gdtype = null //分类名称
- }
- if (this.type == 0) {
- this.isOver(this.parameter)
- this.getBackNo(this.parameter.nodeId)
- }
- this.statusList.forEach(item => {
- if (item.dictValue == res.data.emergencyDegree) {
- this.content.status = item.dictLabel
- }
- })
- })
- },
- // 查询字典数据详细
- getDicts() {
- uni.$u.http.get('/system/dict/data/type/urgent_type').then(res => {
- this.statusList = res.data
- })
- },
- //查询归档字典
- getgd() {
- uni.$u.http.get('/system/dict/data/type/archive_levels').then(res => {
- this.gd = res.data.map((item, index) => {
- let obj = {
- value: item.dictCode,
- id: item.dictCode,
- text: item.dictLabel,
- }
- return obj
- })
- })
- },
- //获取栏目列表
- getLmList(id) {
- let that = this
- uni.$u.http.get('/oa/column/list', {
- params: {
- pageSize: 100,
- }
- }).then(res => {
- // console.log(res)
- for (let i in res.rows) {
- if (id == res.rows[i].id) {
- // console.log(res.rows[i].columnName)
- this.content.columnName = res.rows[i].columnName
- // return res.rows[i].columnName
- }
- }
- })
- },
- //查询流转记录
- getRecord(id) {
- uni.$u.http.get('/jflow/restful/getWfGenerWorkList', {
- params: {
- workID: id,
- token: uni.getStorageSync('jtoken')
- }
- }).then(res => {
- this.record = res.trackList
- console.log('record', this.record[0].ActionType22)
- if (this.type == 0) {
- // this.content.jdindex = null
- // this.content.nodeId = null
- // this.content.optionName = null
- // this.content.toNodeId = null
- // this.id = this.list[0].id
- // this.content.jdindex = 0 //下一节点索引
- // this.DeliveryWay = this.list[0].DeliveryWay //下一节点状态
- // this.content.toNodeId = this.list[0].id //下一节点ID
- // this.content.nodeId = this.list[0].id //下一节点ID
- // this.content.optionName = this.list[0].text //节点名称
- //////////////////
- // this.content.userList = null
- // this.content.users = null
- // this.content.reviewMsg = null
- }
- })
- },
- //查询下一步所有节点
- jdList(id, flow) {
- uni.$u.http.get('/jflow/restful/GenerNextStepAllNode', {
- params: {
- workid: id,
- token: uni.getStorageSync('jtoken'),
- flowNo: flow
- }
- }).then(res => {
- this.id = res[0].NodeID
- this.content.jdindex = 0 //下一节点索引
- this.DeliveryWay = res[0].DeliveryWay //下一节点状态
- this.content.toNodeId = res[0].NodeID //下一节点ID
- this.content.nodeId = res[0].NodeID //下一节点ID
- this.content.optionName = res[0].Name //节点名称
- this.list = res.map((item, index) => {
- let obj = {
- value: index,
- id: item.NodeID,
- text: item.Name,
- DeliveryWay: item.DeliveryWay
- }
- return obj
- })
- })
- },
- //节点选择
- change(e) {
- if (e >= 0) {
- this.id = this.list[e].id
- this.DeliveryWay = this.list[e].DeliveryWay
- this.content.toNodeId = this.list[e].id
- this.content.nodeId = this.list[e].id
- this.content.optionName = this.list[e].text
- }
- },
- //选择人员相关
- choosePeo() {
- if (this.id == null) {
- uni.showToast({
- title: "请先选择下一节点",
- icon: "none"
- })
- } else {
- uni.navigateTo({
- url: `/pages/peoChoose/peoChoose?workid=${this.workid}&flowNo=${this.flowNo}&id=${this.id}`,
- })
- }
- },
- //选择归档分类
- chooseGd() {
- uni.navigateTo({
- url: "/pages/file/file"
- })
- },
- //判断是否为最后一步
- isOver(v) {
- uni.$u.http.get("/jflow/restful/judgeNode", {
- params: {
- nodeId: v.nodeId
- }
- }).then(res => {
- // console.log(res)
- if (res.msg == "Y") {
- this.overType = true
- } else {
- this.overType = false
- this.jdList(v.workid, v.flowNo)
- }
- })
- },
- //提交待办
- submit() {
- if (this.id == null) {
- uni.showToast({
- title: "请先选择下一节点",
- icon: "none"
- })
- } else if (this.content.users == null && this.DeliveryWay == 4) {
- uni.showToast({
- title: "请选择人员",
- icon: "none"
- })
- } else if (this.content.reviewMsg == null) {
- uni.showToast({
- title: "请填写审核内容",
- icon: "none"
- })
- } else {
- uni.showLoading({
- title: "提交中...",
- mask: true
- })
- uni.$u.http.post("/offcial/receive/sendFlowToUsers", this.content, {
- header: {
- // 'content-Type': 'multipart/form-data'
- 'content-Type': 'application/x-www-form-urlencoded'
- }
- }).then(res => {
- // uni.hideLoading()
- if (res.data.VarAcceptersName != "" && res.data.VarAcceptersName != "结束") {
- uni.showToast({
- title: "已发送到" + res.data.VarToNodeName + "节点,接收人:" + res
- .data.VarAcceptersName,
- icon: "none",
- mask: true,
- duration: 3000
- })
- } else if (res.data.VarAcceptersName == "结束") {
- uni.showToast({
- title: res.data.Message,
- icon: "none",
- mask: true,
- duration: 3000
- })
- } else {
- uni.showToast({
- title: res.data.Message.replace(/[@]/g, ""),
- icon: "none",
- mask: true,
- duration: 3000
- })
- }
- uni.$emit('query', {
- a: 'back'
- })
- setTimeout(() => {
- uni.navigateBack()
- }, 2000)
- }).catch(res => {
- uni.hideLoading()
- })
- }
- },
- //保存归档
- save() {
- // if (this.content.levels == null) {
- // uni.showToast({
- // title: "请选择密级",
- // icon: "none"
- // })
- // } else
- if (this.content.archiveNo == null) {
- uni.showToast({
- title: "请填写档案编号",
- icon: "none"
- })
- } else if (this.content.typeId == null) {
- uni.showToast({
- title: "请选择归档分类",
- icon: "none"
- })
- } else if (this.content.printNum == null) {
- uni.showToast({
- title: "请填写打印份数",
- icon: "none"
- })
- } else {
- this.content.reviewMsg = "同意"
- uni.showLoading({
- title: "提交中...",
- mask: true
- })
- uni.$u.http.post("/offcial/archive/save", this.content).then(res => {
- uni.$u.http.get('/jflow/restful/GenerNextStepAllNode', {
- params: {
- workid: this.parameter.workid,
- token: uni.getStorageSync('jtoken'),
- flowNo: this.parameter.flowNo,
- }
- }).then(qwe => {
- // uni.hideLoading()
- uni.showToast({
- title: "归档成功",
- icon: "none",
- mask: true,
- duration: 2000
- })
- uni.$emit('query', {
- a: 'back'
- })
- setTimeout(() => {
- uni.navigateBack()
- }, 2000)
- })
- }).catch(res => {
- uni.hideLoading()
- uni.showToast({
- title: "请稍后重试",
- icon: "none"
- })
- })
- }
- },
- //查询是否能退回
- getBackNo(id) {
- uni.$u.http.get("/jflow/restful/CurrNodeInfo?currNodeID=" + id).then(res => {
- if (res[0].ReturnRole != 0) {
- this.getBackList()
- this.backType = true
- this.content.returnToNodeID = null
- this.content.backMsg = null
- }
- })
- },
- //获取退回节点列表
- getBackList() {
- uni.$u.http.get("/jflow/restful/getReturnWorkNode", {
- params: {
- workid: this.parameter.workid,
- token: uni.getStorageSync('jtoken')
- }
- }).then(res => {
- this.backlist = res.map((item, index) => {
- let obj = {
- value: item.No,
- id: item.No,
- text: item.Name,
- }
- return obj
- })
- })
- },
- //退回上一节点
- back() {
- if (this.content.returnToNodeID == null) {
- uni.showToast({
- title: "请选择退回节点",
- icon: "none"
- })
- } else if (this.content.backMsg == null) {
- uni.showToast({
- title: "请填写退回意见",
- icon: "none"
- })
- } else {
- uni.showLoading({
- title: "退回中...",
- })
- uni.$u.http.get("/offcial/receive/NodeReturnWork", {
- params: {
- workid: this.parameter.workid,
- returnToNodeID: this.content.returnToNodeID,
- returnMsg: this.content.backMsg
- }
- }).then(res => {
- uni.hideLoading()
- this.close()
- uni.showToast({
- title: res,
- icon: "none",
- duration: 2000
- })
- uni.$emit('query', {
- a: 'back'
- })
- setTimeout(() => {
- uni.navigateBack()
- }, 2000)
- }).catch(error => {
- uni.hideLoading()
- uni.showToast({
- title: "请稍后重试",
- icon: "none"
- })
- })
- }
- },
- //关闭模态框
- close() {
- this.content.returnToNodeID = null
- this.content.backMsg = null
- this.show = false
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .content {
- font-size: 32rpx;
- }
- .tab {
- width: 48%;
- height: 100%;
- box-sizing: border-box;
- display: flex;
- align-items: center;
- justify-content: center;
- }
- .active {
- color: #2979ff
- }
- </style>
|