Commit b86f11f2 authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents db9fd867 15a1d4d3
......@@ -13,6 +13,8 @@
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@chenfengyuan/vue-qrcode": "^1.0.2",
"@form-create/designer": "^1.0.10",
"@form-create/element-ui": "^2.5.30",
"@jiaminghi/data-view": "^2.10.0",
"@riophae/vue-treeselect": "0.4.0",
"@vue/babel-preset-app": "^4.5.13",
......
......@@ -294,3 +294,8 @@ a {
text-align: right;
word-break: break-word;
}
.el-button--primary {
background: linear-gradient(90deg, #5ab6ff, #2e9aff) !important;
color: #fff !important;
text-align: center !important;
}
......@@ -332,3 +332,8 @@ a {
}
}
}
.el-button--primary {
background: linear-gradient(90deg, #5ab6ff, #2e9aff) !important;
color: #fff !important;
text-align: center !important;
}
......@@ -64,6 +64,10 @@ export default {
url = "/perform/perpose/save";
} else if (url == "/perform/rules/attend/save") {
url = "/perform/rules/category/save";
} else if ((url = "/perform/staff/conf/save")) {
sessionStorage.getItem("type") == 1
? (url = "/perform/dept/conf/save")
: (url = "/perform/staff/conf/save");
}
const el = this.$refs.form;
el.validate((valid) => {
......
<template>
<el-table
size='small'
size="small"
:data="tableData"
:row-key="handleRowKeyMethod"
:span-method="handleSpanMethod"
......@@ -9,12 +9,14 @@
@sort-change="handleSortChange"
@row-click="handleRowClick"
:row-class-name="tableRowClassName"
:empty-text='emptyText'
:empty-text="emptytxt ? emptytxt : emptyText"
border
style="width: 100%">
style="width: 100%"
height="520"
>
<el-table-column
v-for='column in columns'
:key='column.prop'
v-for="column in columns"
:key="column.prop"
:type="column.type"
:index="handleIndexMethod"
:selectable="handleSelectableMethod"
......@@ -24,98 +26,108 @@
:sortable="column.sortable"
:show-overflow-tooltip="column.tooltip"
:align="column.align || 'left'"
:formatter='column.formatter'
:reserve-selection='column.reserveSelection'
:subColumns='column.subColumns'
:formatter="column.formatter"
:reserve-selection="column.reserveSelection"
:subColumns="column.subColumns"
:fixed="column.fixed"
>
<el-table-column
v-for='sunColumn in column.subColumns'
:key='sunColumn.prop'
v-for="sunColumn in column.subColumns"
:key="sunColumn.prop"
:type="sunColumn.type"
:prop="sunColumn.prop"
:label="sunColumn.label"
:width="sunColumn.width"
:sortable="sunColumn.sortable"
:align="sunColumn.align || 'left'"
:formatter='sunColumn.formatter'
:formatter="sunColumn.formatter"
/>
</el-table-column>
</el-table>
</template>
<script>
export default {
props: {
handleRowKeyMethod: {
type: Function,
required: false,
default: row => { return row.id }
default: (row) => {
return row.id;
},
},
handleSelectableMethod: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
handleIndexMethod: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
handleSpanMethod: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
handleSelectionChange: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
handleRowClick: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
handleSortChange: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
tableRowClassName: {
type: Function,
required: false,
default: () => {}
default: () => {},
},
loading: {
type: Boolean,
required: false,
default: true
default: true,
},
tableData: {
type: Array,
required: false,
default: () => []
default: () => [],
},
columns: {
type: Array,
required: false,
default: ()=> [],
}
default: () => [],
},
},
computed: {
emptyText() {
return (!this.loading && !this.tableData.length) ? '暂无数据' : '加载中...'
return !this.loading && !this.tableData.length ? "暂无数据" : "加载中...";
},
},
methods:{
mounted() {
console.log(this.tableData);
console.log(this.loading);
},
watch: {
tableData(val) {
val.length == 0 || val.length > 0
? (this.emptytxt = "暂无数据")
: (this.emptytxt = "加载中...");
},
},
methods: {},
data() {
return {}
}
}
return {
emptytxt: "",
};
},
};
</script>
......@@ -8,7 +8,7 @@
:row-class-name="tableRowClassName"
:default-expand-all="expand"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
height="620"
height="520"
>
<el-table-column
......
<template>
<div class='page layout-form'>
<slot name='breadcrumb'>
<div class="page layout-form">
<slot name="breadcrumb">
<Breadcrumb />
</slot>
<slot></slot>
......@@ -8,64 +8,67 @@
</template>
<style lang="less">
@media screen and (max-width: 1440px){
.layout-form{
form{
width: 100%!important;
@media screen and (max-width: 1440px) {
.layout-form {
form {
width: 100% !important;
}
.el-col-12{
.el-col-12 {
width: 100%;
}
}
}
.layout-form{
.el-breadcrumb{
.layout-form {
.el-breadcrumb {
padding-bottom: 12px;
margin-bottom: 12px;
border-bottom: 1px solid #ededed;
}
form{
form {
width: 1440px;
&[loading]{
&[loading] {
pointer-events: none;
.el-button{
.el-button {
background: #eee;
color: transparent;
border-color: #eee;
}
input,
textarea{
textarea {
background: #eee;
color: transparent;
border-color: #eee;
}
span, input, button, li, label{
span,
input,
button,
li,
label {
color: #eee;
}
}
.el-input-group--append{
.el-input-group--append {
.el-select .el-input {
width: 80px;
}
}
// 自定义的field组件
.my-form-field{
.el-select{
.my-form-field {
.el-select {
width: 100%;
}
.el-date-editor.el-input{
.el-date-editor.el-input {
width: 100%;
}
.form-el-radio-group{
label{
.form-el-radio-group {
label {
width: 160px;
}
.el-radio-button__inner{
.el-radio-button__inner {
border: 0;
}
}
}
}
}
</style>
// 表单节点封装,支持 input textarea select radio checkbox 及slot方式
<template>
<el-col :span='span'>
<el-form-item :label="label" :prop="prop" class='my-form-field'>
<el-col :span="span">
<el-form-item :label="label" :prop="prop" class="my-form-field">
<slot>
<el-input show-word-limit :maxlength="maxLength" :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" @input="emit" v-if='type === "text"' :class="inputClass" :clearable='clearable'></el-input>
<el-input show-word-limit :maxlength="maxLength" :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" @input="emit" type='password' v-if='type === "password"'></el-input>
<el-input
show-word-limit
:maxlength="maxLength"
:disabled="disabled"
:placeholder="placeholder"
v-model="field"
@change="emit"
@input="emit"
v-if="type === 'text'"
:class="inputClass"
:clearable="clearable"
></el-input>
<el-input
show-word-limit
:maxlength="maxLength"
:disabled="disabled"
:placeholder="placeholder"
v-model="field"
@change="emit"
@input="emit"
type="password"
v-if="type === 'password'"
></el-input>
<el-input-number :disabled='disabled' v-model="field" size="small" :placeholder='placeholder' @change="emit" @input="emit" v-if='type === "num"'></el-input-number>
<el-input-number
:disabled="disabled"
v-model="field"
size="small"
:placeholder="placeholder"
@change="emit"
@input="emit"
v-if="type === 'num'"
></el-input-number>
<el-input show-word-limit :disabled='disabled' :placeholder='placeholder' v-model="field" :maxlength="maxLength"
@change="emit" :rows='rows' @input="emit" v-if='type === "textarea"' type='textarea' :autosize="textareaSize" :class="inputClass"></el-input>
<el-input
show-word-limit
:disabled="disabled"
:placeholder="placeholder"
v-model="field"
:maxlength="maxLength"
@change="emit"
:rows="rows"
@input="emit"
v-if="type === 'textarea'"
type="textarea"
:autosize="textareaSize"
:class="inputClass"
></el-input>
<!-- 一级 -->
<el-select :disabled='disabled' v-model="field" @change="emit" :multiple='multiple' :filterable='filterable' :clearable='clearable' v-if='type === "select"'>
<el-select
:disabled="disabled"
v-model="field"
@change="emit"
:multiple="multiple"
:filterable="filterable"
:clearable="clearable"
v-if="type === 'select'"
style="width: 100%;"
>
<el-option
v-for="($label, $value) in enumData"
:key="$value"
......@@ -23,34 +72,78 @@
</el-select>
<!-- 多级 -->
<el-cascader :disabled='disabled' v-model="field" @change="emit" :options="enumData" :clearable='clearable'
:props="{label:'label',value:'id',multiple:multiple}"
v-if='type === "cascader"'>
<el-cascader
:disabled="disabled"
v-model="field"
@change="emit"
:options="enumData"
:clearable="clearable"
:props="{ label: 'label', value: 'id', multiple: multiple }"
v-if="type === 'cascader'"
>
</el-cascader>
<!-- 联级选择 -->
<el-cascader-panel :disabled='disabled' v-model="field" @change="emit" :options="enumData" :clearable='clearable'
:props="{label:'label',value:'id',multiple:multiple}" v-if='type === "cascaderpanel"'></el-cascader-panel>
<el-cascader-panel
:disabled="disabled"
v-model="field"
@change="emit"
:options="enumData"
:clearable="clearable"
:props="{ label: 'label', value: 'id', multiple: multiple }"
v-if="type === 'cascaderpanel'"
></el-cascader-panel>
<el-radio-group :disabled='disabled' v-model="field" @change="emit" v-if='type === "radio"'>
<el-radio-group
:disabled="disabled"
v-model="field"
@change="emit"
v-if="type === 'radio'"
>
<el-radio
v-for='($label, $value) in enumData'
:key='$value'
v-for="($label, $value) in enumData"
:key="$value"
:label="$value"
>{{$label}}</el-radio>
>{{ $label }}</el-radio
>
</el-radio-group>
<el-checkbox-group :disabled='disabled' v-model="field" @change="emit" v-if='type === "checkbox"'>
<el-checkbox-group
:disabled="disabled"
v-model="field"
@change="emit"
v-if="type === 'checkbox'"
>
<el-checkbox
v-for='($label, $value) in enumData'
:key='$value'
v-for="($label, $value) in enumData"
:key="$value"
:label="$value"
>{{$label}}</el-checkbox>
>{{ $label }}</el-checkbox
>
</el-checkbox-group>
<el-date-picker :disabled='disabled' type="date" value-format="yyyy-MM-dd HH:mm:ss" v-model="field" @change="emit" @input="emit" placeholder="选择日期" v-if='type === "date"'></el-date-picker>
<el-date-picker :disabled='disabled' type="datetime" value-format="yyyy-MM-dd HH:mm:ss" v-model="field" @change="emit" @input="emit" placeholder="选择日期" v-if='type === "datetime"'></el-date-picker>
<el-date-picker
:disabled="disabled"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="field"
@change="emit"
@input="emit"
placeholder="选择日期"
style="width: 100%;"
v-if="type === 'date'"
></el-date-picker>
<el-date-picker
:disabled="disabled"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="field"
@change="emit"
@input="emit"
placeholder="选择日期"
v-if="type === 'datetime'"
style="width: 100%;"
></el-date-picker>
</slot>
</el-form-item>
</el-col>
......@@ -71,17 +164,17 @@ export default {
// 字段类型: text,password,textarea,select,radio,checkbox,date,datetime
type: {
type: String,
default: 'text',
default: "text",
},
// 字段name
prop: {
type: String,
default: '',
default: "",
},
// 字段中文标题
label: {
type: String,
default: '',
default: "",
},
// 是否禁用
disabled: {
......@@ -91,17 +184,17 @@ export default {
// 是否提示
placeholder: {
type: String,
default: '',
default: "",
},
// 字段所需的枚举类型
enumData: {
type: Object,
default: ()=>{},
default: () => {},
},
// textarea专用-自适应内容高度
textareaSize: {
type: Object,
default: ()=>{},
default: () => {},
},
// select专用-是否可搜索
filterable: {
......@@ -121,44 +214,43 @@ export default {
// 字段所需的枚举类型
options: {
type: Array,
default: ()=>[],
default: () => [],
},
children: {
type: Array,
default: ()=>[],
default: () => [],
},
inputClass: {
type: String,
default: '',
default: "",
},
maxLength: {
type: Number,
default: 256,
},
maxLength:{
type:Number,
default:256,
}
},
methods: {
emit() {
this.$emit('input', this.newVal)
this.$emit('change', this.newVal)
this.$emit("input", this.newVal);
this.$emit("change", this.newVal);
//this.$emit('focus', this.newVal)
this.$emit('cascaderChange',this.newVal)
}
this.$emit("cascaderChange", this.newVal);
},
},
computed: {
field: {
get() {
return this.value
return this.value;
},
set(val) {
this.newVal = val;
}
}
},
},
},
data() {
return {
newVal: this.value,
}
}
}
};
},
};
</script>
......@@ -9,11 +9,16 @@
<i class="el-icon-menu" @click="showMobileMenu = !showMobileMenu">
</i>
<router-link to="/">
<!-- <img src="../assets/images/logo.png" style="margin-bottom:5px" height="40" alt=""> -->
<b style="color:white;font-size:20px;"
>&nbsp;&nbsp;&nbsp; 智慧政务绩效管理系统
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b
>
<img
src="../assets/images/logo.png"
style="margin-bottom:5px;margin-left: 24px;"
height="40"
alt=""
/>
<b style="color:white;font-size:20px;">
&nbsp;&nbsp;&nbsp;智慧政务绩效管理系统
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</b>
</router-link>
</div>
<!-- 一级菜单 -->
......@@ -183,9 +188,9 @@ export default {
.layout-menu-wrapper {
height: 72px;
line-height: 72px;
font-size: 16px;
font-size: 14px;
color: #eee;
background: #1848c8;
background: linear-gradient(90deg, #1845c6, #2999ff) !important;
.layout-logo {
height: 50px;
.el-icon-menu {
......@@ -207,13 +212,14 @@ export default {
height: 100%;
color: #eee;
cursor: pointer;
margin-right: 10px;
margin-right: 20px;
}
.active {
color: #fff;
list-style-type: none;
border-bottom: 3px solid #fff;
padding-bottom: 2px;
// border-bottom: 3px solid #fff;
// padding-bottom: 2px;
background-color: #1890ff;
}
}
}
......
......@@ -12,6 +12,9 @@ import Global from "./assets/utils/global.js";
import VueClipboard from "vue-clipboard2";
import VueAMap from "vue-amap";
import * as echarts from "echarts";
import formCreate from "@form-create/element-ui";
import FcDesigner from "@form-create/designer";
// 将自动注册所有组件为全局组件
import dataV from "@jiaminghi/data-view";
......@@ -25,6 +28,8 @@ Vue.use(Filter);
Vue.use(GlobalComponents); // 全局组件
Vue.use(VueClipboard);
Vue.use(VueAMap);
Vue.use(formCreate);
Vue.use(FcDesigner);
VueAMap.initAMapApiLoader({
key: "f45cca59553214543a5a77e50a7e04df",
plugin: [
......
<template>
<div :style="menuPageCss" class="pages page-layout">
<LayoutHeader v-if="menuPage!=='left'" @changePath="changePath"></LayoutHeader>
<LayoutHeaderLeft @toggle="toggle" :isOpen="isOpen" v-if="menuPage==='left'" />
<LayoutHeader
v-if="menuPage !== 'left'"
@changePath="changePath"
></LayoutHeader>
<LayoutHeaderLeft
@toggle="toggle"
:isOpen="isOpen"
v-if="menuPage === 'left'"
/>
<div style="padding:20px">
<router-view :class="{'active': !isOpen}" />
<router-view :class="{ active: !isOpen }" />
</div>
</div>
</template>
<script>
import LayoutHeader from "../components/Header";
import LayoutHeaderLeft from "../components/HeaderLeft";
import TabPane from '../components/tabPane.vue'
import TabPane from "../components/tabPane.vue";
const isPC = /(iPhone|iPad|iPod|iOS|Android)/i.test(navigator.userAgent);
//菜单位置:取值: left :菜单在左面, top :菜单在上面
const MenuPage = "top";
......@@ -19,15 +26,15 @@ export default {
components: {
LayoutHeader,
LayoutHeaderLeft,
TabPane
TabPane,
},
data() {
return {
isOpen: isPC,
menuPage: MenuPage,
isfresh:true,
path:''
}
isfresh: true,
path: "",
};
},
computed: {
menuPageCss() {
......@@ -35,16 +42,16 @@ export default {
return {
"--padding-top": this.menuPage === "left" ? "60px" : "0px",
"--margin-left": this.menuPage === "left" ? "200px" : "0px",
}
}
};
},
},
methods: {
toggle() {
this.isOpen = !this.isOpen;
},
changePath(e){
this.path = e
}
changePath(e) {
this.path = e;
},
},
};
</script>
......@@ -65,6 +72,5 @@ export default {
.page-layout {
background: #eee;
}
</style>
</style>
<template>
<layout-view>
<el-descriptions :title="title" :column="column" :size="size" :colon="false" border>
<el-descriptions
:title="title"
:column="column"
:size="size"
:colon="false"
border
>
<template slot="title">
<i class="el-icon-tickets"></i>
基本详细信息
</template>
<template slot="extra">
<el-button type="primary" @click="$router.go(-1)" size="small">返回</el-button>
<el-button type="primary" @click="$router.go(-1)" size="small"
>返回</el-button
>
</template>
<el-descriptions-item label="请假人id" label-class-name="labelClass" content-class-name="contentClass">
{{form.leavePersonId}}
<el-descriptions-item
label="请假人id"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.leavePersonId }}
</el-descriptions-item>
<el-descriptions-item label="请假人" label-class-name="labelClass" content-class-name="contentClass">
{{form.leavePerson}}
<el-descriptions-item
label="请假人"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.leavePerson }}
</el-descriptions-item>
<el-descriptions-item label="所属部门id" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptId}}
<el-descriptions-item
label="所属部门id"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.deptId }}
</el-descriptions-item>
<el-descriptions-item label="所属部门" label-class-name="labelClass" content-class-name="contentClass">
{{form.deptName}}
<el-descriptions-item
label="所属部门"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.deptName }}
</el-descriptions-item>
<el-descriptions-item label="电话号码" label-class-name="labelClass" content-class-name="contentClass">
{{form.phoneNumber}}
<el-descriptions-item
label="电话号码"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.phoneNumber }}
</el-descriptions-item>
<el-descriptions-item label="请假类型" label-class-name="labelClass" content-class-name="contentClass">
<el-descriptions-item
label="请假类型"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatters("leaveType", form.leaveType) }}
</el-descriptions-item>
<el-descriptions-item label="开始时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.startTime)}}
<el-descriptions-item
label="开始时间"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatterDate(form.startTime) }}
</el-descriptions-item>
<el-descriptions-item label="结束时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.endTime)}}
<el-descriptions-item
label="结束时间"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ util_formatterDate(form.endTime) }}
</el-descriptions-item>
<el-descriptions-item label="时长,单位秒" label-class-name="labelClass" content-class-name="contentClass">
{{form.duration}}
<el-descriptions-item
label="时长,单位秒"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.duration }}
</el-descriptions-item>
<el-descriptions-item label="请假事由" label-class-name="labelClass" content-class-name="contentClass">
{{form.reason}}
<el-descriptions-item
label="请假事由"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.reason }}
</el-descriptions-item>
<el-descriptions-item label="审批负责人Id" label-class-name="labelClass" content-class-name="contentClass">
{{form.approverId}}
<el-descriptions-item
label="审批负责人Id"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.approverId }}
</el-descriptions-item>
<el-descriptions-item label="审批负责人" label-class-name="labelClass" content-class-name="contentClass">
{{form.approver}}
<el-descriptions-item
label="审批负责人"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.approver }}
</el-descriptions-item>
<el-descriptions-item label="附件" label-class-name="labelClass" content-class-name="contentClass">
{{form.attachment}}
<el-descriptions-item
label="附件"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.attachment }}
</el-descriptions-item>
<el-descriptions-item label="附件路径" label-class-name="labelClass" content-class-name="contentClass">
{{form.attachmentPath}}
<el-descriptions-item
label="附件路径"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.attachmentPath }}
</el-descriptions-item>
<el-descriptions-item label="备注" label-class-name="labelClass" content-class-name="contentClass">
{{form.remark}}
<el-descriptions-item
label="备注"
label-class-name="labelClass"
content-class-name="contentClass"
>
{{ form.remark }}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
export default {
import view from "@/assets/mixins/view";
export default {
mixins: [view],
components: {
},
methods: {
},
components: {},
methods: {},
data() {
return {
size:"small",
column:2,
toString:[
"leaveType",
],
toArrays: [
],
toDate: [
]
}
}
}
size: "small",
column: 2,
toString: ["leaveType"],
toArrays: [],
toDate: [],
};
},
};
</script>
<style lang="less">
.labelClass{
.labelClass {
width: 200px;
}
.el-descriptions__body{
}
.el-descriptions__body {
margin-left: 5px;
margin-right: 5px;
color: #606266;
background-color: #FFF;
}
.contentClass{
background-color: #fff;
}
.contentClass {
width: 600px;
}
}
</style>
<template>
<div class="page">
<div class="top">
<el-button class="backBtn" @click="$router.back()">返回上一级</el-button>
<el-tabs v-model="tabs">
<el-tab-pane label="设计问卷" name="1">
<iframe style="width: 100%;height: 80vh;" src="https://wurong19870715.gitee.io/formdesigner/#/" frameborder="0"></iframe>
<fc-designer style="height: 75vh;" ref="designer" />
<div class="tool">
<!--功能按钮-->
<el-row>
<el-button icon="el-icon-download" type="primary" size="small" @click="getFormJson()"
round>生成表单JSON</el-button>
<el-button icon="el-icon-download" type="success" size="small" @click="getFormOption()"
round>生成表单配置</el-button>
<el-button icon="el-icon-upload" type="success" size="small" @click="drawer = true"
round>预览</el-button>
</el-row>
</div>
<el-drawer title="预览" :visible.sync="drawer" :with-header="false">
<div class="showPhone">
<div>预览</div>
</div>
</el-drawer>
</el-tab-pane>
</el-tabs>
</div>
......@@ -14,12 +32,74 @@
export default {
data() {
return {
tabs: '1'
tabs: '1',
drawer: false,
}
},
methods: {
getFormJson() {
//FcDesigner 生成的`JSON`
const FcDesignerRule = this.$refs.designer.getRule();
console.log(FcDesignerRule)
},
getFormOption() {
//FcDesigner 生成的`options`
const FcDesignerOptions = this.$refs.designer.getOption();
console.log(FcDesignerOptions)
}
}
}
</script>
<style lang="less" scoped>
.top {}
.showPhone{
border: 1px solid;
height: 100%;
width: 100%;
}
.backBtn {
position: absolute;
right: 20px;
z-index: 99;
}
.tool {
margin-top: 20px;
text-align: center;
}
/* 侧边滚动条 */
/deep/.el-aside::-webkit-scrollbar {
width: 3px;
}
/* 滚动条上的滚动滑块 */
/deep/.el-aside::-webkit-scrollbar-thumb {
background: #CCCCCC;
border-radius: 4px;
}
/* 滚动条轨道 */
/deep/.el-aside::-webkit-scrollbar-track {
background: #EEEEEE;
border-radius: 4px;
}
/* 侧边滚动条 */
/deep/.el-main::-webkit-scrollbar {
width: 3px;
}
/* 滚动条上的滚动滑块 */
/deep/.el-main::-webkit-scrollbar-thumb {
background: #CCCCCC;
border-radius: 4px;
}
/* 滚动条轨道 */
/deep/.el-main::-webkit-scrollbar-track {
background: #EEEEEE;
border-radius: 4px;
}
</style>
\ No newline at end of file
......@@ -4,6 +4,11 @@
<div class="left_top">
<div class="title">
部门绩效总分排名TOP10
<div class="button_box">
<span>今年</span>
<span class="check">本月</span>
<span>今日</span>
</div>
</div>
<dv-scroll-ranking-board
:config="config"
......@@ -11,6 +16,11 @@
/>
</div>
<div class="left_mid">
<div class="button_box">
<span>今年</span>
<span class="check">本月</span>
<span>今日</span>
</div>
<div id="leida" style="width: 100%;height: 100%;"></div>
</div>
<div class="left_down">
......@@ -176,6 +186,11 @@
</div>
<div class="right">
<div class="right_top">
<div class="button_box">
<span>今年</span>
<span class="check">本月</span>
<span>今日</span>
</div>
<div class="title">
个人绩效总分排名TOP10
</div>
......@@ -185,6 +200,11 @@
/>
</div>
<div class="right_mid">
<div class="button_box">
<span>今年</span>
<span class="check">本月</span>
<span>今日</span>
</div>
<div id="shensuPie" style="width: 100%;height: 100%;"></div>
</div>
<div class="right_down">
......@@ -326,6 +346,8 @@ export default {
legend: {
data: ["加分", "扣分"],
right: 0,
bottom: "50px",
orient: "vertical",
},
radar: [
{
......@@ -843,6 +865,7 @@ export default {
.right_top,
.right_mid,
.right_down {
position: relative;
width: 100%;
height: 33%;
background: #fff;
......@@ -864,5 +887,39 @@ export default {
height: 30%;
margin: 15px 0;
}
.button_box {
position: absolute;
top: 8px;
right: 10px;
display: flex;
span {
border-width: 0px;
width: 40px;
height: 24px;
display: flex;
font-family: "微软雅黑", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 12px;
color: #797979;
background-color: rgba(28, 117, 221, 0.0980392156862745);
border: none;
border-radius: 4px;
justify-content: center;
align-items: center;
margin-right: 5px;
cursor: pointer;
}
.check {
background: linear-gradient(
90deg,
rgba(23, 67, 198, 1) 0%,
rgba(31, 116, 223, 1) 50%,
rgba(44, 140, 240, 1) 99%
);
font-size: 12px;
color: #ffffff;
}
}
}
</style>
......@@ -255,7 +255,7 @@ export default {
overflow: hidden;
/deep/.el-tabs__item {
width: 120px;
font-size: 18px;
font-size: 14px;
text-align: center;
}
.content {
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "PerformDeptConfList",
components: {
drawerShow
},
mixins: [table],
created() {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
......@@ -33,45 +30,73 @@
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
isshowTabPane:true,
search: [
],
isshowTabPane: true,
search: [],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{label: "部门id", prop: "deptId", formatter: this.formatter},
{ label: "部门id", prop: "deptId", formatter: this.formatter },
{label: "部门名称", prop: "deptName"},
{ label: "部门名称", prop: "deptName" },
{label: "考勤绩效指标数量", prop: "attendCount",formatter: this.formatter},
{
label: "考勤绩效指标数量",
prop: "attendCount",
formatter: this.formatter,
},
{label: "评价绩效指标数量", prop: "assessCount",formatter: this.formatter},
{
label: "评价绩效指标数量",
prop: "assessCount",
formatter: this.formatter,
},
{label: "办件绩效指标数量", prop: "workCount",formatter: this.formatter},
{
label: "办件绩效指标数量",
prop: "workCount",
formatter: this.formatter,
},
{label: "效能绩效指标数量", prop: "effectCount",formatter: this.formatter},
{
label: "效能绩效指标数量",
prop: "effectCount",
formatter: this.formatter,
},
{label: "其它绩效指标数量", prop: "otherCount",formatter: this.formatter},
{
label: "其它绩效指标数量",
prop: "otherCount",
formatter: this.formatter,
},
{label: "创建用户", prop: "createUserId", formatter: this.formatter},
{
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
},
{
label: "操作",
width: 240,
formatter: row => {
formatter: (row) => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
}
}
]
}
};
}
},
},
],
},
};
},
};
</script>
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form ref="form" :model="form" :rules="rules" label-width="180px">
<el-row>
<Field label="负责人id号" prop="ownerId" v-model="form.ownerId" placeholder="请输入负责人id号"/>
<Field label="负责人名称" prop="ownerName" v-model="form.ownerName" placeholder="请输入负责人名称"/>
<Field label="窗口工作人员id号" prop="staffId" v-model="form.staffId" placeholder="请输入窗口工作人员id号"/>
<Field label="请假类型" prop="assessmentType" v-model="form.assessmentType" type="select" :enumData="dict.assessmentType" placeholder="请选择请假类型"/>
<Field label="考核范围" prop="assessmentScope" v-model="form.assessmentScope" type="select" :enumData="dict.assessmentScope" placeholder="请选择考核范围"/>
<Field label="考比较类型" prop="compareScope" v-model="form.compareScope" type="select" :enumData="dict.compareScope" placeholder="请选择考比较类型"/>
<Field label="比例" prop="ratio" v-model="form.ratio" placeholder="请输入比例"/>
<Field label="周期类型" prop="periodType" v-model="form.periodType" type="select" :enumData="dict.periodType" placeholder="请选择周期类型"/>
<Field label="年" prop="year" v-model="form.year" placeholder="请输入年"/>
<Field label="月" prop="month" v-model="form.month" type="select" :enumData="dict.month" placeholder="请选择月"/>
<Field label="半年类型" prop="halfYear" v-model="form.halfYear" type="select" :enumData="dict.halfYear" placeholder="请选择半年类型"/>
<Field label="半年类型" prop="halfYear" v-model="form.halfYear" type="select" :enumData="dict.halfYear" placeholder="请选择半年类型"/>
<Field label="季度类型" prop="quarter" v-model="form.quarter" type="select" :enumData="dict.quarter" placeholder="请选择季度类型"/>
<Field label="负责人,多个逗号分割" prop="leaders" v-model="form.leaders" type="textarea" placeholder="请输入负责人,多个逗号分割"/>
<Field label="负责人电话,多个逗号分割" prop="leaderMobiles" v-model="form.leaderMobiles" type="textarea" placeholder="请输入负责人电话,多个逗号分割"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
<Field
label="负责人id号"
prop="ownerId"
v-model="form.ownerId"
placeholder="请输入负责人id号"
/>
<Field
label="负责人名称"
prop="ownerName"
v-model="form.ownerName"
placeholder="请输入负责人名称"
/>
<Field
label="窗口工作人员id号"
prop="staffId"
v-model="form.staffId"
placeholder="请输入窗口工作人员id号"
/>
<Field
label="请假类型"
prop="assessmentType"
v-model="form.assessmentType"
type="select"
:enumData="dict.assessmentType"
placeholder="请选择请假类型"
/>
<Field
label="考核范围"
prop="assessmentScope"
v-model="form.assessmentScope"
type="select"
:enumData="dict.assessmentScope"
placeholder="请选择考核范围"
/>
<Field
label="考比较类型"
prop="compareScope"
v-model="form.compareScope"
type="select"
:enumData="dict.compareScope"
placeholder="请选择考比较类型"
/>
<Field
label="比例"
prop="ratio"
v-model="form.ratio"
placeholder="请输入比例"
/>
<Field
label="周期类型"
prop="periodType"
v-model="form.periodType"
type="select"
:enumData="dict.periodType"
placeholder="请选择周期类型"
/>
<Field
label="年"
prop="year"
v-model="form.year"
placeholder="请输入年"
/>
<Field
label="月"
prop="month"
v-model="form.month"
type="select"
:enumData="dict.month"
placeholder="请选择月"
/>
<Field
label="半年类型"
prop="halfYear"
v-model="form.halfYear"
type="select"
:enumData="dict.halfYear"
placeholder="请选择半年类型"
/>
<Field
label="半年类型"
prop="halfYear"
v-model="form.halfYear"
type="select"
:enumData="dict.halfYear"
placeholder="请选择半年类型"
/>
<Field
label="季度类型"
prop="quarter"
v-model="form.quarter"
type="select"
:enumData="dict.quarter"
placeholder="请选择季度类型"
/>
<Field
label="负责人,多个逗号分割"
prop="leaders"
v-model="form.leaders"
type="textarea"
placeholder="请输入负责人,多个逗号分割"
/>
<Field
label="负责人电话,多个逗号分割"
prop="leaderMobiles"
v-model="form.leaderMobiles"
type="textarea"
placeholder="请输入负责人电话,多个逗号分割"
/>
<Field
label="备注"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
/>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" v-if="pageInfo.type !== 'view'" @click="submitForm">确 定</el-button>
<el-button
type="primary"
v-if="pageInfo.type !== 'view'"
@click="submitForm"
>确 定</el-button
>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
import form from "@/assets/mixins/formdialog";
import dialogShow from "./dialogshow";
export default {
mixins: [form],
components: {
dialogShow ,
dialogShow,
},
data() {
return {
......@@ -46,7 +148,7 @@
title: "考核目标",
// 是否显示弹出层
open: false,
toString:[
toString: [
"assessmentType",
"assessmentScope",
"compareScope",
......@@ -58,41 +160,37 @@
],
// 表单校验
rules: {
year: [
{required: true,message: "请输入年", trigger: "blur" },
],
month: [
{required: true,message: "请输入月", trigger: "blur" },
],
}
year: [{ required: true, message: "请输入年", trigger: "blur" }],
month: [{ required: true, message: "请输入月", trigger: "blur" }],
},
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.reset();
this.query = { id: row.id };
this.urls.currUrl ="perform/perpose/edit";
this.urls.currUrl = "perform/perpose/edit";
this.getData();
this.pageInfo.type="edit"
this.pageInfo.type = "edit";
this.title = "修改考核目标";
},
/** 新增 */
add(row) {
this.reset()
this.reset();
this.urls.currUrl = "perform/perpose/add";
this.getData();
this.pageInfo.type="add"
this.pageInfo.type = "add";
this.title = "新增考核目标";
},
/** 查看*/
view(row) {
this.reset()
this.reset();
this.query = { id: row.id };
this.urls.currUrl ="perform/perpose/view";
this.urls.currUrl = "perform/perpose/view";
this.getData();
this.pageInfo.type="view"
this.pageInfo.type = "view";
this.title = "考核目标详细";
},
/**取消按钮 */
......@@ -112,22 +210,22 @@
// 表单重置
reset() {
this.form = {
ownerId : null,
ownerName : "",
staffId : null,
assessmentType : null,
assessmentScope : 1,
compareScope : 1,
ratio : 0.00,
periodType : 1,
year : null,
month : null,
halfYear : 1,
halfYear : 1,
quarter : 1,
leaders : "",
leaderMobiles : "",
remark : "",
ownerId: null,
ownerName: "",
staffId: null,
assessmentType: null,
assessmentScope: 1,
compareScope: 1,
ratio: 0.0,
periodType: 1,
year: null,
month: null,
halfYear: 1,
halfYear: 1,
quarter: 1,
leaders: "",
leaderMobiles: "",
remark: "",
};
this.resetForm("form");
},
......@@ -137,5 +235,5 @@
}
},
},
};
};
</script>
......@@ -23,9 +23,22 @@
<div class="right_box">
<h3>规则管理</h3>
<div class="search_box">
<div class="left_search">
<el-button type="primary" style="margin:20px 0" @click="addRules">
+ 新增规则</el-button
>
<el-switch
v-model="switchValue"
active-color="#13ce66"
inactive-color="#1890ff"
active-value="100"
inactive-value="0"
inactive-text="按分值排序"
active-text="按更新时间排序"
style="margin-left: 10px;"
>
</el-switch>
</div>
<div class="search">
<el-input
placeholder="请输入考核内容关键字搜索"
......@@ -70,6 +83,7 @@ export default {
},
data() {
return {
switchValue: "0",
index: -1,
dataArr: [],
config: {
......
......@@ -46,7 +46,7 @@ export default {
overflow: hidden;
/deep/.el-tabs__item {
width: 180px;
font-size: 18px;
font-size: 14px;
text-align: center;
}
}
......
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "PerformStaffConfList",
components: {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
isshowTabPane: true,
search: [],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "人员ids", prop: "staffIds" },
{ label: "人员名称n", prop: "staffNames" },
{
label: "考核人总数",
prop: "staffCount",
formatter: this.formatter,
},
{
label: "考勤绩效指标数量",
prop: "attendCount",
formatter: this.formatter,
},
{
label: "评价绩效指标数量",
prop: "assessCount",
formatter: this.formatter,
},
{
label: "办件绩效指标数量",
prop: "workCount",
formatter: this.formatter,
},
{
label: "效能绩效指标数量",
prop: "effectCount",
formatter: this.formatter,
},
{
label: "其它绩效指标数量",
prop: "otherCount",
formatter: this.formatter,
},
{
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
},
{
label: "操作",
width: 240,
formatter: (row) => {
return (
<table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
},
},
],
},
};
},
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="自动考核指标" name="1">
<div class="content">
<div class="top">
<el-radio-group v-model="type" @input="buttonChange">
<el-radio-button label="1">按部门</el-radio-button>
<el-radio-button label="2">按个人</el-radio-button>
</el-radio-group>
<el-button type="primary" style="margin: 0 20px;" @click="addGoal">
+ {{ type == 1 ? "新增考核部门" : "新增考核个人" }}</el-button
>
</div>
<div class="mid_content">
<div class="goal_box" v-for="(val, i) in dataList" :key="i">
<div class="goal_title">
<img src="../../../../assets/images/u17641.svg" alt="" />
<span>
{{ val.deptName ? val.deptName : "--" }}
</span>
</div>
<p class="goal_txt">
<span>考核指标:</span>
</p>
<p>
<el-tag style="margin: 0 5px 5px 0"
>考勤绩效指标/工作纪律:{{ val.attendCount }}</el-tag
>
<el-tag style="margin: 0 5px 5px 0"
>评价绩效指标/工作纪律:{{ val.assessCount }}</el-tag
>
<el-tag style="margin: 0 5px 5px 0"
>办件绩效指标/工作效能:{{ val.workCount }}</el-tag
>
<el-tag style="margin: 0 5px 5px 0"
>效能绩效指标/工作纪律:{{ val.effectCount }}</el-tag
>
</p>
<p class="goal_txt">
<span>最近更新:</span><span>{{ val.createTime }}</span>
</p>
<p class="goal_txt">
<span>更新人员:</span><span>{{ val.createUserId }}</span>
</p>
<div class="button_box">
<el-button
type="primary"
style="width: 150px;"
plain
@click="hanleEdit(val)"
>编辑</el-button
>
<el-button
type="danger"
style="width: 150px;"
plain
@click="hanleDel(val)"
>删除</el-button
>
</div>
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="窗口负责人管理" name="2">
<div class="content">
<LayoutTable :data="tableData" notSearch :config="tableConfig">
</LayoutTable>
</div>
</el-tab-pane>
</el-tabs>
<!-- 人员考核 -->
<drawer-show ref="drawerform" @ok="getData" />
<!-- 部门考核 -->
<deptdrawer-show ref="deptdrawerform" @ok="getData" />
<!-- 窗口负责人管理 -->
<windowdrawer-show ref="windowdrawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import deptdrawerShow from "./deptdrawershow.vue";
import windowdrawerShow from "./windowdrawershow.vue";
import table from "@/assets/mixins/table";
export default {
name: "PerformStaffConfList",
components: {
drawerShow,
deptdrawerShow,
windowdrawerShow,
},
mixins: [table],
created() {},
created() {
console.log(this.tableData);
sessionStorage.removeItem("type");
sessionStorage.setItem("type", this.type);
},
methods: {
/** 重写新增方法 */
toAdd(row) {
this.$refs.drawerform.add(row);
this.$refs.windowdrawerform.add(row);
},
/** 重写编辑方法 */
toEdit(row) {
this.$refs.drawerform.edit(row);
this.$refs.windowdrawerform.edit(row);
},
/** 重写查看方法 */
toView(row) {
this.$refs.drawerform.view(row);
this.$refs.windowdrawerform.view(row);
},
hanleEdit(val) {
this.type == 1
? this.$refs.deptdrawerform.edit(val)
: this.$refs.drawerform.edit(val);
},
hanleDel(val) {
this.$get(
this.type == 1
? "/perform/dept/conf/delete"
: "/perform/staff/conf/delete",
{ id: val.id }
).then((res) => {
this.$message.success(res.msg);
this.getData();
});
},
addGoal() {
this.type == 1
? this.$refs.deptdrawerform.add()
: this.$refs.drawerform.add();
},
buttonChange() {
sessionStorage.setItem("type", this.type);
this.getData();
},
handleClick() {
this.getData();
},
async getData() {
await this.$post(
this.type == 1 ? "/perform/dept/conf/list" : "/perform/staff/conf/list"
).then((res) => {
console.log(res);
if (res.code == 1) {
this.dataList = res.data.data;
}
});
this.activeName == 2
? await this.$post("/window/owner/list").then((res) => {
console.log(res);
if (res.code == 1) {
this.tableData = res.data;
}
})
: "";
},
},
data() {
return {
dataList: [],
tableData: {},
activeName: "1",
type: "1",
config: {
isshowTabPane: true,
isshowTabPane: false,
search: [],
columns: [
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{ label: "人员ids", prop: "staffIds" },
{ label: "部门名称", prop: "deptName" },
{ label: "人员名称n", prop: "staffNames" },
{ label: "姓名", prop: "name" },
{
label: "考核人总数",
prop: "staffCount",
formatter: this.formatter,
},
{ label: "工号", prop: "number" },
{
label: "考勤绩效指标数量",
prop: "attendCount",
formatter: this.formatter,
},
{ label: "电话号码", prop: "phone" },
{
label: "评价绩效指标数量",
prop: "assessCount",
label: "负责窗口数量",
prop: "windowCount",
formatter: this.formatter,
},
{
label: "办件绩效指标数量",
prop: "workCount",
formatter: this.formatter,
},
{
label: "效能绩效指标数量",
prop: "effectCount",
formatter: this.formatter,
},
{
label: "其它绩效指标数量",
prop: "otherCount",
formatter: this.formatter,
},
{
label: "创建用户",
prop: "createUserId",
formatter: this.formatter,
label: "创建时间",
prop: "createTime",
formatter: this.formatterDate,
},
{
label: "操作",
......@@ -106,3 +211,120 @@ export default {
},
};
</script>
<style lang="less" scoped>
.page {
width: 100%;
height: 100%;
overflow: hidden;
/deep/.el-tabs__item {
width: 120px;
font-size: 14px;
text-align: center;
}
.content {
width: 100%;
height: 100%;
.search_top {
width: 100%;
height: 1000%;
display: flex;
justify-content: space-between;
}
/deep/.el-radio-button {
width: 150px;
text-align: center;
border: 1px solid #eee;
}
/deep/.el-radio-button__inner {
width: 150px;
}
/deep/.el-radio-button__orig-radio:checked + .el-radio-button__inner {
width: 150px;
border: none;
background: #1890ff;
color: #fff;
border: 1px solid #eee;
}
.top {
width: 100%;
height: 60px;
}
.mid {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
.mid_top {
width: 100%;
height: 300px;
display: flex;
justify-content: space-between;
.jixiaozongfen,
.jixiaopingjunfen {
width: 48%;
height: 100%;
}
}
.mid_down {
width: 100%;
height: 380px;
display: flex;
justify-content: space-evenly;
padding-top: 50px;
.box {
width: 25%;
height: 100%;
}
}
}
.mid_content,
.bar_content {
width: 100%;
height: 700px;
overflow: hidden;
}
.mid_content {
overflow-y: auto;
display: flex;
flex-wrap: wrap;
.goal_box {
width: 435px;
height: 270px;
background: inherit;
background-color: rgba(255, 255, 255, 1);
border: none;
border-radius: 8px;
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.117647058823529);
-moz-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.117647058823529);
-webkit-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.117647058823529);
margin: 0 20px 20px 0;
padding: 20px;
.goal_title {
width: 100%;
display: flex;
align-items: center;
img {
margin-right: 10px;
}
}
.goal_txt {
font-family: "微软雅黑", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 12px;
color: #666666;
width: 100%;
margin: 10px 0;
}
.button_box {
width: 100%;
display: flex;
justify-content: space-evenly;
align-items: center;
}
}
}
}
}
</style>
<template>
<!-- 弹出框表单 -->
<el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="50%"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field
label="部门id号"
prop="deptId"
v-model="form.deptId"
placeholder="请输入部门id号"
/>
<Field
label="部门名称"
prop="deptName"
v-model="form.deptName"
placeholder="请输入部门名称"
/>
<Field
label="姓名"
prop="name"
v-model="form.name"
placeholder="请输入姓名"
/>
<Field
label="工号"
prop="number"
v-model="form.number"
placeholder="请输入工号"
/>
<Field
label="电话号码"
prop="phone"
v-model="form.phone"
placeholder="请输入电话号码"
/>
<Field
label="负责窗口数量"
prop="windowCount"
v-model="form.windowCount"
placeholder="请输入负责窗口数量"
/>
<Field
label="备注"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
/>
</el-row>
<form-buttons @submit="submitForm" noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
name: "WindowOwnerDetail",
mixins: [form],
components: {},
created() {
this.changePath("window/owner");
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "窗口负责人",
// 是否显示弹出层
open: false,
direction: "rtl",
toString: [],
toDate: [],
// 表单校验
rules: {},
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "window/owner/edit";
this.getData();
this.pageInfo.type = "edit";
this.title = "修改窗口负责人";
},
/** 新增 */
add(row) {
this.reset();
this.urls.currUrl = "window/owner/add";
this.getData();
this.pageInfo.type = "add";
this.title = "新增窗口负责人";
},
/** 查看*/
view(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "window/owner/view";
this.getData();
this.pageInfo.type = "view";
this.title = "窗口负责人详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
deptId: 0,
deptName: "",
name: "",
number: "",
phone: "",
windowCount: null,
remark: "",
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
\ No newline at end of file
<template>
<!-- 弹出框表单 -->
<el-dialog :title="title" :visible.sync="open" width="90%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form ref="form" :model="form" :rules="rules" label-width="180px">
<el-row>
<Field
label="负责人id号"
......
......@@ -3,11 +3,27 @@
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="目标看板" name="1">
<div class="content">
<div class="top">
<div class="top search_top">
<el-radio-group v-model="type">
<el-radio-button label="1">按部门</el-radio-button>
<el-radio-button label="2">按个人</el-radio-button>
</el-radio-group>
<div class="search_box">
<el-select
v-model="dateValue"
placeholder="请选择"
style="margin: 0 10px;"
>
<el-option
v-for="item in optionsMonths"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<el-button type="primary">搜索</el-button>
</div>
</div>
<div class="mid">
<div class="mid_top">
......@@ -326,7 +342,7 @@ export default {
overflow: hidden;
/deep/.el-tabs__item {
width: 120px;
font-size: 18px;
font-size: 14px;
text-align: center;
}
.content {
......
......@@ -4,35 +4,68 @@
:title="title"
:visible.sync="open"
:direction="direction"
size="50%">
size="50%"
>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<Field label="部门id号" prop="deptId" v-model="form.deptId" placeholder="请输入部门id号"/>
<Field label="部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入部门名称"/>
<Field label="姓名" prop="name" v-model="form.name" placeholder="请输入姓名"/>
<Field label="工号" prop="number" v-model="form.number" placeholder="请输入工号"/>
<Field label="电话号码" prop="phone" v-model="form.phone" placeholder="请输入电话号码"/>
<Field label="负责窗口数量" prop="windowCount" v-model="form.windowCount" placeholder="请输入负责窗口数量"/>
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
<Field
label="部门id号"
prop="deptId"
v-model="form.deptId"
placeholder="请输入部门id号"
/>
<Field
label="部门名称"
prop="deptName"
v-model="form.deptName"
placeholder="请输入部门名称"
/>
<Field
label="姓名"
prop="name"
v-model="form.name"
placeholder="请输入姓名"
/>
<Field
label="工号"
prop="number"
v-model="form.number"
placeholder="请输入工号"
/>
<Field
label="电话号码"
prop="phone"
v-model="form.phone"
placeholder="请输入电话号码"
/>
<Field
label="负责窗口数量"
prop="windowCount"
v-model="form.windowCount"
placeholder="请输入负责窗口数量"
/>
<Field
label="备注"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
/>
</el-row>
<form-buttons @submit='submitForm' noCancelBtn />
<form-buttons @submit="submitForm" noCancelBtn />
</el-form>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
export default {
import form from "@/assets/mixins/formdialog";
export default {
name: "WindowOwnerDetail",
mixins: [form],
components: {
},
components: {},
created() {
this.changePath("window/owner")
this.changePath("window/owner");
},
data() {
return {
......@@ -42,42 +75,39 @@
title: "窗口负责人",
// 是否显示弹出层
open: false,
direction:"rtl",
toString:[
],
toDate:[
],
direction: "rtl",
toString: [],
toDate: [],
// 表单校验
rules: {
}
rules: {},
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.reset();
this.query = { id: row.id };
this.urls.currUrl ="window/owner/edit";
this.urls.currUrl = "window/owner/edit";
this.getData();
this.pageInfo.type="edit"
this.pageInfo.type = "edit";
this.title = "修改窗口负责人";
},
/** 新增 */
add(row) {
this.reset()
this.reset();
this.urls.currUrl = "window/owner/add";
this.getData();
this.pageInfo.type="add"
this.pageInfo.type = "add";
this.title = "新增窗口负责人";
},
/** 查看*/
view(row) {
this.reset()
this.reset();
this.query = { id: row.id };
this.urls.currUrl ="window/owner/view";
this.urls.currUrl = "window/owner/view";
this.getData();
this.pageInfo.type="view"
this.pageInfo.type = "view";
this.title = "窗口负责人详细";
},
/**取消按钮 */
......@@ -97,13 +127,13 @@
// 表单重置
reset() {
this.form = {
deptId : 0,
deptName : "",
name : "",
number : "",
phone : "",
windowCount : null,
remark : "",
deptId: 0,
deptName: "",
name: "",
number: "",
phone: "",
windowCount: null,
remark: "",
};
this.resetForm("form");
},
......@@ -113,5 +143,5 @@
}
},
},
};
};
</script>
<template>
<div class="page">
<LayoutTable :data="tableData" :config="tableConfig">
</LayoutTable>
<LayoutTable :data="tableData" :config="tableConfig"> </LayoutTable>
<drawer-show ref="drawerform" @ok="getData" />
</div>
</template>
<script>
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
/** 表单弹出框模式需引入 */
import drawerShow from "./drawershow";
import table from "@/assets/mixins/table";
export default {
name: "WindowOwnerList",
components: {
drawerShow
},
mixins: [table],
created() {
drawerShow,
},
mixins: [table],
created() {},
methods: {
/** 重写新增方法 */
toAdd(row) {
......@@ -33,41 +30,53 @@
toView(row) {
this.$refs.drawerform.view(row);
},
},
data() {
return {
config: {
isshowTabPane:true,
search: [
],
isshowTabPane: true,
search: [],
columns: [
{type: "selection", width: 60},
{type: "index",label: "序号",width: 50},
{ type: "selection", width: 60 },
{ type: "index", label: "序号", width: 50 },
{label: "部门名称", prop: "deptName"},
{ label: "部门名称", prop: "deptName" },
{label: "姓名", prop: "name"},
{ label: "姓名", prop: "name" },
{label: "工号", prop: "number"},
{ label: "工号", prop: "number" },
{label: "电话号码", prop: "phone"},
{ label: "电话号码", prop: "phone" },
{label: "负责窗口数量", prop: "windowCount",formatter: this.formatter},
{
label: "负责窗口数量",
prop: "windowCount",
formatter: this.formatter,
},
{label: "创建时间", prop: "createTime", formatter: this.formatterDate},
{
label: "创建时间",
prop: "createTime",
formatter: this.formatterDate,
},
{
label: "操作",
width: 240,
formatter: row => {
formatter: (row) => {
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} />
<table-buttons
noAdd
row={row}
onEdit={this.toEdit}
onView={this.toView}
onDel={this.toDel}
/>
);
}
}
]
}
};
}
},
},
],
},
};
},
};
</script>
......@@ -22,7 +22,7 @@
"resolved" "https://registry.nlark.com/@babel/compat-data/download/@babel/compat-data-7.14.9.tgz?cache=0&sync_timestamp=1627804534988&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.14.9.tgz"
"version" "7.14.9"
"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.4.0-0", "@babel/core@^7.9.6":
"@babel/core@*", "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.4.0-0", "@babel/core@^7.9.6":
"integrity" "sha1-IM33yEtdhtg/rIcQqLxgWnuj8BA="
"resolved" "https://registry.nlark.com/@babel/core/download/@babel/core-7.14.8.tgz"
"version" "7.14.8"
......@@ -872,7 +872,15 @@
"@babel/types" "^7.4.4"
"esutils" "^2.0.2"
"@babel/runtime@^7.11.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4":
"@babel/runtime-corejs3@^7.11.2":
"integrity" "sha512-M+37LLIRBTEVjktoJjbw4KVhupF0U/3PYUCbBwgAd9k17hoKhRu1n935QiG7Tuxv0LJOMrb2vuKEeYUlv0iyiw=="
"resolved" "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.22.6.tgz"
"version" "7.22.6"
dependencies:
"core-js-pure" "^3.30.2"
"regenerator-runtime" "^0.13.11"
"@babel/runtime@^7.11.0", "@babel/runtime@^7.11.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4":
"integrity" "sha1-cRmlb0IQGIUmlCkLn5FICXORtEY="
"resolved" "https://registry.nlark.com/@babel/runtime/download/@babel/runtime-7.14.8.tgz"
"version" "7.14.8"
......@@ -941,6 +949,104 @@
"minimatch" "^3.0.4"
"strip-json-comments" "^3.1.1"
"@form-create/component-elm-checkbox@^2.5.29":
"integrity" "sha512-jOFHQmJ6HQ3pqc/AzALbV0dtcZRdejkerQKfsJXz/EOkKnH3JJ1rgNps8lhoNo6+9R0ybX3FBN5e53iohs0a5w=="
"resolved" "https://registry.npmjs.org/@form-create/component-elm-checkbox/-/component-elm-checkbox-2.5.29.tgz"
"version" "2.5.29"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/component-elm-frame@^2.5.27":
"integrity" "sha512-697RpnNm2dDbLiugT+0Q7yFhkhNPlYXskZkMnLzmwBftWi7Cb78v7EZIE/gmVIlAZ3NSqY0mWYM+0ryjQEKQnQ=="
"resolved" "https://registry.npmjs.org/@form-create/component-elm-frame/-/component-elm-frame-2.5.27.tgz"
"version" "2.5.27"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/component-elm-group@^2.5.28":
"integrity" "sha512-6k9r4R9kPvTaJLmMlHrEfTYQmXVB4N3hDI3d5RqiEX9RdSyBcqdssKvW9O03susNWGbQFRJ5tBAMItURDZJAow=="
"resolved" "https://registry.npmjs.org/@form-create/component-elm-group/-/component-elm-group-2.5.28.tgz"
"version" "2.5.28"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/component-elm-radio@^2.5.27":
"integrity" "sha512-fZWVW+JcL4I8gPrrR9Snt+sd/r6Ek9jGDJEqboqQ+HaYgXTptmvLLigefHqxUU3qize4iDfTJoJ16K0sS2+91g=="
"resolved" "https://registry.npmjs.org/@form-create/component-elm-radio/-/component-elm-radio-2.5.27.tgz"
"version" "2.5.27"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/component-elm-select@^2.5.27":
"integrity" "sha512-xjI5dImAY51jHTZEBoMIk4+0GfF994IqW/cvj3GHP2zPf2NkKfI1OUVnn55DhlYZg04aMSGpvInETSLeCesE/g=="
"resolved" "https://registry.npmjs.org/@form-create/component-elm-select/-/component-elm-select-2.5.27.tgz"
"version" "2.5.27"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/component-elm-tree@^2.5.27":
"integrity" "sha512-ATzz8hmzRI6XXcVpXywfuldJuCH5s3F+OJAUfSQaTP97+9QhBqyc6CDKotO5ZgAGNfKhLbZ0Ns+tFpFfrju9ZA=="
"resolved" "https://registry.npmjs.org/@form-create/component-elm-tree/-/component-elm-tree-2.5.27.tgz"
"version" "2.5.27"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/component-elm-upload@^2.5.29":
"integrity" "sha512-/bP/HFeB009zKHYS9lwA8jST4Hy+UaykRXriqFv31Ly9BeISJVA66XyuNXmYADwc/q9krwVC4cuy5rKw/2vhsw=="
"resolved" "https://registry.npmjs.org/@form-create/component-elm-upload/-/component-elm-upload-2.5.29.tgz"
"version" "2.5.29"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/component-subform@^2.5.25":
"integrity" "sha512-puGWWxSOeII4y4mCNxrKF/eH4nY1AQAx87VchzErLmemwF6TtNBLBsJLCCmFAVLYn1koYU5nNu5Y2yG9s2CKlQ=="
"resolved" "https://registry.npmjs.org/@form-create/component-subform/-/component-subform-2.5.25.tgz"
"version" "2.5.25"
"@form-create/component-wangeditor@^2.5.15":
"integrity" "sha512-U4MUcvaBNEcNbIBeODxYuMlLYR+lZ1zCaZvLP3I+3SOd0KQVjvfRozZku64ukIVxC8Stev/ZNWqpAVsdvFLGaA=="
"resolved" "https://registry.npmjs.org/@form-create/component-wangeditor/-/component-wangeditor-2.5.15.tgz"
"version" "2.5.15"
dependencies:
"wangeditor" "^4.6.0"
"@form-create/core@^2.5.29":
"integrity" "sha512-xXHyLc8jRmXfHRf7xcUrTDx7NeXPxcJU9r2QSwNRszp6bF1HmIHlXuDWr+pqkXp4r5d9nZ87KAi2z2J8MRkF9Q=="
"resolved" "https://registry.npmjs.org/@form-create/core/-/core-2.5.29.tgz"
"version" "2.5.29"
dependencies:
"@form-create/utils" "^2.5.27"
"@form-create/designer@^1.0.10":
"integrity" "sha512-Lr87K1mHQz5UXcLbZ6ieA/FgJBM1ugAw8MjsF5/WhU6a2Mna2YHQ2ZywL1u+fc0t4Ei+VFBhXUFBvOqUuiseGQ=="
"resolved" "https://registry.npmjs.org/@form-create/designer/-/designer-1.0.10.tgz"
"version" "1.0.10"
dependencies:
"@form-create/component-wangeditor" "^2.5.15"
"@form-create/element-ui" "^2.5.19"
"@form-create/utils" "^2.5.15"
"@form-create/element-ui@^2.5.19", "@form-create/element-ui@^2.5.30":
"integrity" "sha512-UBNTykx4JhznA0JcBtngk+QeWfz1yMQQHwQLHsB/Xp9bX3FnWebHyQG6Go0SSjvdx7bIMFx9fPurNHepyBYAPA=="
"resolved" "https://registry.npmjs.org/@form-create/element-ui/-/element-ui-2.5.30.tgz"
"version" "2.5.30"
dependencies:
"@form-create/component-elm-checkbox" "^2.5.29"
"@form-create/component-elm-frame" "^2.5.27"
"@form-create/component-elm-group" "^2.5.28"
"@form-create/component-elm-radio" "^2.5.27"
"@form-create/component-elm-select" "^2.5.27"
"@form-create/component-elm-tree" "^2.5.27"
"@form-create/component-elm-upload" "^2.5.29"
"@form-create/component-subform" "^2.5.25"
"@form-create/core" "^2.5.29"
"@form-create/utils" "^2.5.27"
"@form-create/utils@^2.5.15", "@form-create/utils@^2.5.27":
"integrity" "sha512-QLzenitKzakxQ8bK8yFYd/9n4eT4E9jKkEneU0yhbjr0ter5uqguGGNJP7gI8waysRAS49VSjQOAY0b4l7mWvg=="
"resolved" "https://registry.npmjs.org/@form-create/utils/-/utils-2.5.27.tgz"
"version" "2.5.27"
"@hapi/address@2.x.x":
"integrity" "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU="
"resolved" "https://registry.nlark.com/@hapi/address/download/@hapi/address-2.1.4.tgz"
......@@ -2977,12 +3083,17 @@
"browserslist" "^4.16.6"
"semver" "7.0.0"
"core-js-pure@^3.30.2":
"integrity" "sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw=="
"resolved" "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.31.1.tgz"
"version" "3.31.1"
"core-js@^2.4.0":
"integrity" "sha1-2TM9+nsGXjR8xWgiGdb2kIWcwuw="
"resolved" "https://registry.nlark.com/core-js/download/core-js-2.6.12.tgz"
"version" "2.6.12"
"core-js@^3.6.5":
"core-js@^3":
"version" "3.16.0"
"core-js@3.8.1":
......@@ -7802,10 +7913,10 @@
"resolved" "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz"
"version" "0.11.1"
"regenerator-runtime@^0.13.4":
"integrity" "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I="
"resolved" "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz"
"version" "0.13.9"
"regenerator-runtime@^0.13.11", "regenerator-runtime@^0.13.4":
"integrity" "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
"resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz"
"version" "0.13.11"
"regenerator-transform@^0.14.2":
"integrity" "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ="
......@@ -9139,6 +9250,11 @@
"resolved" "https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz?cache=0&sync_timestamp=1623451518217&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-1.14.1.tgz"
"version" "1.14.1"
"tslib@^2.1.0":
"integrity" "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
"resolved" "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz"
"version" "2.6.0"
"tty-browserify@0.0.0":
"integrity" "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY="
"resolved" "https://registry.nlark.com/tty-browserify/download/tty-browserify-0.0.0.tgz"
......@@ -9566,6 +9682,15 @@
"resolved" "https://registry.nlark.com/vuex/download/vuex-3.6.0.tgz"
"version" "3.6.0"
"wangeditor@^4.6.0":
"integrity" "sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg=="
"resolved" "https://registry.npmjs.org/wangeditor/-/wangeditor-4.7.15.tgz"
"version" "4.7.15"
dependencies:
"@babel/runtime" "^7.11.2"
"@babel/runtime-corejs3" "^7.11.2"
"tslib" "^2.1.0"
"watch-size@^2.0.0":
"integrity" "sha1-CW7ijQNlvX6gPZyL8fL1CnO+FHQ="
"resolved" "https://registry.nlark.com/watch-size/download/watch-size-2.0.0.tgz"
......
......@@ -13,4 +13,6 @@ import com.mortals.xhx.module.check.dao.CheckGoworkRecordDao;
public interface CheckGoworkRecordService extends ICRUDService<CheckGoworkRecordEntity,Long>{
CheckGoworkRecordDao getDao();
}
\ No newline at end of file
package com.mortals.xhx.module.perform.service.impl;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.CheckAttendRecordEntity;
import com.mortals.xhx.module.check.service.CheckAttendRecordService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
......@@ -18,4 +23,20 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
public class PerformAttendRecordServiceImpl extends AbstractCRUDServiceImpl<PerformAttendRecordDao, PerformAttendRecordEntity, Long> implements PerformAttendRecordService {
@Autowired
private CheckAttendRecordService checkAttendRecordService;
@Override
protected void saveAfter(PerformAttendRecordEntity entity, Context context) throws AppException {
CheckAttendRecordEntity checkAttendRecordEntity = new CheckAttendRecordEntity();
checkAttendRecordEntity.initAttrValue();
BeanUtils.copyProperties(entity,checkAttendRecordEntity, BeanUtil.getNullPropertyNames(entity));
checkAttendRecordEntity.setRecordId(entity.getId());
if(entity.getSubMethod()==1){
checkAttendRecordEntity.setCheckStatus(2); //自动扣分相设置为已处理
}else {
checkAttendRecordEntity.setCheckStatus(1); //非自动扣分相设置为未处理
}
checkAttendRecordService.save(checkAttendRecordEntity,context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.perform.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.CheckComplainRecordEntity;
import com.mortals.xhx.module.check.service.CheckComplainRecordService;
import com.mortals.xhx.module.perform.dao.PerformComplainRecordDao;
import com.mortals.xhx.module.perform.model.PerformComplainRecordEntity;
import com.mortals.xhx.module.perform.service.PerformComplainRecordService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* PerformComplainRecordService
* 评价绩效投诉记录信息 service实现
......@@ -18,4 +24,20 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
public class PerformComplainRecordServiceImpl extends AbstractCRUDServiceImpl<PerformComplainRecordDao, PerformComplainRecordEntity, Long> implements PerformComplainRecordService {
@Autowired
private CheckComplainRecordService checkComplainRecordService;
@Override
protected void saveAfter(PerformComplainRecordEntity entity, Context context) throws AppException {
CheckComplainRecordEntity checkComplainRecordEntity = new CheckComplainRecordEntity();
checkComplainRecordEntity.initAttrValue();
BeanUtils.copyProperties(entity,checkComplainRecordEntity, BeanUtil.getNullPropertyNames(entity));
checkComplainRecordEntity.setRecordId(entity.getId());
if(entity.getSubMethod()==1){
checkComplainRecordEntity.setCheckStatus(2); //自动扣分相设置为已处理
}else {
checkComplainRecordEntity.setCheckStatus(1); //非自动扣分相设置为未处理
}
checkComplainRecordService.save(checkComplainRecordEntity,context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.perform.service.impl;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.CheckEffectRecordEntity;
import com.mortals.xhx.module.check.service.CheckEffectRecordService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
......@@ -18,4 +23,20 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
public class PerformEffectRecordServiceImpl extends AbstractCRUDServiceImpl<PerformEffectRecordDao, PerformEffectRecordEntity, Long> implements PerformEffectRecordService {
@Autowired
private CheckEffectRecordService checkEffectRecordService;
@Override
protected void saveAfter(PerformEffectRecordEntity entity, Context context) throws AppException {
CheckEffectRecordEntity checkEffectRecordEntity = new CheckEffectRecordEntity();
checkEffectRecordEntity.initAttrValue();
BeanUtils.copyProperties(entity,checkEffectRecordEntity, BeanUtil.getNullPropertyNames(entity));
checkEffectRecordEntity.setRecordId(entity.getId());
if(entity.getSubMethod()==1){
checkEffectRecordEntity.setCheckStatus(2); //自动扣分相设置为已处理
}else {
checkEffectRecordEntity.setCheckStatus(1); //非自动扣分相设置为未处理
}
checkEffectRecordService.save(checkEffectRecordEntity,context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.perform.service.impl;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.CheckGoworkRecordEntity;
import com.mortals.xhx.module.check.service.CheckGoworkRecordService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
......@@ -18,4 +23,20 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
public class PerformGoworkRecordServiceImpl extends AbstractCRUDServiceImpl<PerformGoworkRecordDao, PerformGoworkRecordEntity, Long> implements PerformGoworkRecordService {
@Autowired
private CheckGoworkRecordService checkGoworkRecordService;
@Override
protected void saveAfter(PerformGoworkRecordEntity entity, Context context) throws AppException {
CheckGoworkRecordEntity checkGoworkRecordEntity = new CheckGoworkRecordEntity();
checkGoworkRecordEntity.initAttrValue();
BeanUtils.copyProperties(entity,checkGoworkRecordEntity, BeanUtil.getNullPropertyNames(entity));
checkGoworkRecordEntity.setRecordId(entity.getId());
if(entity.getSubMethod()==1){
checkGoworkRecordEntity.setCheckStatus(2); //自动扣分相设置为已处理
}else {
checkGoworkRecordEntity.setCheckStatus(1); //非自动扣分相设置为未处理
}
checkGoworkRecordService.save(checkGoworkRecordEntity,context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.perform.service.impl;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.CheckOtherRecordEntity;
import com.mortals.xhx.module.check.service.CheckOtherRecordService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
......@@ -18,4 +23,20 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
public class PerformOtherRecordServiceImpl extends AbstractCRUDServiceImpl<PerformOtherRecordDao, PerformOtherRecordEntity, Long> implements PerformOtherRecordService {
@Autowired
private CheckOtherRecordService checkOtherRecordService;
@Override
protected void saveAfter(PerformOtherRecordEntity entity, Context context) throws AppException {
CheckOtherRecordEntity checkOtherRecordEntity = new CheckOtherRecordEntity();
checkOtherRecordEntity.initAttrValue();
BeanUtils.copyProperties(entity,checkOtherRecordEntity, BeanUtil.getNullPropertyNames(entity));
checkOtherRecordEntity.setRecordId(entity.getId());
if(entity.getSubMethod()==1){
checkOtherRecordEntity.setCheckStatus(2); //自动扣分相设置为已处理
}else {
checkOtherRecordEntity.setCheckStatus(1); //非自动扣分相设置为未处理
}
checkOtherRecordService.save(checkOtherRecordEntity,context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.perform.service.impl;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.check.model.CheckReviewRecordEntity;
import com.mortals.xhx.module.check.service.CheckReviewRecordService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
......@@ -18,4 +23,19 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
public class PerformReviewRecordServiceImpl extends AbstractCRUDServiceImpl<PerformReviewRecordDao, PerformReviewRecordEntity, Long> implements PerformReviewRecordService {
@Autowired
private CheckReviewRecordService checkReviewRecordService;
@Override
protected void saveAfter(PerformReviewRecordEntity entity, Context context) throws AppException {
CheckReviewRecordEntity checkReviewRecordEntity = new CheckReviewRecordEntity();
BeanUtils.copyProperties(entity,checkReviewRecordEntity, BeanUtil.getNullPropertyNames(entity));
checkReviewRecordEntity.setRecordId(entity.getId());
if(entity.getSubMethod()==1){
checkReviewRecordEntity.setCheckStatus(2); //自动扣分相设置为已处理
}else {
checkReviewRecordEntity.setCheckStatus(1); //非自动扣分相设置为未处理
}
checkReviewRecordService.save(checkReviewRecordEntity,context);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment