epmet pc工作端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

462 lines
13 KiB

<template>
<el-dialog v-if="dlgVisible"
:visible="dlgVisible"
@close="handleDlgClosed"
:close-on-click-modal="false"
:title="'量化积分'">
<el-form>
<el-row>
<el-col :span="12">
<el-form-item label="所属党组织">
<el-input disabled v-model="partyOrgName" style="width: 240px"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="党员姓名">
<el-input disabled v-model="partyMemberName" style="width: 240px"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="联系电话">
<el-input disabled v-model="mobile" style="width: 240px"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证件号">
<el-input disabled v-model="idCard" style="width: 240px"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form label-width="140px" :model="form" :inline="true"
:rules="rules" ref="ruleForm"
class="form-wr">
<div>
<el-form-item label="评分周期" prop="year">
<div class="flex-div">
<!-- <div class="mr10">评分周期</div> -->
<div class="mr10">
<el-date-picker
v-model="form.year"
type="year"
value-format="yyyy"
placeholder="选择年"
@change="handleYearChange">
</el-date-picker>
</div>
<div class="mr10">
<el-form-item prop="quarter">
<el-select v-model="form.quarter" placeholder="请选择" class="input-width" clearable
@change="handleQuaterChange">
<el-option
v-for="item in quarterList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
</div>
</el-form-item>
</div>
<el-form-item label="基础积分分值" prop="basePoint">
<el-input v-model="form.basePoint" type="number" placeholder="请输入" class="input-width" clearable/>
</el-form-item>
<el-form-item label="基础积分选项" prop="baseOptions" class="wd-wr" :style="'width:' + formItemWd">
<el-checkbox-group v-model="form.baseOptions">
<el-checkbox v-for="item in baseOptions" :key="item.value" :label="item.value">
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<div>
<el-form-item label="民主评议积分分值" prop="reviewPoint">
<el-input v-model="form.reviewPoint" type="number" placeholder="请输入" class="input-width"
clearable></el-input>
</el-form-item>
<el-form-item label="民主评议积分选项" prop="reviewOptions" class="wd-wr" :style="'width:' + formItemWd">
<el-checkbox-group v-model="form.reviewOptions">
<el-checkbox v-for="item in pyiOptions" :key="item.value" :label="item.value">
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</div>
<div>
<el-form-item label="激励积分分值" prop="inspirePoint">
<el-input v-model="form.inspirePoint" type="number" placeholder="请输入" class="input-width" clearable/>
</el-form-item>
<el-form-item label="激励积分选项" prop="inspireOptions" class="wd-wr" :style="'width:' + formItemWd">
<el-checkbox-group v-model="form.inspireOptions">
<el-checkbox v-for="item in jiliOptions" :key="item.value" :label="item.value">
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</div>
<div>
<el-form-item label="警示扣分分值" prop="warnPoint">
<el-input v-model="form.warnPoint" type="number" placeholder="请输入" class="input-width" clearable/>
</el-form-item>
<el-form-item label="警示扣分选项" prop="warnOptions" class="wd-wr" :style="'width:' + formItemWd">
<el-checkbox-group v-model="form.warnOptions">
<el-checkbox v-for="item in jinshiOptions" :key="item.value" :label="item.value">
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</div>
<el-row class="position">
<el-col :span="24" align="right">
<el-button
type="primary"
size="small"
@click="hadnleSubmitbase"
>保存
</el-button>
</el-col>
</el-row>
</el-form>
</el-dialog>
</template>
<script>
export default {
// props: {
// partyId: {
// type: String,
// default: ''
// },
// disabled: {
// type: Boolean,
// default: false
// }
// },
data () {
return {
dlgVisible: false,
btnDisabled: false,
partyOrgName: null,
partyMemberName: null,
mobile: null,
idCard: null,
year: '',
quarter: '',
form: {
id: null,
partyMemberId: null,
year: '',
quarter: '',
basePoint: '',
baseOptions: [],
reviewPoint: '',
reviewOptions: [],
inspirePoint: '',
inspireOptions: [],
warnPoint: '',
warnOptions: [],
},
formClear: null, // form备份
rules: {
year: [{ required: true, message: '年度不能为空', trigger: 'blur' }],
quarter: [{ required: true, message: '季度不能为空', trigger: 'blur' }]
},
formItemWd: '500px',
quarterList: [
{
label: '第一季度',
value: '1'
},
{
label: '第二季度',
value: '2'
},
{
label: '第三季度',
value: '3'
},
{
label: '第四季度',
value: '4'
}
],
baseOptions: [
{
label: '参加三会一课',
value: '1'
},
{
label: '参加主题党日',
value: '2'
},
{
label: '足额缴纳党费',
value: 3
},
{
label: '积极参加学习培训',
value: '4'
},
{
label: '自觉执行党组织会议',
value: '5'
},
{
label: '严守党的政治纪律和政治规矩',
value: '6'
},
],
jiliOptions: [
{
label: '发挥先锋模范作用',
value: '1'
},
{
label: '维护社会和谐稳定',
value: '2'
},
{
label: '参与社会治理',
value: '3'
},
{
label: '联系服务群众',
value: '4'
}
],
jinshiOptions: [
{
label: '不服从党组织安排',
value: '1'
},
{
label: '不按时足额缴纳党费',
value: '2'
},
{
label: '无故长期脱离组织管理',
value: '3'
},
{
label: '在工作中出现不良影响',
value: '4'
},
{
label: '违反党的纪律',
value: '5'
}
],
pyiOptions: [
{
label: '个人自评',
value: '1'
},
{
label: '党员互评',
value: '2'
},
{
label: '民主测评',
value: '3'
}
]
}
},
watch: {
// partyMemberId: {
// handler (val) {
// console.log('val------points', val)
// if (val.length > 0) {
// this.btnDisabled = false
// } else {
// this.btnDisabled = true
// }
// },
// immediate: true
// }
},
mounted () {
// const w = document.getElementsByClassName('p-wr')[0]
// this.formItemWd = w.clientWidth - 360 + 'px'
// console.log('www----', w)
},
methods: {
/**
* 初始化
*/
// init (partyMemberId, partyOrgName, partyMemberName, mobile, idCard) {
// this.dlgVisible = true;
// this.partyMemberId = partyMemberId;
// this.partyOrgName = partyOrgName;
// this.partyMemberName = partyMemberName;
// this.mobile = mobile;
// this.idCard = idCard;
// },
initDlg (partyMemberId, partyOrgName, partyMemberName, mobile, idCard) {
this.formClear = JSON.parse(JSON.stringify(this.form))
this.dlgVisible = true
this.form.partyMemberId = partyMemberId
this.partyOrgName = partyOrgName
this.partyMemberName = partyMemberName
this.mobile = mobile
this.idCard = idCard
},
/**
* 对话框关闭事件
*/
handleDlgClosed () {
this.form = this.formClear
this.dlgVisible = false
},
handleQuaterChange (val) {
if (this.form.year) {
this.getInfo()
}
this.quarter = val
},
handleYearChange (val) {
this.year = val
},
hadnleSubmitbase () {
if (!this.form.partyMemberId) return
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
const params = {
...this.form,
baseOptions: this.form.baseOptions.length > 0 ? this.form.baseOptions.toString() : '',
reviewOptions: this.form.reviewOptions.length > 0 ? this.form.reviewOptions.toString() : '',
inspireOptions: this.form.inspireOptions.length > 0 ? this.form.inspireOptions.toString() : '',
warnOptions: this.form.warnOptions.length > 0 ? this.form.warnOptions.toString() : ''
}
this.savePoints(params)
} else {
console.log('error submit!!')
return false
}
})
},
/**
* 保存积分
* @param form
* @returns {Promise<void>}
*/
async savePoints (params) {
let url = null
if (!this.form.id) {
// 新增
url = '/actual/base/party/member/point/save'
} else {
url = '/actual/base/party/member/point/update'
}
await this.$http
.post(url, params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.$message.success('保存成功')
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
async getInfo () {
const params = {
year: this.form.year,
quarter: this.form.quarter,
partyMemberId: this.form.partyMemberId
}
await this.$http
.post('/actual/base/party/member/point/echoPartyMemberPoint', params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
if (res.data.length > 0) {
let _info = res.data[0]
const info = {
..._info,
baseOptions: _info.baseOptions.length > 0 ? _info.baseOptions.split(',') : [],
reviewOptions: _info.reviewOptions.length > 0 ? _info.reviewOptions.split(',') : [],
inspireOptions: _info.inspireOptions.length > 0 ? _info.inspireOptions.split(',') : [],
warnOptions: _info.warnOptions.length > 0 ? _info.warnOptions.split(',') : []
}
for (const n in info) {
this.form[n] = info[n]
}
} else {
this.$refs['ruleForm'].resetFields()
this.form.quarter = this.quarter
this.form.year = this.year
}
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
}
}
</script>
<style lang="scss" scoped>
.flex-div {
display: flex;
align-items: center;
}
.mb20 {
margin-bottom: 20px;
}
.mr10 {
margin-right: 10px;
}
.pdl74 {
padding-left: 74px;
}
.wd-wr {
/deep/ .el-form-item__content {
width: calc(100% - 140px);
}
/deep/ .el-checkbox {
margin-right: 10px;
font-weight: 400;
// line-height: 20px;
.el-checkbox__label {
padding-left: 5px;
}
}
}
.input-width {
width: 160px;
}
.position{
position: relative;
top: 15px;
}
</style>