Commit 5974eae0 authored by qhr's avatar qhr

Merge branch 'dev' of http://94.191.100.41/tfmom/tf-mom-web into dev

parents 7d3b3ae1 3bad6b84
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
<template>
<section class="app-main">
<transition name="fade-transform" mode="out-in">
<keep-alive :include="cachedViews">
<keep-alive :include="cachedViews" :max="10">
<router-view v-if="$route.meta&&$route.meta.keepAlive" :key="key" :path="key" class="router-view" />
</keep-alive>
</transition>
......@@ -20,8 +20,16 @@ export default {
return this.$store.state.tagsView.cachedViews
},
key() {
// return this.$route.fullPath
return this.$route.path
return this.$route.fullPath
}
},
watch: {
'$route'(route) {
// 缓存任务接收页面
if (route.name === 'DeeMesTaskReception') {
console.log(454554)
this.$store.dispatch('tagsView/addView', route)
}
}
},
methods: {
......
......@@ -142,19 +142,19 @@ router.beforeEach(async(to, from, next) => {
])
next({ ...to })
} else {
if (to.meta.keepAlive && store.getters.visitedViews) {
for (const key in store.getters.visitedViews) {
const findHasRoute = store.getters.visitedViews[key].find(el => {
return el.path === to.path
})
if (findHasRoute) {
if (findHasRoute.fullPath !== to.fullPath) {
store.dispatch('tagsView/delCachedView', to)
}
break
}
}
}
// if (to.meta.keepAlive && store.getters.visitedViews) {
// for (const key in store.getters.visitedViews) {
// const findHasRoute = store.getters.visitedViews[key].find(el => {
// return el.path === to.path
// })
// if (findHasRoute) {
// if (findHasRoute.fullPath !== to.fullPath) {
// store.dispatch('tagsView/delCachedView', to)
// }
// break
// }
// }
// }
next()
}
}
......@@ -162,7 +162,7 @@ router.beforeEach(async(to, from, next) => {
})
function findModuleRoute(path, query) {
if (path === '/' || path === '/home') return null
if (path === '/') return null
let result = null
const module = path.split('/')[1]
......
......@@ -118,7 +118,10 @@ export default {
// 'stockUnitPrice': r.jobResponse.jobOrder.stockUnitPrice,
// 'purchaseOrderNo': r.jobResponse.jobOrder.purchaseOrderNo,
'operator': 'ADD',
id: null
id: null,
storageZone: r.extProductUnit.extCenter,
storageZoneId: r.extProductUnit.extCenterId,
storageZoneIdType: r.extProductUnit.extCenterIdType
// 'remark': r.jobResponse.jobOrder.remark,
// 'isRoot': r.jobResponse.jobOrder.isRoot
......
......@@ -73,7 +73,7 @@
/>
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="5">
<el-form-item label="抽查期" label-width="60px">
<el-input
v-model="form.spotCheckPeriod"
......@@ -87,7 +87,7 @@
</el-input>
</el-form-item>
</el-col>
<el-col :span="3">
<el-col :span="4">
<el-form-item label="性能复验" label-width="80px">
<el-select v-model="form.isPerformRetest" clearable placeholder="请选择" disabled>
<el-option label="是" :value="true" />
......@@ -139,7 +139,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="5">
<el-form-item label="外观质量检查" label-width="120px">
<el-select v-model="form.performCheck" :disabled="allDisabled" clearable placeholder="请选择">
<el-option label="合格" value="Y" />
......@@ -155,13 +155,18 @@
</el-select>
</el-form-item>
</el-col>
<el-col v-if="form.isSizeCheck" :span="4">
<el-col v-if="form.isSizeCheck" :span="5">
<div class="radio-input">
<el-form-item label="抽样数" label-width="60px">
<el-input-number v-model="form.sampleAmount" :disabled="allDisabled" clearable :min="0" placeholder="抽样数量" />
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="检验依据" label-width="90px">
<el-input v-model="form.checkBill" :disabled="allDisabled" clearable placeholder="请输入检验依据" />
</el-form-item>
</el-col>
<el-col :span="5">
<div class="radio-input">
<el-form-item label="不合格数" label-width="80px" prop="noPassAmount">
......@@ -176,12 +181,7 @@
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<el-form-item label="检验依据" label-width="70px">
<el-input v-model="form.checkBill" :disabled="allDisabled" clearable placeholder="请输入检验依据" />
</el-form-item>
</el-col>
<el-col :span="7">
<el-col :span="17">
<el-form-item label="备注" label-width="70px">
<el-input v-model="form.remark" :disabled="allDisabled" clearable placeholder="备注" />
</el-form-item>
......@@ -579,7 +579,7 @@ export default {
// note: ''
// },
remark: '',
isSizeCheck: '',
isSizeCheck: true,
sampleAmount: '',
noPassAmount: '',
// 入场验收问题描述
......
......@@ -36,7 +36,7 @@
<span v-else>{{ scope.row.dxUserInfo.name }}</span>
</template>
</el-table-column>
<el-table-column prop="workHour" label="工时分配(min)">
<el-table-column prop="workHour" label="工时分配(h)">
<template slot-scope="scope">
<span>{{ scope.row.workHour }}
</span>
......
......@@ -22,6 +22,7 @@
size="small"
filterable
remote
:remote-method="getUserData"
:loading="loading"
@change="saveDxUserInfo"
>
......@@ -157,7 +158,7 @@ export default {
created() {
},
mounted() {
this.getUserData()
// this.getUserData()
},
methods: {
getTableData() {
......@@ -286,19 +287,14 @@ export default {
return true
}
},
getUserData() {
getUserData(query) {
const params = {
'pageFrom': 1,
'pageSize': 9999,
'pageSize': 100,
'searchItems': {
'children': [
{
'items': [
{
'fieldName': 'extProcessSkillId',
'operator': 'EQ',
'value': this.basicData.joExecutePlan && this.basicData.joExecutePlan.extProcessSkillId || this.basicData.extProcessSkillId || ''
}
],
'operator': 'AND'
}
......@@ -307,6 +303,7 @@ export default {
'operator': 'AND'
},
'openProps': [
{ 'name': 'extProcessSkill' },
{ 'name': 'dxUserInfo'
},
{ 'name': 'dxPost' }
......@@ -320,18 +317,21 @@ export default {
}
this.loading = true
this.userData = []
post(`/ExtProcessSkillUser/search`, params).then(res => {
post(`/ExtProcessSkillUser/queryAll?user=${query}`, params).then(res => {
res.items && res.items.content.map(item => {
this.userData.push(
{
label: `${item.dxUserInfo.name}(${item.dxUserInfo.number})`,
value: item.id
}
)
if (item.dxUserInfo && item.extProcessSkill) {
this.userData.push(
{
label: `${item.dxUserInfo.name}(${item.dxUserInfo.number})(${item.extProcessSkill.resCode}_${item.extProcessSkill.resName})`,
value: item.id
}
)
}
})
}).catch(err => {
console.log(err)
}).finally(() => {
this.loading = false
})
},
handleAdd() {
......
......@@ -304,7 +304,8 @@ export default {
stateOption: [],
nodeData: {},
level: null,
loginUser: localStorage.getItem('userId')
loginUser: localStorage.getItem('userId'),
loginUserName: localStorage.getItem('user')
}
},
created() {
......@@ -763,7 +764,8 @@ export default {
})
}
}
if (this.loginUser !== '1') return
if (column.property === 'firstCheckFlag' && this.loginUser !== '1') return
if (column.property === 'countWorkHour' && this.loginUserName !== row.userName && this.loginUser !== '1') return
var that = this
if (column.property === 'firstCheckFlag') {
row.firstCheckFlagSelect = true
......
......@@ -10,7 +10,7 @@ import TaskReceiveCard from './components/taskReceiveCard/index'
import TaskReceiveTable from './components/taskReceiveTable/index'
export default {
name: 'TaskReceive',
name: 'DeeMesTaskReception',
components: {
TaskReceiveCard,
TaskReceiveTable
......
......@@ -44,6 +44,7 @@
<script>
import TaskDetail from '@/business-components/tabCom/task-detail'
import { getInstancePbo, getTemplateList } from '@/api/workflow/userSettings.js'
import { getTaskList, getUnclaimedTask, getUnfinishedTask, getFinishedTask, getUnreadTask, getReadTask, receiveTask, completeTask, batOperationCheck } from '@/api/workflow/taskCenter.js'
import { getAllApp } from '@/api/workflow/config'
import HandleTasks from './handleTasks'
......@@ -164,6 +165,28 @@ export default {
])
}
}, minWidth: 180 },
{ title: '业务对象', key: 'taskTitle', align: 'left', minWidth: 200,
component: {
render: (h, params) => {
return h('span', {
class: 'link-style',
on: {
click: () => {
getInstancePbo(params.processInstanceId).then(res => {
const pbo = res.items
if (pbo) {
let modelName = pbo.dxClassname.split('.').splice(-1)[0]
modelName = this.$utils.getModelName4dxClassName(modelName)
const title = `${pbo.subTypeDisplayName}_ ${pbo.number}_${pbo.name}`
this.$utils.toObjectDetail(pbo.id, pbo.subTypeName, title, modelName)
}
})
}
}
}, params.taskTitle || '/')
}
}
},
{ title: '流程模板', key: 'procDefName', align: 'center' },
{ title: '任务状态', key: 'state', align: 'center', formatter(row, column) {
return row.endTime ? '已完成' : '进行中'
......@@ -244,7 +267,9 @@ export default {
this.handleTasks()
}
}
}]
}],
// 流程模板下拉列表数据
workflowTemplateOpts: []
}
},
computed: {
......@@ -254,11 +279,12 @@ export default {
propFormData: [{
data: [
{
key: 'processInstName',
title: '流程名称',
key: 'processDefKey',
title: '流程模板',
component: {
name: 'el-input',
clearable: true
name: 'el-select',
clearable: true,
options: this.workflowTemplateOpts
}
},
{
......@@ -269,6 +295,14 @@ export default {
clearable: true
}
},
{
key: 'businessTitle',
title: '业务对象',
component: {
name: 'el-input',
clearable: true
}
},
{
key: 'assignee',
title: '活动执行人',
......@@ -399,6 +433,15 @@ export default {
this.getTasks(getUnreadTask, 3)
this.getTasks(getReadTask, 4)
this.getList()
getTemplateList({ page: 1, size: 9999 }).then(res => {
const content = this.$utils._get(res, 'items.content') || []
this.workflowTemplateOpts = content.map(m => {
return {
label: m.name,
value: m.procDefKey
}
})
})
},
handleSearch(obj) {
this.searchObj = {}
......@@ -417,6 +460,12 @@ export default {
if (obj.taskName) {
this.searchObj.taskName = obj.taskName
}
if (obj.processDefKey) {
this.searchObj.processDefKey = obj.processDefKey
}
if (obj.businessTitle) {
this.searchObj.businessTitle = obj.businessTitle
}
if (obj.assignee) {
this.searchObj.assignee = !isNaN(obj.assignee) ? obj.assignee : localStorage.getItem('userId')
}
......
......@@ -58,6 +58,7 @@
<script>
import { getInsts, getOwnerSignAddActivityList } from '@/api/workflow/process.js'
import { completeTask } from '@/api/workflow/taskCenter'
import { getInstancePbo, getTemplateList } from '@/api/workflow/userSettings.js'
import addExaminationUserSelect from './addExaminationUserSelect'
import processInfo from './components/processInfo'
export default {
......@@ -99,7 +100,7 @@ export default {
]
}
}},
{ title: '实例名称', key: 'name', align: 'center', minWidth: 180, component: {
{ title: '流程名称', key: 'name', align: 'center', minWidth: 180, component: {
render: (h, params) => {
return h('div', [
h('span', {
......@@ -114,6 +115,29 @@ export default {
])
}
}},
{ title: '流程模板', key: 'procDefName', align: 'center', minWidth: 120 },
{ title: '业务对象', key: 'businessName', align: 'left', minWidth: 200,
component: {
render: (h, params) => {
return h('span', {
class: 'link-style',
on: {
click: () => {
getInstancePbo(params.processInstanceId).then(res => {
const pbo = res.items
if (pbo) {
let modelName = pbo.dxClassname.split('.').splice(-1)[0]
modelName = this.$utils.getModelName4dxClassName(modelName)
const title = `${pbo.subTypeDisplayName}_ ${pbo.number}_${pbo.name}`
this.$utils.toObjectDetail(pbo.id, pbo.subTypeName, title, modelName)
}
})
}
}
}, params.businessName || '/')
}
}
},
{ title: '状态', key: 'status', align: 'center', minWidth: 100 },
{ title: '当前任务', key: 'taskName', align: 'center', minWidth: 100 },
{ title: '处理人', key: 'assignName', align: 'center', minWidth: 100 },
......@@ -158,7 +182,9 @@ export default {
}
}
}],
addExaminationTableData: []
addExaminationTableData: [],
// 流程模板下拉列表数据
workflowTemplateOpts: []
}
},
computed: {
......@@ -168,8 +194,17 @@ export default {
propFormData: [{
data: [
{
key: 'name',
title: '流程名称',
key: 'processDefKey',
title: '流程模板',
component: {
name: 'el-select',
clearable: true,
options: this.workflowTemplateOpts
}
},
{
key: 'businessTitle',
title: '业务对象',
component: {
name: 'el-input',
clearable: true
......@@ -220,6 +255,15 @@ export default {
},
initData() {
this.getList()
getTemplateList({ page: 1, size: 9999 }).then(res => {
const content = this.$utils._get(res, 'items.content') || []
this.workflowTemplateOpts = content.map(m => {
return {
label: m.name,
value: m.procDefKey
}
})
})
},
handleSearch(obj) {
this.searchObj = {}
......@@ -227,8 +271,11 @@ export default {
this.searchObj.gmtCreateStart = obj.receiveTimeRange[0] + ' 00:00:00'
this.searchObj.gmtCreateEnd = obj.receiveTimeRange[1] + ' 23:59:59'
}
if (obj && obj.name) {
this.searchObj.name = obj.name
if (obj && obj.processDefKey) {
this.searchObj.processDefKey = obj.processDefKey
}
if (obj.businessTitle) {
this.searchObj.businessTitle = obj.businessTitle
}
if (obj && obj.startedUserId) {
......
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