first commit

This commit is contained in:
Paidax
2024-07-03 17:06:36 +08:00
commit 03faa20548
3627 changed files with 874287 additions and 0 deletions
@@ -0,0 +1,390 @@
<template>
<el-form class="el_form" :model="data" ref="addForm" :rules="formRules" label-width="120px">
<vi-title title="指标信息"></vi-title>
<el-row gutter="20">
<el-col :span="6">
<el-form-item prop="annual" label="年&emsp;&emsp;度" class="is-required">
<el-date-picker
style="width: 100%"
:disabled="is_view"
:picker-options="pickerOptions"
v-model="data.annual"
type="year"
value-format="yyyy"
placeholder="选择年度">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="assessment" label="评测名称" class="is-required">
<el-input maxlength="30" :disabled="is_view" v-model="data.assessment"
placeholder="请填写评测名称"
type="text">
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="assessment" label="">
<el-checkbox v-model="data.isEvaluationIndex" :disabled="is_view">是否采用往年考核指标</el-checkbox>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="zbId" label="" v-if="data.isEvaluationIndex">
<el-select v-model="data.zbId" placeholder="请选择" filterable clearable
style="width: 100%" @change="getByZbData">
<el-option
v-for="item in zbList"
:key="item.id"
:label="item.annual+item.assessment"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row gutter="20">
<el-col :span="6">
<el-form-item prop="assessmentMode" label="评测模式" class="is-required">
<el-radio-group v-model="data.assessmentMode" :disabled="is_view">
<el-radio-button :label="1">工会评家</el-radio-button>
<el-radio-button :label="2">主席/副主席评家</el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="scoringMode" label="打分模式" class="is-required">
<el-radio-group v-model="data.scoringMode" :disabled="is_view">
<el-radio-button :label="1">评分模式</el-radio-button>
<el-radio-button :label="2">选择模式</el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="activityGroupId" label="发送人员范围" class="is-required">
<div style="display: flex; justify-content: space-between">
<div style="width: 99%">
<el-select clearable filterable placeholder="请选择可报名人员范围"
style="width: 99%" v-model="data.activityGroupId" :disabled="is_view">
<el-option :key="item.groupId"
:label="item.groupName"
:value="item.groupId"
v-for="item in activityGroupList"></el-option>
</el-select>
</div>
<div>
<el-button
@click="$refs.drawerUserScope.userScopeDialog = true"
:disabled="is_view"
type="primary">设置
</el-button>
</div>
</div>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="commentTarget" label="测评对象" class="is-required">
<el-radio-group v-model="data.commentTarget" :disabled="is_view">
<el-radio-button :label="1">校工会</el-radio-button>
<el-radio-button :label="2">分工会</el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<vi-title2 title="测评内容"></vi-title2>
<el-form-item label="" label-width="0" v-for="(nr,idx) in data.nrs">
<el-row type="flex" align="middle" justify="space-between">
<el-input v-model="nr.content" :disabled="is_view" maxlength="30" style="width: 50%"
placeholder="请填写测评内容">
<template slot="prepend"><span v-model="nr.contentNumber">
{{ nr.contentNumber = idx + 1 }}</span></template>
</el-input>
<el-button v-if="!is_view" size="medium" :disabled="data.nrs.length<=1" type="danger"
@click="data.nrs.splice(idx,1)"
icon="el-icon-delete"></el-button>
</el-row>
<el-row style="margin-top: 20px">
<el-table :data="nr.bzs" style="width: 100%" border show-summary
:summary-method="getSummaries" size="small">
<el-table-column align="center" header-align="center" label="序号" type="index"
width="100px" >
<template scope="{$index,row}">
{{ row.contentNumber = $index + 1 }}
</template>
</el-table-column>
<el-table-column label="测评标准" prop="inspection" header-align="center" align="center">
<template scope="{row}">
<el-input v-if="!is_view" v-model="row.inspection" placeholder="请填写测评标准"></el-input>
<span v-else>{{ row.inspection }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="单项分" prop="single_score" header-align="center" align="center" width="100px">
<template scope="{row}">
<el-input v-if="!is_view" v-model="row.single_score" placeholder="请填写单项分"></el-input>
<span v-else>{{ row.single_score }}</span>
</template>
</el-table-column>-->
<el-table-column label="标准分" prop="score" header-align="center" align="center"
width="100px" v-if="data.scoringMode===1">
<template scope="{row}">
<el-input v-if="!is_view" v-model.number="row.score" maxlength="4"
placeholder="请填写标准分"></el-input>
<span v-else>{{ row.score }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="能否超过标准分" prop="beyond_highestscore" header-align="center" align="center" width="120px">
<template scope="{row}">
<el-switch
v-if="!is_view"
v-model="row.beyond_highestscore"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
<el-switch
v-else
disabled
v-model="row.beyond_highestscore">
</el-switch>
</template>
</el-table-column>-->
<el-table-column label="是否填写意见" prop="isEvidence" header-align="center" align="center"
width="120px" v-if="data.scoringMode===1">
<template scope="{row}">
<el-switch
:disabled="is_view"
v-model="row.isEvidence"
active-color="#13ce66"
inactive-color="#ff4949">
</el-switch>
</template>
</el-table-column>
<!--
<el-table-column label="关联模块" prop="associatedmodule" header-align="center" align="center" width="200px">
<template scope="{row}">
<el-input v-if="!is_view" v-model="row.associatedmodule" maxlength="10" placeholder="请填写关联模块"></el-input>
<span v-else>{{ row.associatedmodule }}</span>
</template>
</el-table-column>
<el-table-column label="关联标识" prop="bz_relation_id" header-align="center" align="center" width="100px">
<template scope="{row}">
<el-input v-if="!is_view" v-model="row.bz_relation_id" maxlength="20" placeholder="请填写关联标识,该标识唯一"></el-input>
<span v-else>{{ row.bz_relation_id }}</span>
</template>
</el-table-column>
-->
<!-- <el-table-column label="能否删除" prop="canDelete" header-align="center" align="center" width="100px">-->
<!-- <template scope="{row}">-->
<!-- <el-switch-->
<!-- v-if="!is_view"-->
<!-- :disabled="row.canDelete==false"-->
<!-- v-model="row.canDelete"-->
<!-- active-color="#13ce66"-->
<!-- inactive-color="#ff4949">-->
<!-- </el-switch>-->
<!-- <el-switch-->
<!-- v-else-->
<!-- :disabled="!row.canDelete && row.id"-->
<!-- v-model="row.canDelete">-->
<!-- </el-switch>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column v-if="!is_view" label="操作" header-align="center" align="center"
width="200px">
<template scope="{row,$index}">
<el-button size="mini" :disabled="nr.bzs.length<=1 || (!row.canDelete && row.id)"
type="danger" icon="el-icon-delete"
@click="nr.bzs.splice($index,1)"></el-button>
<el-button size="mini"
type="primary" icon="el-icon-plus"
@click="nr.bzs.splice($index+1,0,{inspection:null,score:null,isEvidence:true})"></el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row class="mt10 mb10" style="border-top: 1px dashed rgb(229, 225, 225)"></el-row>
</el-form-item>
<el-row type="flex" justify="center">
<el-button v-if="!is_view"
type="primary"
@click="data.nrs.push({bzs:[{inspection:null,score:null,isEvidence:true}]})">
添加测评内容
</el-button>
</el-row>
<div>
<drawer-user-scope
@group_change="getActivityGroup"
ref="drawerUserScope"
:group_id.sync="data.activityGroupId"
></drawer-user-scope>
</div>
</el-form>
</template>
<script>
const METHOD_NAME = "change"
module.exports = {
props: {
is_view: {
type: Boolean,
default: false
},
data: {
type: Object,
default: {
nrs: [{
bzs: [{}]
}],
}
}
},
watch: {
data: {
deep: true,
handler(val) {
this.$emit(METHOD_NAME, val)
}
}
},
data() {
return {
activityGroupList: [],
isEvaluationIndex: false,
zbList: [],
formRules: {
xxx: [{required: true, message: '请填写年度', trigger: ['blur', 'change']}],
},
pickerOptions: {
disabledDate(time) {
return (
time.getFullYear() > new Date().getFullYear()
);
}
},
relationData: [
{moduleName: '提案系统模块', id: 'proposal'},
{moduleName: '二级教代会', id: 'secteameet'},
{moduleName: '慰问/补助', id: 'ConandDif'},
]
}
},
components: {
'drawer-user-scope': httpVueLoader('/components/plugins/DrawerUserScope.vue'),
},
methods: {
async getActivityGroup() {
const {data} = await $.get('/platform/activity/basic/scope/getActivityUserScopeGroup')
this.activityGroupList = data
},
async getByZbData() {
const {
code,
data,
msg
} = await $.get('/platform/unionComment/viewZb/edit', {id: this.data.zbId})
if (data) {
this.$set(this.data, "nrs", data.nrs)
} else {
this.$set(this.data, "nrs", [{bzs: [{}]}])
}
},
async getZbList() {
const res = await $.get("/platform/unionComment/Xjkhzb/getZbList")
this.zbList = res.data
},
getSummaries(param) {
const {columns, data} = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0 && this.data.scoringMode === 1) {
sums[index] = '小计';
return;
} else if ([1, 3, 4].includes(index) && this.data.scoringMode === 1) {
sums[index] = '';
return;
} else if ([1, 2, 3].includes(index) && this.data.scoringMode === 2) {
sums[index] = '';
return;
}
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] += ' 分';
} else {
sums[index] = '';
}
});
return sums;
}
},
created() {
this.getActivityGroup()
this.getZbList()
if (!this.data || !Object.keys(this.data).length) {
this.data = {
nrs: [{
bzs: [{inspection: null, score: null, isEvidence: true}]
}],
}
}
}
}
</script>
<style>
.fixedBox {
position: fixed;
top: 200px;
right: 10px;
z-index: 100;
}
.el_form {
position: relative;
}
.el-input-group__prepend {
background-color: #1867b0;
color: white;
}
</style>