fix:审批添加routepack的相关流程
This commit is contained in:
parent
f2d4b447f3
commit
baf2102944
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<el-container>
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<el-select
|
||||
|
@ -52,7 +52,11 @@
|
|||
stripe
|
||||
highlightCurrentRow
|
||||
>
|
||||
<el-table-column label="流水号" prop="sn" width="180"></el-table-column>
|
||||
<el-table-column
|
||||
label="流水号"
|
||||
prop="sn"
|
||||
width="180"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="工单标题"
|
||||
prop="title"
|
||||
|
@ -94,12 +98,19 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="可处理人" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.participant_type==2 || scope.row.participant_type == 1">
|
||||
<span v-for="item in scope.row.participant_" :key="item.id">{{ item.name}}/</span>
|
||||
</span>
|
||||
<span v-else>
|
||||
无
|
||||
<span
|
||||
v-if="
|
||||
scope.row.participant_type == 2 ||
|
||||
scope.row.participant_type == 1
|
||||
"
|
||||
>
|
||||
<span
|
||||
v-for="item in scope.row.participant_"
|
||||
:key="item.id"
|
||||
>{{ item.name }}/</span
|
||||
>
|
||||
</span>
|
||||
<span v-else> 无 </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
|
@ -109,10 +120,21 @@
|
|||
></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="center">
|
||||
<template #default="scope">
|
||||
<el-button type="primary" link size="small" @click="handleShow(scope.row)"
|
||||
<el-button
|
||||
type="primary"
|
||||
link
|
||||
size="small"
|
||||
@click="handleShow(scope.row)"
|
||||
>查看</el-button
|
||||
>
|
||||
<el-button type="danger" link size="small" @click="reStart(scope.row)" v-if="scope.row.script_run_last_result==false">重试</el-button>
|
||||
<el-button
|
||||
type="danger"
|
||||
link
|
||||
size="small"
|
||||
@click="reStart(scope.row)"
|
||||
v-if="scope.row.script_run_last_result == false"
|
||||
>重试</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
|
@ -143,9 +165,9 @@ export default {
|
|||
1: "单人",
|
||||
2: "多人",
|
||||
},
|
||||
rsOptions:[
|
||||
{value:true, label:'成功'},
|
||||
{value:false, label:'失败'},
|
||||
rsOptions: [
|
||||
{ value: true, label: "成功" },
|
||||
{ value: false, label: "失败" },
|
||||
],
|
||||
wfOptions: [],
|
||||
};
|
||||
|
@ -160,8 +182,7 @@ export default {
|
|||
});
|
||||
},
|
||||
reStart(row) {
|
||||
|
||||
this.$API.wf.ticket.retryScript.req(row.id).then(res => {
|
||||
this.$API.wf.ticket.retryScript.req(row.id).then((res) => {
|
||||
this.$message.success("任务执行下发成功");
|
||||
this.$refs.table.refresh();
|
||||
});
|
||||
|
@ -187,6 +208,8 @@ export default {
|
|||
// operation = row.ticket_data.operation ? row.ticket_data.operation : null;
|
||||
projectId = row.ticket_data.opl;
|
||||
cateType = "opl";
|
||||
} else if (cateType == "routepack") {
|
||||
projectId = row.ticket_data.t_id;
|
||||
}
|
||||
this.$router.push({
|
||||
path: "ticketdetail",
|
||||
|
@ -203,5 +226,4 @@ export default {
|
|||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
<style scoped></style>
|
||||
|
|
|
@ -9,7 +9,11 @@
|
|||
stripe
|
||||
highlightCurrentRow
|
||||
>
|
||||
<el-table-column label="流水号" prop="sn" width="180"></el-table-column>
|
||||
<el-table-column
|
||||
label="流水号"
|
||||
prop="sn"
|
||||
width="180"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="工单标题"
|
||||
prop="title"
|
||||
|
@ -51,12 +55,19 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="可处理人" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.participant_type==2 || scope.row.participant_type == 1">
|
||||
<span v-for="item in scope.row.participant_" :key="item.id">{{ item.name}}/</span>
|
||||
</span>
|
||||
<span v-else>
|
||||
无
|
||||
<span
|
||||
v-if="
|
||||
scope.row.participant_type == 2 ||
|
||||
scope.row.participant_type == 1
|
||||
"
|
||||
>
|
||||
<span
|
||||
v-for="item in scope.row.participant_"
|
||||
:key="item.id"
|
||||
>{{ item.name }}/</span
|
||||
>
|
||||
</span>
|
||||
<span v-else> 无 </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
|
@ -147,6 +158,8 @@ export default {
|
|||
} else if (cateType.indexOf("opl_") != -1) {
|
||||
projectId = row.ticket_data.opl;
|
||||
cateType = "opl";
|
||||
} else if (cateType == "routepack") {
|
||||
projectId = row.ticket_data.t_id;
|
||||
}
|
||||
this.$router.push({
|
||||
path: "ticketdetail",
|
||||
|
@ -182,5 +195,4 @@ export default {
|
|||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
<style scoped></style>
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<el-main v-loading="mainLoading">
|
||||
<el-card header="流程" style="position:relative">
|
||||
<work-step v-if="ticketDetail.state" ref="workStep" :ticket="ticketDetail"></work-step>
|
||||
<el-card header="流程" style="position: relative">
|
||||
<work-step
|
||||
v-if="ticketDetail.state"
|
||||
ref="workStep"
|
||||
:ticket="ticketDetail"
|
||||
></work-step>
|
||||
<el-button
|
||||
class="ticketRetry"
|
||||
v-if="!ticketDetail.script_run_last_result"
|
||||
|
@ -12,128 +16,211 @@
|
|||
重新执行
|
||||
</el-button>
|
||||
</el-card>
|
||||
<el-card style="margin-top: 4px;position:relative">
|
||||
<el-card style="margin-top: 4px; position: relative">
|
||||
<el-descriptions title="工单信息" :column="3">
|
||||
<el-descriptions-item label="工单流水号:">
|
||||
{{ticketDetail.sn }}
|
||||
{{ ticketDetail.sn }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所属流程:">
|
||||
<span v-if="ticketDetail.workflow">{{ticketDetail.workflow_.name }}</span>
|
||||
<span v-if="ticketDetail.workflow">{{
|
||||
ticketDetail.workflow_.name
|
||||
}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="创建时间:">
|
||||
{{ticketDetail.create_time }}
|
||||
{{ ticketDetail.create_time }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="工单标题:" :span="3">
|
||||
{{ticketDetail.title }}
|
||||
{{ ticketDetail.title }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-card>
|
||||
<el-card style="margin-top: 4px;position:relative" v-if="cateType==='visit'">
|
||||
<el-card
|
||||
style="margin-top: 4px; position: relative"
|
||||
v-if="cateType === 'visit'"
|
||||
>
|
||||
<el-descriptions title="来访信息" :column="3">
|
||||
<el-descriptions-item label="来访概述:">
|
||||
{{itemDetail.name }}
|
||||
{{ itemDetail.name }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="来访级别:">
|
||||
{{levelOptions[itemDetail.level] }}
|
||||
{{ levelOptions[itemDetail.level] }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="来访事由:">
|
||||
{{purpose_[itemDetail.purpose] }}
|
||||
{{ purpose_[itemDetail.purpose] }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="来访人数:">
|
||||
<el-tag size="small">{{ itemDetail.count_people }}人</el-tag>
|
||||
<el-tag size="small"
|
||||
>{{ itemDetail.count_people }}人</el-tag
|
||||
>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="来访人员:">
|
||||
<el-tag v-for="item in itemDetail.visitors_" :key='item.id' size="small">
|
||||
<el-tag
|
||||
v-for="item in itemDetail.visitors_"
|
||||
:key="item.id"
|
||||
size="small"
|
||||
>
|
||||
{{ item.visitor_.name }}
|
||||
</el-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="状态:">
|
||||
{{state_[itemDetail.state] }}
|
||||
{{ state_[itemDetail.state] }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="来访时间:">
|
||||
{{itemDetail.visit_time }}
|
||||
{{ itemDetail.visit_time }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="离访时间:">
|
||||
{{itemDetail.leave_time }}
|
||||
{{ itemDetail.leave_time }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="接待人:" v-if="itemDetail.receptionist_">
|
||||
<el-descriptions-item
|
||||
label="接待人:"
|
||||
v-if="itemDetail.receptionist_"
|
||||
>
|
||||
{{ itemDetail.receptionist_.name }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<div style="text-align: center">
|
||||
<el-link type="primary" @click="showMoreVisit"> 更多信息</el-link>
|
||||
<el-link type="primary" @click="showMoreVisit">
|
||||
更多信息</el-link
|
||||
>
|
||||
</div>
|
||||
<visit-dialog v-if="visitShow" ref="visitDialog"></visit-dialog>
|
||||
</el-card>
|
||||
<el-card style="margin-top: 4px;position:relative" v-if="cateType==='rpj'">
|
||||
<el-card
|
||||
style="margin-top: 4px; position: relative"
|
||||
v-if="cateType === 'rpj'"
|
||||
>
|
||||
<el-descriptions title="入厂项目" :column="3">
|
||||
<el-descriptions-item label="相关方:">
|
||||
{{itemDetail.rparty_name}}
|
||||
{{ itemDetail.rparty_name }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="入厂项目:">
|
||||
{{itemDetail.name }}
|
||||
{{ itemDetail.name }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="项目类型:">
|
||||
<el-tag size="small">{{rpjType_[itemDetail.type]}}</el-tag>
|
||||
<el-tag size="small">{{
|
||||
rpjType_[itemDetail.type]
|
||||
}}</el-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="合同编号:">
|
||||
{{itemDetail.contract_number }}
|
||||
{{ itemDetail.contract_number }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="状态:">
|
||||
{{state_[itemDetail.state] }}
|
||||
{{ state_[itemDetail.state] }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="进厂时间:">
|
||||
{{itemDetail.come_time }}
|
||||
{{ itemDetail.come_time }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="离厂时间:">
|
||||
{{itemDetail.leave_time }}
|
||||
{{ itemDetail.leave_time }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="所属部门:">
|
||||
{{itemDetail.belong_dept_name }}
|
||||
{{ itemDetail.belong_dept_name }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<div style="text-align: center">
|
||||
<el-link type="primary" @click="showMore"> 更多信息</el-link>
|
||||
<el-link type="primary" @click="showMore">
|
||||
更多信息</el-link
|
||||
>
|
||||
</div>
|
||||
<show-dialog v-if="rpjShow" ref="showDialog"></show-dialog>
|
||||
</el-card>
|
||||
<el-card style="margin-top: 4px;position:relative" v-if="cateType==='opl'">
|
||||
<el-card
|
||||
style="margin-top: 4px; position: relative"
|
||||
v-if="cateType === 'opl'"
|
||||
>
|
||||
<el-descriptions title="作业许可证" :column="3">
|
||||
<el-descriptions-item label="所属作业:">
|
||||
<span v-if="itemDetail.operation">{{itemDetail.operation_.name }}</span>
|
||||
<span v-if="itemDetail.operation">{{
|
||||
itemDetail.operation_.name
|
||||
}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="许可证类型:">
|
||||
{{itemDetail.cate_name }}
|
||||
{{ itemDetail.cate_name }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="作业区域:">
|
||||
<span v-if="itemDetail.operation">{{itemDetail.operation_.area_.name}}</span>
|
||||
<span v-if="itemDetail.operation">{{
|
||||
itemDetail.operation_.area_.name
|
||||
}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="作业状态:">
|
||||
<span v-if="itemDetail.operation">{{state2_[itemDetail.operation_.state]}}</span>
|
||||
<span v-if="itemDetail.operation">{{
|
||||
state2_[itemDetail.operation_.state]
|
||||
}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="生产状态:">
|
||||
<span v-if="itemDetail.operation">{{itemDetail.operation_.state_work }}</span>
|
||||
<span v-if="itemDetail.operation">{{
|
||||
itemDetail.operation_.state_work
|
||||
}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="开始时间:">
|
||||
{{itemDetail.start_time }}
|
||||
{{ itemDetail.start_time }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="结束时间:">
|
||||
{{itemDetail.end_time }}
|
||||
{{ itemDetail.end_time }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<div style="text-align: center">
|
||||
<el-link type="primary" @click="showMoreInfo"> 作业许可证详情</el-link>
|
||||
<el-link type="primary" @click="showMoreInfo">
|
||||
作业许可证详情</el-link
|
||||
>
|
||||
</div>
|
||||
<show-dialog v-if="rpjShow" ref="showDialog"></show-dialog>
|
||||
</el-card>
|
||||
<el-card style="margin-top: 4px;position:relative" header="处理日志">
|
||||
<work-details ref="workDetails" :ticket="ticketId"></work-details>
|
||||
<el-card
|
||||
style="margin-top: 4px; position: relative"
|
||||
header="工艺流程"
|
||||
>
|
||||
<el-table
|
||||
:data="routepackes"
|
||||
fit
|
||||
stripe
|
||||
style="width: 100%"
|
||||
max-height="300"
|
||||
highlight-current-row
|
||||
>
|
||||
<el-table-column label="排序" prop="sort" width="50">
|
||||
</el-table-column>
|
||||
<el-table-column label="工序" prop="process_name">
|
||||
</el-table-column>
|
||||
<el-table-column label="输入" prop="material_in_name">
|
||||
</el-table-column>
|
||||
<el-table-column label="输出" prop="material_out_name">
|
||||
</el-table-column>
|
||||
<el-table-column label="出材率" prop="out_rate">
|
||||
</el-table-column>
|
||||
<el-table-column label="工时" prop="hour_work">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
<el-card
|
||||
style="margin-top: 4px; position: relative"
|
||||
header="处理日志"
|
||||
>
|
||||
<work-details
|
||||
ref="workDetails"
|
||||
:ticket="ticketId"
|
||||
></work-details>
|
||||
</el-card>
|
||||
<el-card class="handleWrap" v-if="isDuty || isOwn">
|
||||
<scTitle title="处理"></scTitle>
|
||||
<el-form :model="form" ref="addForm" label-width="100px" label-position="left" v-if="isDuty">
|
||||
<el-form-item label="作业情况:" v-if="ticketDetail.state_&&ticketDetail.state_.key==='opl_close'">
|
||||
<el-select v-model="form.close_note" placeholder="选择关闭原因">
|
||||
<el-form
|
||||
:model="form"
|
||||
ref="addForm"
|
||||
label-width="100px"
|
||||
label-position="left"
|
||||
v-if="isDuty"
|
||||
>
|
||||
<el-form-item
|
||||
label="作业情况:"
|
||||
v-if="
|
||||
ticketDetail.state_ &&
|
||||
ticketDetail.state_.key === 'opl_close'
|
||||
"
|
||||
>
|
||||
<el-select
|
||||
v-model="form.close_note"
|
||||
placeholder="选择关闭原因"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in noteOption"
|
||||
:key="item.id"
|
||||
|
@ -142,7 +229,13 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="关闭处理:" v-if="ticketDetail.state_&&ticketDetail.state_.key==='opl_close'">
|
||||
<el-form-item
|
||||
label="关闭处理:"
|
||||
v-if="
|
||||
ticketDetail.state_ &&
|
||||
ticketDetail.state_.key === 'opl_close'
|
||||
"
|
||||
>
|
||||
<el-checkbox-group v-model="form.close_dos">
|
||||
<el-checkbox
|
||||
v-for="(item, index) in dosOption"
|
||||
|
@ -153,28 +246,57 @@
|
|||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="处理意见">
|
||||
<el-input v-model="form.suggestion" clearable></el-input>
|
||||
<el-input
|
||||
v-model="form.suggestion"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div style="text-align: right">
|
||||
<el-button v-if="ticketDetail.in_add_node && isDuty" class="filter-item" type="primary"
|
||||
@click="addNodeHandler('2')">加签处理
|
||||
<el-button
|
||||
v-if="ticketDetail.in_add_node && isDuty"
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
@click="addNodeHandler('2')"
|
||||
>加签处理
|
||||
</el-button>
|
||||
</div>
|
||||
<div style="display: flex;justify-content: space-between;">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<div>
|
||||
<el-button type="primary" @click="addNode" v-if="(!ticketDetail.in_add_node) && isDuty">加签</el-button>
|
||||
<el-button v-if="isDuty && ticketDetail.state_&&ticketDetail.state_.enable_deliver" type="primary" plain
|
||||
@click="deliverNode">转交
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="addNode"
|
||||
v-if="!ticketDetail.in_add_node && isDuty"
|
||||
>加签</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="
|
||||
isDuty &&
|
||||
ticketDetail.state_ &&
|
||||
ticketDetail.state_.enable_deliver
|
||||
"
|
||||
type="primary"
|
||||
plain
|
||||
@click="deliverNode"
|
||||
>转交
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="itemDetail.ticket_&&itemDetail.ticket_.state_.type === 1 && isOwn"
|
||||
v-if="
|
||||
itemDetail.ticket_ &&
|
||||
itemDetail.ticket_.state_.type === 1 &&
|
||||
isOwn
|
||||
"
|
||||
type="danger"
|
||||
@click="handleClose('2')"
|
||||
>关闭
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="itemDetail.ticket_&&itemDetail.ticket_.state_.enable_retreat && isOwn &&itemDetail.ticket_.state_.type !== 1"
|
||||
v-if="
|
||||
itemDetail.ticket_ &&
|
||||
itemDetail.ticket_.state_.enable_retreat &&
|
||||
isOwn &&
|
||||
itemDetail.ticket_.state_.type !== 1
|
||||
"
|
||||
type="danger"
|
||||
@click="handleClose('1')"
|
||||
>
|
||||
|
@ -183,14 +305,29 @@
|
|||
</div>
|
||||
<div v-if="isDuty && !ticketDetail.in_add_node">
|
||||
<el-button
|
||||
v-if="itemDetail.ticket_&& itemDetail.ticket_.state && itemDetail.ticket_.state_.type==1"
|
||||
type="primary" plain
|
||||
@click="itemDetailEdtil">前往编辑
|
||||
v-if="
|
||||
itemDetail.ticket_ &&
|
||||
itemDetail.ticket_.state &&
|
||||
itemDetail.ticket_.state_.type == 1
|
||||
"
|
||||
type="primary"
|
||||
plain
|
||||
@click="itemDetailEdtil"
|
||||
>前往编辑
|
||||
</el-button>
|
||||
|
||||
<el-button :loading="submitLoading" :disabled="submitLoading" v-for="item in operationBtn" :key="item.id" class="filter-item"
|
||||
:type="item.attribute_type===2?'danger':'primary'" @click="operationSubmit(item.id)">
|
||||
{{item.name}}
|
||||
<el-button
|
||||
:loading="submitLoading"
|
||||
:disabled="submitLoading"
|
||||
v-for="item in operationBtn"
|
||||
:key="item.id"
|
||||
class="filter-item"
|
||||
:type="
|
||||
item.attribute_type === 2 ? 'danger' : 'primary'
|
||||
"
|
||||
@click="operationSubmit(item.id)"
|
||||
>
|
||||
{{ item.name }}
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -226,37 +363,94 @@
|
|||
</el-main>
|
||||
</el-container>
|
||||
<el-dialog v-model="limitedAdd" title="加签">
|
||||
<el-form ref="Form" :model="addForm" label-width="100px" label-position="right">
|
||||
<el-form
|
||||
ref="Form"
|
||||
:model="addForm"
|
||||
label-width="100px"
|
||||
label-position="right"
|
||||
>
|
||||
<el-form-item label="处理人">
|
||||
<el-input style="width: 50%;" v-model="userName" disabled placeholder="选择处理人"></el-input>
|
||||
<scUserSelect v-model="addForm.toadd_user" :closable="true" :multiple="false"
|
||||
@handlerSubmit="addNodeHandlerSubmit"></scUserSelect>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="userName"
|
||||
disabled
|
||||
placeholder="选择处理人"
|
||||
></el-input>
|
||||
<scUserSelect
|
||||
v-model="addForm.toadd_user"
|
||||
:closable="true"
|
||||
:multiple="false"
|
||||
@handlerSubmit="addNodeHandlerSubmit"
|
||||
></scUserSelect>
|
||||
</el-form-item>
|
||||
<el-form-item label="加签原因">
|
||||
<el-input type="textarea" :rows="3" v-model="addForm.suggestion" placeholder="加签原因"/>
|
||||
<el-input
|
||||
type="textarea"
|
||||
:rows="3"
|
||||
v-model="addForm.suggestion"
|
||||
placeholder="加签原因"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div style="text-align: center">
|
||||
<el-button class="filter-item" type="" @click="addCancel">取消</el-button>
|
||||
<el-button class="filter-item" type="primary" @click="addNodeHandler('1')">确定</el-button>
|
||||
<el-button class="filter-item" type="" @click="addCancel"
|
||||
>取消</el-button
|
||||
>
|
||||
<el-button
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
@click="addNodeHandler('1')"
|
||||
>确定</el-button
|
||||
>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<el-dialog v-model="limitedDeliver" title="转交工单">
|
||||
<el-form ref="Form" :model="deliverForm" label-width="100px" label-position="right">
|
||||
<el-form
|
||||
ref="Form"
|
||||
:model="deliverForm"
|
||||
label-width="100px"
|
||||
label-position="right"
|
||||
>
|
||||
<el-form-item label="转交人">
|
||||
<el-input style="width: 50%;" v-model="userName" disabled placeholder="选择转交人"></el-input>
|
||||
<scUserSelect :closable="true" :multiple="false" @handlerSubmit="deliverHandlerSubmit"></scUserSelect>
|
||||
<el-input
|
||||
style="width: 50%"
|
||||
v-model="userName"
|
||||
disabled
|
||||
placeholder="选择转交人"
|
||||
></el-input>
|
||||
<scUserSelect
|
||||
:closable="true"
|
||||
:multiple="false"
|
||||
@handlerSubmit="deliverHandlerSubmit"
|
||||
></scUserSelect>
|
||||
</el-form-item>
|
||||
<el-form-item label="转交原因">
|
||||
<el-input type="textarea" :rows="3" v-model="deliverForm.suggestion" placeholder="转交原因"/>
|
||||
<el-input
|
||||
type="textarea"
|
||||
:rows="3"
|
||||
v-model="deliverForm.suggestion"
|
||||
placeholder="转交原因"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div style="text-align: center">
|
||||
<el-button class="filter-item" type="" @click="deliverCancel">取消</el-button>
|
||||
<el-button class="filter-item" type="primary" @click="deliverNodeHandler('1')">确定</el-button>
|
||||
<el-button class="filter-item" type="" @click="deliverCancel"
|
||||
>取消</el-button
|
||||
>
|
||||
<el-button
|
||||
class="filter-item"
|
||||
type="primary"
|
||||
@click="deliverNodeHandler('1')"
|
||||
>确定</el-button
|
||||
>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<el-drawer :size="'50%'" v-model="showLimited" title="作业许可证详情" :close-on-click-modal="false">
|
||||
<el-drawer
|
||||
:size="'50%'"
|
||||
v-model="showLimited"
|
||||
title="作业许可证详情"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<sc-fire :id="projectId"></sc-fire>
|
||||
</el-drawer>
|
||||
<el-dialog v-model="limitedRetreat" :title="handleTitle">
|
||||
|
@ -286,17 +480,17 @@
|
|||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import workDetails from "./details.vue";
|
||||
import workStep from "./steps.vue";
|
||||
import showDialog from "../rpm/rpj_show.vue";
|
||||
import visitDialog from "../vm/visit_detial.vue";
|
||||
import workDetails from "./details.vue";
|
||||
import workStep from "./steps.vue";
|
||||
import showDialog from "../rpm/rpj_show.vue";
|
||||
import visitDialog from "../vm/visit_detial.vue";
|
||||
|
||||
export default {
|
||||
export default {
|
||||
components: {
|
||||
workDetails,
|
||||
workStep,
|
||||
showDialog,
|
||||
visitDialog
|
||||
visitDialog,
|
||||
},
|
||||
name: "ticketdetail",
|
||||
data() {
|
||||
|
@ -307,26 +501,27 @@
|
|||
handleLabel: "撤回原因",
|
||||
handleTitle: "撤回工单",
|
||||
limitedRetreat: false,
|
||||
ticketId: "",//工单id
|
||||
projectId: "",//对应项目的id
|
||||
ticketId: "", //工单id
|
||||
projectId: "", //对应项目的id
|
||||
mainLoading: false,
|
||||
userName: "",
|
||||
itemDetail:{},
|
||||
itemDetail: {},
|
||||
ticketDetail: {},
|
||||
employeeLists: [],
|
||||
operationBtn: [],
|
||||
routepackes: [],
|
||||
form: {
|
||||
suggestion: '',
|
||||
close_note: '',
|
||||
suggestion: "",
|
||||
close_note: "",
|
||||
close_dos: [],
|
||||
},
|
||||
addForm: {
|
||||
suggestion: '',
|
||||
toadd_user: '',
|
||||
suggestion: "",
|
||||
toadd_user: "",
|
||||
},
|
||||
deliverForm: {
|
||||
suggestion: '',
|
||||
target_user: '',
|
||||
suggestion: "",
|
||||
target_user: "",
|
||||
},
|
||||
rpjShow: false,
|
||||
visitShow: false,
|
||||
|
@ -338,7 +533,7 @@
|
|||
10: "参观",
|
||||
20: "拜访",
|
||||
30: "面试",
|
||||
40: "开会"
|
||||
40: "开会",
|
||||
},
|
||||
rpjType_: {
|
||||
10: "建筑施工",
|
||||
|
@ -352,7 +547,7 @@
|
|||
30: "待入厂",
|
||||
40: "进行中",
|
||||
50: "已完成",
|
||||
60: "已关闭"
|
||||
60: "已关闭",
|
||||
},
|
||||
state2_: {
|
||||
10: "创建中",
|
||||
|
@ -363,19 +558,19 @@
|
|||
},
|
||||
levelOptions: {
|
||||
10: "一般",
|
||||
20: "重要"
|
||||
20: "重要",
|
||||
},
|
||||
noteOption: [
|
||||
{id: 10, name: '作业正常结束'},
|
||||
{id: 20, name: '因计划改变停止作业'},
|
||||
{id: 30, name: '因发生异常终止作业'},
|
||||
{id: 40, name: '其他'},
|
||||
{ id: 10, name: "作业正常结束" },
|
||||
{ id: 20, name: "因计划改变停止作业" },
|
||||
{ id: 30, name: "因发生异常终止作业" },
|
||||
{ id: 40, name: "其他" },
|
||||
],
|
||||
dosOption: [],
|
||||
submitLoading: false,
|
||||
userId: this.$TOOL.data.get("USER_INFO").id,
|
||||
isOwn: false,
|
||||
isDuty: false
|
||||
isDuty: false,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
|
@ -386,10 +581,12 @@
|
|||
},
|
||||
mounted() {
|
||||
this.submitLoading = false;
|
||||
if (this.cateType === 'visit') {
|
||||
if (this.cateType === "visit") {
|
||||
this.getVisit();
|
||||
} else if (this.cateType === 'rpj') {
|
||||
} else if (this.cateType === "rpj") {
|
||||
this.getRpj();
|
||||
} else if (this.cateType === "routepack") {
|
||||
this.getRoutePack();
|
||||
} else {
|
||||
this.getOpl();
|
||||
}
|
||||
|
@ -397,21 +594,21 @@
|
|||
this.getBtns();
|
||||
},
|
||||
methods: {
|
||||
itemDetailEdtil(){
|
||||
itemDetailEdtil() {
|
||||
let itemDetail = this.itemDetail;
|
||||
if(this.cateType === 'opl'){
|
||||
if (this.cateType === "opl") {
|
||||
this.$router.push({
|
||||
name: itemDetail.cate_code,
|
||||
query: {oplId:itemDetail.id}
|
||||
})
|
||||
}else if(this.cateType === 'rpj'){
|
||||
query: { oplId: itemDetail.id },
|
||||
});
|
||||
} else if (this.cateType === "rpj") {
|
||||
this.$router.push({
|
||||
name: "rpjadd",
|
||||
query: {
|
||||
rpjid: itemDetail.id, //访问项目id
|
||||
},
|
||||
});
|
||||
}else if(this.cateType === 'visit'){
|
||||
} else if (this.cateType === "visit") {
|
||||
this.$router.push({
|
||||
name: "vistoradd",
|
||||
query: {
|
||||
|
@ -419,7 +616,6 @@
|
|||
},
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
handleClose(index) {
|
||||
if (index === "1") {
|
||||
|
@ -445,79 +641,103 @@
|
|||
})
|
||||
.then(() => {
|
||||
if (that.handleTitle === "撤回工单") {
|
||||
that.$API.wf.ticket.ticketRetreat.req(
|
||||
that.ticketId,
|
||||
that.handleForm
|
||||
).then(res=>{that.limitedRetreat=false;window.location.reload()})
|
||||
that.$API.wf.ticket.ticketRetreat
|
||||
.req(that.ticketId, that.handleForm)
|
||||
.then((res) => {
|
||||
that.limitedRetreat = false;
|
||||
window.location.reload();
|
||||
});
|
||||
} else {
|
||||
that.$API.wf.ticket.ticketClose.req(
|
||||
that.ticketId,
|
||||
that.handleForm
|
||||
).then(res=>{that.limitedRetreat=false;window.location.reload()});
|
||||
that.$API.wf.ticket.ticketClose
|
||||
.req(that.ticketId, that.handleForm)
|
||||
.then((res) => {
|
||||
that.limitedRetreat = false;
|
||||
window.location.reload();
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
that.limitedRetreat=false
|
||||
that.limitedRetreat = false;
|
||||
});
|
||||
},
|
||||
//关闭工作
|
||||
getCloseDos() {
|
||||
this.$API.system.dict.list
|
||||
.req({page: 0, type__code: "close_options"})
|
||||
.req({ page: 0, type__code: "close_options" })
|
||||
.then((res) => {
|
||||
let dosOption = res.filter(item => {
|
||||
return item.is_used
|
||||
let dosOption = res.filter((item) => {
|
||||
return item.is_used;
|
||||
});
|
||||
this.dosOption = dosOption.slice(0, 3)
|
||||
this.dosOption = dosOption.slice(0, 3);
|
||||
});
|
||||
},
|
||||
showMore() {
|
||||
this.rpjShow = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.showDialog.open().setData({id: this.projectId});
|
||||
})
|
||||
this.$refs.showDialog.open().setData({ id: this.projectId });
|
||||
});
|
||||
},
|
||||
showMoreVisit() {
|
||||
this.visitShow = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.visitDialog.open('show').setData({id: this.projectId});
|
||||
})
|
||||
this.$refs.visitDialog
|
||||
.open("show")
|
||||
.setData({ id: this.projectId });
|
||||
});
|
||||
},
|
||||
//工单详情
|
||||
getticketItem() {
|
||||
this.mainLoading = true
|
||||
this.$API.wf.ticket.ticketItem.req(this.ticketId).then((res) => {
|
||||
this.mainLoading = true;
|
||||
this.$API.wf.ticket.ticketItem
|
||||
.req(this.ticketId)
|
||||
.then((res) => {
|
||||
this.mainLoading = false;
|
||||
this.ticketDetail = res;
|
||||
|
||||
if(this.ticketDetail.state_.key == 'opl_close'){
|
||||
if (this.ticketDetail.state_.key == "opl_close") {
|
||||
// 如果是作业关闭,展示需要提交的表单
|
||||
this.getCloseDos()
|
||||
this.getCloseDos();
|
||||
}
|
||||
// 判断是不是我的或该我处理的
|
||||
if(this.ticketDetail.create_by == this.userId){
|
||||
this.isOwn = true
|
||||
if (this.ticketDetail.create_by == this.userId) {
|
||||
this.isOwn = true;
|
||||
}
|
||||
let participant = this.ticketDetail.participant
|
||||
if(participant==this.userId || participant.indexOf(this.userId)>-1){
|
||||
this.isDuty = true
|
||||
let participant = this.ticketDetail.participant;
|
||||
if (
|
||||
participant == this.userId ||
|
||||
participant.indexOf(this.userId) > -1
|
||||
) {
|
||||
this.isDuty = true;
|
||||
}
|
||||
}).catch(e=>{this.mainLoading = false});
|
||||
})
|
||||
.catch((e) => {
|
||||
this.mainLoading = false;
|
||||
});
|
||||
},
|
||||
//获取应有的流转
|
||||
getBtns() {
|
||||
this.$API.wf.ticket.ticketTransitions.req(this.ticketId).then(res => {
|
||||
this.$API.wf.ticket.ticketTransitions
|
||||
.req(this.ticketId)
|
||||
.then((res) => {
|
||||
this.operationBtn = res;
|
||||
})
|
||||
});
|
||||
},
|
||||
|
||||
//访客详情
|
||||
getVisit() {
|
||||
this.$API.vm.visit.read.req(this.projectId).then((res) => {
|
||||
this.itemDetail = res;
|
||||
});
|
||||
},
|
||||
|
||||
getRoutePack() {
|
||||
let that = this;
|
||||
this.$API.mtm.routepack.item.req(this.projectId).then((res) => {
|
||||
console.log("routepackitem", res);
|
||||
this.$API.mtm.route.list
|
||||
.req({ page: 0, material: res.material })
|
||||
.then((res) => {
|
||||
that.routepackes = res;
|
||||
});
|
||||
});
|
||||
},
|
||||
//入厂项目详情
|
||||
getRpj() {
|
||||
this.$API.rpm.rpj.item.req(this.projectId).then((res) => {
|
||||
|
@ -529,7 +749,7 @@
|
|||
getOpl() {
|
||||
this.$API.opm.opl.read.req(this.projectId).then((res) => {
|
||||
debugger;
|
||||
console.log(res)
|
||||
console.log(res);
|
||||
this.itemDetail = res;
|
||||
this.operationId = res.operation;
|
||||
});
|
||||
|
@ -550,10 +770,16 @@
|
|||
},
|
||||
addNodeHandler(index) {
|
||||
let res = null;
|
||||
if (index === '1') {
|
||||
res = this.$API.wf.ticket.addNode.req(this.ticketId, this.addForm);
|
||||
if (index === "1") {
|
||||
res = this.$API.wf.ticket.addNode.req(
|
||||
this.ticketId,
|
||||
this.addForm
|
||||
);
|
||||
} else {
|
||||
res = this.$API.wf.ticket.addNodeEnd.req(this.ticketId, this.form);
|
||||
res = this.$API.wf.ticket.addNodeEnd.req(
|
||||
this.ticketId,
|
||||
this.form
|
||||
);
|
||||
}
|
||||
if (res.err_msg) {
|
||||
} else {
|
||||
|
@ -574,13 +800,15 @@
|
|||
this.userName = data.name;
|
||||
},
|
||||
deliverNodeHandler() {
|
||||
this.$API.wf.ticket.ticketDeliver.req(this.ticketId, this.deliverForm).then(res => {
|
||||
this.$API.wf.ticket.ticketDeliver
|
||||
.req(this.ticketId, this.deliverForm)
|
||||
.then((res) => {
|
||||
if (res.err_msg) {
|
||||
} else {
|
||||
this.limitedDeliver = false;
|
||||
this.$router.push("dutywork");
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
//转交处理-end
|
||||
//流转按钮触发
|
||||
|
@ -589,51 +817,56 @@
|
|||
params.transition = id;
|
||||
params.ticket_data = {};
|
||||
params.suggestion = this.form.suggestion;
|
||||
this.submitLoading = true
|
||||
if (this.ticketDetail.state_.key === 'opl_close') {
|
||||
this.submitLoading = true;
|
||||
if (this.ticketDetail.state_.key === "opl_close") {
|
||||
params.ticket_data.close_note = this.form.close_note;
|
||||
params.ticket_data.close_dos = this.form.close_dos;
|
||||
}
|
||||
this.$API.wf.ticket.ticketHandle.req(this.ticketId, params).then(res => {
|
||||
this.$API.wf.ticket.ticketHandle
|
||||
.req(this.ticketId, params)
|
||||
.then((res) => {
|
||||
if (res.err_msg) {
|
||||
} else {
|
||||
this.$router.push("dutywork");
|
||||
this.submitLoading = false;
|
||||
}
|
||||
}).catch(e=>{this.submitLoading=false;})
|
||||
})
|
||||
.catch((e) => {
|
||||
this.submitLoading = false;
|
||||
});
|
||||
},
|
||||
reStart() {
|
||||
this.$API.wf.ticket.retryScript.req(this.ticketId).then(res => {
|
||||
this.$API.wf.ticket.retryScript.req(this.ticketId).then((res) => {
|
||||
// this.$router.push("dutywork");
|
||||
this.$router.back(-1)
|
||||
this.$router.back(-1);
|
||||
this.$message.success("任务执行下发成功");
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
#adminui-main>.el-container{
|
||||
#adminui-main > .el-container {
|
||||
position: relative !important;
|
||||
}
|
||||
.el-main{
|
||||
.el-main {
|
||||
padding-bottom: 200px;
|
||||
}
|
||||
.ticketRetry {
|
||||
.ticketRetry {
|
||||
right: 20px;
|
||||
top: 30px;
|
||||
position: absolute;
|
||||
}
|
||||
.handleWrap{
|
||||
}
|
||||
.handleWrap {
|
||||
position: absolute;
|
||||
min-height: 100px;
|
||||
padding: 10px;
|
||||
width:100%;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
bottom: 0;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
z-index: 10
|
||||
}
|
||||
z-index: 10;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -9,7 +9,11 @@
|
|||
stripe
|
||||
highlightCurrentRow
|
||||
>
|
||||
<el-table-column label="流水号" prop="sn" width="180"></el-table-column>
|
||||
<el-table-column
|
||||
label="流水号"
|
||||
prop="sn"
|
||||
width="180"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="工单标题"
|
||||
prop="title"
|
||||
|
@ -51,12 +55,19 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="可处理人" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.participant_type==2 || scope.row.participant_type == 1">
|
||||
<span v-for="item in scope.row.participant_" :key="item.id">{{ item.name}}/</span>
|
||||
</span>
|
||||
<span v-else>
|
||||
无
|
||||
<span
|
||||
v-if="
|
||||
scope.row.participant_type == 2 ||
|
||||
scope.row.participant_type == 1
|
||||
"
|
||||
>
|
||||
<span
|
||||
v-for="item in scope.row.participant_"
|
||||
:key="item.id"
|
||||
>{{ item.name }}/</span
|
||||
>
|
||||
</span>
|
||||
<span v-else> 无 </span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
|
@ -64,7 +75,12 @@
|
|||
prop="create_time"
|
||||
width="150"
|
||||
></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="center" width="100">
|
||||
<el-table-column
|
||||
label="操作"
|
||||
fixed="right"
|
||||
align="center"
|
||||
width="100"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
text
|
||||
|
@ -114,6 +130,8 @@ export default {
|
|||
} else if (cateType.indexOf("opl_") != -1) {
|
||||
projectId = row.ticket_data.opl;
|
||||
cateType = "opl";
|
||||
} else if (cateType == "routepack") {
|
||||
projectId = row.ticket_data.t_id;
|
||||
}
|
||||
this.$router.push({
|
||||
path: "ticketdetail",
|
||||
|
@ -129,5 +147,4 @@ export default {
|
|||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
</style>
|
||||
<style scoped></style>
|
||||
|
|
Loading…
Reference in New Issue