diff --git a/.env.development b/.env.development index b454cf5..5f88d5e 100644 --- a/.env.development +++ b/.env.development @@ -2,6 +2,6 @@ ENV = 'development' # base api -VUE_APP_BASE_API = 'http://ginvue.admin.net/api' -VUE_APP_BASE_API1 = 'http://ginvue.admin.net/hrapi' -VUE_APP_BASE_API2 = 'http://ginvue.admin.net/kpiapi' +VUE_APP_BASE_API = 'http://hxgk.user.phone/api' +VUE_APP_BASE_API1 = 'http://hxgk.user.phone/hrapi' +VUE_APP_BASE_API2 = 'http://hxgk.user.phone/kpiapi' diff --git a/package.json b/package.json index cc4d62d..222fba4 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,8 @@ "path-to-regexp": "2.4.0", "vue": "2.6.10", "vue-router": "3.0.6", - "vuex": "3.1.0" + "vuex": "3.1.0", + "workflow-ui": "^1.2.3" }, "devDependencies": { "@fortawesome/fontawesome-free": "^6.2.1", @@ -43,7 +44,11 @@ "eslint": "6.7.2", "eslint-plugin-vue": "6.2.2", "html-webpack-plugin": "3.2.0", + "i": "^0.3.7", + "less": "^3.0.4", + "less-loader": "^5.0.0", "mockjs": "1.0.1-beta3", + "npm": "^9.2.0", "runjs": "4.3.2", "sass": "1.26.8", "sass-loader": "8.0.2", diff --git a/src/api/duty/postapi.js b/src/api/duty/postapi.js index 6581c09..02a5fdb 100644 --- a/src/api/duty/postapi.js +++ b/src/api/duty/postapi.js @@ -48,4 +48,49 @@ export function editRationTargetCont(data) { method: 'post', data }) +}; + +// 岗位人员定量考核目标列表 +export function postPeopleTargetConfigList(data) { + return request({ + url: '/postpc/post_people_list', + method: 'post', + data + }) +}; + +// 提交岗位人员考核定量指标目标值设定 +export function setEvalObjectMan(data) { + return request({ + url: '/postpc/set_eval_object_man', + method: 'post', + data + }) +}; + +// 查看人员岗位考核指标目标值 +export function getRationTargetContMan(data) { + return request({ + url: '/postpc/lookpeopleconfig', + method: 'post', + data + }) +}; + +// 编辑岗位人员考核指标目标值 +export function editRationTargetContMan(data) { + return request({ + url: '/postpc/eite_quant_man_config', + method: 'post', + data + }) +}; + +// 删除岗位人员考核指标目标值 +export function delRationTargetContMan(data) { + return request({ + url: '/postpc/new_del_quantman_config', + method: 'post', + data + }) }; \ No newline at end of file diff --git a/src/api/people/peopledata.js b/src/api/people/peopledata.js index 49131c4..e238222 100644 --- a/src/api/people/peopledata.js +++ b/src/api/people/peopledata.js @@ -281,6 +281,10 @@ const employmentType = [ ]; //入职等级 const positiongrade = [ + { + id:10000, + tittle:'无' + }, { id:1, tittle:'一级' @@ -313,6 +317,85 @@ const academicDegree =[ title:'博士' }, ]; +//主职与兼职 +const mainAndPartTimeJobs = [ + { + id:1, + title:'主职' + }, + { + id:2, + title:'兼职' + } +]; +// 职位变动类型 +const postChangeType=[ + { + id:1, + title:'预入职' + }, + { + id:2, + title:'雇佣入职' + }, + { + id:3, + title:'转正' + }, + { + id:4, + title:'晋升' + }, + { + id:5, + title:'降级' + }, + { + id:6, + title:'职等调整' + }, + { + id:7, + title:'调动调入' + }, + { + id:8, + title:'跨公司调动调入' + }, + { + id:9, + title:'借调' + }, + { + id:10, + title:'平调' + }, + { + id:11, + title:'兼职' + }, + { + id:12, + title:'预离职' + }, + { + id:13, + title:'离职' + }, + { + id:14, + title:'退休' + }, + { + id:15, + title:'返聘' + }, + { + id:16, + title:'员工初始化' + }, + +]; //注册定义的方法 export const peopleMethod= { sexData, @@ -324,7 +407,9 @@ export const peopleMethod= { educationList, employmentType, positiongrade, - academicDegree + academicDegree, + mainAndPartTimeJobs, + postChangeType }; @@ -422,6 +507,7 @@ export function getNtoMonth(date, num) { //判断是不是数组 export function judgeArray(ary){ + if(!ary) return false; if(ary.isArray){ return true; }else{ @@ -430,4 +516,27 @@ export function judgeArray(ary){ } } return false; -}; \ No newline at end of file +}; + +//计算高度 +//定义wappered boolean值是为了区别我自己定义的同名方法,可忽略 +export function calcHeightx(value, wappered = true) { + //项目自定义的公共header部分的高度,可忽略 + let header = variable.headerHeight; + //value为动态计算table界面高度时,减去的其他空白部分,需自行在调试找到临界值,剩下的就是table表格的高度(包含header+body部分) + value = value == undefined ? 100 : value; + let res = window.innerHeight - parseInt(header.substring(0, header.indexOf('px'))) - value; + if (wappered) { + //通过原生方法,获取dom节点的高度------获取element-ui table表格body的元素 + let wapper = window.document.getElementsByClassName('el-table__body-wrapper'); + //通过原生方法,获取dom节点的高度------获取element-ui table表格header的元素 + let header = window.document.getElementsByClassName('el-table__header-wrapper'); + //必须加延时,要不然赋不上去值 + setTimeout(() => { + //通过上边计算得到的table高度的value值,减去table表格的header高度,剩下的通过dom节点直接强行赋给table表格的body + wapper[0].style.height = (value - header[0].clientHeight) + 'px'; + }, 100) + } + return res; +}; + \ No newline at end of file diff --git a/src/api/systemaccredit/systemapi.js b/src/api/systemaccredit/systemapi.js index 6be31ff..0979d04 100644 --- a/src/api/systemaccredit/systemapi.js +++ b/src/api/systemaccredit/systemapi.js @@ -99,4 +99,34 @@ export const addAboutPeople = (data) => { method: 'post', data: data }) +} + + +/** + * 部门方案相关API操作 + */ +//部门考核方案列表 +export const departmentProgramme = (data) => { + return request({ + url: '/department_pc/department_programme', + method: 'post', + data: data + }) +} +//部门考核方案状态 +export const editDepartPrograState = (data) => { + return request({ + url: '/department_pc/edit_depart_progra_state', + method: 'post', + data: data + }) +} + +//添加部门考核方案 +export const createSchemeForDeparment = (data) => { + return request({ + url: '/department_pc/create_scheme_for_deparment', + method: 'post', + data: data + }) } \ No newline at end of file diff --git a/src/api/systemaccredit/systemhrapi.js b/src/api/systemaccredit/systemhrapi.js index 2b69ab3..cd2500c 100644 --- a/src/api/systemaccredit/systemhrapi.js +++ b/src/api/systemaccredit/systemhrapi.js @@ -87,6 +87,14 @@ export const getInsiDeworkHistoryList = (data) => { data: data }) } +//编辑集团工作履历信息 +export const insIdeWorkHistoryList = (data) => { + return request({ + url: '/staff/insideworkhistorylist', + method: 'post', + data: data + }) +} //获取资料完整度 export const getDataIntegrity = (data) => { @@ -183,11 +191,155 @@ export const editFamilyMembers = (data) => { }) } -//编辑家庭成员 +//编辑家庭成员状态 export const editFamilyMembersState = (data) => { return request({ url: '/staff/editfamilymemberssatte', method: 'post', data: data }) +} + +//添加教育经历 +export const addEducationAlexperience = (data) => { + return request({ + url: '/staff/addeducationalexperience', + method: 'post', + data: data + }) +} +//编辑教育经历状态 +export const editEduexpState = (data) => { + return request({ + url: '/staff/editeduexpstate', + method: 'post', + data: data + }) +} +//编辑教育经历信息 +export const editEduexpCont = (data) => { + return request({ + url: '/staff/editeducationalexperience', + method: 'post', + data: data + }) +} +//判断是否已经存在主职 +export const judgePrinPosition = (data) => { + return request({ + url: '/staff/judge_prin_position', + method: 'post', + data: data + }) +} + +//添加集团工作履历 +export const addInsideHistory = (data) => { + return request({ + url: '/staff/addinsidehistorynew', + method: 'post', + data: data + }) +} + +//编辑集团工作履历状态 +export const editOrdelInsideWorkhiStoryState = (data) => { + return request({ + url: '/staff/editordelinsideworkhistorystate', + method: 'post', + data: data + }) +} +//编辑集团工作履历信息 +export const eidtinsidehistoryworkcont = (data) => { + return request({ + url: '/staff/eidtinsidehistoryworkcont', + method: 'post', + data: data + }) +} + +//添加集团外工作履历信息 +export const addWorkHistoryCont = (data) => { + return request({ + url: '/staff/addworkhistorycont', + method: 'post', + data: data + }) +} +//编辑集团外工作履历状态 +export const editWorkHistoryState = (data) => { + return request({ + url: '/staff/editworkhistorystate', + method: 'post', + data: data + }) +} +//编辑集团外工作履历信息 +export const editWorkHistoryCont = (data) => { + return request({ + url: '/staff/editworkhistorycont', + method: 'post', + data: data + }) +} + +//获取工作时间列表 +export const teamTimeList = (data) => { + return request({ + url: '/rostering/team_time_list', + method: 'post', + data: data + }) +} + +//添加工作时间段设定 +export const addTeamTime = (data) => { + return request({ + url: '/rostering/add_team_time', + method: 'post', + data: data + }) +} + +//编辑工作时间段状态 +export const editWorkTimeState = (data) => { + return request({ + url: '/rostering/edit_work_time_state', + method: 'post', + data: data + }) +} +//编辑工作时间段内容 +export const editWorkTimeCont = (data) => { + return request({ + url: '/rostering/edit_work_time_cont', + method: 'post', + data: data + }) +} +//获取工作时段及轮询规则列表 +export const getPeriodAndRuleList = (data) => { + return request({ + url: '/rostering/get_period_rule_list', + method: 'post', + data: data + }) +} +//写入轮询源点 +export const setOirginCont = (data) => { + return request({ + url: '/rostering/set_oirgin_cont', + method: 'post', + data: data + }) +} + +//获取排班表 +export const getSchedule = (data) => { + return request({ + url: '/rostering/get_schedule', + method: 'post', + data: data + }) } \ No newline at end of file diff --git a/src/css/dialog.css b/src/css/dialog.css new file mode 100644 index 0000000..5cbb100 --- /dev/null +++ b/src/css/dialog.css @@ -0,0 +1,40 @@ +.person_body { + border: 1px solid #f5f5f5; + height: 500px; +} +.tree_nav span { + display: inline-block; + padding-right: 10px; + margin-right: 5px; + max-width: 6em; + color: #38adff; + font-size: 12px; + cursor: pointer; + background: url(~@/assets/images/jiaojiao.png) no-repeat right center; +} +.tree_nav span:last-of-type { + background: none; +} +.person_tree { + padding: 10px 12px 0 8px; + width: 280px; + height: 100%; + border-right: 1px solid #f5f5f5; +} +.person_tree input { + padding-left: 22px; + width: 210px; + height: 30px; + font-size: 12px; + border-radius: 2px; + border: 1px solid #d5dadf; + background: url(~@/assets/images/list_search.png) no-repeat 10px center; + background-size: 14px 14px; + margin-bottom: 14px; +} + +.person_tree img { + width: 14px; + vertical-align: middle; + margin-right: 5px; +} diff --git a/src/css/override-element-ui.css b/src/css/override-element-ui.css new file mode 100644 index 0000000..d0d0de3 --- /dev/null +++ b/src/css/override-element-ui.css @@ -0,0 +1,112 @@ +.el-drawer__header button.el-drawer__close-btn { + display: none; +} + +.el-drawer__header { + margin-bottom: 0; + padding: 14px 0 14px 20px; + /* border-bottom: 1px solid #f2f2f2; */ + color: #323232; + font-size: 16px; +} + +.demo-drawer__content { + display: flex; + flex-direction: column; + height: 100%; +} + +.drawer_content { + flex: 1; +} + +.demo-drawer__content>div { + border-top: 1px solid #F2F2F2; +} + +.el-button { + min-width: 79px; + padding: 8px 12px; + font-size: 12px; + border-radius: 2px; + background: #46A6FE; +} + +.el-button.el-button--default { + color: #323232; + background: #f2f2f2; +} + +.demo-drawer__footer { + padding: 10px 30px; + border-top: 1px solid #F2F2F2; +} + +.demo-drawer__footer .el-button { + float: right; + margin-right: 10px; +} + +.el-dialog { + width: 520px; + border: 1px solid #DDE1E5; + border-radius: 3px; +} + +.el-dialog__header { + padding: 0 0 0 20px; + line-height: 50px; + height: 50px; + background: #fff; + border-bottom: 1px solid #F2F2F2; +} + +.el-dialog__header .el-dialog__title { + font-size: 16px; + line-height: 50px; + color: #333333; +} + +.el-dialog__header .el-dialog__headerbtn { + height: 12px; + width: 12px; +} + +.el-dialog__header .el-icon-close { + width: 12px; + height: 12px; + float: left; +} + +.el-dialog__header .el-icon-close::before { + display: block; + width: 12px; + height: 12px; + background: url(~@/assets/images/add-close.png) no-repeat center; + background-size: 100% 100%; + content: ""; +} + +.el-dialog__footer { + border-top: 1px solid #F2F2F2; + padding-bottom: 10px; +} + +.el-checkbox, +.el-checkbox__input.is-checked+.el-checkbox__label, +.el-radio, +.el-radio__input.is-checked+.el-radio__label, +.el-dialog__body, +.el-tree { + color: #333; +} + +.el-radio__label, .el-checkbox__label { + font-size: 12px; +} +.my-el-custom-spinner { + display: inline-block; + width: 80px; + height: 80px; + background: url(~@/assets/images/loading.gif) no-repeat center; +} \ No newline at end of file diff --git a/src/css/workflow.css b/src/css/workflow.css new file mode 100644 index 0000000..b59c048 --- /dev/null +++ b/src/css/workflow.css @@ -0,0 +1,1722 @@ +body { + background: #eee +} + +@font-face { + font-family: Chinese Quote; + src: local("PingFang SC"), local("SimSun"); + unicode-range: u+2018, u+2019, u+201c, u+201d +} + +body, +html { + width: 100%; + /* height: 100% */ +} + +input::-ms-clear, +input::-ms-reveal { + display: none +} + +*, +:after, +:before { + box-sizing: border-box +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -ms-overflow-style: scrollbar; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0) +} + +@-ms-viewport { + width: device-width +} + +article, +aside, +dialog, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section { + display: block +} + +body { + margin: 0; + font-family: Chinese Quote, -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif; + font-size: 14px; + font-variant: tabular-nums; + line-height: 1.5; + color: rgba(0, 0, 0, .65); + background-color: #fff +} + +[tabindex="-1"]:focus { + outline: none!important +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: .5em; + color: rgba(0, 0, 0, .85); + font-weight: 500 +} + +p { + margin-top: 0; + margin-bottom: 1em +} + +abbr[data-original-title], +abbr[title] { + text-decoration: underline; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0 +} + +address { + margin-bottom: 1em; + font-style: normal; + line-height: inherit +} + +input[type=number], +input[type=password], +input[type=text], +textarea { + -webkit-appearance: none +} + +dl, +ol, +ul { + margin-top: 0; + margin-bottom: 1em +} + +ol ol, +ol ul, +ul ol, +ul ul { + margin-bottom: 0 +} + +dt { + font-weight: 500 +} + +dd { + margin-bottom: .5em; + margin-left: 0 +} + +blockquote { + margin: 0 0 1em +} + +dfn { + font-style: italic +} + +b, +strong { + font-weight: bolder +} + +small { + font-size: 80% +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline +} + +sub { + bottom: -.25em +} + +sup { + top: -.5em +} + +a { + color: #1890ff; + background-color: transparent; + text-decoration: none; + outline: none; + cursor: pointer; + transition: color .3s; + -webkit-text-decoration-skip: objects +} + +a:focus { + text-decoration: underline; + text-decoration-skip: auto +} + +a:hover { + color: #40a9ff +} + +a:active { + color: #096dd9 +} + +a:active, +a:hover { + outline: 0; + text-decoration: none +} + +code, +kbd, +pre, +samp { + font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace; + font-size: 1em +} + +pre { + margin-top: 0; + margin-bottom: 1em; + overflow: auto +} + +figure { + margin: 0 0 1em +} + +img { + vertical-align: middle; + border-style: none +} + +svg:not(:root) { + overflow: hidden +} + +[role=button], +a, +area, +button, +input:not([type=range]), +label, +select, +summary, +textarea { + touch-action: manipulation +} + +table { + border-collapse: collapse +} + +caption { + padding-top: .75em; + padding-bottom: .3em; + color: rgba(0, 0, 0, .45); + text-align: left; + caption-side: bottom +} + +th { + text-align: inherit +} + +button, +input, +optgroup, +select, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; + color: inherit +} + +button, +input { + overflow: visible +} + +button, +select { + text-transform: none +} + +[type=reset], +[type=submit], +button, +html [type=button] { + -webkit-appearance: button +} + +[type=button]::-moz-focus-inner, +[type=reset]::-moz-focus-inner, +[type=submit]::-moz-focus-inner, +button::-moz-focus-inner { + padding: 0; + border-style: none +} + +input[type=checkbox], +input[type=radio] { + box-sizing: border-box; + padding: 0 +} + +input[type=date], +input[type=datetime-local], +input[type=month], +input[type=time] { + -webkit-appearance: listbox +} + +textarea { + overflow: auto; + resize: vertical +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0 +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5em; + font-size: 1.5em; + line-height: inherit; + color: inherit; + white-space: normal +} + +progress { + vertical-align: baseline +} + +[type=number]::-webkit-inner-spin-button, +[type=number]::-webkit-outer-spin-button { + height: auto +} + +[type=search] { + outline-offset: -2px; + -webkit-appearance: none +} + +[type=search]::-webkit-search-cancel-button, +[type=search]::-webkit-search-decoration { + -webkit-appearance: none +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button +} + +output { + display: inline-block +} + +summary { + display: list-item +} + +template { + display: none +} + +[hidden] { + display: none!important +} + +mark { + padding: .2em; + background-color: #feffe6 +} + +::selection { + background: #1890ff; + color: #fff +} + +.clearfix { + zoom: 1 +} + +.clearfix:after, +.clearfix:before { + content: ""; + display: table +} + +.clearfix:after { + clear: both +} + +@font-face { + font-family: anticon; + font-display: fallback; + src: url("https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.eot"); + src: url("https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.woff") format("woff"), url("https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.ttf") format("truetype"), url("https://at.alicdn.com/t/font_148784_v4ggb6wrjmkotj4i.svg#iconfont") format("svg") +} + +.anticon { + display: inline-block; + font-style: normal; + vertical-align: baseline; + text-align: center; + text-transform: none; + line-height: 1; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale +} + +.anticon:before { + display: block; + font-family: anticon!important +} +.anticon-close:before { + content: "\E633" +} +.anticon-right:before { + content: "\E61F" +} +.anticon-exclamation-circle{ + color: rgb(242, 86, 67) +} +.anticon-exclamation-circle:before { + content: "\E62C" +} + +.anticon-left:before { + content: "\E620" +} + +.anticon-close-circle:before { + content: "\E62E" +} + +.ant-btn { + line-height: 1.5; + display: inline-block; + font-weight: 400; + text-align: center; + touch-action: manipulation; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + white-space: nowrap; + padding: 0 15px; + font-size: 14px; + border-radius: 4px; + height: 32px; + user-select: none; + transition: all .3s cubic-bezier(.645, .045, .355, 1); + position: relative; + color: rgba(0, 0, 0, .65); + background-color: #fff; + border-color: #d9d9d9 +} + +.ant-btn>.anticon { + line-height: 1 +} + +.ant-btn, +.ant-btn:active, +.ant-btn:focus { + outline: 0 +} + +.ant-btn>a:only-child { + color: currentColor +} + +.ant-btn>a:only-child:after { + content: ""; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: transparent +} + +.ant-btn:focus, +.ant-btn:hover { + color: #40a9ff; + background-color: #fff; + border-color: #40a9ff +} + +.ant-btn:focus>a:only-child, +.ant-btn:hover>a:only-child { + color: currentColor +} + +.ant-btn:focus>a:only-child:after, +.ant-btn:hover>a:only-child:after { + content: ""; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: transparent +} + +.ant-btn.active, +.ant-btn:active { + color: #096dd9; + background-color: #fff; + border-color: #096dd9 +} + +.ant-btn.active>a:only-child, +.ant-btn:active>a:only-child { + color: currentColor +} + +.ant-btn.active>a:only-child:after, +.ant-btn:active>a:only-child:after { + content: ""; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: transparent +} + +.ant-btn.active, +.ant-btn:active, +.ant-btn:focus, +.ant-btn:hover { + background: #fff; + text-decoration: none +} + +.ant-btn>i, +.ant-btn>span { + pointer-events: none +} + +.ant-btn:before { + position: absolute; + top: -1px; + left: -1px; + bottom: -1px; + right: -1px; + background: #fff; + opacity: .35; + content: ""; + border-radius: inherit; + z-index: 1; + transition: opacity .2s; + pointer-events: none; + display: none +} + +.ant-btn .anticon { + transition: margin-left .3s cubic-bezier(.645, .045, .355, 1) +} + +.ant-btn:active>span, +.ant-btn:focus>span { + position: relative +} + +.ant-btn>.anticon+span, +.ant-btn>span+.anticon { + margin-left: 8px +} + +.fd-nav-container { + display: inline-block; + position: relative +} + +.fd-nav-container .ghost-bar { + position: absolute; + width: 150px; + height: 100%; + left: 0; + background: #1583f2; + -webkit-transition: all .3s cubic-bezier(.645, .045, .355, 1); + transition: all .3s cubic-bezier(.645, .045, .355, 1) +} + +.fd-nav-container .ghost-bar:after { + content: ""; + position: absolute; + bottom: 0; + left: 50%; + margin-left: -5px; + width: 0; + height: 0; + border-style: solid; + border-width: 0 5px 6px; + border-color: transparent transparent #f6f6f6 +} + +.fd-nav-item { + position: relative; + cursor: pointer; + display: inline-block; + line-height: 60px; + width: 150px; + text-align: center; + white-space: nowrap +} + +.fd-nav-item .order-num { + display: inline-block; + width: 20px; + height: 20px; + line-height: 20px; + border: 1px solid #fff; + border-radius: 50%; + margin-right: 6px; + -webkit-transition: all .3s cubic-bezier(.645, .045, .355, 1); + transition: all .3s cubic-bezier(.645, .045, .355, 1) +} + +.fd-nav-item.active .order-num { + color: #1583f2; + background: #fff +} + +.ant-input { + font-family: Chinese Quote, -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif; + font-variant: tabular-nums; + box-sizing: border-box; + margin: 0; + padding: 0; + list-style: none; + position: relative; + display: inline-block; + padding: 4px 11px; + width: 100%; + height: 32px; + font-size: 14px; + line-height: 1.5; + color: rgba(0, 0, 0, .65); + background-color: #fff; + background-image: none; + border: 1px solid #d9d9d9; + border-radius: 4px; + transition: all .3s +} + +.ant-input::-moz-placeholder { + color: #bfbfbf; + opacity: 1 +} + +.ant-input:-ms-input-placeholder { + color: #bfbfbf +} + +.ant-input::-webkit-input-placeholder { + color: #bfbfbf +} + +.ant-input:focus, +.ant-input:hover { + border-color: #40a9ff; + border-right-width: 1px!important +} + +.ant-input:focus { + outline: 0; + box-shadow: 0 0 0 2px rgba(24, 144, 255, .2) +} + +textarea.ant-input { + max-width: 100%; + height: auto; + vertical-align: bottom; + transition: all .3s, height 0s; + min-height: 32px +} + +a, +abbr, +acronym, +address, +applet, +article, +aside, +audio, +b, +big, +blockquote, +body, +canvas, +caption, +center, +cite, +code, +dd, +del, +details, +dfn, +div, +dl, +dt, +em, +fieldset, +figcaption, +figure, +footer, +form, +h1, +h2, +h3, +h4, +h5, +h6, +header, +hgroup, +html, +i, +iframe, +img, +ins, +kbd, +label, +legend, +li, +mark, +menu, +nav, +object, +ol, +p, +pre, +q, +s, +samp, +section, +small, +span, +strike, +strong, +sub, +summary, +sup, +table, +tbody, +td, +tfoot, +th, +thead, +time, +tr, +tt, +u, +ul, +var, +video { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline +} + +*, +:after, +:before { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} + +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100% +} + +body, +html { + font-size: 14px +} + +body { + font-family: Microsoft Yahei, Lucida Grande, Lucida Sans Unicode, Helvetica, Arial, Verdana, sans-serif; + line-height: 1.6; + background-color: #fff; + position: static!important; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0) +} + +ol, +ul { + list-style-type: none +} + +b, +strong { + font-weight: 700 +} + +img { + border: 0 +} + +button, +input, +select, +textarea { + font-family: inherit; + font-size: 100%; + margin: 0 +} + +textarea { + overflow: auto; + vertical-align: top; + -webkit-appearance: none +} + +button, +input { + line-height: normal +} + +button, +select { + text-transform: none +} + +button, +html input[type=button], +input[type=reset], +input[type=submit] { + -webkit-appearance: button; + cursor: pointer +} + +input[type=search] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box +} + +input[type=search]::-webkit-search-cancel-button, +input[type=search]::-webkit-search-decoration { + -webkit-appearance: none +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0 +} + +table { + width: 100%; + border-spacing: 0; + border-collapse: collapse +} + +table, +td, +th { + border: 0 +} + +td, +th { + padding: 0; + vertical-align: top +} + +th { + font-weight: 700; + text-align: left +} + +thead th { + white-space: nowrap +} + +a { + text-decoration: none; + cursor: pointer; + color: #3296fa +} + +a:active, +a:hover { + outline: 0; + color: #3296fa +} + +small { + font-size: 80% +} + +body, +html { + font-size: 12px!important; + color: #191f25!important; + background: #f6f6f6!important +} + +.wrap { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + height: 100% +} + +@font-face { + font-family: IconFont; + src: url("//at.alicdn.com/t/font_135284_ph2thxxbzgf.eot"); + src: url("//at.alicdn.com/t/font_135284_ph2thxxbzgf.eot?#iefix") format("embedded-opentype"), url("//at.alicdn.com/t/font_135284_ph2thxxbzgf.woff") format("woff"), url("//at.alicdn.com/t/font_135284_ph2thxxbzgf.ttf") format("truetype"), url("//at.alicdn.com/t/font_135284_ph2thxxbzgf.svg#IconFont") format("svg") +} + +.iconfont { + font-family: IconFont!important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -webkit-text-stroke-width: .2px; + -moz-osx-font-smoothing: grayscale +} + +.fd-nav { + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 997; + width: 100%; + height: 60px; + font-size: 14px; + color: #fff; + background: #3296fa; + display: flex; + align-items: center +} + +.fd-nav>* { + flex: 1; + width: 100% +} + +.fd-nav .fd-nav-left { + display: -webkit-box; + display: flex; + align-items: center +} + +.fd-nav .fd-nav-center { + flex: none; + width: 600px; + text-align: center +} + +.fd-nav .fd-nav-right { + display: flex; + align-items: center; + justify-content: flex-end; + text-align: right +} + +.fd-nav .fd-nav-back { + display: inline-block; + width: 60px; + height: 60px; + font-size: 22px; + border-right: 1px solid #1583f2; + text-align: center; + cursor: pointer +} + +.fd-nav .fd-nav-back:hover { + background: #5af +} + +.fd-nav .fd-nav-back:active { + background: #1583f2 +} + +.fd-nav .fd-nav-back .anticon { + line-height: 60px +} + +.fd-nav .fd-nav-title { + width: 0; + flex: 1; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + padding: 0 15px +} + +.fd-nav a { + color: #fff; + margin-left: 12px +} + +.fd-nav .button-publish { + min-width: 80px; + margin-left: 4px; + margin-right: 15px; + color: #3296fa; + border-color: #fff +} + +.fd-nav .button-publish.ant-btn:focus, +.fd-nav .button-publish.ant-btn:hover { + color: #3296fa; + border-color: #fff; + box-shadow: 0 10px 20px 0 rgba(0, 0, 0, .3) +} + +.fd-nav .button-publish.ant-btn:active { + color: #3296fa; + background: #d6eaff; + box-shadow: none +} + +.fd-nav .button-preview { + min-width: 80px; + margin-left: 16px; + margin-right: 4px; + color: #fff; + border-color: #fff; + background: transparent +} + +.fd-nav .button-preview.ant-btn:focus, +.fd-nav .button-preview.ant-btn:hover { + color: #fff; + border-color: #fff; + background: #59acfc +} + +.fd-nav .button-preview.ant-btn:active { + color: #fff; + border-color: #fff; + background: #2186ef +} + +.fd-nav-content { + position: fixed; + top: 60px; + left: 0; + right: 0; + bottom: 0; + z-index: 1; + overflow-x: hidden; + overflow-y: auto; + padding-bottom: 30px +} + +.error-modal-desc { + font-size: 13px; + color: rgba(25, 31, 37, .56); + line-height: 22px; + margin-bottom: 14px +} + +.error-modal-list { + height: 200px; + overflow-y: auto; + margin-right: -25px; + padding-right: 25px +} + +.error-modal-item { + padding: 10px 20px; + line-height: 21px; + background: #f6f6f6; + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 8px; + border-radius: 4px +} + +.error-modal-item-label { + flex: none; + font-size: 15px; + color: rgba(25, 31, 37, .56); + padding-right: 10px +} + +.error-modal-item-content { + text-align: right; + flex: 1; + font-size: 13px; + color: #191f25 +} + +#body.blur { + -webkit-filter: blur(3px); + filter: blur(3px) +} + +.zoom { + display: flex; + position: fixed; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + height: 40px; + width: 125px; + right: 40px; + margin-top: 30px; + z-index: 10 +} + +.zoom .zoom-in, +.zoom .zoom-out { + width: 30px; + height: 30px; + background: #fff; + color: #c1c1cd; + cursor: pointer; + background-size: 100%; + background-repeat: no-repeat +} + +.zoom .zoom-out { + background-image: url(https://gw.alicdn.com/tfs/TB1s0qhBHGYBuNjy0FoXXciBFXa-90-90.png) +} + +.zoom .zoom-out.disabled { + opacity: .5 +} + +.zoom .zoom-in { + background-image: url(https://gw.alicdn.com/tfs/TB1UIgJBTtYBeNjy1XdXXXXyVXa-90-90.png) +} + +.zoom .zoom-in.disabled { + opacity: .5 +} + +.auto-judge:hover .editable-title, +.node-wrap-box:hover .editable-title { + border-bottom: 1px dashed #fff +} + +.auto-judge:hover .editable-title.editing, +.node-wrap-box:hover .editable-title.editing { + text-decoration: none; + border: 1px solid #d9d9d9 +} + +.auto-judge:hover .editable-title { + border-color: #15bc83 +} + +.editable-title { + line-height: 15px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + border-bottom: 1px dashed transparent +} + +.editable-title:before { + content: ""; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 40px +} + +.editable-title:hover { + border-bottom: 1px dashed #fff +} + +.editable-title-input { + flex: none; + height: 18px; + padding-left: 4px; + text-indent: 0; + font-size: 12px; + line-height: 18px; + z-index: 1 +} + +.editable-title-input:hover { + text-decoration: none +} + +.ant-btn { + position: relative +} + +.node-wrap-box { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + position: relative; + width: 220px; + min-height: 72px; + -ms-flex-negative: 0; + flex-shrink: 0; + background: #fff; + border-radius: 4px; + cursor: pointer +} + +.node-wrap-box:after { + pointer-events: none; + content: ""; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 2; + border-radius: 4px; + border: 1px solid transparent; + transition: all .1s cubic-bezier(.645, .045, .355, 1); + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .1) +} + +.node-wrap-box.active:after, +.node-wrap-box:active:after, +.node-wrap-box:hover:after { + border: 1px solid #3296fa; + box-shadow: 0 0 6px 0 rgba(50, 150, 250, .3) +} + +.node-wrap-box.active .close, +.node-wrap-box:active .close, +.node-wrap-box:hover .close { + display: block +} + +.node-wrap-box.error:after { + border: 1px solid #f25643; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .1) +} + +.node-wrap-box .title { + position: relative; + display: flex; + align-items: center; + padding-left: 16px; + padding-right: 30px; + width: 100%; + height: 24px; + line-height: 24px; + font-size: 12px; + color: #fff; + text-align: left; + background: #576a95; + border-radius: 4px 4px 0 0 +} + +.node-wrap-box .title .iconfont { + font-size: 12px; + margin-right: 5px +} + +.node-wrap-box .placeholder { + color: #bfbfbf +} + +.node-wrap-box .close { + display: none; + position: absolute; + right: 10px; + top: 50%; + transform: translateY(-50%); + width: 20px; + height: 20px; + font-size: 14px; + color: #fff; + border-radius: 50%; + text-align: center; + line-height: 20px +} + +.node-wrap-box .content { + position: relative; + font-size: 14px; + padding: 16px; + padding-right: 30px +} + +.node-wrap-box .content .text { + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical +} + +.node-wrap-box .content .arrow { + position: absolute; + right: 10px; + top: 50%; + transform: translateY(-50%); + width: 20px; + height: 14px; + font-size: 14px; + color: #979797 +} + +.start-node.node-wrap-box .content .text { + display: block; + white-space: nowrap +} + +.node-wrap-box:before { + content: ""; + position: absolute; + top: -12px; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + width: 0; + height: 4px; + border-style: solid; + border-width: 8px 6px 4px; + border-color: #cacaca transparent transparent; + background: #f5f5f7 +} + +.node-wrap-box.start-node:before { + content: none +} + +.top-left-cover-line { + left: -1px +} + +.top-left-cover-line, +.top-right-cover-line { + position: absolute; + height: 8px; + width: 50%; + background-color: #f5f5f7; + top: -4px +} + +.top-right-cover-line { + right: -1px +} + +.bottom-left-cover-line { + left: -1px +} + +.bottom-left-cover-line, +.bottom-right-cover-line { + position: absolute; + height: 8px; + width: 50%; + background-color: #f5f5f7; + bottom: -4px +} + +.bottom-right-cover-line { + right: -1px +} + +.dingflow-design { + width: 100%; + background-color: #f5f5f7; + overflow: auto; + position: absolute; + bottom: 0; + left: 0; + right: 0; + top: 0 +} + +.dingflow-design .box-scale { + transform: scale(1); + display: inline-block; + position: relative; + width: 100%; + padding: 54.5px 0; + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + min-width: -webkit-min-content; + min-width: -moz-min-content; + min-width: min-content; + background-color: #f5f5f7; + transform-origin: 50% 0px 0px; +} + +.dingflow-design .node-wrap { + flex-direction: column; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + padding: 0 50px; + position: relative +} + +.dingflow-design .branch-wrap, +.dingflow-design .node-wrap { + display: inline-flex; + width: 100% +} + +.dingflow-design .branch-box-wrap { + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + min-height: 270px; + width: 100%; + -ms-flex-negative: 0; + flex-shrink: 0 +} + +.dingflow-design .branch-box { + display: flex; + overflow: visible; + min-height: 180px; + height: auto; + border-bottom: 2px solid #ccc; + border-top: 2px solid #ccc; + position: relative; + margin-top: 15px +} + +.dingflow-design .branch-box .col-box { + background: #f5f5f7 +} + +.dingflow-design .branch-box .col-box:before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 0; + margin: auto; + width: 2px; + height: 100%; + background-color: #cacaca +} + +.dingflow-design .add-branch { + border: none; + outline: none; + user-select: none; + justify-content: center; + font-size: 12px; + padding: 0 10px; + height: 30px; + line-height: 30px; + border-radius: 15px; + color: #3296fa; + background: #fff; + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .1); + position: absolute; + top: -16px; + left: 50%; + transform: translateX(-50%); + transform-origin: center center; + cursor: pointer; + z-index: 1; + display: inline-flex; + align-items: center; + -webkit-transition: all .3s cubic-bezier(.645, .045, .355, 1); + transition: all .3s cubic-bezier(.645, .045, .355, 1) +} + +.dingflow-design .add-branch:hover { + transform: translateX(-50%) scale(1.1); + box-shadow: 0 8px 16px 0 rgba(0, 0, 0, .1) +} + +.dingflow-design .add-branch:active { + transform: translateX(-50%); + box-shadow: none +} + +.dingflow-design .col-box { + display: inline-flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + flex-direction: column; + -webkit-box-align: center; + align-items: center; + position: relative +} + +.dingflow-design .condition-node { + min-height: 220px +} + +.dingflow-design .condition-node, +.dingflow-design .condition-node-box { + display: inline-flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + flex-direction: column; + -webkit-box-flex: 1 +} + +.dingflow-design .condition-node-box { + padding-top: 30px; + padding-right: 50px; + padding-left: 50px; + -webkit-box-pack: center; + justify-content: center; + -webkit-box-align: center; + align-items: center; + flex-grow: 1; + position: relative +} + +.dingflow-design .condition-node-box:before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + margin: auto; + width: 2px; + height: 100%; + background-color: #cacaca +} + +.dingflow-design .auto-judge { + position: relative; + width: 220px; + min-height: 72px; + background: #fff; + border-radius: 4px; + padding: 14px 19px; + cursor: pointer +} + +.dingflow-design .auto-judge:after { + pointer-events: none; + content: ""; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 2; + border-radius: 4px; + border: 1px solid transparent; + transition: all .1s cubic-bezier(.645, .045, .355, 1); + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .1) +} + +.dingflow-design .auto-judge.active:after, +.dingflow-design .auto-judge:active:after, +.dingflow-design .auto-judge:hover:after { + border: 1px solid #3296fa; + box-shadow: 0 0 6px 0 rgba(50, 150, 250, .3) +} + +.dingflow-design .auto-judge.active .close, +.dingflow-design .auto-judge:active .close, +.dingflow-design .auto-judge:hover .close { + display: block +} + +.dingflow-design .auto-judge.error:after { + border: 1px solid #f25643; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .1) +} + +.dingflow-design .auto-judge .title-wrapper { + position: relative; + font-size: 12px; + color: #15bc83; + text-align: left; + line-height: 16px +} + +.dingflow-design .auto-judge .title-wrapper .editable-title { + display: inline-block; + max-width: 120px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis +} + +.dingflow-design .auto-judge .title-wrapper .priority-title { + display: inline-block; + float: right; + margin-right: 10px; + color: rgba(25, 31, 37, .56) +} + +.dingflow-design .auto-judge .placeholder { + color: #bfbfbf +} + +.dingflow-design .auto-judge .close { + display: none; + position: absolute; + right: -10px; + top: -10px; + width: 20px; + height: 20px; + font-size: 14px; + color: rgba(0, 0, 0, .25); + border-radius: 50%; + text-align: center; + line-height: 20px; + z-index: 2 +} + +.dingflow-design .auto-judge .content { + font-size: 14px; + color: #191f25; + text-align: left; + margin-top: 6px; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical +} + +.dingflow-design .auto-judge .sort-left, +.dingflow-design .auto-judge .sort-right { + position: absolute; + top: 0; + bottom: 0; + display: none; + z-index: 1 +} + +.dingflow-design .auto-judge .sort-left { + left: 0; + border-right: 1px solid #f6f6f6 +} + +.dingflow-design .auto-judge .sort-right { + right: 0; + border-left: 1px solid #f6f6f6 +} + +.dingflow-design .auto-judge:hover .sort-left, +.dingflow-design .auto-judge:hover .sort-right { + display: flex; + align-items: center +} + +.dingflow-design .auto-judge .sort-left:hover, +.dingflow-design .auto-judge .sort-right:hover { + background: #efefef +} + +.dingflow-design .end-node { + border-radius: 50%; + font-size: 14px; + color: rgba(25, 31, 37, .4); + text-align: left +} + +.dingflow-design .end-node .end-node-circle { + width: 10px; + height: 10px; + margin: auto; + border-radius: 50%; + background: #dbdcdc +} + +.dingflow-design .end-node .end-node-text { + margin-top: 5px; + text-align: center +} + +.approval-setting { + border-radius: 2px; + margin: 20px 0; + position: relative; + background: #fff +} + +.ant-btn { + position: relative +} + + diff --git a/src/images/add-close.png b/src/images/add-close.png new file mode 100644 index 0000000..1c7e4d6 Binary files /dev/null and b/src/images/add-close.png differ diff --git a/src/images/add-close1.png b/src/images/add-close1.png new file mode 100644 index 0000000..27e1ebb Binary files /dev/null and b/src/images/add-close1.png differ diff --git a/src/images/cancel.png b/src/images/cancel.png new file mode 100644 index 0000000..2dbe531 Binary files /dev/null and b/src/images/cancel.png differ diff --git a/src/images/check_box.png b/src/images/check_box.png new file mode 100644 index 0000000..fb89fe2 Binary files /dev/null and b/src/images/check_box.png differ diff --git a/src/images/icon_file.png b/src/images/icon_file.png new file mode 100644 index 0000000..857d35b Binary files /dev/null and b/src/images/icon_file.png differ diff --git a/src/images/icon_people.png b/src/images/icon_people.png new file mode 100644 index 0000000..ae4e7af Binary files /dev/null and b/src/images/icon_people.png differ diff --git a/src/images/icon_role.png b/src/images/icon_role.png new file mode 100644 index 0000000..23bfa15 Binary files /dev/null and b/src/images/icon_role.png differ diff --git a/src/images/jiaojiao.png b/src/images/jiaojiao.png new file mode 100644 index 0000000..4e3c7fe Binary files /dev/null and b/src/images/jiaojiao.png differ diff --git a/src/images/list_search.png b/src/images/list_search.png new file mode 100644 index 0000000..01c2f97 Binary files /dev/null and b/src/images/list_search.png differ diff --git a/src/images/loading.gif b/src/images/loading.gif new file mode 100644 index 0000000..979d52d Binary files /dev/null and b/src/images/loading.gif differ diff --git a/src/images/next_level.png b/src/images/next_level.png new file mode 100644 index 0000000..53d2837 Binary files /dev/null and b/src/images/next_level.png differ diff --git a/src/images/next_level_active.png b/src/images/next_level_active.png new file mode 100644 index 0000000..1a52ae8 Binary files /dev/null and b/src/images/next_level_active.png differ diff --git a/src/main.js b/src/main.js index 3a9aef8..cedea2f 100644 --- a/src/main.js +++ b/src/main.js @@ -19,6 +19,9 @@ import 'font-awesome/css/font-awesome.min.css' import '@/icons' // icon // import '@/permission' // permission control + +import Node from 'workflow-ui/src/components/Generator/node' +Vue.component('Node', Node) /** * If you don't want to use mock-server * you want to use MockJs for mock api diff --git a/src/router/index.js b/src/router/index.js index 4b8afb9..9f5f189 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -269,6 +269,7 @@ export const constantRoutes = [ { path: 'targetbasic', component: () => import('@/views/basicCont/targetLayout'), + meta: { title: '考核指标'} }, ], @@ -373,6 +374,7 @@ export const constantRoutes = [ { path: 'departmentalAssessment', component: () => import('@/views/assessmentProgram/departmentBase'), + // component: () => import('@/views/assessmentProgram/newcont/programme.vue'), meta: { title: '部门考核'} }, { @@ -480,8 +482,35 @@ export const constantRoutes = [ }, ], }, - - + //排班管理 + { + path: '/setwork', + component: Layout, + children: [ + { + path: 'worktime', + component: () => import('@/views/setwork/worktime'), + meta: { title: '设置工作时段'} + }, + { + path: 'calendar', + component: () => import('@/views/setwork/calendar'), + meta: { title: '排班管理'} + }, + ] + }, + //工作流 + { + path:'/workflow', + component: Layout, + children: [ + { + path: 'flow', + component: () => import('@/views/workflow/flow'), + meta: { title: '设置工作时段'} + }, + ], + }, diff --git a/src/store/index.js b/src/store/index.js index 6be466a..cccc83f 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -13,7 +13,8 @@ const store = new Vuex.Store({ settings, user }, - getters + getters, }) export default store + \ No newline at end of file diff --git a/src/utils/request1.js b/src/utils/request1.js index c498707..f8fb87a 100644 --- a/src/utils/request1.js +++ b/src/utils/request1.js @@ -48,6 +48,9 @@ service.interceptors.response.use( // if the custom code is not 20000, it is judged as an error. if (res.code !== 0) { + if(res.code === 11111){ + return res + } if(res.code === 7){ store.commit('user/loginOut') } diff --git a/src/views/assessmentProgram/departmentalAssessment.vue b/src/views/assessmentProgram/departmentalAssessment.vue index dad2813..6caaa05 100644 --- a/src/views/assessmentProgram/departmentalAssessment.vue +++ b/src/views/assessmentProgram/departmentalAssessment.vue @@ -662,6 +662,10 @@ import { getgroupdepartmap, getgroupuser } from '@/api/duty/group' + +import { createSchemeForDeparment } from '@/api/systemaccredit/systemapi' + + export default { name: 'Dashboard', props:['bmId'], @@ -1201,7 +1205,9 @@ export default { // const res = await adddepartmentdutyinfo(this.form) // const res = await newadddepartduty(this.form) // this.demDialogFormVisible=false - const res = await adddepartdutyversio(this.form) + // const res = await adddepartdutyversio(this.form) + const res = await createSchemeForDeparment(this.form) + if (res.code === 0) { this.$message({ type: 'success', @@ -1249,7 +1255,8 @@ export default { // const res = await adddepartmentdutyinfo(this.form) // const res = await newadddepartduty(this.form) // this.demDialogFormVisible=false - const res = await adddepartdutyversio(from) + // const res = await adddepartdutyversio(from) + const res = await createSchemeForDeparment(from) if (res.code === 0) { this.$message({ type: 'success', @@ -1600,7 +1607,7 @@ export default { // 获取公司 async getGrouplist(){ const idFrom = { - // id:312 + id:313, level: 3 } const res = await getgroupdepartmap(idFrom) diff --git a/src/views/assessmentProgram/gwDepartmentalAssessment.vue b/src/views/assessmentProgram/gwDepartmentalAssessment.vue index d216059..def5f2f 100644 --- a/src/views/assessmentProgram/gwDepartmentalAssessment.vue +++ b/src/views/assessmentProgram/gwDepartmentalAssessment.vue @@ -293,7 +293,7 @@ - + 考核纬度:{{item.name}} @@ -370,7 +370,7 @@ - + 考核纬度:{{item.name}} @@ -691,7 +691,7 @@ - + 考核纬度:{{item.name}} @@ -1518,40 +1518,44 @@ async showIndex(){ console.log('岗位弹窗') console.log(this.gwFromList) - if (this.searchVersion.postid!='') { + console.log('岗位弹窗---1-->',this.searchVersion.postid) + if (this.searchVersion.postid != '') { const From={ id:this.gwFromList.gwId.toString() } const that = this // const res = await departmentlistnew(From) const res = await getpostabouttarget(From) + + console.log('岗位弹窗------------------>',From) + this.weiDuList=JSON.parse(JSON.stringify(res.data)) this.weiDuList.forEach(function(element) { - that.$set(element, 'ordering', '') - that.$set(element, 'zhiFraction', 0) - if (element.child!=null) { - element.child.forEach(function(iteam){ - that.$set(iteam, 'status', 1) - }) - } + that.$set(element, 'ordering', '') + that.$set(element, 'zhiFraction', 0) + if (element.child!=null) { + element.child.forEach(function(iteam){ + that.$set(iteam, 'status', 1) + }) + } + }); + this.Fraction=0 + this.weiDuList.forEach(function(element) { + element.zhiFraction=0 + }); + this.weiDuList.forEach(function(element) { + if (element.child!=null) { + element.child.forEach(function(iteam){ + if(iteam.status!=2){ + element.zhiFraction+=iteam.standardscore + } + }) + } + }); + this.weiduFraction=0 + this.weiDuList.forEach(function(element) { + that.weiduFraction+=element.zhiFraction }); - this.Fraction=0 - this.weiDuList.forEach(function(element) { - element.zhiFraction=0 - }); - this.weiDuList.forEach(function(element) { - if (element.child!=null) { - element.child.forEach(function(iteam){ - if(iteam.status!=2){ - element.zhiFraction+=iteam.standardscore - } - }) - } - }); - this.weiduFraction=0 - this.weiDuList.forEach(function(element) { - that.weiduFraction+=element.zhiFraction - }); console.log("this.weiDuList") console.log(this.weiDuList) } diff --git a/src/views/assessmentProgram/newcont/addplanpage.vue b/src/views/assessmentProgram/newcont/addplanpage.vue new file mode 100644 index 0000000..4df42a1 --- /dev/null +++ b/src/views/assessmentProgram/newcont/addplanpage.vue @@ -0,0 +1,42 @@ + + + \ No newline at end of file diff --git a/src/views/assessmentProgram/newcont/departprogramme.vue b/src/views/assessmentProgram/newcont/departprogramme.vue new file mode 100644 index 0000000..3161ccf --- /dev/null +++ b/src/views/assessmentProgram/newcont/departprogramme.vue @@ -0,0 +1,213 @@ + + + diff --git a/src/views/assessmentProgram/newcont/programme.vue b/src/views/assessmentProgram/newcont/programme.vue new file mode 100644 index 0000000..2743a4c --- /dev/null +++ b/src/views/assessmentProgram/newcont/programme.vue @@ -0,0 +1,123 @@ + + + \ No newline at end of file diff --git a/src/views/assessmentProgram/qualitativeIndicators.vue b/src/views/assessmentProgram/qualitativeIndicators.vue index 34994db..05993bf 100644 --- a/src/views/assessmentProgram/qualitativeIndicators.vue +++ b/src/views/assessmentProgram/qualitativeIndicators.vue @@ -1214,7 +1214,7 @@ export default { // console.log(this.bmId) // const list = [] // list.push(this.bmId) - this.searchInfo.departmentid=this.bmId + this.searchInfo.departmentid=this.bmId.toString(); this.getDataList() }, tableData() { @@ -1866,7 +1866,7 @@ export default { // 获取公司 async getGrouplist(){ const idFrom = { - // id:1 + id:313, level:3 } const res = await getgroupdepartmap(idFrom) diff --git a/src/views/basicCont/post/posttargetlist.vue b/src/views/basicCont/post/posttargetlist.vue new file mode 100644 index 0000000..0abc077 --- /dev/null +++ b/src/views/basicCont/post/posttargetlist.vue @@ -0,0 +1,19 @@ + + + \ No newline at end of file diff --git a/src/views/basicCont/targetConfigLayout.vue b/src/views/basicCont/targetConfigLayout.vue index 5366bcf..465c767 100644 --- a/src/views/basicCont/targetConfigLayout.vue +++ b/src/views/basicCont/targetConfigLayout.vue @@ -4,6 +4,9 @@ + +
行政组织
+
+ +
岗位
+
+ + +
人员
+
+ + +
@@ -28,20 +51,25 @@
+
+ +
@@ -140,4 +213,9 @@ export default { background-color:red !important; color:#2E89DE!important } +.titlestyle{ + text-align: left; + font-weight: bold; + padding: 0 5px; +} \ No newline at end of file diff --git a/src/views/basicCont/targetLayout.vue b/src/views/basicCont/targetLayout.vue index 473ed79..70a1367 100644 --- a/src/views/basicCont/targetLayout.vue +++ b/src/views/basicCont/targetLayout.vue @@ -15,9 +15,13 @@ width="200px" > @@ -72,7 +76,8 @@ export default { gwId:1, //岗位参数传递 gwFromList:{ //岗位参数传递 gwId:1, - bmId:1 + bmId:1, + postId:[] }, } }, @@ -111,13 +116,25 @@ export default { this.postList = res.data.list; }, // 点击岗位列表 - NodePostClick(val) { + NodePostClick(val,checked) { this.gwId=val.id this.gwFromList.gwId=val.id this.postShow=true this.departShow=false - // console.log('岗位') + console.log('岗位',val,checked.checkedNodes) console.log(this.gwFromList); + if(checked.checkedNodes.length <= 0){ + this.$refs.postTree.setCheckedKeys([val.id]); + console.log("----------------->",[val.id]); + this.gwFromList.postId = [val.id] + this.gwFromList.gwId=val.id + }else{ + this.gwFromList.postId = []; + checked.checkedNodes.forEach(item => { + this.gwFromList.postId.push(item.id) + }); + } + console.log("All---------------->",this.gwFromList); }, } } diff --git a/src/views/basicCont/targetPeopleConfig.vue b/src/views/basicCont/targetPeopleConfig.vue new file mode 100644 index 0000000..8ee7469 --- /dev/null +++ b/src/views/basicCont/targetPeopleConfig.vue @@ -0,0 +1,1158 @@ + + + \ No newline at end of file diff --git a/src/views/basicInfo/gwProject.vue b/src/views/basicInfo/gwProject.vue index 93ef393..6f04528 100644 --- a/src/views/basicInfo/gwProject.vue +++ b/src/views/basicInfo/gwProject.vue @@ -624,6 +624,7 @@ export default { cycle: [{ required: true, message: "必填", trigger: "blur" }], cycleattr: [{ required: true, message: "必填", trigger: "blur" }], }, + }; }, created() { @@ -647,6 +648,22 @@ export default { // const list = [] // list.push(this.gwFromList.gwId.toString()) this.searchInfo.departmentsPost=this.gwFromList.gwId.toString() + this.relevantpostsman =[]; + this.gwFromList.postId.forEach(items=>{ + this.relevantpostsman.push({ + id:items.toString(), + operator:[] + }) + }); + + // relevantpostsman:[{ + // // 岗位id + // id:'', + // // 多人员列表 + // operator:[] + // }], + + this.getPost(this.gwFromList.bmId) this.getDataList() }, @@ -767,7 +784,7 @@ export default { // 如果第一层没有子项做的操作。。。。。 } }); - console.log(this.grouplistBackup); + console.log("第一层没有子项做的操作",this.grouplistBackup); }, // 获取部门 async getGrouplist() { @@ -821,7 +838,14 @@ export default { // 新增按钮 showAdd() { this.dialogFormVisible = true; - console.log(this.dialogFormVisible); + this.relevantpostsman =[]; + this.gwFromList.postId.forEach(items=>{ + this.relevantpostsman.push({ + id:items.toString(), + operator:[] + }) + }); + console.log("新增按钮------------->",this.relevantpostsman); }, // 编辑按钮 async showEdit(row) { diff --git a/src/views/echarts/echarts.vue b/src/views/echarts/echarts.vue index 517948e..60bb1a4 100644 --- a/src/views/echarts/echarts.vue +++ b/src/views/echarts/echarts.vue @@ -36,8 +36,21 @@ + + + + + + + + + + + + + - + @@ -45,7 +58,7 @@ - + - + - + - - - - - - - - - - - - - + - - + + --> + - 查询 + + + + + 查询
@@ -113,8 +124,8 @@ @@ -147,7 +158,7 @@ @@ -216,18 +227,11 @@