From 9a429501669a7512eb3cf23547b06c8525c86fac Mon Sep 17 00:00:00 2001 From: fengdong777 <1478994744@qq.com> Date: Thu, 7 Sep 2023 17:33:02 +0800 Subject: [PATCH] 9.7 --- supervise-enterprise-ui/src/api/Yjsq/index.js | 60 +- supervise-enterprise-ui/src/api/flow/todo.js | 63 +++ .../src/components/flow/flow.vue | 32 ++ .../src/components/flow/flowRecord.vue | 101 ++++ .../src/router/modules/codemenu.js | 18 +- .../src/views/Yjsq/AddYjsq.vue | 59 +- .../src/views/Yjsq/LookYjsq.vue | 79 ++- .../src/views/Yjsq/index.vue | 92 ++- .../src/views/flow/flowUrl.vue | 79 +++ .../cheliangpaichanYiBanInfo.vue | 390 +++++++++++++ .../paichanguanli/chexingbyconfiguration.vue | 223 ++++++++ .../paichanguanli/commission.vue | 532 ++++++++++++++++++ .../paichanguanli/haveDone.vue | 381 +++++++++++++ supervise-portal-ui/.env.development | 2 +- .../src/views/flow/doneList.vue | 2 +- .../src/views/flow/todoList.vue | 4 +- supervise-portal-ui/vue.config.js | 3 +- 17 files changed, 2067 insertions(+), 53 deletions(-) create mode 100644 supervise-enterprise-ui/src/components/flow/flow.vue create mode 100644 supervise-enterprise-ui/src/components/flow/flowRecord.vue create mode 100644 supervise-enterprise-ui/src/views/flow/flowUrl.vue create mode 100644 supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/cheliangpaichanYiBanInfo.vue create mode 100644 supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/chexingbyconfiguration.vue create mode 100644 supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/commission.vue create mode 100644 supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/haveDone.vue diff --git a/supervise-enterprise-ui/src/api/Yjsq/index.js b/supervise-enterprise-ui/src/api/Yjsq/index.js index 9b079119..bec8eab5 100644 --- a/supervise-enterprise-ui/src/api/Yjsq/index.js +++ b/supervise-enterprise-ui/src/api/Yjsq/index.js @@ -50,6 +50,13 @@ export default { method: 'get', }) }, + // 流程历史流转记录 + flowRecord: function(procInsId,deployId) { + return request({ + url: '/enterprisecentre/v1/sealrecord/task/flowRecord/' + procInsId + "/"+ deployId, + method: 'get', + }) + }, // 根据SID获取一条记录 delBySids: function(data) { return request({ @@ -58,7 +65,7 @@ export default { data: data, }) }, - // 根据SID获取一条记录 + // 办理待办 complete: function(data) { return request({ url: '/enterprisecentre/v1/sealrecord/complete', @@ -74,4 +81,55 @@ export default { data: data, }) }, + // 查看总代办列表 + pagerList: function(params) { + return request({ + url: '/enterprisecentre/v1/flow/todoAllTaskList/' + params.params.userSid, + method: 'post', + data: params, + headers: { + 'Content-Type': 'application/json' + } + }) + }, + // 审批流程(同意)获取下一环节 + getNextNodesForSubmit: function(data) { + return request({ + url: '/enterprisecentre/v1/sealrecord/getNextNodesForSubmit', + method: 'post', + params: data + }) + }, + // 审批流程(驳回)获取下一环节 + getPreviousNodesForReject: function(data) { + return request({ + url: '/enterprisecentre/v1/sealrecord/getPreviousNodesForReject', + method: 'post', + params: data + }) + }, + // 流程审批(驳回) + reject: function(params) { + return request({ + url: '/enterprisecentre/v1/sealrecord/reject', + method: 'post', + data: params + }) + }, + // 流程审批(终止) + breakProcess: function(params) { + return request({ + url: '/enterprisecentre/v1/sealrecord/breakProcess', + method: 'post', + data: params + }) + }, + // 流程审批(撤回) + revokeProcess: function(params) { + return request({ + url: '/enterprisecentre/v1/sealrecord/revokeProcess', + method: 'post', + data: params + }) + }, } diff --git a/supervise-enterprise-ui/src/api/flow/todo.js b/supervise-enterprise-ui/src/api/flow/todo.js index 8f193deb..59853b72 100644 --- a/supervise-enterprise-ui/src/api/flow/todo.js +++ b/supervise-enterprise-ui/src/api/flow/todo.js @@ -1,5 +1,45 @@ import request from '@/utils/request' +// 读取xml文件 +export function readXml(deployId, token) { + return request({ + url: '/enterprisecentre/v1/sealrecord/readXml/' + deployId, + method: 'get', + params: token + }) +} +// 读取image文件 +export function getFlowViewer(procInsId, token) { + return request({ + url: '/enterprisecentre/v1/sealrecord/flowViewer/' + procInsId, + method: 'get', + params: token + }) +} +// 查看总代办列表 +export function pagerList(params) { + return request({ + url: '/enterprisecentre/v1/flow/todoAllTaskList/' + params.params.userSid, + method: 'post', + data: params, + headers: { + 'Content-Type': 'application/json' + } + }) +} + +// 查看总已办列表 +export function getList(params) { + return request({ + url: '/portal/v1/flow/doneAllTaskList/' + params.params.userSid, + method: 'post', + data: params, + headers: { + 'Content-Type': 'application/json' + } + }) +} + // 代办任务同意办理 export function businessAgree(params) { return request({ @@ -48,3 +88,26 @@ export function revokeTask(params) { }) } +// 已办任务列表--终止 +export function breakProcess(params) { + return request({ + url: '/flowable/v1/flow/breakProcess', + method: 'post', + data: params, + headers: { + 'Content-Type': 'application/json' + } + }) +} + +// 根据流程定义id,节点id,终端及类型查询流程与业务表单url +export function selectUrl(params) { + return request({ + url: '/flowable/v1/flowable/proUrl/selectPcUrlByTaskDefKey', + method: 'post', + data: params, + headers: { + 'Content-Type': 'application/json' + } + }) +} diff --git a/supervise-enterprise-ui/src/components/flow/flow.vue b/supervise-enterprise-ui/src/components/flow/flow.vue new file mode 100644 index 00000000..4b7cabc7 --- /dev/null +++ b/supervise-enterprise-ui/src/components/flow/flow.vue @@ -0,0 +1,32 @@ + + diff --git a/supervise-enterprise-ui/src/components/flow/flowRecord.vue b/supervise-enterprise-ui/src/components/flow/flowRecord.vue new file mode 100644 index 00000000..bdd0745a --- /dev/null +++ b/supervise-enterprise-ui/src/components/flow/flowRecord.vue @@ -0,0 +1,101 @@ + + + diff --git a/supervise-enterprise-ui/src/router/modules/codemenu.js b/supervise-enterprise-ui/src/router/modules/codemenu.js index ca8328d6..40644b04 100644 --- a/supervise-enterprise-ui/src/router/modules/codemenu.js +++ b/supervise-enterprise-ui/src/router/modules/codemenu.js @@ -441,5 +441,21 @@ const codemenu = [{ noCache: true } }] -}] +}, + // 用章待办详情 + { + path: '/paichanguanli/commission', + component: () => + import('@/views/paichanguanliFlow/paichanguanli/commission.vue'), + name: 'commission' + }, + // 用章已办详情 + { + path: '/paichanguanli/haveDone', + component: () => + import('@/views/paichanguanliFlow/paichanguanli/haveDone.vue'), + name: 'haveDone' + }, + +] export default codemenu diff --git a/supervise-enterprise-ui/src/views/Yjsq/AddYjsq.vue b/supervise-enterprise-ui/src/views/Yjsq/AddYjsq.vue index 7d08cc44..e5d5e4ad 100644 --- a/supervise-enterprise-ui/src/views/Yjsq/AddYjsq.vue +++ b/supervise-enterprise-ui/src/views/Yjsq/AddYjsq.vue @@ -187,12 +187,14 @@ submitdisabled: false, drawer: false, formobj: { + sid:'', project_sid:'', // 项目sid project_name:'', // 项目名称 code:'', // 审批编号 applicant_date:'',// 申请日期 applicant_name:'', // 申请人name user_name:'', // 用印章人姓名 + user_sid:'', // 当前登陆人的sid use_date:'', // 使用日期 use_reason:'', // 用印章事由 use_file_name:'', // 用印文件名称 @@ -202,14 +204,17 @@ }, industryAllList: [], industryList: [], - projectName:'桦聚面业贸易应收账款项目', + projectName:'heps', + projectSid:'51be22ac-4944-4ccb-a4d3-fce5740b814f', + userSid:'', imgList: [], msg:[], checkList:[], + } }, created() { - + this.userSid = window.sessionStorage.getItem('userSid') }, watch: { imgList:{ @@ -227,8 +232,10 @@ methods: { saveOrUpdate() { this.formobj.project_name=this.projectName + this.formobj.project_sid=this.projectSid + this.userSid = window.sessionStorage.getItem('userSid') this.backcheckList() - // if (this.formobj.project_sid) { + if (this.formobj.sid) { req.sealrecordSave(this.formobj) .then(resp => { if (resp.success) { @@ -244,28 +251,30 @@ } }) .catch(() => {}) - - // else { - // req.addInfo(this.formobj) - // .then(resp => { - // if (resp.success) { - // this.$message({ - // showClose: true, - // type: 'success', - // message: resp.msg - // }) - // this.handleReturn("true") - // this.$refs.multipleTable.clearSelection(); - // } else { - // // 根据resp.code进行异常情况处理 - // } - // }) - // .catch(() => {}) - // } + } else { + req.sealrecordSave(this.formobj) + .then(resp => { + if (resp.success) { + this.$message({ + showClose: true, + type: 'success', + message: resp.msg + }) + this.handleReturn("true") + this.clearList() + } else { + // 根据resp.code进行异常情况处理 + } + }) + .catch(() => {}) + } }, saveSubmit(){ this.formobj.project_name=this.projectName + this.formobj.project_sid=this.projectSid + this.userSid = window.sessionStorage.getItem('userSid') + this.backcheckList() req.sealrecordSubmit(this.formobj) .then(resp => { if (resp.success) { @@ -295,7 +304,8 @@ this.title= "【修改】印鉴信息" req.fetchDetailsBySid(row).then((res)=>{ if(res.code==200){ - this.formobj.project_sid=res.data.project_sid + // this.formobj.project_sid=res.data.project_sid + this.formobj.sid=res.data.sid this.formobj.project_name=res.data.project_name this.formobj.code=res.data.code this.formobj.applicant_date=res.data.applicant_date @@ -331,8 +341,8 @@ aa+= this.checkList[i]+ ',' } var str = aa.slice(0, -1); - this.formobj.seal_type = str - console.log(str); + var List=str.replace(/^,+/, ''); + this.formobj.seal_type = List }, getHangYe(value) { const choose = this.industryList.filter((item) => item.dictKey === value) @@ -341,6 +351,7 @@ }, clearList() { this.formobj = { + sid:'', project_sid:'', project_name:'', code:'', diff --git a/supervise-enterprise-ui/src/views/Yjsq/LookYjsq.vue b/supervise-enterprise-ui/src/views/Yjsq/LookYjsq.vue index 50fe349d..f7c40008 100644 --- a/supervise-enterprise-ui/src/views/Yjsq/LookYjsq.vue +++ b/supervise-enterprise-ui/src/views/Yjsq/LookYjsq.vue @@ -110,40 +110,46 @@ - 用印文件(附件): + 加盖何种公章: - - {{purchaseForm.file_path}} - + + {{checkLists}} + - - 加盖何种公章: + 备注: - - {{purchaseForm.seal_type}} - + + {{purchaseForm.remarks}} + - 备注: + 用印文件(附件): - + - {{purchaseForm.remarks}} +
+
+ +
+
+ + + @@ -153,9 +159,27 @@ import req from '@/api/Yjsq/index' data() { return { viewTitle: "印鉴详细信息", - purchaseForm: {}, + purchaseForm: { + project_sid:'', // 项目sid + project_name:'', // 项目名称 + code:'', // 审批编号 + applicant_date:'',// 申请日期 + applicant_name:'', // 申请人name + user_name:'', // 用印章人姓名 + user_sid:'', // 当前登陆人的sid + use_date:'', // 使用日期 + use_reason:'', // 用印章事由 + use_file_name:'', // 用印文件名称 + seal_type:'', // 加盖何种公章 + file_paths:[], // 用印文件(附件) + remarks:'', // 备注 + }, activeNames: ['1'], - storehouseList:[] + storehouseList:[], + checkLists:'', + msg:[], + dialogImageUrl:'', + dialogVisible: false, } }, mounted() { @@ -165,17 +189,34 @@ import req from '@/api/Yjsq/index' handleReturn() { this.$emit("reloadlist"); this.$emit("doback"); + this.msg=[] }, showInfo(row) { req.fetchDetailsBySid(row).then((res)=>{ if(res.code==200){ + var aa = '' this.purchaseForm=res.data + var checkList=res.data.seal_type + for (var i = 0; i < checkList.length; i++) { + aa+=checkList[i]+ ',' + } + var str = aa.slice(0, -1); + var List=str.replace(/^,+/, ''); + this.checkLists = List + let value=res.data.file_paths + for(let i=0;i { }) }, + lookImg(item) { + this.dialogVisible = true + this.dialogImageUrl = item + }, }, }; @@ -246,4 +287,14 @@ import req from '@/api/Yjsq/index' .el-input__inner { height: 36px; } + .trightb_item .ImageX{ + width: 150px; + height: 100px; + float: left; + margin: 10px 20px 40px 10px; + } + .trightb_item .ImageX img{ + width: 100%; + height: 100%; + } \ No newline at end of file diff --git a/supervise-enterprise-ui/src/views/Yjsq/index.vue b/supervise-enterprise-ui/src/views/Yjsq/index.vue index 447db210..55c92b3a 100644 --- a/supervise-enterprise-ui/src/views/Yjsq/index.vue +++ b/supervise-enterprise-ui/src/views/Yjsq/index.vue @@ -24,11 +24,17 @@
- + + + + @@ -47,7 +53,10 @@
- + + + + @@ -57,21 +66,26 @@ import ButtonBar from '@/components/ButtonBar' import AddYjsq from './AddYjsq.vue' import LookYjsq from './LookYjsq.vue' + import { getStorage } from '@/utils/auth' + import flowRecords from '@/components/flow/flowRecord' + import { getFlowViewer, readXml } from '@/api/flow/todo' export default { name: 'CustomerManagement', components: { Pagination, ButtonBar, AddYjsq, - LookYjsq - // oilTypeInfo, - + LookYjsq, + flowRecords }, data() { return { listLoading: false, btndisabled: false, form: {}, + url: '', + taskList: [], + xmlData: '', btnList: [{ type: 'primary', size: 'small', @@ -102,8 +116,11 @@ } ], isSearchShow: false, + editDialog: false, searchxianshitit: '显示查询条件', list: [], + flowRecordList: [], + state:'', listQuery: { current: 1, size: 10, @@ -113,7 +130,15 @@ }, total: 0, viewState: 1, - sids:'' + sids:'', + listQuerys: { + current: 1, + size: 10, + total: 0, + params: { + userSid: '' + } + }, } }, mounted() { @@ -122,6 +147,9 @@ created() { this.init() // 加载列表 + // req.pagerList(this.listQuerys).then((res) => { + + // }) }, methods: { btnHandle(btnKey) { @@ -165,6 +193,8 @@ // 查询列表信息 getList() { this.listLoading = true + this.state='' + // this.listQuery.params.userSid = window.sessionStorage.getItem('userSid') req.listPage(this.listQuery).then((res) => { if(res.code==200){ this.listLoading = false @@ -190,6 +220,9 @@ this.total=0, this.getList() }, + closeIt() { + this.editDialog = false + }, // 打开添加 toAdd() { this.viewState = 2 @@ -200,13 +233,56 @@ }, // 打开办理 toEdit() { - this.viewState = 3 - this.$refs['divAdd'].showEdit(this.sids) + if(this.state==''){ + this.viewState = 3 + this.$refs['divAdd'].showEdit(this.sids) + }else{ + this.$message({ + message: '已提交,不能继续办理', + type: 'warning' + }); + } + }, + /** 流程流转记录 */ + handleFlowRecord(row) { + this.getModelDetail(row.procDefId) + this.getFlowViewer(row.procInsId) + this.getFlowRecordList(row.procInsId, row.procDefId) + this.editDialog = true + }, + /** xml 文件 */ + getModelDetail(procDefId) { + var token = getStorage() + // 发送请求,获取xml + readXml(procDefId, token).then(res => { + this.xmlData = res.data + }) }, + // 已办环节的节点 + getFlowViewer(procInsId) { + var token = getStorage() + getFlowViewer(procInsId, token).then(res => { + this.taskList = res.data + }) + }, + /** 流程流转记录 */ + getFlowRecordList(procInsId, procDefId) { + req.flowRecord(procInsId,procDefId).then(res => { + this.flowRecordList = res.data.flowList + // 流程过程中不存在初始化表单 直接读取的流程变量中存储的表单值 + // if (res.data.formData) { + // this.formConf = res.data.formData + // this.formConfOpen = true + // } + }).catch(res => { + this.getList() + }) + }, handleSelectionChange(row) { const aa = [] row.forEach((element) => { this.sids = element.sid + this.state = element.nodeState }) if (row.length > 1) { this.$refs.Table.clearSelection() diff --git a/supervise-enterprise-ui/src/views/flow/flowUrl.vue b/supervise-enterprise-ui/src/views/flow/flowUrl.vue new file mode 100644 index 00000000..9afd1183 --- /dev/null +++ b/supervise-enterprise-ui/src/views/flow/flowUrl.vue @@ -0,0 +1,79 @@ + + + \ No newline at end of file diff --git a/supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/cheliangpaichanYiBanInfo.vue b/supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/cheliangpaichanYiBanInfo.vue new file mode 100644 index 00000000..462ea7e3 --- /dev/null +++ b/supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/cheliangpaichanYiBanInfo.vue @@ -0,0 +1,390 @@ + + + + + diff --git a/supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/chexingbyconfiguration.vue b/supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/chexingbyconfiguration.vue new file mode 100644 index 00000000..27161a6b --- /dev/null +++ b/supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/chexingbyconfiguration.vue @@ -0,0 +1,223 @@ + + + + diff --git a/supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/commission.vue b/supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/commission.vue new file mode 100644 index 00000000..7cbfe3eb --- /dev/null +++ b/supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/commission.vue @@ -0,0 +1,532 @@ + + + + + diff --git a/supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/haveDone.vue b/supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/haveDone.vue new file mode 100644 index 00000000..52bd9abc --- /dev/null +++ b/supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/haveDone.vue @@ -0,0 +1,381 @@ + + + + + diff --git a/supervise-portal-ui/.env.development b/supervise-portal-ui/.env.development index f2ef176f..2ece8aea 100644 --- a/supervise-portal-ui/.env.development +++ b/supervise-portal-ui/.env.development @@ -5,5 +5,5 @@ ENV = 'development' VUE_APP_BASE_API = '/api' ## 配置测试和本地开发时的 接口地址 -VUE_APP_URL = "http://192.168.1.193:8112" +VUE_APP_URL = "http://supervise.yxtsoft.com " #VUE_APP_URL = "http://8.130.39.13:8112" diff --git a/supervise-portal-ui/src/views/flow/doneList.vue b/supervise-portal-ui/src/views/flow/doneList.vue index 3068bbaf..2d89c7ee 100644 --- a/supervise-portal-ui/src/views/flow/doneList.vue +++ b/supervise-portal-ui/src/views/flow/doneList.vue @@ -272,7 +272,7 @@ import flowRecords from '@/components/flow/flowRecord' } selectUrl(this.selectUrl_list).then((response) => { if (response.success && response.data.url !== '') { - // this.url = 'http://127.0.0.1:9531' + response.data.url + '?token=' + getStorage() + '&data=' + encodeURI((JSON.stringify(parameter_list))) + // this.url = 'http://127.0.0.1:9531' + '/production/#/paichanguanli/haveDone' + '?token=' + getStorage() + '&data=' + encodeURI((JSON.stringify(parameter_list))) this.url = "http://jianguan.yyundong.com"+ response.data.url + '?token=' + getStorage() + '&data=' + encodeURI((JSON.stringify(parameter_list))) // this.url = 'http://120.46.172.184' + response.data.url + '?token=' + getStorage() + '&data=' + encodeURI((JSON.stringify(parameter_list))) } else if (response.success && response.data.url === '') { diff --git a/supervise-portal-ui/src/views/flow/todoList.vue b/supervise-portal-ui/src/views/flow/todoList.vue index 8f51842b..597637df 100644 --- a/supervise-portal-ui/src/views/flow/todoList.vue +++ b/supervise-portal-ui/src/views/flow/todoList.vue @@ -312,8 +312,8 @@ export default { } selectUrl(this.selectUrl_list).then((response) => { if (response.success && response.data.url !== '') { - //this.url = 'http://127.0.0.1:9531' + response.data.url + '?token=' + getStorage() + '&data=' + encodeURI((JSON.stringify(parameter_list))) - this.url = "http://jianguan.yyundong.com" + response.data.url + '?token=' + getStorage() + '&data=' + encodeURI((JSON.stringify(parameter_list))) + // this.url = 'http://127.0.0.1:9531' + response.data.url + '?token=' + getStorage() + '&data=' + encodeURI((JSON.stringify(parameter_list))) + this.url = "http://supervise.yxtsoft.com" + response.data.url + '?token=' + getStorage() + '&data=' + encodeURI((JSON.stringify(parameter_list))) // this.url = 'http://120.46.172.184' + response.data.url + '?token=' + getStorage() + '&data=' + encodeURI((JSON.stringify(parameter_list))) console.log('已办拼接url:', this.url) } else if (response.success && response.data.url === '') { diff --git a/supervise-portal-ui/vue.config.js b/supervise-portal-ui/vue.config.js index 9ed03e63..db7a1163 100644 --- a/supervise-portal-ui/vue.config.js +++ b/supervise-portal-ui/vue.config.js @@ -42,7 +42,8 @@ module.exports = { '/api': { // 匹配所有以 '/api'开头的请求路径 // target: 'http://120.46.131.15:8111', // 代理目标的基础路径 // target: 'http://192.168.1.109:8111', // 代理目标的基础路径 - target: process.env.VUE_APP_URL, // 代理目标的基础路径 + // target: process.env.VUE_APP_URL, // 代理目标的基础路径 + target: 'http://supervise.yxtsoft.com/api', // 代理目标的基础路径 changeOrigin: true, // 支持跨域 pathRewrite: { // 重写路径: 去掉路径中开头的'/api' '^/api': ''