Browse Source

用户端更新(0411)

dev
renguanyu111 4 years ago
parent
commit
0540836b74
  1. 2
      .env.development
  2. 24
      src/api/dutys.js
  3. 334
      src/router/index copy.js
  4. 85
      src/router/index.js
  5. 59
      src/views/approvalData/index.vue
  6. 161
      src/views/approvalList/index.vue
  7. 7
      src/views/dashboard/index.vue
  8. 24
      src/views/mete/index.vue
  9. 518
      src/views/qualitative/index copy.vue
  10. 470
      src/views/qualitative/index.vue
  11. 87
      src/views/quantitativeList/index.vue
  12. 39
      src/views/rectification/index.vue
  13. 78
      src/views/responsible/index.vue
  14. 116
      workspace.code-workspace

2
.env.development

@ -2,4 +2,4 @@
ENV = 'development'
# base api
VUE_APP_BASE_API = 'http://gin.vueadmin.net/api'
VUE_APP_BASE_API = 'http://vue.user.net/api'

24
src/api/dutys.js

@ -206,4 +206,28 @@ export const stafflist = (data) => {
data: data
})
}
//新定性考核列表
export const newqualitative = (data) => {
return request({
url: '/eval/newqualitative',
method: 'post',
data: data
})
}
//获取新定性考核详细指标
export const newgetqualdetailedtarget = (data) => {
return request({
url: '/eval/newgetqualdetailedtarget',
method: 'post',
data: data
})
}
//加减分NEW
export const plusorminuspoints = (data) => {
return request({
url: '/eval/plusorminuspoints',
method: 'post',
data: data
})
}

334
src/router/index copy.js

@ -0,0 +1,334 @@
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
/* Layout */
import Layout from '@/layout'
/**
* Note: sub-menu only appear when route children.length >= 1
* Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html
*
* hidden: true if set true, item will not show in the sidebar(default is false)
* alwaysShow: true if set true, will always show the root menu
* if not set alwaysShow, when item has more than one children route,
* it will becomes nested mode, otherwise not show the root menu
* redirect: noRedirect if set noRedirect will no redirect in the breadcrumb
* name:'router-name' the name is used by <keep-alive> (must set!!!)
* meta : {
roles: ['admin','editor'] control the page roles (you can set multiple roles)
title: 'title' the name show in sidebar and breadcrumb (recommend set)
icon: 'svg-name'/'el-icon-x' the icon show in the sidebar
breadcrumb: false if set false, the item will hidden in breadcrumb(default is true)
activeMenu: '/example/list' if set path, the sidebar will highlight the path you set
}
*/
/**
* constantRoutes
* a base page that does not have permission requirements
* all roles can be accessed
*/
export const constantRoutes = [
{
path: '/login',
component: () => import('@/views/login/index'),
hidden: true
},
{
path: '/ceshi',
component: () => import('@/views/ceshi/index'),
hidden: true
},
{
path: '/zerenLogin',
component: () => import('@/views/login/zerenLogin'),
hidden: true
},
{
path: '/zhenggaiLogin',
component: () => import('@/views/login/zhenggaiLogin'),
hidden: true
},
{
path: '/quantitativeListLogin',
component: () => import('@/views/login/quantitativeListLogin'),
hidden: true
},
{
path: '/dingxingLogin',
component: () => import('@/views/login/dingxingLogin'),
hidden: true
},
{
path: '/responsible',
component: () => import('@/views/responsible/index'),
hidden: true
},
{
path: '/quantitativeList',
component: () => import('@/views/quantitativeList/index'),
hidden: true
},
{
path: '/approvalList',
component: () => import('@/views/approvalList/index'),
hidden: true
},
{
path: '/rectification',
component: () => import('@/views/rectification/index'),
hidden: true
},
{
path: '/approval',
component: () => import('@/views/approval/index'),
hidden: true
},
// {
// path: '/details',
// component: () => import('@/views/record/details'),
// hidden: true
// },
{
path: '/index',
component: () => import('@/views/index'),
hidden: true
},
{
path: '/404',
component: () => import('@/views/404'),
hidden: true
},
{
path: '/',
component: Layout,
redirect: '/qualitative',
name: 'qualitative',
meta: { title: '数据提报'},
children: [
{
path: 'qualitative',
name: 'qualitative',
component: () => import('@/views/qualitative/index'),
meta: { title: '定性考核'}
},
{
path: 'mete',
name: 'mete',
component: () => import('@/views/mete/index'),
meta: { title: '定量考核'}
}
]
},
// {
// path: '/',
// component: Layout,
// redirect: '/qualitative',
// children: [{
// path: 'qualitative',
// name: 'Qualitative',
// component: () => import('@/views/qualitative/index'),
// meta: { title: '定性考核'}
// }]
// },
// {
// path: '/mete',
// component: Layout,
// redirect: '/mete',
// children: [{
// path: 'mete',
// name: 'Mete',
// component: () => import('@/views/mete/index'),
// meta: { title: '定量考核'}
// }]
// },
// {
// path: '/dashboard',
// component: () => import('@/views/dashboard/index'),
// hidden: true
// },
// {
// path: '/dashboard',
// component: Layout,
// redirect: '/dashboard',
// children: [{
// path: 'dashboard',
// name: 'dashboard',
// component: () => import('@/views/dashboard/index'),
// meta: { title: '企业微信'}
// }]
// },
{
path: '/approvalData',
component: Layout,
redirect: '/approvalData',
children: [{
path: 'approvalData',
name: 'approvalData',
component: () => import('@/views/approvalData/index'),
meta: { title: '审批记录'}
}]
},
// {
// path: '/',
// component: Layout,
// redirect: '/dashboard',
// children: [{
// path: 'dashboard',
// name: 'Dashboard',
// component: () => import('@/views/dashboard/index'),
// meta: { title: '考核项目'}
// }]
// },
// {
// path: '/record',
// component: Layout,
// redirect: '/record',
// children: [{
// path: 'record',
// name: 'Record',
// component: () => import('@/views/record/index'),
// meta: { title: '考核记录'}
// }]
// },
{
path: '/details',
component: Layout,
redirect: '/details',
children: [{
path: 'details',
name: 'Details',
component: () => import('@/views/record/details'),
// meta: { title: '考核记录详情'}
}]
},
// {
// path: '/example',
// component: Layout,
// redirect: '/example/table',
// name: 'Example',
// meta: { title: '表格', icon: 'el-icon-s-help' },
// children: [
// {
// path: 'table',
// name: 'Table',
// component: () => import('@/views/table/index'),
// meta: { title: 'Table', icon: 'table' }
// },
// {
// path: 'tree',
// name: 'Tree',
// component: () => import('@/views/tree/index'),
// meta: { title: 'Tree', icon: 'tree' }
// }
// ]
// },
// {
// path: '/form',
// component: Layout,
// children: [
// {
// path: 'index',
// name: 'Form',
// component: () => import('@/views/form/index'),
// meta: { title: 'Form', icon: 'form' }
// }
// ]
// },
// {
// path: '/nested',
// component: Layout,
// redirect: '/nested/menu1',
// name: 'Nested',
// meta: {
// title: 'Nested',
// icon: 'nested'
// },
// children: [
// {
// path: 'menu1',
// component: () => import('@/views/nested/menu1/index'), // Parent router-view
// name: 'Menu1',
// meta: { title: 'Menu1' },
// children: [
// {
// path: 'menu1-1',
// component: () => import('@/views/nested/menu1/menu1-1'),
// name: 'Menu1-1',
// meta: { title: 'Menu1-1' }
// },
// {
// path: 'menu1-2',
// component: () => import('@/views/nested/menu1/menu1-2'),
// name: 'Menu1-2',
// meta: { title: 'Menu1-2' },
// children: [
// {
// path: 'menu1-2-1',
// component: () => import('@/views/nested/menu1/menu1-2/menu1-2-1'),
// name: 'Menu1-2-1',
// meta: { title: 'Menu1-2-1' }
// },
// {
// path: 'menu1-2-2',
// component: () => import('@/views/nested/menu1/menu1-2/menu1-2-2'),
// name: 'Menu1-2-2',
// meta: { title: 'Menu1-2-2' }
// }
// ]
// },
// {
// path: 'menu1-3',
// component: () => import('@/views/nested/menu1/menu1-3'),
// name: 'Menu1-3',
// meta: { title: 'Menu1-3' }
// }
// ]
// },
// {
// path: 'menu2',
// component: () => import('@/views/nested/menu2/index'),
// name: 'Menu2',
// meta: { title: 'menu2' }
// }
// ]
// },
// {
// path: 'external-link',
// component: Layout,
// children: [
// {
// path: 'https://panjiachen.github.io/vue-element-admin-site/#/',
// meta: { title: 'External Link', icon: 'link' }
// }
// ]
// },
// 404 page must be placed at the end !!!
{ path: '*', redirect: '/404', hidden: true }
]
const createRouter = () => new Router({
// mode: 'history', // require service support
scrollBehavior: () => ({ y: 0 }),
routes: constantRoutes
})
const router = createRouter()
// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
export function resetRouter() {
const newRouter = createRouter()
router.matcher = newRouter.matcher // reset router
}
export default router

