{"id":13750330,"url":"https://github.com/StavinLi/Workflow","last_synced_at":"2025-05-09T15:31:54.909Z","repository":{"id":37645908,"uuid":"221122124","full_name":"StavinLi/Workflow","owner":"StavinLi","description":"仿钉钉审批流程设置","archived":false,"fork":false,"pushed_at":"2024-11-08T07:25:38.000Z","size":3232,"stargazers_count":1566,"open_issues_count":5,"forks_count":380,"subscribers_count":32,"default_branch":"master","last_synced_at":"2025-05-03T23:02:05.033Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://stavinli.gitee.io/workflow/#/approval/setting","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StavinLi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-12T03:29:34.000Z","updated_at":"2025-04-30T12:47:53.000Z","dependencies_parsed_at":"2022-07-14T08:31:26.553Z","dependency_job_id":"ed3bcc9b-0a04-4e10-bee7-64b8d82c8828","html_url":"https://github.com/StavinLi/Workflow","commit_stats":{"total_commits":58,"total_committers":4,"mean_commits":14.5,"dds":"0.18965517241379315","last_synced_commit":"c268a67be775e3d311e720ac72c9a720720e073f"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StavinLi%2FWorkflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StavinLi%2FWorkflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StavinLi%2FWorkflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StavinLi%2FWorkflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StavinLi","download_url":"https://codeload.github.com/StavinLi/Workflow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253275610,"owners_count":21882336,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T08:00:28.474Z","updated_at":"2025-05-09T15:31:54.490Z","avatar_url":"https://github.com/StavinLi.png","language":"Vue","funding_links":[],"categories":["技术方案","Vue","Web 应用"],"sub_categories":[],"readme":"\n\n### workflow钉钉审批流程设置\n\nworkflow钉钉审批流程设置，基于vue开发。 QQ交流群①:639251756  QQ交流群②:790780565\n![在这里插入图片描述](https://img-blog.csdnimg.cn/20191116144905578.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3Mjg1MTkz,size_16,color_FFFFFF,t_70 )\n-  [开源地址vue2版本 https://github.com/StavinLi/Workflow](https://github.com/StavinLi/Workflow) github点个星吧！\n-  [开源地址vue3版本 https://github.com/StavinLi/Workflow-Vue3](https://github.com/StavinLi/Workflow-Vue3) github点个星吧！\n-  [开源地址react版本 https://github.com/StavinLi/Workflow-React](https://github.com/StavinLi/Workflow-React) github点个星吧！\n-  [预览地址 https://stavinli.github.io/Workflow/dist/index.html#/](https://stavinli.github.io/Workflow/dist/index.html#/) \n-------------------\n \n\n#### 项目介绍\n- UI钉钉风格\n- 技术点\n1. 组件自调用+递归处理，按树状结局处理审批流程问题\n- 主要功能点\n2. 界面缩放\n![在这里插入图片描述](https://img-blog.csdnimg.cn/20191116145339223.jpg)\n```javascript\n\u003cdiv class=\"zoom\"\u003e\n\t\u003cdiv :class=\"'zoom-out'+ (nowVal==50?' disabled':'')\" @click=\"zoomSize(1)\"\u003e\u003c/div\u003e\n    \u003cspan\u003e{{nowVal}}%\u003c/span\u003e\n    \u003cdiv :class=\"'zoom-in'+ (nowVal==300?' disabled':'')\" @click=\"zoomSize(2)\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n```\n3. 节点设置（包括审批人、发起人、抄送人、条件设置）\n![在这里插入图片描述](https://img-blog.csdnimg.cn/20200304140232374.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3Mjg1MTkz,size_16,color_FFFFFF,t_70#pic_center)\n```javascript\n\u003cel-drawer title=\"审批人设置\" :visible.sync=\"approverDrawer\" direction=\"rtl\" class=\"set_promoter\" size=\"550px\" :before-close=\"saveApprover\"\u003e \n    \u003cdiv class=\"demo-drawer__content\"\u003e\n        \u003cdiv class=\"drawer_content\"\u003e\n            \u003cdiv class=\"approver_content\"\u003e\n                \u003cel-radio-group v-model=\"approverConfig.settype\" class=\"clear\" @change=\"changeType\"\u003e\n                    \u003cel-radio :label=\"1\"\u003e指定成员\u003c/el-radio\u003e\n                    \u003cel-radio :label=\"2\"\u003e主管\u003c/el-radio\u003e\n                    \u003cel-radio :label=\"4\"\u003e发起人自选\u003c/el-radio\u003e\n                    \u003cel-radio :label=\"5\"\u003e发起人自己\u003c/el-radio\u003e\n                    \u003cel-radio :label=\"7\"\u003e连续多级主管\u003c/el-radio\u003e\n                \u003c/el-radio-group\u003e\n                ...\n```\n5. 节点新增\n![在这里插入图片描述](https://img-blog.csdnimg.cn/20191116145355289.png)\n```javascript\n\u003cdiv class=\"add-node-btn\"\u003e\n    \u003cel-popover placement=\"right-start\" v-model=\"visible\"\u003e\n          \u003cdiv class=\"add-node-popover-body\"\u003e\n              \u003ca class=\"add-node-popover-item approver\" @click=\"addType(1)\"\u003e\n                  \u003cdiv class=\"item-wrapper\"\u003e\n                      \u003cspan class=\"iconfont\"\u003e\u003c/span\u003e\n                  \u003c/div\u003e\n                  \u003cp\u003e审批人\u003c/p\u003e\n              \u003c/a\u003e\n              \u003ca class=\"add-node-popover-item notifier\" @click=\"addType(2)\"\u003e\n                  \u003cdiv class=\"item-wrapper\"\u003e\n                      \u003cspan class=\"iconfont\"\u003e\u003c/span\u003e\n                  \u003c/div\u003e\n                  \u003cp\u003e抄送人\u003c/p\u003e\n              \u003c/a\u003e\n              \u003ca class=\"add-node-popover-item condition\" @click=\"addType(4)\"\u003e\n                  \u003cdiv class=\"item-wrapper\"\u003e\n                      \u003cspan class=\"iconfont\"\u003e\u003c/span\u003e\n                  \u003c/div\u003e\n                  \u003cp\u003e条件分支\u003c/p\u003e\n              \u003c/a\u003e\n          \u003c/div\u003e\n          ...\n```\n5.错误校验\n![在这里插入图片描述](https://img-blog.csdnimg.cn/20200304140011896.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3Mjg1MTkz,size_16,color_FFFFFF,t_70)\n```javascript\nlet {type,error,nodeName,conditionNodes} = childNode\nif (type == 1 || type == 2) {\n    if (error) {\n        this.tipList.push({ name: nodeName, type: [\"\",\"审核人\",\"抄送人\"][type] })\n    }\n    this.reErr(childNode)\n} else if (type == 3) {\n    this.reErr(childNode)\n} else if (type == 4) {\n    this.reErr(childNode)\n    for (var i = 0; i \u003c conditionNodes.length; i++) {\n        if (conditionNodes[i].error) {\n            this.tipList.push({ name: conditionNodes[i].nodeName, type: \"条件\" })\n        }\n        this.reErr(conditionNodes[i])\n    }\n}\n```\n6.模糊搜索匹配人员、职位、角色\n```javascript\n\u003cinput type=\"text\" placeholder=\"搜索成员\" v-model=\"searchVal\" @input=\"getDebounceData($event,activeName)\"\u003e\n\u003cinput type=\"text\" placeholder=\"搜索角色\" v-model=\"searchVal\" @input=\"getDebounceData($event,2)\"\u003e\n\u003cinput type=\"text\" placeholder=\"请选择具体人员/角色/部门\" v-if=\"conditionConfig.nodeUserList.length == 0\" @click=\"addConditionRole\"\u003e\n```\n#### 项目安装\n\n\u003e git clone https://github.com/StavinLi/Workflow.git 点个赞吧！\n\n#### 项目运行 **node14**\n\u003e 1.环境依赖    `npm i`\n\n\u003e 2.本地运行 `npm run serve` \n\n\u003e 3.打包运行 `npm run build` \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FStavinLi%2FWorkflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FStavinLi%2FWorkflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FStavinLi%2FWorkflow/lists"}