Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop
This commit is contained in:
commit
bd6286931f
|
@ -147,7 +147,9 @@ export default {
|
|||
text-align: center;
|
||||
line-height: 50px;
|
||||
border-radius: 26px;
|
||||
background: #ffffff;
|
||||
border: 2px solid #409EFF;
|
||||
box-shadow: 0 0 8px 3px rgba(0,0,0,0.1);
|
||||
}
|
||||
.typeWrap{
|
||||
display: none;
|
||||
|
|
|
@ -503,6 +503,13 @@ export const asyncRoutes = [
|
|||
meta: { title: '工单处理', icon: 'example',noCache: true,},
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: 'ticketDetail',
|
||||
name: 'ticketDetail',
|
||||
component: () => import('@/views/workflow/ticketDetail'),
|
||||
meta: { title: '工单详情', icon: 'example',noCache: true,},
|
||||
hidden: true
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
@ -52,22 +52,24 @@
|
|||
</div>
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
:data="list"
|
||||
:data="planList"
|
||||
border fit stripe
|
||||
height="300"
|
||||
>
|
||||
<el-table-column type="index" width="50" />
|
||||
<el-table-column label="任务编号">
|
||||
<template slot-scope="scope">{{ scope.row.id }}</template>
|
||||
<el-table-column label="任务编号" prop="number">
|
||||
</el-table-column>
|
||||
<el-table-column label="产品名称">
|
||||
<template slot-scope="scope">{{ scope.row.name }}</template>
|
||||
<template slot-scope="scope">{{ scope.row.product_.name }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="产品型号">
|
||||
<template slot-scope="scope">{{ scope.row.card }}</template>
|
||||
<template slot-scope="scope">{{ scope.row.product_.specification }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="生产数量">
|
||||
<template slot-scope="scope">{{ scope.row.sco }}</template>
|
||||
<el-table-column label="生产数量" prop="count">
|
||||
</el-table-column>
|
||||
<el-table-column label="开始时间" prop="start_date">
|
||||
</el-table-column>
|
||||
<el-table-column label="结束时间" prop="end_date">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
@ -102,7 +104,7 @@
|
|||
<el-col :span="12">
|
||||
<el-card>
|
||||
<div class="dashboardCardHand">
|
||||
<div class="dashboardCardTitle">库存列表</div>
|
||||
<div class="dashboardCardTitle">库存列表 <span class="stockMore" @click="stockMore">更多>></span></div>
|
||||
<div class="block">
|
||||
<el-pagination
|
||||
:current-page.sync="stockPage"
|
||||
|
@ -119,30 +121,29 @@
|
|||
</div>
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
:data="list"
|
||||
:data="stockList"
|
||||
border fit stripe
|
||||
height="300"
|
||||
>
|
||||
<el-table-column label="物料编号">
|
||||
<template slot-scope="scope">{{ scope.row.id }}</template>
|
||||
<el-table-column label="物料编号" prop="material_">
|
||||
<template slot-scope="scope">{{ scope.row.material_.number }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="物料名称">
|
||||
<template slot-scope="scope">{{ scope.row.name }}</template>
|
||||
<el-table-column label="物料名称" prop="material_">
|
||||
<template slot-scope="scope">{{ scope.row.material_.name }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="规格型号">
|
||||
<template slot-scope="scope">{{ scope.row.card }}</template>
|
||||
<el-table-column label="规格型号" prop="material_">
|
||||
<template slot-scope="scope">{{ scope.row.material_.specification }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="物料类型">
|
||||
<template slot-scope="scope">{{ scope.row.sco }}</template>
|
||||
<el-table-column label="物料类型" prop="material_">
|
||||
<template slot-scope="scope">{{options[scope.row.material_.type]}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单位">
|
||||
<template slot-scope="scope">{{ scope.row.name }}</template>
|
||||
<el-table-column label="单位" prop="material_">
|
||||
<template slot-scope="scope">{{scope.row.material_.unit}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="库存">
|
||||
<template slot-scope="scope">{{ scope.row.card }}</template>
|
||||
<el-table-column label="库存" prop="count">
|
||||
</el-table-column>
|
||||
<el-table-column label="仓库">
|
||||
<template slot-scope="scope">{{ scope.row.sco }}</template>
|
||||
<el-table-column label="仓库" prop="warehouse_">
|
||||
<template slot-scope="scope">{{ scope.row.warehouse_.name }}</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
@ -163,25 +164,25 @@
|
|||
</el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
<div class="lists">
|
||||
<ul style="padding-right: 40px">
|
||||
<li style="height: 50px;line-height: 50px;font-size: 20px">
|
||||
<div style="display: flex;justify-content: space-between">
|
||||
<div>
|
||||
<ul class="lists">
|
||||
<li class="listItem">
|
||||
<div class="itemText">
|
||||
<span>玻璃低于安全库存</span><span>2021-12-30</span>
|
||||
</div>
|
||||
</li>
|
||||
<li style="height: 50px;line-height: 50px;font-size: 20px">
|
||||
<div style="display: flex;justify-content: space-between">
|
||||
<li class="listItem">
|
||||
<div class="itemText">
|
||||
<span>某某批货临近交货日期</span><span>2021-12-20</span>
|
||||
</div>
|
||||
</li>
|
||||
<li style="height: 50px;line-height: 50px;font-size: 20px">
|
||||
<div style="display: flex;justify-content: space-between">
|
||||
<li class="listItem">
|
||||
<div class="itemText">
|
||||
<span>玻璃低于安全库存</span><span>2021-11-30</span>
|
||||
</div>
|
||||
</li>
|
||||
<li style="height: 50px;line-height: 50px;font-size: 20px">
|
||||
<div style="display: flex;justify-content: space-between">
|
||||
<li class="listItem">
|
||||
<div class="itemText">
|
||||
<span>某某批货临近交货日期</span><span>2021-11-20</span>
|
||||
</div>
|
||||
</li>
|
||||
|
@ -204,6 +205,9 @@
|
|||
<script>
|
||||
import echarts from 'echarts'
|
||||
import { mapGetters } from 'vuex';
|
||||
import { getInventoryList } from "@/api/inm";
|
||||
import { getProductionplanList} from "@/api/pm";
|
||||
|
||||
export default {
|
||||
name: 'Dashboard',
|
||||
data() {
|
||||
|
@ -212,19 +216,31 @@ export default {
|
|||
stockPage:1,
|
||||
stockPageSize:10,
|
||||
stockTotal:100,
|
||||
remindPage:2,
|
||||
remindPage:1,
|
||||
remindPageSize:20,
|
||||
remindTotal:100,
|
||||
tableIndex:null,
|
||||
chartIndex:null,
|
||||
tableDate:'2021-12',
|
||||
chartDate:'2021-12',
|
||||
|
||||
planList:[],
|
||||
stockList:[],
|
||||
remindList:[],
|
||||
list:[
|
||||
{id:1,name:'HIehd9',card:'3337',sco:'REF-32'},
|
||||
{id:1,name:'HIehd9',card:'3337',sco:'REF-32'},
|
||||
{id:1,name:'HIehd9',card:'3337',sco:'REF-32'}
|
||||
],
|
||||
options:{
|
||||
|
||||
"1":'成品',
|
||||
"2":'半成品',
|
||||
"3":'主要原料',
|
||||
"4":'辅助材料',
|
||||
"5":'加工工具',
|
||||
"6":'辅助工装',
|
||||
|
||||
},
|
||||
seriesData:[80,60,60, 70, 76, 80, 90, 70],
|
||||
}
|
||||
},
|
||||
|
@ -244,6 +260,29 @@ export default {
|
|||
this.$router.push({name:'ticket',params:{}})
|
||||
}
|
||||
},
|
||||
//任务排期列表
|
||||
getPlanList() {
|
||||
let that = this;
|
||||
this.listLoading = true;
|
||||
getProductionplanList({page:0}).then((response) => {
|
||||
if (response.data) {
|
||||
that.planList = response.data;
|
||||
}
|
||||
this.listLoading = false;
|
||||
});
|
||||
},
|
||||
//库存列表
|
||||
getStockList() {
|
||||
let that = this;
|
||||
this.listLoading = true;
|
||||
getInventoryList({page:this.stockPage,page_size:this.stockPageSize}).then((response) => {
|
||||
if (response.data) {
|
||||
that.stockList = response.data.results;
|
||||
that.stockTotal = response.data.count;
|
||||
}
|
||||
this.listLoading = false;
|
||||
});
|
||||
},
|
||||
//图标渲染
|
||||
drawChart() {
|
||||
this.chartColumn = echarts.init(document.getElementById('chartColumn'));
|
||||
|
@ -274,7 +313,7 @@ export default {
|
|||
}
|
||||
},
|
||||
xAxis: {
|
||||
name:'工序',
|
||||
// name:'工序',
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
|
@ -328,6 +367,9 @@ export default {
|
|||
}]
|
||||
});
|
||||
},
|
||||
stockMore(){
|
||||
this.$router.push({name:'warehouse',params:{}})
|
||||
},
|
||||
//便捷查询按钮
|
||||
convenientClick(index,type){
|
||||
let startTime = '',endTime = '',url='',activeIndex = '1',obj = new Object();
|
||||
|
@ -377,7 +419,15 @@ export default {
|
|||
this.stockPage = 1;
|
||||
},
|
||||
handleStockCurrentChange(val){
|
||||
console.log(`当前页: ${val}`);
|
||||
let that = this;
|
||||
this.listLoading = true;
|
||||
getInventoryList({page:val,page_size:this.stockPageSize}).then((response) => {
|
||||
if (response.data) {
|
||||
that.stockList = response.data.results;
|
||||
that.stockTotal = response.data.count;
|
||||
}
|
||||
this.listLoading = false;
|
||||
});
|
||||
},
|
||||
handleRemindSizeChange(val){
|
||||
this.remindPageSize = val;
|
||||
|
@ -389,7 +439,9 @@ export default {
|
|||
},
|
||||
|
||||
mounted () {
|
||||
this.drawChart()
|
||||
this.drawChart();
|
||||
this.getPlanList();
|
||||
this.getStockList();
|
||||
},
|
||||
updated () {
|
||||
this.drawChart()
|
||||
|
@ -409,6 +461,7 @@ export default {
|
|||
margin-bottom: 5px;
|
||||
.cards{
|
||||
width: 240px;
|
||||
max-width: 18%;
|
||||
color: #ffffff;
|
||||
background: #abccec;
|
||||
text-align: center;
|
||||
|
@ -416,7 +469,7 @@ export default {
|
|||
padding: 10px;
|
||||
line-height: 30px;
|
||||
float: left;
|
||||
margin: 15px;
|
||||
margin: 15px 1%;
|
||||
.cardFirstText{
|
||||
text-align: left;
|
||||
padding-left: 20px;
|
||||
|
@ -437,9 +490,15 @@ export default {
|
|||
.dashboardCardTitle{
|
||||
height: 35px;
|
||||
line-height:35px;
|
||||
font-size: 24px;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
vertical-align: middle;
|
||||
.stockMore{
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
color: #409EFF;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
.dashboardCardFilter{
|
||||
display: flex;
|
||||
|
@ -472,5 +531,17 @@ export default {
|
|||
|
||||
}
|
||||
|
||||
}
|
||||
.lists{
|
||||
padding-right: 40px;
|
||||
.listItem{
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
font-size: 18px;
|
||||
.itemText{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -68,6 +68,7 @@
|
|||
<el-link v-if="scope.row.state_.type==1&&userId==1" type="danger" @click="handleClose(scope,'2')">关闭</el-link>
|
||||
<!--如果state_.retreat为可退回,则显示撤回按钮 state_.type==1处于草稿状态 -->
|
||||
<el-link v-if="scope.row.state_.enable_retreat&&userId==scope.row.create_by&&scope.row.state_.type!==1" type="danger" @click="handleClose(scope,'1')">撤回</el-link>
|
||||
<el-link type="primary" @click="handleDetails(scope)">详情</el-link>
|
||||
<el-link type="success" @click="handleDelete(scope)">删除</el-link>
|
||||
<el-link type="success" @click="handlePicture(scope)">查看流程图</el-link>
|
||||
<el-link type="success" @click="handleLogs(scope)">工单日志</el-link>
|
||||
|
@ -117,6 +118,7 @@
|
|||
<el-link v-else-if="(scope.row.act_state==1||scope.row.act_state==3)&&scope.row.participant_type!==2&&scope.row.state_.type===0" type="primary" @click="handleDetail(scope)">处理</el-link>
|
||||
-->
|
||||
<el-link v-if="scope.row.state_.type==1&&userId==1" type="danger" @click="handleClose(scope,'2')">关闭</el-link>
|
||||
<el-link type="primary" @click="handleDetails(scope)">详情</el-link>
|
||||
<el-link type="success" @click="handlePicture(scope)">查看流程图</el-link>
|
||||
<el-link type="success" @click="handleLogs(scope)">工单日志</el-link>
|
||||
</template>
|
||||
|
@ -163,6 +165,7 @@
|
|||
<template slot-scope="scope" v-if="scope.row.state_">
|
||||
<el-link v-if="scope.row.state_.enable_retreat&&scope.row.state_.type!==1" type="danger" @click="handleClose(scope,'1')">撤回</el-link>
|
||||
<el-link v-if="scope.row.state_.type==1" type="danger" @click="handleClose(scope,'2')">关闭</el-link>
|
||||
<el-link type="primary" @click="handleDetails(scope)">详情</el-link>
|
||||
<el-link type="success" @click="handleDelete(scope)">删除</el-link>
|
||||
<el-link type="success" @click="handlePicture(scope)">查看流程图</el-link>
|
||||
<el-link type="success" @click="handleLogs(scope)">工单日志</el-link>
|
||||
|
@ -208,6 +211,7 @@
|
|||
</el-table-column>
|
||||
<el-table-column align="center" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-link type="primary" @click="handleDetails(scope)">详情</el-link>
|
||||
<el-link type="danger" @click="handlePicture(scope)">查看流程图</el-link>
|
||||
<el-link type="success" @click="handleLogs(scope)">工单日志</el-link>
|
||||
</template>
|
||||
|
@ -866,6 +870,10 @@
|
|||
handleDetail(scope){
|
||||
this.$router.push({name:"ticketHandle",params:{ticketId:scope.row.id,workflow:scope.row.workflow}})
|
||||
},
|
||||
//工单详情
|
||||
handleDetails(scope){
|
||||
this.$router.push({name:"ticketDetail",params:{ticketId:scope.row.id,workflow:scope.row.workflow}})
|
||||
},
|
||||
//接单
|
||||
handleGetTicket(scope){
|
||||
let ticketId = scope.row.id;
|
||||
|
|
|
@ -0,0 +1,563 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-card style="margin-bottom: 10px">
|
||||
<el-steps :active="actives" spac="400px" align-center="" style="padding-top: 20px;">
|
||||
<el-step :title="item.name" v-for="item in flowSteps " :key="item.id"></el-step>
|
||||
</el-steps>
|
||||
</el-card>
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-card>
|
||||
<svg height=800 id="mySvg" style="width:100%!important;"></svg>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="16">
|
||||
<el-card style="margin-left: 10px">
|
||||
<p style="text-align: center;font-size: 20px">{{ticketDetail.title}}</p>
|
||||
<el-col :span="12">
|
||||
<div class="items">
|
||||
<span class="itemLabel">工作流:</span>
|
||||
<span>{{ticketDetail.workflow_.name}}</span>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<div class="items">
|
||||
<span class="itemLabel">流水号:</span>
|
||||
<span>{{ticketDetail.sn}}</span>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<div class="items">
|
||||
<span class="itemLabel">创建时间:</span>
|
||||
<span>{{ticketDetail.create_time}}</span>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col v-for="item in ticketDetail.ticket_data_" :key="item.id" :span="12">
|
||||
<div class="items">
|
||||
<span class="itemLabel">{{item.field_name}}:</span>
|
||||
<span>{{item.field_display}}</span>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-card>
|
||||
<el-card style="margin-left: 10px">
|
||||
<el-table :data="logs" fit stripe
|
||||
style="width: 100%;border-top:1px solid #EBEEF5;"
|
||||
height="500"
|
||||
highlight-current-row
|
||||
>
|
||||
<el-table-column label="工单标题" min-width="100">
|
||||
<template slot-scope="scope" v-if="scope.row.ticket_data">
|
||||
<span>{{scope.row.ticket_data.title}}中</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="进行状态" min-width="100">
|
||||
<template slot-scope="scope" v-if="scope.row.state_">
|
||||
<span v-if="scope.row.state_.type==0">{{scope.row.state_.name}}中</span>
|
||||
<span v-else>已{{scope.row.state_.name}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作人" min-width="100">
|
||||
<template slot-scope="scope" v-if="scope.row.participant_">{{ scope.row.participant_.name }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作意见" min-width="100" prop="suggestion">
|
||||
</el-table-column>
|
||||
<el-table-column label="更新时间" min-width="100" prop="update_time">
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
<script src="https://d3js.org/d3.v4.min.js"></script>
|
||||
<script>
|
||||
import {getOrgAll} from "@/api/org";
|
||||
import {upUrl, upHeaders} from "@/api/file";
|
||||
import {getUserList} from "@/api/user";
|
||||
import {
|
||||
getWorkflowList, getWfCustomfieldList, getWfStateList, getWfTransitionList, ticketHandle
|
||||
, getWfFlowSteps, getTicketDetail, getTicketTransitions, getTicketFlowlog, ticketRetreat,
|
||||
ticketAddNode, ticketAddNodeEnd, ticketClose
|
||||
} from "@/api/workflow";
|
||||
import Pagination from "@/components/Pagination";
|
||||
import dagreD3 from 'dagre-d3'
|
||||
import * as d3 from 'd3'
|
||||
|
||||
export default {
|
||||
name: "ticketDetail",
|
||||
components: {Pagination},
|
||||
inject: ['reload'],
|
||||
data() {
|
||||
return {
|
||||
step: 4,
|
||||
actives: 4,
|
||||
ticketId: 0,
|
||||
stateSteps: 0,
|
||||
ticketForm: {
|
||||
transition: '',
|
||||
ticket_data: {},
|
||||
suggestion: '',
|
||||
},
|
||||
handleType: '1',
|
||||
handleLabel: '撤回原因',
|
||||
handleTitle: '工单撤回',
|
||||
handleForm: {
|
||||
suggestion: '',
|
||||
},
|
||||
addForm: {
|
||||
toadd_user: '',
|
||||
suggestion: '',
|
||||
},
|
||||
tooltip: null,
|
||||
handleRule: {},
|
||||
upUrl: upUrl(),
|
||||
upHeaders: upHeaders(),
|
||||
userId: '',
|
||||
workflow: '',
|
||||
watchedName: '',
|
||||
watchedCreateTime: '',
|
||||
logs: [],
|
||||
orgList: [],
|
||||
staffs: [],
|
||||
edges: [],
|
||||
nodes: [],
|
||||
tooltip: [],
|
||||
fileList: [],
|
||||
workflows: [],
|
||||
flowSteps: [],
|
||||
ticketDetail: {},
|
||||
operationBtn: [],
|
||||
customfields: [],
|
||||
transitions: [],
|
||||
limitedAdd: false,
|
||||
limitedHandle: false,
|
||||
ticketFormRule: {},
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
let that = this;
|
||||
that.userId = sessionStorage.getItem('userId')
|
||||
let ticketId = that.ticketId = this.$route.params.ticketId;
|
||||
let workflow = that.workflow = this.$route.params.workflow;
|
||||
let handleTicketId = sessionStorage.getItem('handleTicketId');
|
||||
let handleTicketWorkflow = sessionStorage.getItem('handleTicketWorkflow');
|
||||
if (ticketId && workflow) {
|
||||
if (handleTicketId && handleTicketWorkflow) {
|
||||
sessionStorage.removeItem('handleTicketId');
|
||||
sessionStorage.removeItem('handleTicketWorkflow');
|
||||
sessionStorage.setItem('handleTicketId', ticketId);
|
||||
sessionStorage.setItem('handleTicketWorkflow', workflow);
|
||||
} else {
|
||||
sessionStorage.setItem('handleTicketId', ticketId);
|
||||
sessionStorage.setItem('handleTicketWorkflow', workflow);
|
||||
}
|
||||
} else {
|
||||
ticketId = that.ticketId = handleTicketId;
|
||||
workflow = that.workflow = handleTicketWorkflow;
|
||||
}
|
||||
this.getTicketFlowlogs(ticketId);
|
||||
getTicketTransitions(ticketId).then(res => {
|
||||
this.operationBtn = res.data;
|
||||
})
|
||||
getOrgAll().then((orgRes) => {
|
||||
that.orgList = orgRes.data;
|
||||
getUserList({page: 0}).then(userRes => {
|
||||
if (userRes.data) {
|
||||
that.staffs = userRes.data;
|
||||
getWfFlowSteps(ticketId).then((res) => {
|
||||
if (res.data) {
|
||||
//流程步骤数组
|
||||
that.flowSteps = res.data;
|
||||
getTicketDetail(ticketId).then((res) => {
|
||||
if (res.data) {
|
||||
that.tooltip = that.createTooltip();
|
||||
that.ticketDetail = res.data;
|
||||
for (let i = 0; i < that.ticketDetail.ticket_data_.length; i++) {
|
||||
if (that.ticketDetail.ticket_data_[i].label === "sys_user") {
|
||||
that.ticketDetail.ticket_data_[i].field_choice = that.staffs;
|
||||
}
|
||||
if (that.ticketDetail.ticket_data_[i].label === "deptSelect") {
|
||||
that.ticketDetail.ticket_data_[i].field_choice = that.orgList;
|
||||
}
|
||||
}
|
||||
console.log(that.ticketDetail.state_.enable_retreat);
|
||||
let state = res.data.state;
|
||||
let dat = that.flowSteps.filter((item) => {
|
||||
return item.id == state;
|
||||
})
|
||||
debugger;
|
||||
let state_fields = dat[0].state_fields;
|
||||
if (state_fields !== {}) {
|
||||
for (let labe in state_fields) {
|
||||
for (let j = 0; j < that.ticketDetail.ticket_data_.length; j++) {
|
||||
if (that.ticketDetail.ticket_data_[j].field_key === labe) {
|
||||
debugger;
|
||||
console.log(labe)
|
||||
console.log(state_fields[labe])
|
||||
if (state_fields[labe] !== 4) {
|
||||
that.ticketDetail.ticket_data_[j].is_hidden = false
|
||||
} else {
|
||||
that.ticketDetail.ticket_data_[j].is_hidden = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
that.sort = dat[0].sort;
|
||||
that.actives = that.flowSteps.indexOf(dat[0]);
|
||||
if (that.flowSteps.length - that.actives > 1) {
|
||||
} else {
|
||||
that.actives = that.flowSteps.length;
|
||||
}
|
||||
var g = new dagreD3.graphlib.Graph().setGraph({
|
||||
rankdir: 'DL',
|
||||
nodesep: 100,
|
||||
edgesep: 10,//两条线之间的距离
|
||||
ranksep: 50,//节点之间的距离
|
||||
marginx: 60,
|
||||
marginy: 20,
|
||||
});
|
||||
//获取state得到节点
|
||||
getWfStateList(workflow).then((response) => {
|
||||
if (response.data) {
|
||||
let nodes = response.data;
|
||||
|
||||
// 添加节点
|
||||
nodes.forEach((item) => {
|
||||
if (item.sort == that.sort) {
|
||||
g.setNode(item.id, {
|
||||
// 节点标签
|
||||
label: item.name,
|
||||
// 节点形状
|
||||
shape: 'rect',
|
||||
toolText: item.name,
|
||||
//节点样式
|
||||
style: "fill:#409EFF;stroke:#000",
|
||||
labelStyle: "fill:#000;",
|
||||
rx: 5,//矩形节点圆角度
|
||||
ry: 5
|
||||
});
|
||||
|
||||
} else {
|
||||
g.setNode(item.id, {
|
||||
// 节点标签
|
||||
label: item.name,
|
||||
// 节点形状
|
||||
shape: 'rect',
|
||||
toolText: item.name,
|
||||
//节点样式
|
||||
style: "fill:#fff;stroke:#000",
|
||||
labelStyle: "fill:#000;",
|
||||
rx: 5,//矩形节点圆角度
|
||||
ry: 5
|
||||
});
|
||||
}
|
||||
});
|
||||
g.nodes().forEach(function (v) {
|
||||
console.log("Node " + v + ": " + JSON.stringify(g.node(v)));
|
||||
});
|
||||
//获取流转得到线 链接关系
|
||||
getWfTransitionList(workflow).then((res) => {
|
||||
if (res.data) {
|
||||
let transitionList = res.data;
|
||||
transitionList.forEach((transitions) => {
|
||||
let transition0 = transitions;
|
||||
if (transition0.condition_expression.length > 0) {
|
||||
g.setNode(transition0.source_state_.id + 100000, {
|
||||
label: "条件表达式",
|
||||
style: "fill: #a4d088",
|
||||
shape: "diamond"
|
||||
});
|
||||
g.setEdge(transition0.source_state_.id, transition0.source_state_.id + 100000, {
|
||||
// 边标签
|
||||
label: transition0.name,
|
||||
style: "fill:#ffffff;stroke:#c0c1c3;stroke-width:1.5px"
|
||||
});
|
||||
let condition_expression = transition0.condition_expression;
|
||||
condition_expression.forEach(condition_expression0 => {
|
||||
g.setEdge(transition0.source_state_.id + 100000, condition_expression0.target_state, {
|
||||
label: condition_expression0.label,
|
||||
style: "fill:#ffffff;stroke:#c0c1c3;stroke-width:1.5px"
|
||||
})
|
||||
})
|
||||
} else {
|
||||
g.setEdge(transition0.source_state_.id, transition0.destination_state_.id, {
|
||||
// 边标签
|
||||
label: transition0.name,
|
||||
// 边样式
|
||||
style: "fill:#ffffff;stroke:#c0c1c3;stroke-width:1.5px" // 根据后台数据来改变连线的颜色
|
||||
});
|
||||
}
|
||||
})
|
||||
g.nodes().length - 1
|
||||
g.nodes().forEach(function (v) {
|
||||
console.log("Node " + v + ": " + JSON.stringify(g.node(v)));
|
||||
});
|
||||
// 创建渲染器
|
||||
let render = new dagreD3.render();
|
||||
// 选择 svg 并添加一个g元素作为绘图容器.
|
||||
let svg = d3.select('#mySvg');
|
||||
let svgGroup = svg.append('g');
|
||||
let zoom = d3.zoom()
|
||||
.on("zoom", function () {
|
||||
svgGroup.attr("transform", d3.event.transform);
|
||||
});
|
||||
svg.call(zoom);
|
||||
// 在绘图容器上运行渲染器生成流程图.
|
||||
render(d3.select("svg g"), g);
|
||||
// this.getTicketFlowlogs(ticketId);
|
||||
getTicketFlowlog(ticketId).then(res => {
|
||||
if (res.data) {
|
||||
that.logs = res.data;
|
||||
svgGroup
|
||||
.selectAll('g.node')
|
||||
.on('mouseover', (v) => {
|
||||
// 假如当前toolText为"",则不展示
|
||||
//这里就是自定义tooltip的内容
|
||||
let filList = [], strList = [];
|
||||
filList = nodes.filter((ii) => {
|
||||
return ii.name === g.node(v).label
|
||||
})
|
||||
if (!filList.length) {
|
||||
return
|
||||
}
|
||||
filList.map((k) => {
|
||||
let filte = that.logs.filter(item => {
|
||||
return item.state == k.id;
|
||||
})
|
||||
//每个
|
||||
let str = '处理人:' + filte[0].participant_.name;
|
||||
strList.push(str)
|
||||
})
|
||||
that.tipVisible(strList)
|
||||
})
|
||||
.on('mouseout', () => {
|
||||
this.tipHidden()
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
} else {
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
activated() {
|
||||
},
|
||||
methods: {
|
||||
getUser() {
|
||||
getUserList({}).then(res => {
|
||||
if (res.data) {
|
||||
this.staffs = res.data.results;
|
||||
}
|
||||
})
|
||||
},
|
||||
//工单流转记录
|
||||
getTicketFlowlogs(id) {
|
||||
getTicketFlowlog(id).then(res => {
|
||||
if (res.data) {
|
||||
this.logs = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
handlePreview(file) {
|
||||
if ("url" in file) {
|
||||
window.open(file.url);
|
||||
} else {
|
||||
window.open(file.response.data.path);
|
||||
}
|
||||
},
|
||||
handleUpSuccess(res, file, filelist) {
|
||||
this.process.instruction = res.data.id;
|
||||
},
|
||||
handleRemove(file, filelist) {
|
||||
this.process.instruction = null;
|
||||
},
|
||||
// 创建提示框
|
||||
createTooltip() {
|
||||
return d3
|
||||
.select('body')
|
||||
.append('div')
|
||||
.classed('tooltip', true)
|
||||
.style('opacity', 0)
|
||||
.style('display', 'none')
|
||||
},
|
||||
// tooltip显示
|
||||
tipVisible(textContent) {
|
||||
this.tooltip
|
||||
.transition()
|
||||
.duration(400)
|
||||
.style('opacity', 1)
|
||||
.style('display', 'block')
|
||||
.style('color', '#ffffff')
|
||||
.style('z-index', '3999')
|
||||
.style('padding', '20px 30px')
|
||||
.style('border-radius', '5px')
|
||||
.style('position', 'fixed')
|
||||
.style('background', 'rgba(0,0,0,.7)')
|
||||
this.tooltip
|
||||
.html(textContent)
|
||||
.style('left', `${d3.event.pageX + 15}px`)
|
||||
.style('top', `${d3.event.pageY - 10}px`)
|
||||
},
|
||||
// tooltip隐藏
|
||||
tipHidden() {
|
||||
this.tooltip
|
||||
.transition()
|
||||
.duration(400)
|
||||
.style('opacity', 0)
|
||||
.style('display', 'none')
|
||||
},
|
||||
operationSubmit(id) {
|
||||
this.ticketForm.transition = id;
|
||||
this.ticketForm.ticket_data = this.ticketDetail.ticket_data;
|
||||
let obj = new Object();
|
||||
obj.transition = id;
|
||||
obj.ticket_data = this.ticketDetail.ticket_data;
|
||||
obj.suggestion = this.ticketForm.suggestion;
|
||||
console.log(this.ticketForm);
|
||||
ticketHandle(this.ticketId, obj).then(res => {
|
||||
if (res.data) {
|
||||
this.$store.dispatch("user/getCount", {})
|
||||
this.$router.replace({name: "ticket"})
|
||||
}
|
||||
})
|
||||
},
|
||||
retreatCancel() {
|
||||
this.limitedHandle = false;
|
||||
},
|
||||
handleSubmit() {
|
||||
let text = '', url = '';
|
||||
if (this.handleType === '1') {
|
||||
text = "确认撤回工单吗?";
|
||||
url = ticketRetreat;
|
||||
} else if (this.handleType === '2') {
|
||||
text = "确认关闭工单吗?";
|
||||
url = ticketClose;
|
||||
}
|
||||
if (this.handleType === '3') {
|
||||
text = "确认处理工单吗?";
|
||||
url = ticketAddNodeEnd;
|
||||
}
|
||||
this.$confirm(text, "温馨提示", {
|
||||
confirmButtonText: "确认",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(async () => {
|
||||
url(this.ticketId, this.handleForm).then(res => {
|
||||
this.limitedHandle = false;
|
||||
this.$store.dispatch("user/getCount", {})
|
||||
this.$router.replace({name: "ticket"})
|
||||
this.$message.success("成功");
|
||||
})
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(err);
|
||||
});
|
||||
},
|
||||
handleClick(index) {
|
||||
this.limitedHandle = true;
|
||||
this.handleType = index;
|
||||
if (index === '1') {
|
||||
this.handleTitle = '工单撤回';
|
||||
this.handleLabel = '撤回原因';
|
||||
} else if (index === '2') {
|
||||
this.handleTitle = '工单关闭';
|
||||
this.handleLabel = '关闭原因';
|
||||
} else if (index === '3') {
|
||||
this.handleTitle = '加签处理';
|
||||
this.handleLabel = '加签意见';
|
||||
}
|
||||
},
|
||||
handleAdd() {
|
||||
this.getUser();
|
||||
this.limitedAdd = true;
|
||||
},
|
||||
addCancel() {
|
||||
this.limitedAdd = false;
|
||||
},
|
||||
addSubmit() {
|
||||
ticketAddNode(this.ticketId, this.addForm).then(res => {
|
||||
if (res.data) {
|
||||
this.limitedAdd = false;
|
||||
this.$nextTick(function () {
|
||||
this.limitedAdd = true;
|
||||
this.$store.dispatch("user/getCount", {})
|
||||
this.$router.replace({name: "ticket"})
|
||||
})
|
||||
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.svgWrapper {
|
||||
background: #fff;
|
||||
width: 800px;
|
||||
margin: 10vh auto 0;
|
||||
text-align: center;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.svgItem {
|
||||
padding: 20px 40px 0;
|
||||
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
|
||||
font-size: 18px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
svg {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.node rect {
|
||||
stroke: #606266;
|
||||
fill: #fff;
|
||||
}
|
||||
|
||||
.edgePath path {
|
||||
stroke: #606266;
|
||||
fill: #333;
|
||||
stroke-width: 1.5px;
|
||||
}
|
||||
|
||||
.el-icon-close {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.listItem {
|
||||
margin-top: 15px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.listItem > span {
|
||||
width: 100px;
|
||||
text-align: right;
|
||||
margin-right: 10px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.items {
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
.itemLabel {
|
||||
font-size: 14px;
|
||||
color: #606266;
|
||||
font-weight: 600;
|
||||
}
|
||||
</style>
|
|
@ -36,10 +36,159 @@
|
|||
</el-col>
|
||||
<el-row style="display: flex;flex-wrap: wrap;width:100%;">
|
||||
<el-col v-for="item in ticketDetail.ticket_data_" :key="item.id" :span="12" v-show="!item.is_hidden">
|
||||
<el-form-item :label="item.field_name" v-if="item.field_state==='1'">
|
||||
<span>{{ticketDetail.ticket_data[item.field_key]}}</span>
|
||||
<el-form-item v-if="item.field_state=='1'" :label="item.field_name">
|
||||
<template v-if="item.field_type=='string'">
|
||||
<el-input v-model="ticketDetail.ticket_data[item.field_key]" :placeholder="item.description" disabled="true"/>
|
||||
</template>
|
||||
<template v-if="item.field_type==='int'">
|
||||
<el-input v-model="ticketDetail.ticket_data[item.field_key]" type="number" :placeholder="item.description" oninput="value=value.replace(/[^\d]/g,'')" disabled="true"/>
|
||||
</template>
|
||||
<template v-if="item.field_type==='float'">
|
||||
<el-input v-model="ticketDetail.ticket_data[item.field_key]" type="number" :placeholder="item.description" disabled="true"/>
|
||||
</template>
|
||||
<template v-if="item.field_type==='date'">
|
||||
<el-date-picker
|
||||
disabled="true"
|
||||
v-model="ticketDetail.ticket_data[item.field_key]"
|
||||
type="date"
|
||||
placeholder="选择日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
style="width: 100%"
|
||||
>
|
||||
</el-date-picker>
|
||||
</template>
|
||||
<template v-if="item.field_type==='datetime'">
|
||||
<el-date-picker
|
||||
disabled="true"
|
||||
v-model="ticketDetail.ticket_data[item.field_key]"
|
||||
type="datetime"
|
||||
placeholder="选择日期"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
style="width: 100%"
|
||||
>
|
||||
</el-date-picker>
|
||||
</template>
|
||||
<template v-if="item.field_type==='select'">
|
||||
<el-select style="width: 100%" v-model="ticketDetail.ticket_data[item.field_key]" placeholder="请选择" disabled="true">
|
||||
<el-option
|
||||
v-for="item1 in item.field_choice"
|
||||
:key="item1.id"
|
||||
:label="item1.name"
|
||||
:value="item1.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
<template v-if="item.field_type==='selects'">
|
||||
<el-select style="width: 100%" multiple v-model="ticketDetail.ticket_data[item.field_key]" placeholder="请选择" disabled="true">
|
||||
<el-option
|
||||
v-for="item1 in item.field_choice"
|
||||
:key="item1.id"
|
||||
:label="item1.name"
|
||||
:value="item1.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
<template v-if="item.field_type==='textarea'">
|
||||
<el-input type="textarea" :rows="3" v-model="ticketDetail.ticket_data[item.field_key]" placeholder="内容" disabled="true"/>
|
||||
</template>
|
||||
<template v-if="item.field_type==='file'">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:action="upUrl"
|
||||
:on-preview="handlePreview"
|
||||
:on-success="handleUpSuccess"
|
||||
:headers="upHeaders"
|
||||
:file-list="fileList"
|
||||
:limit="1"
|
||||
accept=".doc,.docx,.xls,.xlsx,.ppt,.pptx"
|
||||
>
|
||||
<el-button size="small" type="primary">上传文件</el-button>
|
||||
</el-upload>
|
||||
</template>
|
||||
</el-form-item>
|
||||
<el-form-item :label="item.field_name" v-else>
|
||||
<el-form-item
|
||||
v-if="item.field_state=='2'"
|
||||
:label="item.field_name"
|
||||
prop=""
|
||||
:rules="{
|
||||
required: true, message: '不能为空', trigger: 'blur'
|
||||
}"
|
||||
>
|
||||
<template v-if="item.field_type=='string'">
|
||||
<el-input v-model="ticketDetail.ticket_data[item.field_key]" :placeholder="item.description"/>
|
||||
</template>
|
||||
<template v-if="item.field_type==='int'">
|
||||
<el-input v-model="ticketDetail.ticket_data[item.field_key]" type="number" :placeholder="item.description" oninput="value=value.replace(/[^\d]/g,'')" />
|
||||
</template>
|
||||
<template v-if="item.field_type==='float'">
|
||||
<el-input v-model="ticketDetail.ticket_data[item.field_key]" type="number" :placeholder="item.description" />
|
||||
</template>
|
||||
<template v-if="item.field_type==='date'">
|
||||
<el-date-picker
|
||||
v-model="ticketDetail.ticket_data[item.field_key]"
|
||||
type="date"
|
||||
placeholder="选择日期"
|
||||
value-format="yyyy-MM-dd"
|
||||
style="width: 100%"
|
||||
>
|
||||
</el-date-picker>
|
||||
</template>
|
||||
<template v-if="item.field_type==='datetime'">
|
||||
<el-date-picker
|
||||
v-model="ticketDetail.ticket_data[item.field_key]"
|
||||
type="datetime"
|
||||
placeholder="选择日期"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
style="width: 100%"
|
||||
>
|
||||
</el-date-picker>
|
||||
</template>
|
||||
<template v-if="item.field_type==='select'">
|
||||
<el-select style="width: 100%" v-model="ticketDetail.ticket_data[item.field_key]" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item1 in item.field_choice"
|
||||
:key="item1.id"
|
||||
:label="item1.name"
|
||||
:value="item1.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
<template v-if="item.field_type==='selects'">
|
||||
<el-select style="width: 100%" multiple v-model="ticketDetail.ticket_data[item.field_key]" placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item1 in item.field_choice"
|
||||
:key="item1.id"
|
||||
:label="item1.name"
|
||||
:value="item1.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
<template v-if="item.field_type==='textarea'">
|
||||
<el-input type="textarea" :rows="3" v-model="ticketDetail.ticket_data[item.field_key]" placeholder="内容" />
|
||||
</template>
|
||||
<template v-if="item.field_type==='file'">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:action="upUrl"
|
||||
:on-preview="handlePreview"
|
||||
:on-success="handleUpSuccess"
|
||||
:headers="upHeaders"
|
||||
:file-list="fileList"
|
||||
:limit="1"
|
||||
accept=".doc,.docx,.xls,.xlsx,.ppt,.pptx"
|
||||
>
|
||||
<el-button size="small" type="primary">上传文件</el-button>
|
||||
</el-upload>
|
||||
</template>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
v-if="item.field_state=='3'"
|
||||
:label="item.field_name"
|
||||
>
|
||||
<template v-if="item.field_type=='string'">
|
||||
<el-input v-model="ticketDetail.ticket_data[item.field_key]" :placeholder="item.description"/>
|
||||
</template>
|
||||
|
|
|
@ -11,13 +11,11 @@
|
|||
stripe
|
||||
highlight-current-row
|
||||
max-height="700"
|
||||
|
||||
>
|
||||
<el-table-column type="index" width="50"/>
|
||||
<el-table-column label="半成品名称">
|
||||
<template slot-scope="scope">{{ scope.row.material_.name }}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="半成品编号">
|
||||
<template slot-scope="scope">{{ scope.row.number }}</template>
|
||||
</el-table-column>
|
||||
|
@ -26,12 +24,9 @@
|
|||
{{ actstate_[scope.row.act_state] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column label="所在子工序">
|
||||
<template slot-scope="scope">{{ scope.row.step_.name }}</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column align="center" label="操作" width="220px">
|
||||
<template slot-scope="scope">
|
||||
<el-link
|
||||
|
@ -46,6 +41,7 @@
|
|||
</el-link>
|
||||
<el-link
|
||||
v-if="checkPermission(['warehouse_update'])"
|
||||
type="danger"
|
||||
@click="handleScrapbcp(scope)"
|
||||
>报废
|
||||
</el-link>
|
||||
|
@ -77,8 +73,6 @@
|
|||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogFormVisiblebcp = false">取 消</el-button>
|
||||
|
@ -126,13 +120,6 @@
|
|||
@click="checkRecord(scope,'2')"
|
||||
>检验记录
|
||||
</el-link>
|
||||
|
||||
<!--<el-link
|
||||
v-if="checkPermission(['warehouse_update'])"
|
||||
@click="handleInspection(scope,'2')"
|
||||
>
|
||||
检验
|
||||
</el-link>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
@ -209,17 +196,14 @@
|
|||
</el-tab-pane>
|
||||
<el-tab-pane label="不合格半成品">
|
||||
<el-card style="margin-top: 2px">
|
||||
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
:data="wproductList4.results"
|
||||
|
||||
border
|
||||
fit
|
||||
stripe
|
||||
highlight-current-row
|
||||
max-height="600"
|
||||
|
||||
>
|
||||
<el-table-column type="index" width="50"/>
|
||||
<el-table-column label="半成品名称">
|
||||
|
@ -234,7 +218,6 @@
|
|||
{{ actstate_[scope.row.act_state] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="所在子工序">
|
||||
<template slot-scope="scope">{{ scope.row.step_.name }}</template>
|
||||
</el-table-column>
|
||||
|
@ -246,15 +229,18 @@
|
|||
<el-table-column align="center" label="操作" width="220px">
|
||||
<template slot-scope="scope">
|
||||
<el-link
|
||||
type="danger"
|
||||
v-if="checkPermission(['warehouse_update'])"
|
||||
type="danger"
|
||||
@click="handleScrap(scope)"
|
||||
>报废
|
||||
>
|
||||
报废
|
||||
</el-link>
|
||||
<el-link type="primary"
|
||||
<el-link
|
||||
v-if="!scope.row.ticket"
|
||||
type="primary"
|
||||
@click="handleRetrial(scope)"
|
||||
>重审
|
||||
>
|
||||
审理
|
||||
</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -523,7 +509,8 @@
|
|||
<el-input v-model="item.default_value" :placeholder="item.description"/>
|
||||
</template>
|
||||
<template v-if="item.field_type==='int'">
|
||||
<el-input v-model="item.default_value" type="number" :placeholder="item.description" oninput="value=value.replace(/[^\d]/g,'')" />
|
||||
<el-input v-model="item.default_value" type="number" :placeholder="item.description"
|
||||
oninput="value=value.replace(/[^\d]/g,'')"/>
|
||||
</template>
|
||||
<template v-if="item.field_type==='float'">
|
||||
<el-input v-model="item.default_value" type="number" :placeholder="item.description"/>
|
||||
|
@ -604,11 +591,11 @@
|
|||
import checkPermission from "@/utils/permission";
|
||||
import customForm from '@/components/customForm/index';
|
||||
import reviewForm from '@/components/customForm/review';
|
||||
import {getWfCustomfieldList,createTicket ,getWorkflowInit} from "@/api/workflow";
|
||||
import {getMaterialList, getrecordformList, getrffieldList} from "@/api/mtm";
|
||||
import {getwproductList, wproductTest, wproductPutin, createputins,testInit,scrap,getRetrial} from "@/api/wpm";
|
||||
import { createTicket, getWorkflowInit} from "@/api/workflow";
|
||||
import { getrecordformList, getrffieldList} from "@/api/mtm";
|
||||
import {getwproductList, wproductPutin, createputins, testInit, scrap, getRetrial} from "@/api/wpm";
|
||||
import {getTestRecord, getTestRecordItem, putTestRecordItem, delTestRecordItem, subTestRecordItem} from "@/api/qm";
|
||||
import {genTree} from "@/utils";
|
||||
// import {genTree} from "@/utils";
|
||||
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
|
||||
const defaultetestitem = {};
|
||||
export default {
|
||||
|
|
Loading…
Reference in New Issue