fengdong777 2 years ago
parent
commit
9a42950166
  1. 60
      supervise-enterprise-ui/src/api/Yjsq/index.js
  2. 63
      supervise-enterprise-ui/src/api/flow/todo.js
  3. 32
      supervise-enterprise-ui/src/components/flow/flow.vue
  4. 101
      supervise-enterprise-ui/src/components/flow/flowRecord.vue
  5. 18
      supervise-enterprise-ui/src/router/modules/codemenu.js
  6. 59
      supervise-enterprise-ui/src/views/Yjsq/AddYjsq.vue
  7. 79
      supervise-enterprise-ui/src/views/Yjsq/LookYjsq.vue
  8. 92
      supervise-enterprise-ui/src/views/Yjsq/index.vue
  9. 79
      supervise-enterprise-ui/src/views/flow/flowUrl.vue
  10. 390
      supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/cheliangpaichanYiBanInfo.vue
  11. 223
      supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/chexingbyconfiguration.vue
  12. 532
      supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/commission.vue
  13. 381
      supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/haveDone.vue
  14. 2
      supervise-portal-ui/.env.development
  15. 2
      supervise-portal-ui/src/views/flow/doneList.vue
  16. 4
      supervise-portal-ui/src/views/flow/todoList.vue
  17. 3
      supervise-portal-ui/vue.config.js

60
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
})
},
}

63
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'
}
})
}

32
supervise-enterprise-ui/src/components/flow/flow.vue

@ -0,0 +1,32 @@
<template>
<div>
<bpmn-modeler
ref="refNode"
:xml="xmlData"
:is-view="true"
:taskList="taskData"
/>
</div>
</template>
<script>
import bpmnModeler from '@/views/Process/index'
export default {
name: "Flow",
components: {
bpmnModeler
},
props: {
xmlData: {
type: String,
default: ''
},
taskData: {
type: Array,
default: () => []
}
},
data() {
return {};
}
};
</script>

101
supervise-enterprise-ui/src/components/flow/flowRecord.vue

@ -0,0 +1,101 @@
<template>
<div>
<!--流程流转记录-->
<el-card style="overflow: auto;height: 600px">
<el-col :span="24">
<div>
<div style="width:50%;float:left;">
<span class="el-icon-picture-outline">流程图</span>
<flow :xmlData="xmlData" :taskData="taskData"></flow>
</div>
<div style="width:50%;;float:left;border-left: 1px solid blue">
<el-timeline>
<el-timeline-item v-for="(item,index ) in flowRecordList" :key="index" :icon="setIcon(item.finishTime)" :color="setColor(item.finishTime)">
<p style="font-weight: 700">{{ item.taskName }}</p>
<el-card :body-style="{ padding: '10px' }">
<div style="display: flex;flex-direction: row;justify-content: space-between;align-items: flex-start">
<div>
<label v-if="item.taskUserInfos" style="font-weight: normal;margin-right: 30px;">实际办理
<span v-for="(items, index ) in item.taskUserInfos" :key="index">{{ items.assigneeName }},</span>
<!-- <el-tag type="info" size="mini">{{item.deptName}}</el-tag>-->
</label>
<label v-if="item.candidate" style="font-weight: normal;margin-right: 30px;">候选办理{{ item.candidate }}</label><br>
<label style="font-weight: normal">接收时间 </label><label style="color:#8a909c;font-weight: normal">{{ item.createTime }}</label><br>
<label v-if="item.finishTime" style="font-weight: normal">办理时间 </label>
<label style="color:#8a909c;font-weight: normal">{{ item.finishTime }}</label><br>
</div>
<div>
<label v-if="item.duration" style="font-weight: normal">耗时</label>
<label style="color:red;font-weight: normal">{{ item.duration }}</label>
</div>
</div>
<div>
<p v-if="item.comment">
<el-tag type="success" v-if="item.comment.type === '1'"> {{ item.comment.comment }}</el-tag>
<el-tag type="warning" v-if="item.comment.type === '2'"> {{ item.comment.comment }}</el-tag>
<el-tag type="danger" v-if="item.comment.type === '3'"> {{ item.comment.comment }}</el-tag>
<el-tag type="danger" v-if="item.comment.type === '7'"> {{ item.comment.comment }}</el-tag>
<el-tag type="danger" v-if="item.comment.type === '6'"> {{ item.comment.comment }}</el-tag>
</p>
</div>
</el-card>
</el-timeline-item>
</el-timeline>
</div>
</div>
</el-col>
</el-card>
</div>
</template>
<script>
import flow from '@C/flow/flow'
export default {
name: 'flowRecords',
components: {
flow
},
props: {
xmlData: {
type: String,
default: ''
},
taskData: {
type: Array,
default: () => []
},
flowRecordList: {
type: Array,
default: () => []
}
},
data() {
return {}
},
created() {
},
methods: {
setIcon(val) {
if (val) {
return 'el-icon-check'
} else {
return 'el-icon-time'
}
},
setColor(val) {
if (val) {
return '#2bc418'
} else {
return '#b3bdbb'
}
}
}
}
</script>
<style scoped>
.el-tag {
white-space: normal;
height: auto;
line-height: 20px;
}
</style>