85
src/router/index.js

@ -86,11 +86,11 @@ export const constantRoutes = [
component: () => import('@/views/approval/index'),
hidden: true
},
// {
// path: '/details',
// component: () => import('@/views/record/details'),
// hidden: true
// },
{
path: '/details',
component: () => import('@/views/record/details'),
hidden: true
},
{
path: '/index',
component: () => import('@/views/index'),
@ -101,28 +101,67 @@ export const constantRoutes = [
component: () => import('@/views/404'),
hidden: true
},
{
{
path: '/',
component: Layout,
redirect: '/qualitative',
children: [{
path: 'qualitative',
name: 'Qualitative',
component: () => import('@/views/qualitative/index'),
meta: { title: '定性考核'}
}]
},
{
path: '/mete',
component: Layout,
redirect: '/mete',
children: [{
path: 'mete',
name: 'Mete',
component: () => import('@/views/mete/index'),
meta: { title: '定量考核'}
}]
name: 'qualitative',
meta: { title: '数据提报'},
children: [
{
path: 'qualitative',
name: 'qualitative',
component: () => import('@/views/qualitative/index'),
meta: { title: '定性考核'}
},
{
path: 'mete',
name: 'mete',
component: () => import('@/views/mete/index'),
meta: { title: '定量考核'}
}
]
},
// {
// path: '/',
// component: Layout,
// redirect: '/qualitative',
// children: [{
// path: 'qualitative',
// name: 'Qualitative',
// component: () => import('@/views/qualitative/index'),
// meta: { title: '定性考核'}
// }]
// },
// {
// path: '/mete',
// component: Layout,
// redirect: '/mete',
// children: [{
// path: 'mete',
// name: 'Mete',
// component: () => import('@/views/mete/index'),
// meta: { title: '定量考核'}
// }]
// },
// {
// path: '/dashboard',
// component: () => import('@/views/dashboard/index'),
// hidden: true
// },
// {
// path: '/dashboard',
// component: Layout,
// redirect: '/dashboard',
// children: [{
// path: 'dashboard',
// name: 'dashboard',
// component: () => import('@/views/dashboard/index'),
// meta: { title: '企业微信'}
// }]
// },
{
path: '/approvalData',
component: Layout,

59
src/views/approvalData/index.vue

@ -107,7 +107,7 @@
<el-card class="box-card">
<el-steps direction="vertical" :active="xingbuzhou">
<el-step v-for="(item,index) in xinglist.flowmapall" :key="index" :title="item.nodename" icon="el-icon-circle-check" >
<template slot="description">
<!-- <template slot="description">
<p style="color: rgb(153,153,153);" v-for="(a,index) in item.userlist" >
<el-avatar style="margin-right: 5px;" shape="square" size="medium" :src="a.icon"></el-avatar>
{{a.workshopname}}-{{a.postname}}-{{a.name}}
@ -118,6 +118,28 @@
<div>{{a.log.time}}</div>
</template>
</p>
</template> -->
<template slot="description">
<div style="color: rgb(153,153,153);" v-for="(a,userlistIndex) in item.userlist" :key="userlistIndex">
<el-row>
<el-col :span="4">
<el-badge is-dot type="primary ">
<el-avatar style="margin-right: 5px;" shape="square" size="small" :src="a.icon"></el-avatar>
</el-badge>
</el-col>
<el-col :span="20">
{{a.workshopname}}-{{a.postname}}-{{a.name}}
<el-row>
<div v-for="(i,logIndex) in a.log" :key="logIndex">
<div class="left" v-if="i.state==2">已同意&nbsp·&nbsp</div>
<div class="left" v-if="i.state==1" type="info">未操作&nbsp·&nbsp</div>
<div class="left" v-if="i.state==3" type="danger">驳回&nbsp·&nbsp</div>
<div class="left">{{i.time}}</div>
</div>
</el-row>
</el-col>
</el-row>
</div>
</template>
</el-step>
</el-steps>
@ -220,12 +242,37 @@ export default {
}
},
created() {
console.log(this.$store.state.user.token)
if (this.$store.state.user.token=='') {
this.$router.push('/login')
}
if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
setToken(this.$route.query.token)
setKey(this.$route.query.key)
if (getToken()=='') {
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=approvalList&id='+this.$route.query.id;
}else if (typeof this.$route.query.token === 'undefined') {
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=approvalList&id='+this.$route.query.id;
}else{
this.getDataList()
}
}else{
if (sessionStorage.getItem('userinfo')==null) {
this.$router.push('/dingxingLogin?id='+this.$route.query.id)
}else if (sessionStorage.getItem('userinfo')==undefined) {
this.$router.push('/dingxingLogin?id='+this.$route.query.id)
}else if (sessionStorage.getItem('userinfo')=='') {
this.$router.push('/dingxingLogin?id='+this.$route.query.id)
}else if (this.$store.state.user.token=='') {
this.$router.push('/dingxingLogin?id='+this.$route.query.id)
}else if (this.$store.state.user.token==null) {
this.$router.push('/dingxingLogin?id='+this.$route.query.id)
}else if (this.$store.state.user.token===undefined) {
this.$router.push('/dingxingLogin?id='+this.$route.query.id)
}else if (typeof this.$store.state.user.token=="undefined") {
this.$router.push('/dingxingLogin?id='+this.$route.query.id)
}else{
this.getDataList()
}
}
//
this.getDataList()
// this.getDataList()
},
methods: {
//

161
src/views/approvalList/index.vue

@ -2,16 +2,16 @@
<div style="background-color:rgb(242,244,246)">
<!-- <div class="p2" v-if="cardShow">定性考核审批</div> -->
<div :style="'width:' + bianKuan + '%;margin: 0 auto;padding: 5px;'">
<el-card class="box-card" style="margin-bottom: 10px;">
<el-card class="box-card1" style="margin-bottom: 10px;" :body-style="{ padding: '10px' }">
<p class="xiao">审批编号{{list.orderid}}</p>
<p class="da">
{{list.title}}
</p>
</el-card>
<el-card class="box-card" v-if="carddianShow" style="margin-bottom: 10px;">
<el-descriptions class="margin-top" :column="3" border>
<el-descriptions class="margin-top" :column="1" border>
<el-descriptions-item>
<template slot="label">
<template slot="label" width='85'>
考核纬度
</template>
{{list.dimension}}
@ -24,38 +24,68 @@
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
指标子类
考核项目
</template>
{{list.targetsun}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
指标详情
考核内容
</template>
{{list.detailedtargent}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
指标描述
考核标准
</template>
{{list.content}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
操作
{{list.lanmuname}}
</template>
{{list.reasoninfo}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
原因
考核原因
</template>
{{list.reason}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="box-card" v-if="cardShow" style="margin-bottom: 10px;">
<el-descriptions class="margin-top" :column="1">
<el-card class="box-card font" v-if="cardShow" style="margin-bottom: 10px;">
<el-row class="bottom">
<el-col :span="6">考核纬度:</el-col>
<el-col :span="18">{{list.dimension}}</el-col>
</el-row>
<el-row class="bottom">
<el-col :span="6">考核指标:</el-col>
<el-col :span="18">{{list.target}}</el-col>
</el-row>
<el-row class="bottom">
<el-col :span="6">考核项目:</el-col>
<el-col :span="18">{{list.targetsun}}</el-col>
</el-row>
<el-row class="bottom">
<el-col :span="6">考核内容:</el-col>
<el-col :span="18">{{list.detailedtargent}}</el-col>
</el-row>
<el-row class="bottom">
<el-col :span="6">考核标准:</el-col>
<el-col :span="18">{{list.content}}</el-col>
</el-row>
<el-row class="bottom">
<el-col :span="6">{{list.lanmuname}}:</el-col>
<el-col :span="18">{{list.reasoninfo}}</el-col>
<!-- <el-col>{{list.reasoninfo}}</el-col> -->
<!-- <el-col :span="19"></el-col> -->
</el-row>
<el-row class="bottom">
<el-col :span="6">考核原因:</el-col>
<el-col :span="18">{{list.reason}}</el-col>
</el-row>
<!-- <el-descriptions class="margin-top" :column="1">
<el-descriptions-item label="考核纬度">{{list.dimension}}</el-descriptions-item>
<el-descriptions-item label="考核指标">{{list.target}}</el-descriptions-item>
<el-descriptions-item label="考核项目">{{list.targetsun}}</el-descriptions-item>
@ -63,13 +93,13 @@
<el-descriptions-item label="考核标准">{{list.content}}</el-descriptions-item>
<el-descriptions-item label="操作">{{list.reasoninfo}}</el-descriptions-item>
<el-descriptions-item label="考核原因">{{list.reason}}</el-descriptions-item>
</el-descriptions>
</el-descriptions> -->
</el-card>
<el-card class="box-card" v-for="(item,index) in list.divresbil" :key="index" style="margin-bottom: 10px;">
<el-card class="box-card" style="margin-bottom: 10px;">
<div slot="header" class="clearfix">
<span>责任划分</span>
</div>
<el-descriptions class="margin-top" :column="1">
<el-descriptions style="border-bottom: 1px solid #EBEEF5;margin-top:10px" class="margin-top font" :column="1" v-for="(item,index) in list.divresbil" :key="index">
<el-descriptions-item label="责任类型">{{item.type}}</el-descriptions-item>
<el-descriptions-item label="姓名">{{item.username}}</el-descriptions-item>
<el-descriptions-item label="比重">{{item.weight}}</el-descriptions-item>
@ -79,7 +109,7 @@
<div slot="header" class="clearfix">
<span>整改措施</span>
</div>
<el-descriptions class="margin-top" :column="1">
<el-descriptions class="margin-top font" :column="1">
<el-descriptions-item label="姓名">{{item.recname}}</el-descriptions-item>
<el-descriptions-item label="内容">{{item.reccont}}</el-descriptions-item>
<el-descriptions-item label="时间">{{item.timeval}}</el-descriptions-item>
@ -158,16 +188,19 @@
<el-step v-for="(item,index) in list.flowmapall" :key="index" :title="item.nodename" icon="el-icon-circle-check" >
<template slot="description">
<div style="color: rgb(153,153,153);" v-for="(a,userlistIndex) in item.userlist" :key="userlistIndex">
<el-row>
<el-col :span="2">
<el-row style="margin-bottom: 10px;">
<el-col :span="4" v-if="a.log!=null">
<el-badge is-dot type="primary ">
<el-avatar style="margin-right: 5px;" shape="square" size="small" :src="a.icon"></el-avatar>
</el-badge>
</el-col>
<el-col :span="22">
<el-col :span="4" v-else>
<el-avatar style="margin-right: 5px;" shape="square" size="small" :src="a.icon"></el-avatar>
</el-col>
<el-col :span="20" style="margin-top: -5px;">
{{a.workshopname}}-{{a.postname}}-{{a.name}}
<el-row>
<div v-for="(i,logIndex) in a.log" :key="logIndex">
<div v-for="(i,logIndex) in a.log" :key="logIndex" style="margin-top: -5px;">
<div class="left" v-if="i.state==2">已同意&nbsp·&nbsp</div>
<div class="left" v-if="i.state==1" type="info">未操作&nbsp·&nbsp</div>
<div class="left" v-if="i.state==3" type="danger">驳回&nbsp·&nbsp</div>
@ -277,35 +310,57 @@ import { getgroupuser,adddivisionresponsibility,addcorrectivemeasures,lookdutksc
setKey(this.$route.query.key)
if (getToken()=='') {
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=approvalList&id='+this.$route.query.id;
}
if (typeof this.$route.query.token === 'undefined') {
}else if (typeof this.$route.query.token === 'undefined') {
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=approvalList&id='+this.$route.query.id;
}else{
this.form.outid=this.$route.query.id
this.getData()
}
}else{
if (sessionStorage.getItem('userinfo')==null) {
this.$router.push('/dingxingLogin?id='+this.$route.query.id)
}
if (sessionStorage.getItem('userinfo')==undefined) {
}else if (sessionStorage.getItem('userinfo')==undefined) {
this.$router.push('/dingxingLogin?id='+this.$route.query.id)
}
if (sessionStorage.getItem('userinfo')=='') {
}else if (sessionStorage.getItem('userinfo')=='') {
this.$router.push('/dingxingLogin?id='+this.$route.query.id)
}
if (this.$store.state.user.token=='') {
}else if (this.$store.state.user.token=='') {
this.$router.push('/dingxingLogin?id='+this.$route.query.id)
}
if (this.$store.state.user.token==null) {
}else if (this.$store.state.user.token==null) {
this.$router.push('/dingxingLogin?id='+this.$route.query.id)
}
if (this.$store.state.user.token===undefined) {
}else if (this.$store.state.user.token===undefined) {
this.$router.push('/dingxingLogin?id='+this.$route.query.id)
}
if (typeof this.$store.state.user.token=="undefined") {
}else if (typeof this.$store.state.user.token=="undefined") {
this.$router.push('/dingxingLogin?id='+this.$route.query.id)
}else{
this.form.outid=this.$route.query.id
this.getData()
}
}
this.form.outid=this.$route.query.id
// if (sessionStorage.getItem('userinfo')==null) {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }
// if (sessionStorage.getItem('userinfo')==undefined) {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }
// if (sessionStorage.getItem('userinfo')=='') {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }
// if (this.$store.state.user.token=='') {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }
// if (this.$store.state.user.token==null) {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }
// if (this.$store.state.user.token===undefined) {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }
// if (typeof this.$store.state.user.token=="undefined") {
// this.$router.push('/dingxingLogin?id='+this.$route.query.id)
// }
// this.form.outid=this.$route.query.id
// this.getData()
if (document.body.clientWidth<1000) {
this.bianKuan=100
@ -316,7 +371,7 @@ import { getgroupuser,adddivisionresponsibility,addcorrectivemeasures,lookdutksc
this.carddianShow=true
this.cardShow=false
}
this.getData()
},
methods: {
//
@ -328,18 +383,18 @@ import { getgroupuser,adddivisionresponsibility,addcorrectivemeasures,lookdutksc
this.buzhou=this.buzhou+1
}
});
this.list.flowmapall.forEach(function(element) {
if (element.userlist!=null) {
element.userlist.forEach(function(iteam){
if (iteam.log==null) {
iteam.log=[{
state: 0,
time: ""
}]
}
})
}
});
// this.list.flowmapall.forEach(function(element) {
// if (element.userlist!=null) {
// element.userlist.forEach(function(iteam){
// if (iteam.log==null) {
// iteam.log=[{
// state: 0,
// time: ""
// }]
// }
// })
// }
// });
console.log("this.list")
console.log(this.list)
},
@ -377,6 +432,11 @@ import { getgroupuser,adddivisionresponsibility,addcorrectivemeasures,lookdutksc
</script>
<style lang="scss" scoped>
.box-card1 .el-card__body{
padding-top: 5px !important;
padding-bottom: 5px !important;
}
.left{
float: left;
}
@ -384,7 +444,7 @@ import { getgroupuser,adddivisionresponsibility,addcorrectivemeasures,lookdutksc
color: rgb(174,174,174);
}
.da{
font-size: 22px;
font-size: 16px;
font-weight:bold;
}
.form{
@ -406,4 +466,11 @@ import { getgroupuser,adddivisionresponsibility,addcorrectivemeasures,lookdutksc
font-size: 24px;
margin: 0 auto;
}
.font{
font-size: 16px;
color: #606266;
}
.bottom{
margin-bottom: 10px;
}
</style>

7
src/views/dashboard/index.vue

@ -10,7 +10,7 @@
<el-cascader style="margin-left: 10px;" clearable v-model="searchInfo.departmentid" :options="grouplist" :show-all-levels="false" :props="props" ref="cascaderAddr" @change="handleChange"></el-cascader>
<el-button style="margin-left: 10px;" type="primary" @click="Inquire()" plain >查询</el-button>
<!-- <el-button type="primary" @click="processRequest1()" plain >企业微信流程测试</el-button> -->
<el-button type="primary" @click="processRequest1()" plain >企业微信流程测试</el-button>
<!-- <el-button size="mini" type="primary" icon="el-icon-plus" @click="openDialog('addApi')">新增</el-button> -->
</div>
<!-- 表格表单提交 -->
@ -278,7 +278,8 @@ export default {
jsApiList: ['selectExternalContact','thirdPartyOpenPage'], //使
success: function(res) {
//
// alert('chenggong')
alert('chenggong')
alert(res)
// alert(that.respon.orderid)
// alert(that.auditTitle)
console.log("chenggong")
@ -307,7 +308,7 @@ export default {
},
fail: function(res) {
alert("失败")
alert(res.hint)
alert(res)
console.log("失败")
this.hint=res.hint
console.log(res)

24
src/views/mete/index.vue

@ -29,15 +29,31 @@
<el-table :data="tableData" border :span-method="objectSpanMethod">
<el-table-column align="left" label="部门" prop="parentname"/>
<el-table-column align="left" label="考核指标" prop="targetname"/>
<el-table-column align="left" label="单位" prop="unit"/>
<el-table-column align="left" label="全奖值" prop="unit">
<template slot-scope="scope">
{{scope.row.allprize}}
</template>
</el-table-column>
<el-table-column align="left" label="零奖值" prop="unit">
<template slot-scope="scope">
{{scope.row.zeroprize}}
</template>
</el-table-column>
<el-table-column align="left" label="实际值" prop="actual">
<template slot-scope="scope">
<el-input v-model="scope.row.actual" autocomplete="off"/>
</template>
</el-table-column>
<el-table-column align="left" label="达成率" prop="reach"/>
<!-- <el-table-column align="left" label="单位" prop="unit"/>
<el-table-column align="left" label="分数" prop="score">
<template slot-scope="scope">
<el-input v-model.number="scope.row.score" autocomplete="off"/>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column align="left" label="说明" prop="score">
<template slot-scope="scope">
<el-input v-model="scope.row.content" autocomplete="off"/>
<el-input v-model="scope.row.reason" autocomplete="off"/>
</template>
</el-table-column>
<!-- <el-table-column align="left" fixed="right" label="操作" width="200">
@ -152,7 +168,7 @@ export default {
}
this.getGrouplist()
this.getDataList()
// this.getDataList()
},
//
watch: {

518
src/views/qualitative/index copy.vue

@ -0,0 +1,518 @@
<template>
<!-- 定性考核打分 -->
<div class="dashboard-container">
<!-- <div class="gva-search-box">
<el-form ref="searchForm" :inline="true" :model="searchInfo">
<el-form-item label="考核维度名称">
<el-input
placeholder="请输入名称"
v-model="searchInfo.title"
clearable>
</el-input>
</el-form-item>
<el-form-item label="考核维度状态">
<el-select v-model="searchInfo.state" clearable placeholder="请选择状态">
<el-option :value=1 label="正常">正常</el-option>
<el-option :value=2 label="禁止">禁止</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button size="mini" type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button>
<el-button size="mini" icon="el-icon-refresh" @click="onReset">重置</el-button>
</el-form-item>
</el-form>
</div> -->
<div class="gva-table-box">
<!-- <div class="gva-btn-list">
<el-button size="mini" type="primary" icon="el-icon-plus" @click="showAdd()">新增</el-button>
</div> -->
<el-table :data="tableData" border :span-method="objectSpanMethod">
<el-table-column align="left" label="部门" prop="parentname"/>
<el-table-column align="left" label="考核标准" prop="detailedtargetname"/>
<el-table-column align="left" label="考核办法" prop="content"/>
<el-table-column align="left" fixed="right" label="操作" width="200">
<template #default="scope">
<el-button
icon="el-icon-circle-plus-outline"
size="small"
type="text"
@click="showJia(scope.row)"
>加分</el-button>
<el-button
icon="el-icon-remove-outline"
size="small"
type="text"
@click="showJian(scope.row)"
>减分</el-button>
</template>
</el-table-column>
</el-table>
</div>
<!-- 加分弹框 -->
<el-dialog :visible.sync="dialogFormVisible" :before-close="closeDialog" title="加分" width="30%">
<el-form ref="addForm" :model="form" :rules="rules" label-width="150px">
<el-form-item label="分值">
<el-input v-model.number="form.score" autocomplete="off" />
</el-form-item>
<el-form-item label="原因">
<el-input
type="textarea"
:rows="4"
placeholder="请输入内容"
v-model="form.reason">
</el-input>
</el-form-item>
<el-form-item label="发生时间">
<el-date-picker
v-model="form.time"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="是否整改">
<el-select v-model="form.rectification" clearable placeholder="请选择状态">
<el-option :value=1 label="是"></el-option>
<el-option :value=2 label="否"></el-option>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button size="small" @click="closeDialog"> </el-button>
<el-button size="small" type="primary" @click="enterDialog"> </el-button>
</div>
</template>
</el-dialog>
<!-- 减分弹框 -->
<el-dialog :visible.sync="jiandialogFormVisible" :before-close="jiancloseDialog" title="减分" width="30%">
<el-form ref="jianForm" :model="jianForm" label-width="150px">
<el-form-item label="分值">
<el-input v-model.number="jianForm.score" autocomplete="off" />
</el-form-item>
<el-form-item label="原因">
<el-input
type="textarea"
:rows="4"
placeholder="请输入内容"
v-model="jianForm.reason">
</el-input>
</el-form-item>
<el-form-item label="发生时间">
<el-date-picker
v-model="jianForm.time"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="是否整改">
<el-select v-model="jianForm.rectification" clearable placeholder="请选择状态">
<el-option :value=1 label="是"></el-option>
<el-option :value=2 label="否"></el-option>
</el-select>
</el-form-item>
</el-form>
<!-- <el-upload
:action="uploadActionUrl"
accept="image/jpeg,image/gif,image/png"
multiple
:limit="3"
:file-list="files">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">请上传图片格式文件</div>
</el-upload> -->
<template #footer>
<div class="dialog-footer">
<el-button size="small" @click="jiancloseDialog"> </el-button>
<el-button size="small" type="primary" @click="jianenterDialog"> </el-button>
</div>
</template>
</el-dialog>
<!-- 编辑弹框 -->
<el-dialog :visible.sync="editDialogFormVisible" :before-close="editCloseDialog" title="修改" width="20%">
<el-form ref="editForm" :model="editAdd" :rules="editRules" label-width="150px">
<el-form-item label="考核维度名称" prop="title">
<el-input v-model="editAdd.title" autocomplete="off" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button size="small" @click="editCloseDialog"> </el-button>
<el-button size="small" type="primary" @click="editEnterDialog"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script>
import { qualevalulist,additionandsubtractionscore,upordown } from '@/api/dutys'
export default {
name: 'Qualitative',
data() {
return {
files:[],
uploadActionUrl:'http://gin.admin.net/upordown',
jianForm:{},
jiandialogFormVisible:false,
fileList:[],
spanArr:[],
pos:'',
//
editFrom:{},
//
switchFrom:{},
//
deleFrom:{},
//
editAdd:{},
assessList:{},
//
form:{},
//
dialogFormVisible:false,
//
editDialogFormVisible:false,
total: 0,
tableData:[],
//
searchInfo: {
page: 1,
pagesize: 10
},
//
abc:{
aaa:"111",
bbb:"222"
},
//
rules: {
title: [{ required: true, message: '请输入名称', trigger: 'blur' }],
},
editRules:{
title: [{ required: true, message: '请输入名称', trigger: 'blur' }],
}
}
},
created() {
console.log(this.$store.state.user.token)
if (this.$store.state.user.token=='') {
this.$router.push('/login')
}
//
this.getDataList()
},
//
watch: {
tableData() {
this.$nextTick(() => {
this.spanArr=[],
this.pos='',
//createddataList
this.getSpanArr(this.tableData);
});
},
//   }
},
methods: {
fileImage:function(e){
var that=this;
var file = e.target.files[0];
var imgSize=file.size/1024;
if(imgSize>200){
alert('请上传大小不要超过200KB的图片')
}else{
var reader = new FileReader();
reader.readAsDataURL(file); // base64
reader.onloadend = async function () {
// base64 , img src
var dataURL = reader.result;
//
const from={
file:dataURL,
}
const res = await upordown(from)
// $.ajax({
// type:"post",
// url:"/v1/userSet",
// async:true,
// data:{
// avatar:dataURL,
// avatar_wx:1,
// token:token,
// uid:uid,
// },
// success:function(e){
// that.avatar=dataURL;
// alert('');
// $(".tsk").show().delay(1500).hide(0);
// }
// });
};
}
},
async aaaaa(){
// const res = await upordown()
},
changeFile(file, fileList){
console.log("file")
console.log(file)
console.log("fileList")
console.log(fileList)
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePreview(file) {
console.log(file);
},
handleExceed(files, fileList) {
this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${ file.name }`);
},
//
showJia(row){
this.form.planid=row.id
this.dialogFormVisible=true
},
//
showJian(row){
this.jianForm.planid=row.id
this.jiandialogFormVisible=true
},
//
getSpanArr(data) {
// data
for (var i = 0; i < data.length; i++) {
if (i === 0) {
this.spanArr.push(1);
this.pos = 0;
} else {
//
if (data[i].parentid === data[i - 1].parentid) {
this.spanArr[this.pos] += 1;
this.spanArr.push(0);
} else {
this.spanArr.push(1);
this.pos = i;
}
}
}
},
//
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
const _row = this.spanArr[rowIndex];
const _col = _row > 0 ? 1 : 0;
console.log(`rowspan:${_row} colspan:${_col}`);
return {
// [0,0] [2,1]
rowspan: _row,
colspan: _col
};
}
},
//
//
async deleteOperate(row) {
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(async() => {
this.deleFrom.state=3;
this.deleFrom.outid=row.outId;
const res = await statedutyclass(this.deleFrom)
if (res.code === 0) {
this.$message({
type: 'success',
message: '删除成功!'
})
this.getDataList()
}
})
},
//
showAdd(){
this.dialogFormVisible=true;
console.log(this.dialogFormVisible)
},
//
async showEdit(row){
this.editFrom.outid=row.outId
const res = await getdutyclassinfo(this.editFrom)
this.editAdd = res.data
this.editDialogFormVisible=true;
},
//
async changeVal(val,id){
console.log(val)
this.switchFrom.outid=id
if (val==1) {
this.switchFrom.state=1;
const res = await statedutyclass(this.switchFrom)
if (res.code === 0) {
this.$message({
type: 'success',
message: '修改状态成功',
showClose: true
})
this.getDataList()
}
} else {
this.switchFrom.state=2;
const res = await statedutyclass(this.switchFrom)
if (res.code === 0) {
this.$message({
type: 'success',
message: '修改状态成功',
showClose: true
})
this.getDataList()
}
}
},
//
onReset() {
this.searchInfo = {}
},
//
onSubmit() {
this.page = 1
this.pageSize = 10
this.getDataList()
},
//
formatDate(nS) {
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');
},
//
async enterDialog(){
this.$refs.addForm.validate(async valid => {
if (valid) {
this.form.type=1
const res = await additionandsubtractionscore(this.form)
if (res.code === 0) {
this.$message({
type: 'success',
message: '成功',
showClose: true
})
}
this.getDataList();
this.closeDialog();
}
})
},
//
async jianenterDialog(){
this.jianForm.type=2
const res = await additionandsubtractionscore(this.jianForm)
if (res.code === 0) {
this.$message({
type: 'success',
message: '成功',
showClose: true
})
}
this.getDataList();
this.jiancloseDialog();
},
//
async editEnterDialog(){
this.$refs.editForm.validate(async valid => {
if (valid) {
const res = await eitedutyclassinfo(this.editAdd)
if (res.code === 0) {
this.$message({
type: 'success',
message: '编辑成功',
showClose: true
})
}
this.getDataList();
this.editCloseDialog();
}
})
},
//
closeDialog() {
console.log("closeDialog")
this.initForm()
this.dialogFormVisible = false
},
//
jiancloseDialog() {
console.log("closeDialog")
this.jianInitForm()
this.jiandialogFormVisible = false
},
//
editCloseDialog() {
this.editInitForm()
this.editDialogFormVisible = false
},
//
initForm() {
this.$refs.addForm.resetFields()
this.form = {}
},
//
jianInitForm() {
this.$refs.jianForm.resetFields()
this.jianForm = {}
},
//
editInitForm() {
this.$refs.editForm.resetFields()
this.editAdd = {}
},
// pageSize
handleSizeChange(val) {
this.searchInfo.pagesize=val
this.getDataList(this.searchInfo)
},
// page
handleCurrentChange(val) {
this.searchInfo.page=val
this.getDataList(this.searchInfo)
},
//
async getDataList() {
const res = await qualevalulist()
this.tableData = res.data
}
}
}
</script>
<style lang="scss" scoped>
.dashboard {
&-container {
margin: 30px;
}
&-text {
font-size: 30px;
line-height: 46px;
}
}
</style>

470
src/views/qualitative/index.vue

@ -1,37 +1,55 @@
<template>
<!-- 定性考核打分 -->
<div class="dashboard-container">
<!-- <div class="gva-search-box">
<div class="gva-search-box">
<el-form ref="searchForm" :inline="true" :model="searchInfo">
<el-form-item label="考核维度名称">
<el-form-item label="所属公司">
<el-select v-model="searchInfo.group" clearable placeholder="请选择" @change="searchSelectGroup">
<el-option
v-for="item in companyList"
:key="item.wxId"
:label="item.name"
:value="item.wxId">
</el-option>
</el-select>
</el-form-item>
<el-form-item v-if="departmentShow" label="所属部门">
<el-select v-model="searchInfo.department" clearable placeholder="请选择">
<el-option
v-for="item in searchDepartmentList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="考核指标">
<el-input
placeholder="请输入名称"
v-model="searchInfo.title"
v-model="searchInfo.tittle"
clearable>
</el-input>
</el-form-item>
<el-form-item label="考核维度状态">
<el-select v-model="searchInfo.state" clearable placeholder="请选择状态">
<el-option :value=1 label="正常">正常</el-option>
<el-option :value=2 label="禁止">禁止</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button size="mini" type="primary" icon="el-icon-search" @click="onSubmit">查询</el-button>
<el-button size="mini" icon="el-icon-refresh" @click="onReset">重置</el-button>
</el-form-item>
</el-form>
</div> -->
</div>
<div class="gva-table-box">
<!-- <div class="gva-btn-list">
<el-button size="mini" type="primary" icon="el-icon-plus" @click="showAdd()">新增</el-button>
</div> -->
<el-table :data="tableData" border :span-method="objectSpanMethod">
<el-table-column align="left" label="部门" prop="parentname"/>
<el-table-column align="left" label="考核标准" prop="detailedtargetname"/>
<el-table-column align="left" label="考核办法" prop="content"/>
<el-table-column align="left" fixed="right" label="操作" width="200">
<el-table-column align="left" label="部门" prop="departmentname"/>
<el-table-column align="left" label="考核指标">
<template slot-scope="scope">
<el-link type="primary" @click="showMethod(scope.row)">{{scope.row.title}}</el-link>
</template>
</el-table-column>
<el-table-column align="left" label="加分" prop="extrapoints"/>
<el-table-column align="left" label="减分" prop="scorereduction"/>
<!-- <el-table-column align="left" fixed="right" label="操作" width="200">
<template #default="scope">
<el-button
icon="el-icon-circle-plus-outline"
@ -46,14 +64,78 @@
@click="showJian(scope.row)"
>减分</el-button>
</template>
</el-table-column>
</el-table-column> -->
</el-table>
</div>
<!-- 加分弹框 -->
<el-dialog :visible.sync="dialogFormVisible" :before-close="closeDialog" title="加分" width="30%">
<el-form ref="addForm" :model="form" :rules="rules" label-width="150px">
<el-form ref="addForm" :model="form" :rules="rules" label-width="150px" v-if="rowJiaData.state==1">
<el-form-item label="考核参考">
{{rowJiaData.score}}{{rowJiaData.company}}
</el-form-item>
<el-form-item label="次数">
<el-input v-model.number="form.count" autocomplete="off" />
</el-form-item>
<el-form-item label="原因">
<el-input
type="textarea"
:rows="4"
placeholder="请输入内容"
v-model="form.reason">
</el-input>
</el-form-item>
<el-form-item label="发生时间">
<el-date-picker
v-model="form.time"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<!-- <el-form-item label="是否整改">
<el-select v-model="form.rectification" clearable placeholder="请选择状态">
<el-option :value=1 label="是"></el-option>
<el-option :value=2 label="否"></el-option>
</el-select>
</el-form-item> -->
</el-form>
<el-form ref="addForm" :model="form" :rules="rules" label-width="150px" v-if="rowJiaData.state==2">
<el-form-item label="考核参考">
{{rowJiaData.score}}
</el-form-item>
<el-form-item label="分数">
<el-input v-model="form.score" autocomplete="off" />
</el-form-item>
<el-form-item label="原因">
<el-input
type="textarea"
:rows="4"
placeholder="请输入内容"
v-model="form.reason">
</el-input>
</el-form-item>
<el-form-item label="发生时间">
<el-date-picker
v-model="form.time"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<!-- <el-form-item label="是否整改">
<el-select v-model="form.rectification" clearable placeholder="请选择状态">
<el-option :value=1 label="是"></el-option>
<el-option :value=2 label="否"></el-option>
</el-select>
</el-form-item> -->
</el-form>
<el-form ref="addForm" :model="form" :rules="rules" label-width="150px" v-if="rowJiaData.state==3">
<el-form-item label="分值">
<el-input v-model.number="form.score" autocomplete="off" />
<el-input v-model="form.score" autocomplete="off" />
</el-form-item>
<el-form-item label="原因">
<el-input
@ -88,9 +170,71 @@
</el-dialog>
<!-- 减分弹框 -->
<el-dialog :visible.sync="jiandialogFormVisible" :before-close="jiancloseDialog" title="减分" width="30%">
<el-form ref="jianForm" :model="jianForm" label-width="150px">
<el-form ref="jianForm" :model="jianForm" label-width="150px" v-if="rowJianData.state==1">
<el-form-item label="考核参考">
{{rowJianData.score}}{{rowJianData.company}}
</el-form-item>
<el-form-item label="次数">
<el-input v-model.number="jianForm.count" autocomplete="off" />
</el-form-item>
<el-form-item label="原因">
<el-input
type="textarea"
:rows="4"
placeholder="请输入内容"
v-model="jianForm.reason">
</el-input>
</el-form-item>
<el-form-item label="发生时间">
<el-date-picker
v-model="jianForm.time"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="是否整改">
<el-select v-model="jianForm.rectification" clearable placeholder="请选择状态">
<el-option :value=1 label="是"></el-option>
<el-option :value=2 label="否"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-form ref="jianForm" :model="jianForm" label-width="150px" v-if="rowJianData.state==2">
<el-form-item label="考核参考">
{{rowJianData.score}}
</el-form-item>
<el-form-item label="分值">
<el-input v-model.number="jianForm.score" autocomplete="off" />
<el-input v-model="jianForm.score"/>
</el-form-item>
<el-form-item label="原因">
<el-input
type="textarea"
:rows="4"
placeholder="请输入内容"
v-model="jianForm.reason">
</el-input>
</el-form-item>
<el-form-item label="发生时间">
<el-date-picker
v-model="jianForm.time"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetime"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="是否整改">
<el-select v-model="jianForm.rectification" clearable placeholder="请选择状态">
<el-option :value=1 label="是"></el-option>
<el-option :value=2 label="否"></el-option>
</el-select>
</el-form-item>
</el-form>
<el-form ref="jianForm" :model="jianForm" label-width="150px" v-if="rowJianData.state==3">
<el-form-item label="分值">
<el-input v-model="jianForm.score" autocomplete="off" />
</el-form-item>
<el-form-item label="原因">
<el-input
@ -147,32 +291,126 @@
</div>
</template>
</el-dialog>
<!-- 考核办法弹框 -->
<el-dialog :visible.sync="methodShow" title="考核项目" width="60%">
<el-table :data="methodList" border :span-method="methodSpanMethod" :cell-style="{padding:'0px'}">
<el-table-column prop="targetsunname" label="考核项目" width="85"></el-table-column>
<el-table-column prop="detailedtargenttitle" label="考核内容"></el-table-column>
<el-table-column prop="score" label="考核标准" width="85" align="center"></el-table-column>
<el-table-column prop="company" label="单位" width="85" align="center"/>
<!-- <el-table-column prop="content" label="备注说明"/> -->
<el-table-column label="操作" width="120">
<template #default="scope">
<el-button
v-if="scope.row.addreduce==2||scope.row.addreduce==3"
icon="el-icon-circle-plus-outline"
size="small"
type="text"
@click="showJia(scope.row)"
>加分</el-button>
<el-button
v-if="scope.row.addreduce==1||scope.row.addreduce==3"
icon="el-icon-remove-outline"
size="small"
type="text"
@click="showJian(scope.row)"
>减分</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<script>
import { qualevalulist,additionandsubtractionscore,upordown } from '@/api/dutys'
import { qualevalulist,plusorminuspoints,additionandsubtractionscore,upordown,newqualitative,getgroupdepartmap,departmentlist,newgetqualdetailedtarget } from '@/api/dutys'
export default {
name: 'Qualitative',
data() {
return {
//
unitDataList:[
{
label:'分',
value:'分'
},
{
label:'分/次',
value:'分/次'
},
{
label:'分/人',
value:'分/人'
},
{
label:'分/处',
value:'分/处'
},
{
label:'分/项',
value:'分/项'
},
{
label:'分/台',
value:'分/台'
},
{
label:'分/个',
value:'分/个'
},
{
label:'分/具',
value:'分/具'
},
{
label:'分/岗',
value:'分/岗'
},
{
label:'分/件',
value:'分/件'
},
{
label:'分/人·次',
value:'分/人·次'
},
{
label:'分/项·次',
value:'分/项·次'
},
{
label:'分/台·次',
value:'分/台·次'
},
],
departmentShow:false,
files:[],
uploadActionUrl:'http://gin.admin.net/upordown',
jianForm:{},
jiandialogFormVisible:false,
fileList:[],
spanArr:[],
methodList:[],
methodPos:'',
pos:'',
//
editFrom:{},
//
companyList:[],
//
switchFrom:{},
//
deleFrom:{},
//
methodShow:false,
//
editAdd:{},
assessList:{},
methodSpanArr:[],
rowJiaData:{},
rowJianData:{},
//
form:{},
//
@ -186,6 +424,7 @@ export default {
page: 1,
pagesize: 10
},
searchDepartmentList:[],
//
abc:{
aaa:"111",
@ -207,9 +446,19 @@ export default {
}
//
this.getDataList()
this.getGrouplist()
},
//
watch: {
methodList() {
this.$nextTick(() => {
this.methodSpanArr=[],
this.methodPos='',
//createddataList
this.getMethodSpanArr(this.methodList);
});
},
tableData() {
this.$nextTick(() => {
this.spanArr=[],
@ -221,43 +470,127 @@ export default {
//   }
},
methods: {
//
methodSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
const _row = this.methodSpanArr[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
// [0,0] [2,1]
rowspan: _row,
colspan: _col
};
}
},
getMethodSpanArr(data) {
// data
for (var i = 0; i < data.length; i++) {
if (i === 0) {
this.methodSpanArr.push(1);
this.methodPos = 0;
} else {
//
if (data[i].targetsunid === data[i - 1].targetsunid) {
this.methodSpanArr[this.methodPos] += 1;
this.methodSpanArr.push(0);
} else {
this.methodSpanArr.push(1);
this.methodPos = i;
}
}
}
},
//
async getGrouplist(){
const res = await getgroupdepartmap()
this.companyList=res.data.list
},
//
async searchSelectGroup(val){
if (val!='') {
const departmentFrom={
outid:val
}
const res = await departmentlist(departmentFrom)
this.searchDepartmentList=res.data
this.departmentShow=true
}
},
//
showMethod(row){
this.rowZhiData=row
console.log(this.rowZhiData)
this.getzhilanmuListNew()
this.methodShow=true;
},
//
async getzhilanmuListNew(){
const methodData={
group: this.rowZhiData.group.toString(), //
department: this.rowZhiData.department.toString(), //
targets: this.rowZhiData.target.toString() //
}
const res = await newgetqualdetailedtarget(methodData)
if (res.code==0) {
this.methodList=res.data
}
},
//
async getzhilanmuList(){
const methodData={
type: 1, //12
group: this.rowZhiData.group, //
departmentid: this.rowZhiData.parentid, //
dimension: this.rowZhiData.dimension, //
target: this.rowZhiData.target, //
}
const res = await departmenttasklist(methodData)
if (res.code==0) {
this.methodList=res.data
}
},
fileImage:function(e){
var that=this;
var file = e.target.files[0];
var imgSize=file.size/1024;
if(imgSize>200){
alert('请上传大小不要超过200KB的图片')
}else{
var reader = new FileReader();
reader.readAsDataURL(file); // base64
reader.onloadend = async function () {
// base64 , img src
var dataURL = reader.result;
//
const from={
file:dataURL,
}
const res = await upordown(from)
// $.ajax({
// type:"post",
// url:"/v1/userSet",
// async:true,
// data:{
// avatar:dataURL,
// avatar_wx:1,
// token:token,
// uid:uid,
// },
// success:function(e){
// that.avatar=dataURL;
// alert('');
// $(".tsk").show().delay(1500).hide(0);
// }
// });
};
}
var that=this;
var file = e.target.files[0];
var imgSize=file.size/1024;
if(imgSize>200){
alert('请上传大小不要超过200KB的图片')
}else{
var reader = new FileReader();
reader.readAsDataURL(file); // base64
reader.onloadend = async function () {
// base64 , img src
var dataURL = reader.result;
//
const from={
file:dataURL,
}
const res = await upordown(from)
// $.ajax({
// type:"post",
// url:"/v1/userSet",
// async:true,
// data:{
// avatar:dataURL,
// avatar_wx:1,
// token:token,
// uid:uid,
// },
// success:function(e){
// that.avatar=dataURL;
// alert('');
// $(".tsk").show().delay(1500).hide(0);
// }
// });
};
}
},
},
async aaaaa(){
// const res = await upordown()
},
@ -283,12 +616,21 @@ export default {
},
//
showJia(row){
this.form.planid=row.id
this.rowJiaData=row
this.form.planid=row.id.toString()
if (this.rowJiaData.state==1) {
this.form.count=1
}
this.dialogFormVisible=true
},
//
showJian(row){
this.jianForm.planid=row.id
this.rowJianData=row
this.jianForm.planid=row.id.toString()
if (this.rowJianData.state==1) {
this.jianForm.count=1
}
this.jiandialogFormVisible=true
},
//
@ -300,7 +642,7 @@ export default {
this.pos = 0;
} else {
//
if (data[i].parentid === data[i - 1].parentid) {
if (data[i].department === data[i - 1].department) {
this.spanArr[this.pos] += 1;
this.spanArr.push(0);
} else {
@ -406,7 +748,9 @@ export default {
this.$refs.addForm.validate(async valid => {
if (valid) {
this.form.type=1
const res = await additionandsubtractionscore(this.form)
this.form.state=this.rowJiaData.state
const res = await plusorminuspoints(this.form)
if (res.code === 0) {
this.$message({
type: 'success',
@ -422,7 +766,9 @@ export default {
//
async jianenterDialog(){
this.jianForm.type=2
const res = await additionandsubtractionscore(this.jianForm)
this.jianForm.state=this.rowJianData.state
const res = await plusorminuspoints(this.jianForm)
if (res.code === 0) {
this.$message({
type: 'success',
@ -498,7 +844,7 @@ export default {
},
//
async getDataList() {
const res = await qualevalulist()
const res = await newqualitative(this.searchInfo)
this.tableData = res.data
}
}

87
src/views/quantitativeList/index.vue

@ -3,7 +3,7 @@
<!-- <div class="p" v-if="carddianShow">{{list.groupname}}{{list.departmentname}}定量考核</div>
<div class="p2" v-if="cardShow">{{list.groupname}}{{list.departmentname}}定量考核</div> -->
<div :style="'width:' + bianKuan + '%;margin: 0 auto;padding: 5px;'">
<el-card class="box-card" style="margin-bottom: 10px;">
<el-card class="box-card" style="margin-bottom: 10px;padding-top: 5px;padding-bottom: 5px;">
<p class="xiao">审批编号{{form.outid}}</p>
<p class="da">
{{list.title}}
@ -40,6 +40,35 @@
</el-card>
<el-card class="box-card">
<el-steps direction="vertical" :active="buzhou">
<el-step v-for="(item,index) in list.flowall" :key="index" :title="item.nodename" icon="el-icon-circle-check" >
<template slot="description">
<div style="color: rgb(153,153,153);" v-for="(a,userlistIndex) in item.userlist" :key="userlistIndex">
<el-row>
<el-col :span="4" v-if="a.log!=null">
<el-badge is-dot type="primary ">
<el-avatar style="margin-right: 5px;" shape="square" size="small" :src="a.icon"></el-avatar>
</el-badge>
</el-col>
<el-col :span="4" v-else>
<el-avatar style="margin-right: 5px;" shape="square" size="small" :src="a.icon"></el-avatar>
</el-col>
<el-col :span="20" style="margin-top: -5px;">
{{a.workshopname}}-{{a.postname}}-{{a.name}}
<el-row>
<div v-for="(i,logIndex) in a.log" :key="logIndex">
<div class="left" v-if="i.state==2">已同意&nbsp·&nbsp</div>
<div class="left" v-if="i.state==1" type="info">未操作&nbsp·&nbsp</div>
<div class="left" v-if="i.state==3" type="danger">驳回&nbsp·&nbsp</div>
<div class="left">{{i.time}}</div>
</div>
</el-row>
</el-col>
</el-row>
</div>
</template>
</el-step>
</el-steps>
<!-- <el-steps direction="vertical" :active="buzhou">
<el-step v-for="(item,index) in list.flowall" :key="index" :title="item.nodename" icon="el-icon-circle-check" >
<template slot="description">
<p style="color: rgb(153,153,153);" v-for="(a,index) in item.userlist" >
@ -54,7 +83,7 @@
</p>
</template>
</el-step>
</el-steps>
</el-steps> -->
</el-card>
<!-- <el-timeline reverse="true">
<el-timeline-item
@ -122,6 +151,7 @@
</template>
<script>
import { getToken, setToken, removeToken,setKey } from '@/utils/auth'
import { getgroupuser,adddivisionresponsibility,addcorrectivemeasures,lookdutkscoreflow,lookrationkscoreflow } from '@/api/dutys'
export default {
data() {
@ -161,36 +191,39 @@ import { getgroupuser,adddivisionresponsibility,addcorrectivemeasures,lookdutksc
},
created () {
if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
setToken(this.$route.query.token)
setKey(this.$route.query.key)
if (getToken()=='') {
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=approvalList&id='+this.$route.query.id;
}
if (typeof this.$route.query.token === 'undefined') {
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=approvalList&id='+this.$route.query.id;
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=quantitativeList&id='+this.$route.query.id;
}else if (typeof this.$route.query.token === 'undefined') {
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=quantitativeList&id='+this.$route.query.id;
}else{
this.form.outid=this.$route.query.id
this.getData()
}
}else{
if (sessionStorage.getItem('userinfo')==null) {
this.$router.push('/quantitativeListLogin?id='+this.$route.query.id)
}
if (sessionStorage.getItem('userinfo')==undefined) {
this.$router.push('/quantitativeListLogin?id='+this.$route.query.id)
}
if (sessionStorage.getItem('userinfo')=='') {
if (sessionStorage.getItem('userinfo')==null) {
this.$router.push('/quantitativeListLogin?id='+this.$route.query.id)
}
this.form.outid=this.$route.query.id
if (this.$store.state.user.token=='') {
this.$router.push('/quantitativeListLogin?id='+this.$route.query.id)
}
if (this.$store.state.user.token==null) {
this.$router.push('/quantitativeListLogin?id='+this.$route.query.id)
}
if (this.$store.state.user.token==undefined) {
this.$router.push('/quantitativeListLogin?id='+this.$route.query.id)
}
}
this.getData()
}else if (sessionStorage.getItem('userinfo')==undefined) {
this.$router.push('/quantitativeListLogin?id='+this.$route.query.id)
}else if (sessionStorage.getItem('userinfo')=='') {
this.$router.push('/quantitativeListLogin?id='+this.$route.query.id)
}else if (this.$store.state.user.token=='') {
this.$router.push('/quantitativeListLogin?id='+this.$route.query.id)
}else if (this.$store.state.user.token==null) {
this.$router.push('/quantitativeListLogin?id='+this.$route.query.id)
}else if (this.$store.state.user.token===undefined) {
this.$router.push('/quantitativeListLogin?id='+this.$route.query.id)
}else if (typeof this.$store.state.user.token=="undefined") {
this.$router.push('/quantitativeListLogin?id='+this.$route.query.id)
}else{
this.form.outid=this.$route.query.id
this.getData()
}
}
if (document.body.clientWidth<1000) {
this.bianKuan=100
this.carddianShow=false
@ -273,7 +306,7 @@ import { getgroupuser,adddivisionresponsibility,addcorrectivemeasures,lookdutksc
color: rgb(174,174,174);
}
.da{
font-size: 20px;
font-size: 16px;
font-weight:bold;
}
</style>

39
src/views/rectification/index.vue

@ -25,6 +25,7 @@
</template>
<script>
import { getToken, setToken, removeToken,setKey } from '@/utils/auth'
import { getgroupuser,adddivisionresponsibility,addcorrectivemeasures } from '@/api/dutys'
export default {
data() {
@ -56,23 +57,31 @@ import { getgroupuser,adddivisionresponsibility,addcorrectivemeasures } from '@/
setToken(this.$route.query.token)
setKey(this.$route.query.key)
if (getToken()=='') {
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=approvalList&id='+this.$route.query.id;
}
if (typeof this.$route.query.token === 'undefined') {
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=approvalList&id='+this.$route.query.id;
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=rectification&id='+this.$route.query.id;
}else if (typeof this.$route.query.token === 'undefined') {
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=rectification&id='+this.$route.query.id;
}else{
}
}else{
if (this.$store.state.user.token=='') {
this.$router.push('/zhenggaiLogin?id='+this.$route.query.id)
}
if (this.$store.state.user.token==null) {
this.$router.push('/zhenggaiLogin?id='+this.$route.query.id)
}
if (this.$store.state.user.token==undefined) {
this.$router.push('/zhenggaiLogin?id='+this.$route.query.id)
}
}
if (sessionStorage.getItem('userinfo')==null) {
this.$router.push('/zhenggaiLogin?id='+this.$route.query.id)
}else if (sessionStorage.getItem('userinfo')==undefined) {
this.$router.push('/zhenggaiLogin?id='+this.$route.query.id)
}else if (sessionStorage.getItem('userinfo')=='') {
this.$router.push('/zhenggaiLogin?id='+this.$route.query.id)
}else if (this.$store.state.user.token=='') {
this.$router.push('/zhenggaiLogin?id='+this.$route.query.id)
}else if (this.$store.state.user.token==null) {
this.$router.push('/zhenggaiLogin?id='+this.$route.query.id)
}else if (this.$store.state.user.token===undefined) {
this.$router.push('/zhenggaiLogin?id='+this.$route.query.id)
}else if (typeof this.$store.state.user.token=="undefined") {
this.$router.push('/zhenggaiLogin?id='+this.$route.query.id)
}else{
}
}
this.form.orderid=this.$route.query.id
if (document.body.clientWidth<1000) {
this.bianKuan=100

78
src/views/responsible/index.vue

@ -125,6 +125,7 @@
</template>
<script>
import { getToken, setToken, removeToken,setKey } from '@/utils/auth'
import { getgroupuser,adddivisionresponsibility,getteamlist,stafflist } from '@/api/dutys'
import { oauth2 } from '@/api/login/login'
export default {
@ -164,6 +165,35 @@ import { oauth2 } from '@/api/login/login'
}
},
async created () {
if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
setToken(this.$route.query.token)
setKey(this.$route.query.key)
if (getToken()=='') {
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=responsible&id='+this.$route.query.id;
}else if (typeof this.$route.query.token === 'undefined') {
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=responsible&id='+this.$route.query.id;
}else{
this.getshoujirenyuan()
}
}else{
if (sessionStorage.getItem('userinfo')==null) {
this.$router.push('/zerenLogin?id='+this.$route.query.id)
}else if (sessionStorage.getItem('userinfo')==undefined) {
this.$router.push('/zerenLogin?id='+this.$route.query.id)
}else if (sessionStorage.getItem('userinfo')=='') {
this.$router.push('/zerenLogin?id='+this.$route.query.id)
}else if (this.$store.state.user.token=='') {
this.$router.push('/zerenLogin?id='+this.$route.query.id)
}else if (this.$store.state.user.token==null) {
this.$router.push('/zerenLogin?id='+this.$route.query.id)
}else if (this.$store.state.user.token===undefined) {
this.$router.push('/zerenLogin?id='+this.$route.query.id)
}else if (typeof this.$store.state.user.token=="undefined") {
this.$router.push('/zerenLogin?id='+this.$route.query.id)
}else{
this.getrenyuan()
}
}
if (document.body.clientWidth<1000) {
this.bianKuan=100
this.carddianShow=false
@ -191,38 +221,10 @@ import { oauth2 } from '@/api/login/login'
// this.$router.push('/login')
// }
this.form.id=this.$route.query.id
if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
setToken(this.$route.query.token)
setKey(this.$route.query.key)
if (getToken()=='') {
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=approvalList&id='+this.$route.query.id;
}
if (typeof this.$route.query.token === 'undefined') {
window.location.href = 'https://www.hxgk.group/jumpapiurl/?url=http://new.hxgk.group&controll=approvalList&id='+this.$route.query.id;
}
}else{
if (this.$store.state.user.token=='') {
this.$router.push('/zerenLogin?id='+this.$route.query.id)
}
if (this.$store.state.user.token==null) {
this.$router.push('/zerenLogin?id='+this.$route.query.id)
}
if (this.$store.state.user.token==undefined) {
this.$router.push('/zerenLogin?id='+this.$route.query.id)
}
if (sessionStorage.getItem('userinfo')==null) {
this.$router.push('/zerenLogin?id='+this.$route.query.id)
}
if (sessionStorage.getItem('userinfo')==undefined) {
this.$router.push('/zerenLogin?id='+this.$route.query.id)
}
if (sessionStorage.getItem('userinfo')=='') {
this.$router.push('/zerenLogin?id='+this.$route.query.id)
}
}
this.userInfo=JSON.parse(sessionStorage.getItem('userinfo'));
this.getSystemadminlist()
this.getrenyuan()
// this.getSystemadminlist()
this.getbanzhu()
},
methods: {
@ -231,6 +233,17 @@ import { oauth2 } from '@/api/login/login'
this.suiNum=Math.round(Math.random()*1000000).toString()
},
async getshoujirenyuan(){
const from = {
page: 1,
pagesize: 10000,
groupId: this.$route.query.groupid, //
branchFactoryId: this.$route.query.departid, //
}
const res = await stafflist(from)
this.renyuanList=res.data.list
// alert(JSON.stringify(this.renyuanList))
},
async getrenyuan(){
const from = {
page: 1,
@ -240,6 +253,7 @@ import { oauth2 } from '@/api/login/login'
}
const res = await stafflist(from)
this.renyuanList=res.data.list
// alert(JSON.stringify(this.renyuanList))
},
async getbanzhu(){
@ -248,7 +262,7 @@ import { oauth2 } from '@/api/login/login'
this.banzhuList.forEach(element => {
element.id=element.id.toString()
});
console.log(this.banzhuList)
},
//
async tijiao(){

116
workspace.code-workspace

@ -0,0 +1,116 @@
{
"folders": [
{
"path": "..\\..\\..\\代码\\vuecliDemo"
},
{
"path": "..\\..\\..\\aaa"
},
{
"path": "..\\..\\..\\代码\\gin-vue-admin-master\\gin-vue-admin-master\\server"
},
{
"path": "..\\..\\..\\代码\\gin-vue-admin-master\\gin-vue-admin-master\\web"
},
{
"path": "..\\gin-vue-admin"
},
{
"path": "..\\RuoYi-Vue\\ruoyi-ui"
},
{
"path": "..\\..\\..\\..\\工作目录(任)\\www.zbzlchgs.com"
},
{
"path": "..\\..\\..\\代码\\zxAcademyVue"
},
{
"path": "..\\..\\..\\代码\\ruoyi-ui"
},
{
"path": "..\\tank-front"
},
{
"path": "..\\gin-vue-admin-new"
},
{
"path": "..\\gin-vue-admin-dev"
},
{
"path": "..\\visual-drag-demo"
},
{
"path": "..\\easy-flow"
},
{
"path": "..\\vue-mxgraph"
},
{
"path": "..\\vue-bpmn-element"
},
{
"path": "..\\bpmn-demo"
},
{
"path": "..\\RuoYi-Vue-Process"
},
{
"path": "..\\vue-activiti-demo"
},
{
"path": "..\\vue-with-bpmn"
},
{
"path": "..\\logicflow_vue_demo"
},
{
"path": "..\\LogicFlow"
},
{
"path": "..\\jw-workflow-engine"
},
{
"path": "..\\vue-flow-topology"
},
{
"path": "..\\logic-low-demo"
},
{
"path": "..\\..\\..\\aaa\\ruoyi-ui-new"
},
{
"path": "..\\vue-workflow-chart"
},
{
"path": "..\\imitating-dingding-flow-chart"
},
{
"path": "..\\Workflow"
},
{
"path": "..\\tdesign-vue-develop"
},
{
"path": "..\\vue-element-admin-master"
},
{
"path": "..\\vue-element-admin"
},
{
"path": "..\\vue-admin-template-master"
},
{
"path": "..\\vue_shop"
},
{
"path": "..\\vue-element-admin-i18n"
},
{
"path": "..\\vue-admin-gin"
},
{
"path": "."
}
],
"settings": {}
}
Loading…
Cancel
Save