Commit c4d51c41 by yuzhenWang

添加返回按钮,接受scrm参数

parent 9ca75b12
......@@ -12,10 +12,12 @@ store.dispatch('settings/getSystemSettings')
const whiteList = [
'/login',
'/auth-redirect',
'/process/all',
'/process/my-create',
'/process/upcoming',
'/process/apply-process-list'
'/process/all', // 所有工单
'/process/my-create', // 我创建的
'/process/upcoming', // 我的代办
'/process/apply-process-list', // 工单申请
'/process/related', // 相关工单
'/process/handle-ticket' // 处理工单
] // no redirect whitelist
router.beforeEach(async(to, from, next) => {
......@@ -32,17 +34,26 @@ router.beforeEach(async(to, from, next) => {
}
return null
}
const token = getQueryParam('token')
const token = getQueryParam('token') // 获取scrm带过来的参数
// 从scrm跳转过来时,是否隐藏侧边栏 1:隐藏侧边栏 2:隐藏返回键
const hiddenSidler = getQueryParam('hiddenSidler')
// 使用你的 getQueryParam 方法获取参数
const scrmParamsStr = decodeURIComponent(getQueryParam('scrmParams'))
if (token) {
removeToken()
store.dispatch('user/setToken', token)
store.dispatch('user/setHiddenSidler', hiddenSidler)
// 解析成对象
if (scrmParamsStr) {
try {
const scrmParams = JSON.parse(scrmParamsStr)
store.dispatch('user/setScrmParams', scrmParams)
} catch (e) {
console.error('解析失败', e)
}
}
setToken(token)
}
// const newhiddenSidler = store.state.user.hiddenSidler
// console.log(newhiddenSidler)
// start progress bar
NProgress.start()
......
......@@ -9,7 +9,8 @@ const state = {
introduction: '',
roles: [],
permissions: [],
hiddenSidler: ''
hiddenSidler: '', // 是否隐藏侧边栏
scrmParams: { showBack: true } // scrm系统跳转所带参数
}
const mutations = {
......@@ -40,6 +41,9 @@ const mutations = {
},
SET_hiddenSidler: (state, hiddenSidler) => {
state.hiddenSidler = hiddenSidler
},
SET_scrmParams: (state, scrmParams) => {
state.scrmParams = scrmParams
}
}
......@@ -65,18 +69,15 @@ const actions = {
setHiddenSidler({ commit }, hiddenSidler) {
commit('SET_hiddenSidler', hiddenSidler)
},
setScrmParams({ commit }, scrmParams) {
commit('SET_scrmParams', scrmParams)
},
// get user info
getInfo({ commit, state }) {
console.log('====================================')
console.log('getInfo')
console.log('====================================')
return new Promise((resolve, reject) => {
getInfo()
.then((response) => {
console.log('====================================')
console.log('getInfo', response)
console.log('====================================')
if (!response || !response.data) {
commit('SET_TOKEN', '')
removeToken()
......
<template>
<div class="app-container">
<el-button v-if="scrmParams.showBack" style="margin-bottom:16px;" type="primary" @click="goBack">
返回
</el-button>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>公共信息</span>
......@@ -121,10 +124,18 @@ export default {
}
}
},
computed: {
scrmParams() {
return this.$store.state.user.scrmParams
}
},
created() {
this.getProcessNodeList()
},
methods: {
goBack() {
this.$router.go(-1)
},
getProcessNodeList() {
processStructure({
processId: this.$route.query.processId
......
......@@ -2,15 +2,28 @@
<div class="app-container">
<div v-if="isLoadingStatus" />
<div v-else>
<el-button v-if="scrmParams.showBack" style="margin-bottom:16px;" type="primary" @click="goBack">
返回
</el-button>
<el-card class="box-card">
<div class="text item">
<el-steps v-if="currentNode.clazz !== undefined && currentNode.clazz !== null && currentNode.clazz !== ''" :active="activeIndex" finish-status="success">
<el-steps
v-if="
currentNode.clazz !== undefined &&
currentNode.clazz !== null &&
currentNode.clazz !== ''
"
:active="activeIndex"
finish-status="success"
>
<template v-for="(item, index) in nodeStepList">
<el-step
v-if="item.isHideNode === false ||
item.isHideNode === undefined ||
item.isHideNode == null ||
item.id === processStructureValue.workOrder.current_state"
v-if="
item.isHideNode === false ||
item.isHideNode === undefined ||
item.isHideNode == null ||
item.id === processStructureValue.workOrder.current_state
"
:key="index"
:title="item.label"
/>
......@@ -27,7 +40,10 @@
</el-card>
<el-alert
v-if="activeIndex !== nodeStepList.length && processStructureValue.workOrder.is_end===1"
v-if="
activeIndex !== nodeStepList.length &&
processStructureValue.workOrder.is_end === 1
"
style="margin-top: 15px"
:title="alertMessage"
type="error"
......@@ -48,10 +64,12 @@
</el-col>
<el-col :span="12">
<el-form-item label="优先级:" style="margin-bottom: 0">
<span v-if="processStructureValue.workOrder.priority===2">
<span v-if="processStructureValue.workOrder.priority === 2">
<el-tag type="warning">紧急</el-tag>
</span>
<span v-else-if="processStructureValue.workOrder.priority===3">
<span
v-else-if="processStructureValue.workOrder.priority === 3"
>
<el-tag type="danger">非常紧急</el-tag>
</span>
<span v-else>
......@@ -64,25 +82,33 @@
</div>
</el-card>
<el-card class="box-card" style="margin-top: 15px;">
<el-card class="box-card" style="margin-top: 15px">
<div slot="header" class="clearfix">
<span>表单信息</span>
</div>
<div class="text item">
<template v-for="(tplItem, tplIndex) in processStructureValue.tpls">
<fm-generate-form
v-show="currentNode.hideTpls===undefined ||
currentNode.hideTpls===null ||
currentNode.hideTpls.indexOf(tplItem.form_structure.id)===-1"
v-show="
currentNode.hideTpls === undefined ||
currentNode.hideTpls === null ||
currentNode.hideTpls.indexOf(tplItem.form_structure.id) === -1
"
:key="tplIndex"
:ref="'generateForm-'+tplItem.id"
:preview="!!((currentNode.hideTpls!==undefined &&
currentNode.hideTpls!==null &&
currentNode.hideTpls.indexOf(tplItem.form_structure.id)!==-1) ||
(currentNode.writeTpls===undefined ||
currentNode.writeTpls===null ||
currentNode.writeTpls.indexOf(tplItem.form_structure.id)===-1)||
(isActiveProcessing && currentNode.activeOrder))"
:ref="'generateForm-' + tplItem.id"
:preview="
!!(
(currentNode.hideTpls !== undefined &&
currentNode.hideTpls !== null &&
currentNode.hideTpls.indexOf(tplItem.form_structure.id) !==
-1) ||
currentNode.writeTpls === undefined ||
currentNode.writeTpls === null ||
currentNode.writeTpls.indexOf(tplItem.form_structure.id) ===
-1 ||
(isActiveProcessing && currentNode.activeOrder)
)
"
:remote="remoteFunc"
:value="tplItem.form_data"
:data="tplItem.form_structure"
......@@ -90,21 +116,26 @@
</template>
</div>
<div v-if="processStructureValue.userAuthority">
<hr style="background-color: #d9d9d9; border:0; height:1px; margin-bottom: 15px">
<hr
style="
background-color: #d9d9d9;
border: 0;
height: 1px;
margin-bottom: 15px;
"
>
<div>
<el-input
v-model="remarks"
type="textarea"
placeholder="请输入备注信息"
maxlength="200"
:autosize="{ minRows: 3, maxRows: 99}"
:autosize="{ minRows: 3, maxRows: 99 }"
show-word-limit
/>
</div>
<div class="text item" style="text-align: center;margin-top:18px">
<div
v-if="isActiveProcessing && currentNode.activeOrder"
>
<div class="text item" style="text-align: center; margin-top: 18px">
<div v-if="isActiveProcessing && currentNode.activeOrder">
<el-button
v-permisaction="['process:list:handle:active']"
type="primary"
......@@ -116,7 +147,10 @@
<div v-else>
<template v-for="(item, index) in processStructureValue.edges">
<el-button
v-if="processStructureValue.workOrder.is_end===0 && item.source===currentNode.id"
v-if="
processStructureValue.workOrder.is_end === 0 &&
item.source === currentNode.id
"
:key="index"
type="primary"
@click="submitAction(item)"
......@@ -134,31 +168,12 @@
<span>工单流转历史</span>
</div>
<div class="text item">
<el-table
:data="circulationHistoryList"
border
style="width: 100%"
>
<el-table-column
prop="state"
label="节点"
/>
<el-table-column
prop="circulation"
label="流转"
/>
<el-table-column
prop="processor"
label="处理人"
/>
<el-table-column
prop="create_time"
label="处理时间"
/>
<el-table-column
prop="remarks"
label="备注"
/>
<el-table :data="circulationHistoryList" border style="width: 100%">
<el-table-column prop="state" label="节点" />
<el-table-column prop="circulation" label="流转" />
<el-table-column prop="processor" label="处理人" />
<el-table-column prop="create_time" label="处理时间" />
<el-table-column prop="remarks" label="备注" />
</el-table>
</div>
</el-card>
......@@ -168,9 +183,7 @@
<script>
import Vue from 'vue'
import {
GenerateForm
} from '@/components/VueFormMaking'
import { GenerateForm } from '@/components/VueFormMaking'
import 'form-making/dist/FormMaking.css'
Vue.component(GenerateForm.name, GenerateForm)
......@@ -231,27 +244,37 @@ export default {
}
},
computed: {
...mapGetters([
'userId'
])
scrmParams() {
return this.$store.state.user.scrmParams
},
...mapGetters(['userId'])
},
created() {
this.getProcessNodeList()
},
methods: {
goBack() {
this.$router.go(-1)
},
getProcessNodeList() {
processStructure({
processId: this.$route.query.processId,
workOrderId: this.$route.query.workOrderId
}).then(response => {
processId: this.$route.query.processId || this.scrmParams.processId,
workOrderId:
this.$route.query.workOrderId || this.scrmParams.workOrderId
}).then((response) => {
this.isActiveProcessing = false
this.processStructureValue = response.data
this.circulationHistoryList = this.processStructureValue.circulationHistory
this.circulationHistoryList =
this.processStructureValue.circulationHistory
// 获取当前展示节点列表
this.nodeStepList = []
if (this.processStructureValue.nodes) {
for (var i = 0; i < this.processStructureValue.nodes.length; i++) {
if (this.processStructureValue.nodes[i].id === this.processStructureValue.workOrder.current_state) {
if (
this.processStructureValue.nodes[i].id ===
this.processStructureValue.workOrder.current_state
) {
// 当前节点
this.nodeStepList.push(this.processStructureValue.nodes[i])
this.activeIndex = this.nodeStepList.length - 1
......@@ -276,7 +299,11 @@ export default {
// 判断是否需要主动处理
for (var stateValue of this.processStructureValue.workOrder.state) {
if (this.processStructureValue.workOrder.current_state === stateValue.id && stateValue.processor.length > 1) {
if (
this.processStructureValue.workOrder.current_state ===
stateValue.id &&
stateValue.processor.length > 1
) {
this.isActiveProcessing = true
break
}
......@@ -295,7 +322,7 @@ export default {
})
promiseList.push(this.$refs['generateForm-' + tpl.id][0].getData())
}
Promise.all(promiseList).then(values => {
Promise.all(promiseList).then((values) => {
for (var tplDataIndex in this.tpls) {
this.tpls[tplDataIndex].tplValue = values[tplDataIndex]
}
......@@ -304,15 +331,18 @@ export default {
source_state: this.processStructureValue.workOrder.current_state,
target_state: item.target,
circulation: item.label,
flow_properties: item.flowProperties === undefined ? 2 : parseInt(item.flowProperties),
flow_properties:
item.flowProperties === undefined
? 2
: parseInt(item.flowProperties),
work_order_id: parseInt(this.$route.query.workOrderId),
remarks: this.remarks,
is_exec_task: item.isExecuteTask,
tpls: this.tpls
}).then(response => {
}).then((response) => {
if (response.code === 200) {
// this.$router.push({ name: 'upcoming' })
// window.location.reload()
// this.$router.push({ name: 'upcoming' })
// window.location.reload()
this.getProcessNodeList()
}
})
......@@ -325,12 +355,14 @@ export default {
}
},
activeOrderActive() {
var jsonData = [{
id: this.nodeStepList[this.activeIndex].id,
label: this.nodeStepList[this.activeIndex].label,
process_method: 'person',
processor: [this.userId]
}]
var jsonData = [
{
id: this.nodeStepList[this.activeIndex].id,
label: this.nodeStepList[this.activeIndex].label,
process_method: 'person',
processor: [this.userId]
}
]
activeOrder(jsonData, this.$route.query.workOrderId).then(() => {
this.getProcessNodeList()
})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment