10个文件已删除
10个文件已修改
1 文件已重命名
| | |
| | | <template> |
| | | <w-dialog :border="false" closeFree width="600px" @ok="selectOk" :title="title" v-model="visible"> |
| | | <flow-dialog :border="false" closeFree width="600px" @ok="selectOk" :title="title" v-model="visible"> |
| | | <div class="picker"> |
| | | <div class="candidate" v-loading="loading"> |
| | | <div class="role-header" > |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </w-dialog> |
| | | </flow-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import {getOrgTree, getUserByName} from '@/api/org' |
| | | import {getEntitySet} from "@/api/design"; |
| | | |
| | | export default { |
| | |
| | | } |
| | | return '**' |
| | | }, |
| | | searchUser() { |
| | | let userName = this.search.trim() |
| | | this.searchUsers = [] |
| | | this.loading = true |
| | | getUserByName({userName: userName}).then(rsp => { |
| | | this.loading = false |
| | | this.searchUsers = rsp.data |
| | | this.selectToLeft() |
| | | }).catch(err => { |
| | | this.loading = false |
| | | this.$message.error("接口异常") |
| | | }) |
| | | }, |
| | | |
| | | selectToLeft() { |
| | | let nodes = this.search.trim() === '' ? this.nodes : this.searchUsers; |
| | | nodes.forEach(node => { |
File was renamed from src/components/common/WDialog.vue |
| | |
| | | |
| | | <script> |
| | | export default { |
| | | name: "WDialog", |
| | | name: "flowDialog", |
| | | install(Vue) { |
| | | Vue.component("WDialog", this); |
| | | Vue.component("flowDialog", this); |
| | | }, |
| | | components: {}, |
| | | props: { |
| | |
| | | import uat from './application-uat'; |
| | | |
| | | export default { |
| | | ...dev, |
| | | ...local, |
| | | }; |
| | |
| | | import "@/assets/iconfont/iconfont.css" |
| | | |
| | | import Ellipsis from '@/components/common/Ellipsis' |
| | | import WDialog from '@/components/common/WDialog' |
| | | import Tip from '@/components/common/Tip' |
| | | import flowDialog from '@/components/common/flowDialog.vue' |
| | | import Utils from '@/utils/utils.js' |
| | | |
| | | Vue.use(ElementUI); |
| | | Vue.use(Ellipsis); |
| | | Vue.use(WDialog); |
| | | Vue.use(Tip); |
| | | Vue.use(flowDialog); |
| | | |
| | | Vue.use(vueEsign) |
| | | Vue.config.productionTip = false |
| | | Vue.prototype.$Utils = Utils |
| | |
| | | redirect: "/formsPanel", |
| | | }, |
| | | { |
| | | path: "/index", |
| | | name: "index", |
| | | component: () => import("@/views/Index.vue"), |
| | | meta: { title: "OA工作流", viewport: viewport }, |
| | | }, |
| | | |
| | | |
| | | { |
| | | path: "/formsPanel", |
| | | name: "formsPanel", |
| | | component: () => import("@/views/admin/FormsPanel.vue"), |
| | |
| | | <div class="layout-body"> |
| | | <process-design ref="processDesign" v-show="activeSelect === 'processDesign'"/> |
| | | </div> |
| | | <w-dialog :showFooter="false" v-model="validVisible" title="设置项检查"> |
| | | <flow-dialog :showFooter="false" v-model="validVisible" title="设置项检查"> |
| | | <el-result :icon="validIcon" :title="errTitle" :subTitle="validResult.desc"> |
| | | <i slot="icon" style="font-size: 30px" v-if="!validResult.finished" class="el-icon-loading"></i> |
| | | <div slot="subTitle" class="err-info" v-if="validResult.errs.length > 0"> |
| | |
| | | </el-form> |
| | | </template> |
| | | </el-result> |
| | | </w-dialog> |
| | | </flow-dialog> |
| | | </el-container> |
| | | |
| | | </template> |
| | |
| | | <script> |
| | | import LayoutHeader from './LayoutHeader' |
| | | import {createFlow, getFlowDetail} from '@/api/design' |
| | | |
| | | import ProcessDesign from '@/views/admin/layout/ProcessDesign' |
| | | |
| | | export default { |
| | |
| | | @select="handleSelect"> |
| | | <el-menu-item index="processDesign" @click="to('processDesign')">审批流程 |
| | | </el-menu-item> |
| | | <!-- <el-menu-item index="proSetting" @click="to('proSetting')">扩展设置</el-menu-item>--> |
| | | </el-menu> |
| | | <div class="publish"> |
| | | |
| | |
| | | <template> |
| | | <el-main> |
| | | <!-- <div class="switchStyle">--> |
| | | <!-- <el-button size="small" @click="switchCss" >切换</el-button>--> |
| | | |
| | | <!-- </div>--> |
| | | <div class="scale"> |
| | | <el-button icon="el-icon-plus" size="small" @click="scale += 10" :disabled="scale >= 150" circle></el-button> |
| | | <span>{{ scale }}%</span> |
| | | <el-button icon="el-icon-minus" size="small" @click="scale -= 10" :disabled="scale <= 40" circle></el-button> |
| | | <!-- <el-button @click="validate">校验流程</el-button>--> |
| | | </div> |
| | | <div class="design" :style="'transform: scale('+ scale / 100 +');'"> |
| | | <process-tree ref="process-tree" @selectedNode="nodeSelected"/> |
| | |
| | | |
| | | }, |
| | | methods: { |
| | | // switchCss(){ |
| | | // |
| | | // console.log(this.$cssSrc) |
| | | // console.log(this.$isVertical) |
| | | // |
| | | // if(this.$isVertical){ |
| | | // this.$cssSrc=require('@/assets/flowDesign.scss') |
| | | // this.$isVertical=false; |
| | | // }else{ |
| | | // this.$cssSrc=require('@/assets/flowDesignVertical.scss') |
| | | // this.$isVertical=true; |
| | | // } |
| | | // this.$forceUpdate() |
| | | // |
| | | // }, |
| | | |
| | | validate(){ |
| | | return this.$refs["process-tree"].validateProcess() |
| | | }, |
| | |
| | | </div> |
| | | </el-form-item> |
| | | </el-form> |
| | | <org-picker :title="pickerTitle" multiple :type="orgPickerType" ref="orgPicker" :selected="orgPickerSelected" |
| | | @ok="selected"/> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import OrgPicker from "@/components/common/OrgPicker"; |
| | | //import OrgPicker from "@/components/common/OrgPicker"; |
| | | import {getDict, getEntitySet} from "@/api/design"; |
| | | export default { |
| | | name: "ApprovalNodeConfig", |
| | | components: {OrgPicker}, |
| | | props: { |
| | | config: { |
| | | type: Object, |
| | |
| | | return { |
| | | showOrgSelect: false, |
| | | orgPickerSelected: [], |
| | | orgPickerType: 'user', |
| | | groupNames: ['1', '2', '3', '4', '6', 'F', 'G', 'H', 'I', 'J'], |
| | | approvalGroups: [ |
| | | ], |
| | |
| | | return this.config.assignedUser |
| | | }, |
| | | |
| | | pickerTitle() { |
| | | switch (this.orgPickerType) { |
| | | case 'user': |
| | | return '请选择人员'; |
| | | case 'role': |
| | | return '请选择系统角色'; |
| | | default: |
| | | return null; |
| | | } |
| | | }, |
| | | |
| | | }, |
| | | mounted() { |
| | | this.getApprovalGroup(); |
| | |
| | | return String(texts).replaceAll(',', '、') |
| | | |
| | | }, |
| | | // flowText(){ |
| | | // const config = this.config |
| | | // console.log("flowText-config",config); |
| | | // |
| | | // // return config.approvalArr.filter(ite=>ite.node_id===config.id)[0].approval_time; |
| | | // if(config.approvalArr!==undefined){ |
| | | // return "发起时间:"+config.approvalArr.filter(ite=>ite.node_id===config.id)[0].approval_time; |
| | | // } |
| | | // |
| | | // return '' |
| | | // } |
| | | |
| | | }, |
| | | created() { |
| | | console.log("加载ApprovalNode.vue") |
| | |
| | | <template> |
| | | <div class="process-view"> |
| | | |
| | | <div class="process-view__tabs" v-loading="loading"> |
| | | |
| | | <process-diagram-viewer /> |
| | | |
| | | </div> |
| | |
| | | processInfo: "", |
| | | }; |
| | | }, |
| | | |
| | | methods: { |
| | | convertToTreeData(data, parent,index,parentId) { |
| | | const tempJson = data.find(f => |