18
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

59
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:'',

79
supervise-enterprise-ui/src/views/Yjsq/LookYjsq.vue

@ -110,40 +110,46 @@
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">用印文件(附件)</span>
<span slot="label">加盖何种公章</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.file_path}}</span>
</el-form-item>
<el-form-item class="trightb_item">
<span>{{checkLists}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">加盖何种公章</span>
<span slot="label">备注</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.seal_type}}</span>
</el-form-item>
<el-form-item class="trightb_item">
<span>{{purchaseForm.remarks}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">备注</span>
<span slot="label">用印文件(附件)</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="20">
<el-form-item class="trightb_item">
<span>{{purchaseForm.remarks}}</span>
<div class="Image" v-for="(item,i) in msg" :key="i">
<div class="ImageX">
<img v-if="item" :src=item alt="" @click="lookImg(item)">
</div>
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<el-dialog :visible.sync="dialogVisible" title="查看图片">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</div>
</template>
@ -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<value.length;i++){
this.msg.push(value[i])
}
}
}).catch(() => {
})
},
lookImg(item) {
this.dialogVisible = true
this.dialogImageUrl = item
},
},
};
</script>
@ -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%;
}
</style>

92
supervise-enterprise-ui/src/views/Yjsq/index.vue

@ -24,11 +24,17 @@
<div class="">
<el-table v-loading="listLoading" ref="Table" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column fixed width="50" type="selection" align="center"/>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column fixed label="序号" type="index" width="60" :index="indexMethod" align="center" />
<el-table-column fixed width="80" label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column label="状态" width="90" align="center">
<template slot-scope="scope">
<span v-if="scope.row.nodeState=='待提交'" type="primary" size="mini">待提交</span>
<span v-else @click="handleFlowRecord(scope.row)" class="bluezi">{{ scope.row.nodeState }}</span>
</template>
</el-table-column>
<el-table-column label="项目名称" prop="project_name" align="center" />
<el-table-column label="审批编号" prop="code" align="center" />
@ -47,7 +53,10 @@
</div>
<AddYjsq v-show="viewState ==2 || viewState ==3" ref="divAdd" @doback="resetState" @reloadlist="getList" />
<LookYjsq v-show="viewState ==4" ref="divInfo" @doback="resetState" @reloadlist="getList" />
<el-dialog title="" :visible.sync="editDialog" width="78%" height="1%" :before-close="closeIt" center>
<!-- <iframe frameborder="0" id="iframe" style="width:100%;" scrolling="no" :src="this.centerDialogVisible === true ? url :''"></iframe> -->
<flow-records :xml-data="xmlData" :task-data="taskList" :flow-record-list="flowRecordList" />
</el-dialog>
</div>
</template>
@ -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()

79
supervise-enterprise-ui/src/views/flow/flowUrl.vue

