<template> <div> <el-form :model="formData" label-position="right" label-width="80px"> {{- range .Fields}} <el-form-item label="{{.FieldDesc}}:"> {{- if eq .FieldType "bool" }} <el-switch active-color="#13ce66" inactive-color="#ff4949" active-text="是" inactive-text="否" v-model="formData.{{.FieldJson}}" clearable ></el-switch> {{ end -}} {{- if eq .FieldType "string" }} <el-input v-model="formData.{{.FieldJson}}" clearable placeholder="请输入" ></el-input> {{ end -}} {{- if eq .FieldType "int" }} {{- if .DictType}} <el-select v-model="formData.{{ .FieldJson }}" placeholder="请选择" clearable> <el-option v-for="(item,key) in {{ .DictType }}Options" :key="key" :label="item.label" :value="item.value"></el-option> </el-select> {{ else -}} <el-input v-model.number="formData.{{ .FieldJson }}" clearable placeholder="请输入"></el-input> {{ end -}} {{ end -}} {{- if eq .FieldType "time.Time" }} <el-date-picker type="date" placeholder="选择日期" v-model="formData.{{ .FieldJson }}" clearable></el-date-picker> {{ end -}} {{- if eq .FieldType "float64" }} <el-input-number v-model="formData.{{ .FieldJson }}" :precision="2" clearable></el-input-number> {{ end -}} </el-form-item> {{ end -}} <el-form-item> <el-button v-if="this.wf.clazz == 'start'" @click="start" type="primary">启动</el-button> <!-- complete传入流转参数 决定下一步会流转到什么位置 此处可以设置多个按钮来做不同的流转 --> <el-button v-if="canShow" @click="complete('yes')" type="primary">提交</el-button> <el-button v-if="showSelfNode" @click="complete('')" type="primary">确认</el-button> <el-button @click="back" type="primary">返回</el-button> </el-form-item> </el-form> </div> </template> <script> import { startWorkflow, completeWorkflowMove } from "@/api/workflowProcess"; import infoList from "@/mixins/infoList"; import { mapGetters } from "vuex"; export default { name: "{{.StructName}}", mixins: [infoList], props:{ business:{ type:Object, default:function(){return null} }, wf:{ type:Object, default:function(){return{}} }, move:{ type:Object, default:function(){return{}} }, workflowMoveID:{ type:[Number,String], default:0 } }, data() { return { {{- range .Fields}} {{- if .DictType }} {{ .DictType }}Options:[], {{ end -}} {{end -}} formData: { {{range .Fields}} {{- if eq .FieldType "bool" -}} {{.FieldJson}}:false, {{ end -}} {{- if eq .FieldType "string" -}} {{.FieldJson}}:"", {{ end -}} {{- if eq .FieldType "int" -}} {{.FieldJson}}:0, {{ end -}} {{- if eq .FieldType "time.Time" -}} {{.FieldJson}}:new Date(), {{ end -}} {{- if eq .FieldType "float64" -}} {{.FieldJson}}:0, {{ end -}} {{ end }} } }; }, computed:{ showSelfNode(){ if(this.wf.assignType == "self" && this.move.promoterID == this.userInfo.ID){ return true }else{ return false } }, canShow(){ if(this.wf.assignType == "user"){ if(this.wf.assignValue.indexOf(","+this.userInfo.ID+",")>-1 && this.wf.clazz == 'userTask'){ return true }else{ return false } }else if(this.wf.assign_type == "authority"){ if(this.wf.assignValue.indexOf(","+this.userInfo.authorityId+",")>-1 && this.wf.clazz == 'userTask'){ return true }else{ return false } } }, ...mapGetters("user", ["userInfo"]) }, methods: { async start() { const res = await startWorkflow({ business:this.formData, wf:{ workflowMoveID:this.workflowMoveID, businessId:0, businessType:"{{.Abbreviation}}", workflowProcessID:this.wf.workflowProcessID, workflowNodeID:this.wf.id, promoterID:this.userInfo.ID, operatorID:this.userInfo.ID, action:"create", param:"" } }); if (res.code == 0) { this.$message({ type:"success", message:"启动成功" }) this.back() } }, async complete(param){ const res = await completeWorkflowMove({ business:this.formData, wf:{ workflowMoveID:this.workflowMoveID, businessID:this.formData.ID, businessType:"{{.Abbreviation}}", workflowProcessID:this.wf.workflowProcessID, workflowNodeID:this.wf.id, promoterID:this.userInfo.ID, operatorID:this.userInfo.ID, action:"complete", param:param } }) if(res.code == 0){ this.$message({ type:"success", message:"提交成功" }) this.back() } }, back(){ this.$router.go(-1) } }, async created() { if(this.business){ this.formData = this.business } } }; </script> <style> </style>