@ -0,0 +1,79 @@
<template>
<div>
<flow-records :xmlData="xmlData" :taskData="taskList" :flowRecordList="flowRecordList"></flow-records>
</div>
</template>
<script>
import flowRecords from '@/components/flow/flowRecord.vue'
import { setStorage } from '@/utils/auth'
import { getFlowViewer, readXml } from '@/api/flow/todo'
import req from '@/api/Yjsq/index'
export default {
name: 'flowRecordForBusiness',
components: {
flowRecords
},
props: {
uploadData: {
type: Object,
default: {}
}
},
data() {
return {
taskList: [],
xmlData: '',
flowRecordList: []
}
},
created() {
const obj = this.uploadData
// this.obj = obj
var token = obj.token
setStorage(token)
console.log(obj)
this.getFlowViewer(obj.procInsId)
this.getModelDetail(obj.deployId)
this.getFlowRecordList(obj.procInsId, obj.deployId)
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 600 + 'px'
}
}, '*')
},
methods: {
/** xml 文件 */
getModelDetail(deployId) {
// xml
readXml(deployId).then(res => {
this.xmlData = res.data
})
},
//
getFlowViewer(procInsId) {
getFlowViewer(procInsId).then(res => {
this.taskList = res.data
})
},
/** 流程流转记录 */
getFlowRecordList(procInsId, deployId) {
// const params = { procInsId: procInsId, deployId: deployId }
req.flowRecord(procInsId,deployId).then(res => {
this.flowRecordList = res.data.flowList
//
// if (res.data.formData) {
// this.formConf = res.data.formData
// this.formConfOpen = true
// }
}).catch(res => {
this.getList()
})
}
}
}
</script>

390
supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/cheliangpaichanYiBanInfo.vue

@ -0,0 +1,390 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="danger" size="small" @click="openRevoke()"> </el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="">
<div class="titwu"><span>厂家采购</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row class="rowStyle">
<el-col :span="24" class="tleftb" style="border-bottom: 0px;border-right: 0px">
<div><span style="font-size: 16px">金额单位</span></div>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="6" class="colOneStyle">
<div class="span-sty spanOneWidth"><span>分公司:</span></div>
<el-form-item class="addinputOne"><span class="">{{ formobj.createOrgName }}</span></el-form-item>
</el-col>
<el-col :span="6" class="colOneStyle">
<div class="span-sty spanOneWidth"><span>采购系统:</span></div>
<el-form-item class="addinputOne"><span class="">{{ formobj.orgDeptName }}</span></el-form-item>
</el-col>
<el-col :span="6" class="colOneStyle">
<div class="span-sty spanOneWidth"><span>申请人:</span></div>
<el-form-item class="addinputOne"><span class="">{{ formobj.createByName }}</span></el-form-item>
</el-col>
<el-col :span="6" class="colOneStyle">
<div class="span-sty spanOneWidth"><span>申请日期:</span></div>
<el-form-item class="addinputOne"><span class="">{{ formobj.applicationDate }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>采购类型:</span></div>
<el-form-item class="addinputOne"><span class="">{{ formobj.applyType }}</span>
</el-form-item>
</el-col>
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>采购原因:</span></div>
<el-form-item class="addinputOne"><span class="">{{ formobj.schedulingType }}</span>
</el-form-item>
</el-col>
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>品牌:</span></div>
<el-form-item class="addinputOne"><span class="">{{ formobj.carBrandName }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>订金付款备注:</span></div>
<el-form-item class="addinputOne"><span class="">{{ formobj.payRemarks }}</span>
</el-form-item>
</el-col>
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>备注:</span></div>
<el-form-item class="addinputOne"><span class="">{{ formobj.remarks }}</span></el-form-item>
</el-col>
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth" v-show="formobj.schedulingType === '储备'"><span>销售经理:</span></div>
<el-form-item v-show="formobj.schedulingType === '储备'" class="addinputOne"><span class="">{{ formobj.userNames }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center;"><span>相关附件:</span></div>
<el-form-item>
<el-image class="addinputOne" style="width: 178px;height: 178px;" v-for="(item,index) in imgList" :key="index" :src="item" :preview-src-list="imgList"></el-image>
</el-form-item>
</el-col>
</el-row>
<div class="title">
<div>采购车型列表</div>
</div>
<el-table :key="tableKey" :data="formobj.busVehicleApplyDetailList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车型" align="center" width="250">
<template slot-scope="scope">
<span class="bluezi" @click="handleView(scope.row)">{{ scope.row.vehicleName }}</span>
</template>
</el-table-column>
<el-table-column label="常用配置" align="left" header-align="center" width="400">
<template slot-scope="scope">
<span>{{ scope.row.configName }}</span>
</template>
</el-table-column>
<el-table-column label="内部编码" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.insideCode }}</span>
</template>
</el-table-column>
<el-table-column label="车辆型号" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.vehicleNo }}</span>
</template>
</el-table-column>
<el-table-column label="排产数量" align="center" width="130">
<template slot-scope="scope">
<span>{{ scope.row.quantity }}</span>
</template>
</el-table-column>
<el-table-column prop="applyForDeposit" label="申请订金" align="center" width="150">
<template slot-scope="scope" prop="applyForDeposit">
<span>{{ scope.row.applyForDeposit }}</span>
</template>
</el-table-column>
<el-table-column label="厂家合同价" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.contractPrice }}</span>
</template>
</el-table-column>
<el-table-column label="销售指导价" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.saleGuPrice }}</span>
</template>
</el-table-column>
<el-table-column label="厂家回款通路" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.actualPay }}</span>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.remarks }}</span>
</template>
</el-table-column>
<el-table-column label="上装信息" header-align="center" width="100" align="center">
<template slot-scope="scope">
<el-button v-show="scope.row.busVehicleApplySz !== null" type="primary" size="small" @click="handleLook(scope.row.busVehicleApplySz)">查看</el-button>
</template>
</el-table-column>
<el-table-column label="上装销售指导价" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.guidePrice }}</span>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
<shangzhuangpeizhiInfo v-show="viewState == 2" ref="divInfo" @doback="closePage"/>
<vehicleconfiguration v-show="viewState == 5" ref="divVehicleconfiguration" @doback="closePage"/>
</div>
</template>
<script>
import req from '@/api/supplychain/busvehicleapply'
import shangzhuangpeizhiInfo from '../../../workFlow/paichanguanliFlow/paichanguanli/shangzhuangselect/shangzhuangpeizhiInfo'
import vehicleconfiguration from '@/views/cheliang/cheliangcaigou/relation/vehicleconfiguration'
export default {
name: 'cheliangpaichanYiBanInfo',
components: {
shangzhuangpeizhiInfo,
vehicleconfiguration
},
data() {
return {
viewState: 1,
viewTitle: '',
index: 0,
tableKey: 0,
imgList: [],
//
formobj: {
sid: '', // sid
createBySid: '', // sid
createByName: '', //
applicationCode: '', //
applicationDate: '', //
schedulingType: '', //
schedulingTypeKey: '',
remarks: '', //
currentAmount: '', //
busVehicleApplyDetailList: []
},
//
linkByParameter: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
orgSidPath: '',
taskDefKey: '',
userSid: ''
},
rules: {}
}
},
created() {
console.log('url:' + window.location.href)
// ===
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
//
this.linkByParameter.businessSid = obj.businessSid
this.linkByParameter.instanceId = obj.instanceId
this.linkByParameter.taskId = obj.taskId
this.linkByParameter.taskDefKey = obj.taskDefKey
this.linkByParameter.orgSidPath = window.sessionStorage.getItem('orgSidPath')
this.linkByParameter.userSid = window.sessionStorage.getItem('userSid')
//
this.showInfo(obj.businessSid)
},
mounted() {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 475 + 'px'
}
}, '*')
},
methods: {
showInfo(sid) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '厂家采购详情'
req.fetchBySid(sid).then((resp) => {
const data = resp.data
this.formobj = data
const aa = []
if (this.formobj.commonAppendixs.length > 0) {
this.formobj.commonAppendixs.forEach((e) => {
aa.push(e.filePath)
})
}
this.imgList = aa
}).catch((e) => {
this.formobj = {}
})
},
handleView(row) {
this.viewState = 5
const aa = {
modelSid: row.vehicleSid,
configSid: row.configSid,
vehModelConfigSid: row.modelConfigSid,
guidedPrice: row.saleGuPrice
}
this.$refs['divVehicleconfiguration'].showInfo(aa)
},
handleLook(row) {
this.viewState = 2
this.$refs['divInfo'].showInfo(row)
},
/** 确认撤回任务 */
openRevoke() {
this.$confirm('是否确认执行撤回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleRevoke()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消撤回'
})
})
},
/** 撤回任务 */
handleRevoke() {
req.revokeProcess(this.linkByParameter).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
//
getSummaries(param) {
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
if (index === 1) {
sums[index] = '审批通过后再付订金:'
return
}
const values = data.map(item => Number(item[column.property]))
if (column.property === 'applyForDeposit') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.formobj.currentAmount = sums[index] += ''
} else {
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.amount = sums[index] += ''
} else {
sums[index] = ''
}
}
})
return sums
},
closePage() {
this.viewState = 1
}
}
}
</script>
<style scoped>
.titwu {
font-size: 28px;
text-align: center;
padding: 30px 0 20px 0;
}
.spanOneWidth {
border-right: 0px !important;
width: 100px !important;
}
.addinputOne {
margin-left: 90px !important;
}
.rowStyle {
border-left: 0px;
}
.colStyle {
border-right: 0px !important;
border-bottom: 0px !important;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.colOneStyle {
border-right: 0px !important;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.addinputInfo {
margin-left: 0px !important;
}
/deep/ .colOneStyle .el-form-item .el-form-item__content {
line-height: 15px !important;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
/deep/ .colStyle .el-form-item .el-form-item__content {
line-height: 15px !important;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
</style>

223
supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/chexingbyconfiguration.vue

@ -0,0 +1,223 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>车型常用列表</div>
<div>
<el-button type="primary" size="small" @click="AddUpdateReturn">确定</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header" label-width="100px">
<el-form-item label="车型:">
<el-input v-model="listQuery.params.vehicleAlias" placeholder="" clearable class="filter-item"/>
</el-form-item>
<el-form-item label="常用配置:">
<el-input v-model="listQuery.params.configName" placeholder="" clearable class="filter-item"/>
</el-form-item>
<el-form-item label="内部编码:">
<el-input v-model="listQuery.params.insideCode" placeholder="" clearable class="filter-item"/>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handresetting">重置</el-button>
</div>
</div>
</div>
<div class="">
<el-table :key="tableKey" ref="multipleTable" v-loading="listLoading" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50px" type="selection" align="center"/>
<el-table-column width="80px" label="编号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="品牌" align="center" width="250">
<template slot-scope="scope">
<span>{{ scope.row.brandName }}</span>
</template>
</el-table-column>
<el-table-column label="车型编码" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.vehicleTypeCode }}</span>
</template>
</el-table-column>
<el-table-column label="车型" align="center" width="250">
<template slot-scope="scope">
<span>{{ scope.row.vehicleAlias }}</span>
</template>
</el-table-column>
<el-table-column label="配置编码" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.configCode }}</span>
</template>
</el-table-column>
<el-table-column label="常用配置" header-align="center" align="left">
<template slot-scope="scope">
<span>{{ scope.row.configName }}</span>
</template>
</el-table-column>
<el-table-column label="内部编码" align="center">
<template slot-scope="scope">
<span>{{ scope.row.insideCode }}</span>
</template>
</el-table-column>
<el-table-column label="销售指导价(元)" width="200" align="center">
<template slot-scope="scope">
<span>{{ scope.row.guidedPrice }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import req from '@/api/kucunguanli/price'
export default {
name: "chexingbyconfiguration",
components: {
Pagination
},
data() {
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
tableKey: 0,
sids: [],
list: [],
listLoading: false,
listQuery: {
current: 1,
size: 5,
params: {
vehicleAlias: '',
configName: '',
useOrgSid: '',
vehicleStateValue: '',
carBrandSid: '',
insideCode: '',
sidList: []
},
total: 1
}
}
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
handleReturn() {
this.$emit('doback')
},
//
getList() {
this.listLoading = true
req.configurationlistPage(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.listQuery.total = response.data.total
this.list = response.data.records
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handresetting() {
this.listQuery.current = 1
this.listQuery.total = 0
this.listQuery.size = 5
this.listQuery.params.vehicleAlias = ''
this.listQuery.params.configName = ''
this.listQuery.params.useOrgSid = ''
this.listQuery.params.vehicleStateValue = ''
this.listQuery.params.insideCode = ''
this.getList()
},
handleSelectionChange(row) {
this.sids = []
const aa = []
row.forEach((element) => {
aa.push({
vehicleAlias: element.vehicleAlias,
modelSid: element.modelSid,
configName: element.configName,
configSid: element.configSid,
guidedPrice: element.guidedPrice,
insideCode: element.insideCode,
brandSid: element.brandSid,
modelConfigSid: element.modelConfigSid
})
})
this.sids = aa
},
showData(value, carBrandSid, createOrgSid) {
const aa = []
if (value.length > 0) {
for (var i = 0; i < value.length; i++) {
aa.push({
modelSid: value[i].vehicleSid,
configSid: value[i].configSid
})
}
this.listQuery.params.sidList = aa
} else {
this.listQuery.params.sidList = []
}
this.listQuery.current = 1
this.listQuery.total = 0
this.listQuery.size = 5
this.listQuery.params.carBrandSid = carBrandSid
this.listQuery.params.useOrgSid = createOrgSid
this.getList()
},
//
AddUpdateReturn() {
if (this.sids.length > 0) {
for (var i = 0; i < this.sids.length; i++) {
if (this.sids[i].brandSid !== this.sids[this.sids.length - 1].brandSid) {
this.$message({ showClose: true, type: 'error', message: '请选择相同品牌下的车型' })
return
}
}
this.$emit('backData', this.sids)
} else {
this.$notify({
title: '提示',
message: '请选择至少一条车型记录!',
type: 'error',
duration: 2000
})
}
}
}
}
</script>
<style scoped>
</style>

532
supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/commission.vue

@ -0,0 +1,532 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="primary" size="small" @click="openAgree('同意')"> </el-button>
<el-button type="danger" size="small" @click="openReject('驳回')"> </el-button>
<el-button type="danger" size="small" @click="openStop('终止')"> </el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="">
<el-form ref="form_obj" :model="purchaseForm" label-position="top" label-width="190px" class="formadd">
<div class="title" style="display: flex;align-items: center;justify-content: space-between;height:40px">
<div style="margin-left: 15px;">用章信息</div>
</div>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目名称</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.project_name}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">申请日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.applicant_date}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">审批编号</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="supplier" class="trightb_item">
<span>{{purchaseForm.code}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">申请人</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.applicant_name}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">用印人</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.user_name}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">用印事由</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.use_reason}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">使用日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.use_date}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">用印文件名称</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.use_file_name}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">加盖何种公章</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{checkLists}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">备注</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.remarks}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">用印文件(附件)</span>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item class="trightb_item">
<div class="Image" v-for="(item,i) in msg" :key="i">
<div class="ImageX" >
<img v-if="item" :src=item alt="" @click="lookImg(item)">
</div>
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
<!--End 添加修改部分-->
<!-- 选择待办人 的弹出框-->
<el-dialog title="填写审批意见" :visible.sync="nodeDialogVisible" width="80%">
<el-form class="formadd" >
<el-row v-show="currentLink" style="border-top: 1px solid #e0e3eb">
<el-col :span="4" class="tleftb">
<span>当前环节:</span>
</el-col>
<el-col :span="20">
<el-form-item><span>{{ current.taskName }}->{{ nextNode.name }}</span></el-form-item>
</el-col>
</el-row>
<el-row :class="{rowClass:!currentLink}">
<el-col :span="4" class="tleftb">
<span>意见:</span>
</el-col>
<el-col :span="20">
<el-form-item><el-input size="small" v-model="dialogList.comment" placeholder="审批意见" class="addinputw" type="textarea" :autosize="{ minRows: 1, maxRows: 10}" clearable ></el-input></el-form-item>
</el-col>
</el-row>
<div style="text-align:center;margin-top: 20px;">
<el-button type="primary" size="mini" @click="reject"> </el-button>
<el-button type="info " size="mini" @click="nodeDialogVisible = false"> </el-button>
</div>
</el-form>
</el-dialog>
<el-dialog :visible.sync="dialogVisible" title="查看图片">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</div>
</template>
<script>
import req from '@/api/Yjsq/index'
export default {
name: 'commission',
components: {
},
data() {
return {
viewState: 1,
viewTitle: '',
operation: '', //
index: 0,
tableKey: 0,
imgList: [],
useMoney: '', // 使
applyMoney: '', //
dialogList: {
comment: ''
},
startTask: true,
current: {
taskDefKey: '',
taskName: '' //
},
nextNode: {}, //
nodeDialogVisible: false,
currentLink: true,
//
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:'', //
},
//
linkByParameter: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
orgSidPath: '',
taskDefKey: '',
userSid: ''
},
rules: {},
checkLists:'',
msg:[],
dialogImageUrl:'',
dialogVisible: false,
}
},
created() {
console.log('url:' + window.location.href)
// ===
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
//
this.linkByParameter.businessSid = obj.businessSid
this.linkByParameter.instanceId = obj.instanceId
this.linkByParameter.taskId = obj.taskId
this.linkByParameter.taskDefKey = obj.taskDefKey
this.linkByParameter.orgSidPath = window.sessionStorage.getItem('orgSidPath')
this.linkByParameter.userSid = window.sessionStorage.getItem('userSid')
this.current.taskDefKey = obj.taskDefKey
this.current.taskName = obj.taskName
//
this.showInfo(obj.businessSid)
},
mounted() {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 480 + 'px'
}
}, '*')
},
methods: {
showInfo(sid) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '用章详情'
req.fetchDetailsBySid(sid).then((resp) => {
var aa = ''
this.purchaseForm = resp.data
var checkList=resp.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=resp.data.file_paths
for(let i=0;i<value.length;i++){
this.msg.push(value[i])
}
}).catch((e) => {
this.purchaseForm = {}
})
},
//
openAgree(val) {
this.operation = val
this.currentLink = true
this.dialogList.comment = '同意'
req.getNextNodesForSubmit({ taskDefKey: this.current.taskDefKey, businessSid: this.linkByParameter.businessSid }).then((resp) => {
if (resp.success) {
var arr = resp.data
this.nextNode = arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
})
},
//
openReject(val) {
this.operation = val
this.currentLink = true
this.dialogList.comment = ''
req.getPreviousNodesForReject({ taskDefKey: this.current.taskDefKey, businessSid: this.linkByParameter.businessSid }).then((resp) => {
if (resp.success) {
var arr = resp.data
this.nextNode = arr[0]
this.nodeDialogVisible = true
}
this.submitdisabled = false
})
},
//
openStop(val) {
this.operation = val
this.dialogList.comment = ''
this.currentLink = false
this.nodeDialogVisible = true
},
reject() {
if (this.operation === '同意') {
this.handleAgree()
} else if (this.operation === '驳回') {
if (this.dialogList.comment === '') {
this.$message({ showClose: true, type: 'error', message: '请填写审批意见' })
} else {
this.handleReject()
}
} else if (this.operation === '终止') {
if (this.dialogList.comment === '') {
this.$message({ showClose: true, type: 'error', message: '请填写审批意见' })
} else {
this.handleStop()
}
}
},
/** 同意任务 */
handleAgree() {
this.linkByParameter.comment = this.dialogList.comment
this.linkByParameter.userSid='164ec725-0b27-489c-974f-18d46de7bcfb'
req.complete(this.linkByParameter).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
/** 驳回任务 */
handleReject() {
this.linkByParameter.comment = this.dialogList.comment
req.reject(this.linkByParameter).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
/** 终止任务 */
handleStop() {
this.linkByParameter.comment = this.dialogList.comment
this.linkByParameter.userSid='164ec725-0b27-489c-974f-18d46de7bcfb'
console.log(this.stopList, 99999)
req.breakProcess(this.linkByParameter).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.nodeDialogVisible = false
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
lookImg(item) {
this.dialogVisible = true
this.dialogImageUrl = item
},
}
}
</script>
<style scoped>
/deep/ .el-collapse-item__header {
height: 40px;
font-weight: bold;
font-size: 16px;
text-align: left;
color: #ffffff;
background-color: #0294d7;
}
/deep/ .el-collapse-item__content {
padding-bottom: 0;
}
.trightb {
display: flex;
align-items: center;
text-align: center;
justify-content: center;
}
.trightb_item {
padding-top: 5px;
}
.span {
margin-left: 50px;
font-size: 15px;
font-weight: 400;
}
.formadd {
padding: 10px 40px 0 40px;
font-size: 16px;
}
.formadd .title {
font-weight: bold;
font-size: 16px;
background-color: #0294d7;
text-align: left;
color: #ffffff;
}
.first_row{
border-top: 1px solid #e0e3eb;
}
.formadd .el-row {
display: flex;
flex-wrap: wrap;
border-left: 1px solid #e0e3eb;
}
.formadd .el-row .el-col {
border-right: 1px solid #e0e3eb;
border-bottom: 1px solid #e0e3eb;
padding: 0 15px;
min-height: 42px;
line-height: 1;
}
.formadd .el-row .el-col .el-form-item {
margin-bottom: 0;
line-height: 42px;
}
.addinputw {
width: 80%;
line-height: 42px;
}
.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%;
}
</style>

381
supervise-enterprise-ui/src/views/paichanguanliFlow/paichanguanli/haveDone.vue

@ -0,0 +1,381 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="danger" size="small" @click="openRevoke()"> </el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="">
<el-form ref="form_obj" :model="purchaseForm" label-position="top" label-width="190px" class="formadd">
<div class="title" style="display: flex;align-items: center;justify-content: space-between;height:40px">
<div style="margin-left: 15px;">用章信息</div>
</div>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">项目名称</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.project_name}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">申请日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.applicant_date}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">审批编号</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item prop="supplier" class="trightb_item">
<span>{{purchaseForm.code}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">申请人</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.applicant_name}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">用印人</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.user_name}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">用印事由</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.use_reason}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">使用日期</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.use_date}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">用印文件名称</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.use_file_name}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">加盖何种公章</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{checkLists}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">备注</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{purchaseForm.remarks}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">用印文件(附件)</span>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item class="trightb_item">
<div class="Image" v-for="(item,i) in msg" :key="i">
<div class="ImageX">
<img v-if="item" :src=item alt="" @click="lookImg(item)">
</div>
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<el-dialog :visible.sync="dialogVisible" title="查看图片">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</div>
</div>
</template>
<script>
import req from '@/api/Yjsq/index'
export default {
name: 'haveDone',
components: {
},
data() {
return {
viewState: 1,
viewTitle: '',
index: 0,
tableKey: 0,
imgList: [],
//
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:'', //
},
//
linkByParameter: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
orgSidPath: '',
taskDefKey: '',
userSid: ''
},
rules: {},
checkLists:'',
msg:[],
dialogImageUrl:'',
dialogVisible: false,
}
},
created() {
console.log('url:' + window.location.href)
// ===
var one = window.location.href.indexOf('&data') + 6
const data = window.location.href.substr(one) // urlunescape()web,使
const obj = JSON.parse(decodeURIComponent(data))
//
this.linkByParameter.businessSid = obj.businessSid
this.linkByParameter.instanceId = obj.instanceId
this.linkByParameter.taskId = obj.taskId
this.linkByParameter.taskDefKey = obj.taskDefKey
this.linkByParameter.orgSidPath = window.sessionStorage.getItem('orgSidPath')
this.linkByParameter.userSid = window.sessionStorage.getItem('userSid')
//
this.showInfo(obj.businessSid)
},
mounted() {
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 2,
data: 475 + 'px'
}
}, '*')
},
methods: {
showInfo(sid) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '厂家采购详情'
req.fetchDetailsBySid(sid).then((resp) => {
var aa = ''
this.purchaseForm = resp.data
var checkList=resp.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=resp.data.file_paths
for(let i=0;i<value.length;i++){
this.msg.push(value[i])
}
}).catch((e) => {
this.purchaseForm = {}
})
},
/** 确认撤回任务 */
openRevoke() {
this.$confirm('是否确认执行撤回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleRevoke()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消撤回'
})
})
},
/** 撤回任务 */
handleRevoke() {
req.revokeProcess(this.linkByParameter).then((response) => {
if (response.success) {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
//
window.parent.postMessage({
cmd: 'returnHeight',
params: {
//
code: 1
}
}, '*')
}
})
},
lookImg(item) {
this.dialogVisible = true
this.dialogImageUrl = item
},
}
}
</script>
<style scoped>
/deep/ .el-collapse-item__header {
height: 40px;
font-weight: bold;
font-size: 16px;
text-align: left;
color: #ffffff;
background-color: #0294d7;
}
/deep/ .el-collapse-item__content {
padding-bottom: 0;
}
.trightb {
display: flex;
align-items: center;
text-align: center;
justify-content: center;
}
.trightb_item {
padding-top: 5px;
}
.span {
margin-left: 50px;
font-size: 15px;
font-weight: 400;
}
.formadd {
padding: 10px 40px 0 40px;
font-size: 16px;
}
.formadd .title {
font-weight: bold;
font-size: 16px;
background-color: #0294d7;
text-align: left;
color: #ffffff;
}
.first_row{
border-top: 1px solid #e0e3eb;
}
.formadd .el-row {
display: flex;
flex-wrap: wrap;
border-left: 1px solid #e0e3eb;
}
.formadd .el-row .el-col {
border-right: 1px solid #e0e3eb;
border-bottom: 1px solid #e0e3eb;
padding: 0 15px;
min-height: 42px;
line-height: 1;
}
.formadd .el-row .el-col .el-form-item {
margin-bottom: 0;
line-height: 42px;
}
.addinputw {
width: 80%;
line-height: 42px;
}
.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%;
}
</style>

2
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"

2
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 === '') {

4
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 === '') {

3
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': ''

Loading…
Cancel
Save