Browse Source

党员管理详情

V1.0
jiangyy 3 years ago
parent
commit
e97f65864a
  1. 73
      src/assets/scss/modules/management/detail-main.scss
  2. 5
      src/views/modules/base/huji/immigration/detail.vue
  3. 28
      src/views/modules/communityParty/article/index.vue
  4. 404
      src/views/modules/communityParty/members/cpts/pointsDetail.vue
  5. 119
      src/views/modules/communityParty/members/cpts/record.vue
  6. 242
      src/views/modules/communityParty/members/detailForm.vue
  7. 405
      src/views/modules/communityParty/members/index.vue
  8. 5
      src/views/modules/cpts/base/index.vue

73
src/assets/scss/modules/management/detail-main.scss

@ -251,6 +251,79 @@
} }
} }
//一行两列
.m-row-2{
font-size: 15px;
font-family: PingFang SC;
font-weight: 400;
color: #333;
line-height: 24px;
display: flex;
justify-content: flex-start;
width:100%;
.info-prop {
position: relative;
width:50%;
margin: 10px 0;
display: flex;
padding-left: 15px;
padding-top:10px;
.info-pics {
display: flex;
margin: 20px 0;
img {
display: block;
width: 32%;
height: 90px;
margin-right: 9px;
object-fit: cover;
}
}
.line{
text-decoration:underline;
color: #3e8ef7;
}
.line:hover{
cursor:pointer
}
.info-title-2 {
flex: 0 0 100px;
}
.info-title-3{
flex: 0 0 150px;
}
> span,
> div {
display: block;
// max-width: 300px;
}
&::before {
content: "";
display: block;
position: absolute;
top: 19px;
left: 0;
width: 7px;
height: 7px;
background: #0c81fe;
border-radius: 3px;
margin-right: 10px;
}
.div_map {
width:500px;
padding-top:10px
}
}
}
.m-case { .m-case {
height: 600px; height: 600px;
padding: 20px 0 20px 0; padding: 20px 0 20px 0;

5
src/views/modules/base/huji/immigration/detail.vue

@ -77,11 +77,6 @@
<script> <script>
import { requestPost } from "@/js/dai/request"; import { requestPost } from "@/js/dai/request";
import formVltHelper from 'dai-js/tools/formVltHelper'
import { computedCard } from '@/utils/index'
import { isCard, isMobile } from '@/utils/validate'
export default { export default {
data () { data () {

28
src/views/modules/communityParty/article/index.vue

@ -40,17 +40,17 @@
style="color: #666">下线</el-button> style="color: #666">下线</el-button>
</template> </template>
<template v-slot:listBtnSup2="{ item }"> <template v-slot:listBtnbefore="{ item }">
<el-button v-if="item.isTop == '1'" <el-button v-if="item.isTop == '1'"
@click="handleOfflineShow(item,'cancel_top')" @click="handleTopArticle(item,'cancel_top')"
type="text" type="text"
size="small" size="small"
style="color: #666">取消置顶</el-button> style="color: #fe6252">取消置顶</el-button>
<el-button v-else <el-button v-else
@click="handleOfflineShow(item,'top')" @click="handleTopArticle(item,'top')"
type="text" type="text"
size="small" size="small"
style="color: #666">置顶</el-button> style="color: #22c1c3">置顶</el-button>
</template> </template>
</base-page> </base-page>
@ -491,6 +491,24 @@ export default {
this.$refs.offlineForm.initForm(item); this.$refs.offlineForm.initForm(item);
}, },
async handleTopArticle (item, type) {
const url = "/gov/voice/article/topArticle";
const { tableData } = this;
const { data, code, msg } = await requestPost(url, {
articleId: item.articleId,
type: type
});
if (code === 0) {
this.$message.success("操作成功!");
this.$refs.basePage.refresh();
} else {
this.$message.success("操作失败!");
}
},
handleOfflineSuccess () { handleOfflineSuccess () {
this.$refs.basePage.refresh(); this.$refs.basePage.refresh();
this.offlineShowed = false; this.offlineShowed = false;

404
src/views/modules/communityParty/members/cpts/pointsDetail.vue

@ -0,0 +1,404 @@
<template>
<div class="p-wr">
<el-form label-width="140px"
:model="dateForm"
:inline="true"
:disabled="disabled"
: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="dateForm.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="dateForm.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>
<div class="m-row">
<div class="m-row-2">
<div class="info-prop">
<span class="info-title-3">基础积分分值</span>
<span>{{ dateForm.basePoint===0||dateForm.basePoint? dateForm.basePoint:'--'}}</span>
</div>
<div class="info-prop">
<span class="info-title-3">基础积分选项</span>
<span>{{ dateForm.baseOptionsShow }}</span>
</div>
</div>
<div class="m-row-2">
<div class="info-prop">
<span class="info-title-3">民主评议积分分值</span>
<span>{{ dateForm.reviewPoint===0||dateForm.reviewPoint? dateForm.reviewPoint:'--'}}</span>
</div>
<div class="info-prop">
<span class="info-title-3">民主评议积分选项</span>
<span>{{dateForm.reviewOptionsShow}}</span>
</div>
</div>
<div class="m-row-2">
<div class="info-prop">
<span class="info-title-3">激励积分分值</span>
<span>{{ dateForm.inspirePoint===0||dateForm.inspirePoint? dateForm.inspirePoint:'--'}}</span>
</div>
<div class="info-prop">
<span class="info-title-3">激励积分选项</span>
<span>{{dateForm.inspireOptionsShow }}</span>
</div>
</div>
<div class="m-row-2">
<div class="info-prop">
<span class="info-title-3">警示扣分分值</span>
<span>{{ dateForm.warnPoint===0||dateForm.warnPoint? dateForm.warnPoint:'--'}}</span>
</div>
<div class="info-prop">
<span class="info-title-3">警示扣分选项</span>
<span>{{ dateForm.warnOptionsShow }}</span>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
partyId: {
type: String,
default: ''
},
disabled: {
type: Boolean,
default: false
}
},
data () {
return {
btnDisabled: false,
year: '',
quarter: '',
dateForm: {
partyMemberId: '',
year: '',
quarter: '',
basePoint: '',
baseOptions: [],
reviewPoint: '',
reviewOptions: [],
inspirePoint: '',
inspireOptions: [],
warnPoint: '',
warnOptions: [],
baseOptionsShow: '--',
reviewOptionsShow: '--',
inspireOptionsShow: '--',
warnOptionsShow: '--'
},
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: {
partyId: {
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: {
handleQuaterChange (val) {
if (this.dateForm.year) {
this.getInfo()
}
this.quarter = val
},
handleYearChange (val) {
this.year = val
},
async getInfo () {
const params = {
year: this.dateForm.year,
quarter: this.dateForm.quarter,
partyMemberId: this.partyId
}
await this.$http
.post('/resi/partymember/icPartyMemberPoint/echoPartyMemberPoint', params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.dateForm.baseOptionsShow = '--'
this.dateForm.reviewOptionsShow = '--'
this.dateForm.inspireOptionsShow = '--'
this.dateForm.warnOptionsShow = '--'
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.dateForm[n] = info[n]
}
console.log('dateForm', this.dateForm)
if (this.dateForm.baseOptions.length > 0) {
let array = []
this.baseOptions.forEach(element => {
if (this.dateForm.baseOptions.indexOf(element.value) > -1) {
array.push(element.label)
}
});
this.dateForm.baseOptionsShow = array.join(',')
}
if (this.dateForm.reviewOptions.length > 0) {
let array = []
this.pyiOptions.forEach(element => {
if (this.dateForm.reviewOptions.indexOf(element.value) > -1) {
array.push(element.label)
}
});
this.dateForm.reviewOptionsShow = array.join(',')
}
if (this.dateForm.inspireOptions.length > 0) {
let array = []
this.jiliOptions.forEach(element => {
if (this.dateForm.inspireOptions.indexOf(element.value) > -1) {
array.push(element.label)
}
});
this.dateForm.inspireOptionsShow = array.join(',')
}
if (this.dateForm.warnOptions.length > 0) {
let array = []
this.jinshiOptions.forEach(element => {
if (this.dateForm.warnOptions.indexOf(element.value) > -1) {
array.push(element.label)
}
});
this.dateForm.warnOptionsShow = array.join(',')
}
} else {
this.$refs['ruleForm'].resetFields()
this.dateForm.quarter = this.quarter
this.dateForm.year = this.year
}
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/management/detail-main.scss";
</style>
<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;
}
</style>

119
src/views/modules/communityParty/members/cpts/record.vue

@ -1,58 +1,60 @@
<template> <template>
<div style="padding-right: 20px;"> <div style="padding-right: 20px;">
<div class="mt10"> <div class="mt10">
<el-button size="small" class="diy-button--add" :disabled="btnDisabled || disabled" <el-button v-if="btnDisabled"
size="small"
class="diy-button--add"
:disabled="btnDisabled || disabled"
@click="handleAdd">新增</el-button> @click="handleAdd">新增</el-button>
</div> </div>
<el-table <el-table :data="tableData"
:data="tableData"
row-key="id" row-key="id"
border border
style="width: 100%" style="width: 100%"
class="resi-table" class="resi-table"
height="400px" height="400px"
:header-cell-style="getRowClass" :header-cell-style="getRowClass">
> <el-table-column label="序号"
<el-table-column label="序号" type="index" align="center" width="50"> type="index"
align="center"
width="50">
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="name"
prop="name"
label="缴费日期" label="缴费日期"
align="center" align="center"
width="250px" width="250px">
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-date-picker <el-date-picker v-if="scope.row.isEdit"
v-if="scope.row.isEdit"
v-model="scope.row.payDate" v-model="scope.row.payDate"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="选择日期"> placeholder="选择日期">
</el-date-picker> </el-date-picker>
<div v-else class="div-content">{{ scope.row.payDate }}</div> <div v-else
class="div-content">{{ scope.row.payDate }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="name"
prop="name"
label="缴费金额" label="缴费金额"
align="center" align="center"
width="180px" width="180px">
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-if="scope.row.isEdit" type="number" v-model="scope.row.money" placeholder="请输入" <el-input v-if="scope.row.isEdit"
class="input-width" clearable></el-input> type="number"
<div v-else class="div-content">{{ scope.row.money }}</div> v-model="scope.row.money"
placeholder="请输入"
class="input-width"
clearable></el-input>
<div v-else
class="div-content">{{ scope.row.money }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="name"
prop="name"
label="缴费年度" label="缴费年度"
align="center" align="center"
min-width="250px" min-width="250px">
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-date-picker <el-date-picker v-if="scope.row.isEdit"
v-if="scope.row.isEdit"
v-model="scope.row.timeRange" v-model="scope.row.timeRange"
type="monthrange" type="monthrange"
value-format="yyyy-MM" value-format="yyyy-MM"
@ -61,45 +63,38 @@
end-placeholder="结束日期" end-placeholder="结束日期"
@change="handleTimeChangePay($event, scope.row)"> @change="handleTimeChangePay($event, scope.row)">
</el-date-picker> </el-date-picker>
<div v-else class="div-content">{{ scope.row.startDate + ' - ' + scope.row.endDate }}</div> <div v-else
class="div-content">{{ scope.row.startDate + ' - ' + scope.row.endDate }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="!disabled" label="操作" align="center" width="120"> <el-table-column v-if="!disabled"
label="操作"
align="center"
width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<template v-if="scope.row.isEdit"> <template v-if="scope.row.isEdit">
<el-button <el-button @click="handleEdit(scope.row)"
@click="handleEdit(scope.row)"
type="text" type="text"
size="small" size="small"
class="btn-color-edit" class="btn-color-edit">保存</el-button>
>保存</el-button> <el-button @click="handleChange(scope.row, 'cancle')"
<el-button
@click="handleChange(scope.row, 'cancle')"
type="text" type="text"
size="small" size="small"
class="btn-color-edit" class="btn-color-edit">取消</el-button>
>取消</el-button>
</template> </template>
<template v-else> <template v-else>
<el-button <el-button @click="handleChange(scope.row, 'edit')"
@click="handleChange(scope.row, 'edit')"
type="text" type="text"
size="small" size="small"
:disabled="disabled" :disabled="disabled"
class="btn-color-edit" class="btn-color-edit">修改</el-button>
>修改</el-button> <el-popconfirm title="删除之后无法恢复,确认删除?"
<el-popconfirm @onConfirm="del(scope.row)">
title="删除之后无法恢复,确认删除?" <el-button slot="reference"
@onConfirm="del(scope.row)"
>
<el-button
slot="reference"
type="text" type="text"
size="small" size="small"
class="btn-color-del" class="btn-color-del"
style="margin-left: 10px;" style="margin-left: 10px;">删除</el-button>
>删除</el-button
>
</el-popconfirm> </el-popconfirm>
</template> </template>
</template> </template>
@ -120,7 +115,7 @@ export default {
default: false default: false
} }
}, },
data() { data () {
return { return {
btnDisabled: false, btnDisabled: false,
btnType: 'cancle', btnType: 'cancle',
@ -131,7 +126,7 @@ export default {
}, },
watch: { watch: {
partyId: { partyId: {
handler(val) { handler (val) {
console.log('val------points', val) console.log('val------points', val)
if (val.length > 0) { if (val.length > 0) {
this.btnDisabled = false this.btnDisabled = false
@ -142,16 +137,16 @@ export default {
immediate: true immediate: true
} }
}, },
created() { created () {
// if (this.partyId) this.getList() // if (this.partyId) this.getList()
}, },
methods: { methods: {
getRowClass({ rowIndex, columnIndex }) { getRowClass ({ rowIndex, columnIndex }) {
if (rowIndex === 0) { if (rowIndex === 0) {
return 'background: #2195fe; color: #fff;' return 'background: #2195fe; color: #fff;'
} }
}, },
handleChange(row, type) { handleChange (row, type) {
console.log('type----', type) console.log('type----', type)
if (type == 'cancle') { if (type == 'cancle') {
@ -170,7 +165,7 @@ export default {
this.isEdit = !this.isEdit this.isEdit = !this.isEdit
}, },
handleTimeChangePay(val, row) { handleTimeChangePay (val, row) {
console.log('vall', val) console.log('vall', val)
console.log('varowll', row) console.log('varowll', row)
if (val != null && val.length > 0) { if (val != null && val.length > 0) {
@ -182,11 +177,11 @@ export default {
row.timeRange = [] row.timeRange = []
} }
}, },
async handleEdit(row) { async handleEdit (row) {
if (this.btnType == 'add') this.save(row) if (this.btnType == 'add') this.save(row)
else this.edit(row) else this.edit(row)
}, },
handleAdd() { handleAdd () {
this.btnType = 'add' this.btnType = 'add'
this.isEdit = true this.isEdit = true
const item = { const item = {
@ -200,7 +195,7 @@ export default {
} }
this.tableData.push(item) this.tableData.push(item)
}, },
async save(row) { async save (row) {
const params = { const params = {
partyMemberId: this.partyId, partyMemberId: this.partyId,
payDate: row.payDate, payDate: row.payDate,
@ -226,7 +221,7 @@ export default {
return this.$message.error('网络错误') return this.$message.error('网络错误')
}) })
}, },
async edit(row) { async edit (row) {
const params = { const params = {
...row ...row
} }
@ -247,7 +242,7 @@ export default {
return this.$message.error('网络错误') return this.$message.error('网络错误')
}) })
}, },
async del(row) { async del (row) {
const params = { const params = {
...row ...row
} }
@ -266,7 +261,7 @@ export default {
return this.$message.error('网络错误') return this.$message.error('网络错误')
}) })
}, },
async getList() { async getList () {
const params = { const params = {
page: 1, page: 1,
limit: 9999, limit: 9999,
@ -274,7 +269,7 @@ export default {
} }
await this.$http await this.$http
.get('/resi/partymember/icPartyMemberPayRecord/page', { params: params, } ) .get('/resi/partymember/icPartyMemberPayRecord/page', { params: params, })
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)

242
src/views/modules/communityParty/members/detailForm.vue

@ -0,0 +1,242 @@
<template>
<div class="dialog-h-content scroll-h pd0">
<div class="div-tip">本模块主要为添加非本社区居住党员本社区居住党员建议到居民信息页面添加</div>
<div class="m-row">
<div class="m-row-2">
<div class="info-prop">
<span class="info-title-2">所属党组织</span>
<span>{{ info.sszb }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">党员中心户</span>
<span>{{ info.isDyzxh==='1'?'是':'否' }}</span>
</div>
</div>
<div class="m-row-2">
<div class="info-prop">
<span class="info-title-2">姓名</span>
<span>{{ info.name}}</span>
</div>
<div class="info-prop">
<span class="info-title-2">免学习</span>
<span>{{info.isMxx==='1'?'是':'否'}}</span>
</div>
</div>
<div class="m-row-2">
<div class="info-prop">
<span class="info-title-2">手机号</span>
<span>{{ info.mobile?info.mobile:'--'}}</span>
</div>
<div class="info-prop">
<span class="info-title-2">职务</span>
<span>{{info.partyZw?info.partyZw:'--' }}</span>
</div>
</div>
<div class="m-row-2">
<div class="info-prop">
<span class="info-title-2">身份证</span>
<span>{{ info.idCard?info.idCard:'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">文化程度</span>
<span>{{ info.cultureName?info.cultureName:'--' }}</span>
</div>
</div>
<div class="m-row-2">
<div class="info-prop">
<span class="info-title-2">地址</span>
<span>{{ info.address?info.address:'--' }}</span>
</div>
<div class="info-prop">
<span class="info-title-2">入党时间</span>
<span>{{ info.rdsj?info.rdsj:'--' }}</span>
</div>
</div>
<div class="m-row-2">
<div class="info-prop">
<span class="info-title-2">流动党员</span>
<span>{{ info.isLd==='1'?'是':'否'}}</span>
</div>
<div class="info-prop">
<span class="info-title-2">流动党员号</span>
<span>{{ info.ldzh?info.ldzh:'--' }}</span>
</div>
</div>
<div class="m-row-2">
<div class="info-prop">
<span class="info-title-2">备注</span>
<span>{{ info.remark? info.remark:'--' }}</span>
</div>
</div>
</div>
<div class="pdl40">
<el-tabs v-model="activesName">
<el-tab-pane label="量化积分"
name="first">
<pointsDetail :partyId="partymenberid" />
</el-tab-pane>
<el-tab-pane label="缴费记录"
name="second">
<record :partyId="partymenberid"
:disabled="disabled" />
</el-tab-pane>
</el-tabs>
</div>
</div>
</template>
<script>
import pointsDetail from './cpts/pointsDetail.vue'
import record from './cpts/record.vue'
export default {
components: {
pointsDetail,
record
},
props: {
partyList: {
type: Array,
default: () => []
},
info: {
type: Object,
default: () => { }
},
disabled: {
type: Boolean,
default: false
}
},
data () {
return {
activesName: 'first',
isAuto: false,
formItemWd: '100%',
partymenberid: '',
form: {
icResiUser: '',
name: '',
mobile: '',
idCard: '',
address: '',
rdsj: '',
sszb: '',
isLd: '0',
ldzh: '',
partyZw: '0',
isDyzxh: '0',
isMxx: '0',
culture: '',
remark: ''
},
partyOrgs: []
}
},
watch: {
info: {
handler (val) {
if (Object.keys(val).length > 0) {
this.form = { ...val }
if (val.icResiUserId || val.icResiUser) this.isAuto = true
console.log('val----------in', val)
console.log('isAuto----------in', this.isAuto)
this.partyOrgs = val.orgPids.split(':')
console.log('partyOrgs-----', this.partyOrgs)
this.partymenberid = val.id
}
},
immediate: true
}
},
created () {
console.log('partyList', this.partyList)
},
mounted () {
const w = document.getElementsByClassName('dialog-h-content')[0]
this.formItemWd = w.clientWidth + 'px'
},
destroyed () {
// this.$refs['ruleForm'].resetFields()
},
methods: {
async saveRecord (form) {
const params = {
...form,
partyMemberId: this.partymenberid
}
await this.$http
.post('/resi/partymember/icPartyMemberPoint/save', 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('网络错误')
})
}
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/management/detail-main.scss";
</style>
<style lang="scss" scoped>
.input-width-textarea {
width: 400px;
}
.input-width {
width: 220px;
}
.flex-div {
display: flex;
// justify-content: space-between;
}
.wd50 {
width: 50%;
}
.pdl40 {
padding-left: 40px;
}
.pd0 {
padding: 0 !important;
}
.div-tip {
margin-left: 40px;
color: #f56c6c;
padding: 10px 0 5px;
}
</style>

405
src/views/modules/communityParty/members/index.vue

@ -1,10 +1,18 @@
<template> <template>
<div v-if="pageLoading" class="resi-container"> <div v-if="pageLoading"
<el-card ref="searchCard" class="search-card"> class="resi-container">
<el-card ref="searchCard"
class="search-card">
<div class=""> <div class="">
<el-form ref="searchForm" :inline="true" :model="searchForm" size="small" label-width="100px" class="demo-form-inline"> <el-form ref="searchForm"
:inline="true"
:model="searchForm"
size="small"
label-width="110px"
class="demo-form-inline">
<div> <div>
<el-form-item label="所属党组织" prop="partyOrgId"> <el-form-item label="所属党组织"
prop="partyOrgId">
<!-- <el-select v-model="searchForm.partyOrgId" filterable placeholder="请选择" clearable> <!-- <el-select v-model="searchForm.partyOrgId" filterable placeholder="请选择" clearable>
<el-option <el-option
v-for="item in optionsG" v-for="item in optionsG"
@ -13,66 +21,112 @@
:value="item.value"> :value="item.value">
</el-option> --> </el-option> -->
<!-- </el-select> --> <!-- </el-select> -->
<el-cascader <el-cascader v-model="partyOrgRange"
v-model="partyOrgRange"
:options="optionsG" :options="optionsG"
:props="partyProps" :props="partyProps"
clearable clearable
@change="handlePartyChange"></el-cascader> @change="handlePartyChange"></el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="姓名" prop="name"> <el-form-item label="姓名"
<el-input v-model="searchForm.name" placeholder="请输入" class="input-width" clearable></el-input> prop="name">
<el-input v-model="searchForm.name"
placeholder="请输入"
class="input-width"
clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="手机号" prop="mobile"> <el-form-item label="手机号"
<el-input v-model="searchForm.mobile" placeholder="请输入" class="input-width" clearable></el-input> prop="mobile">
<el-input v-model="searchForm.mobile"
placeholder="请输入"
class="input-width"
clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="身份证" prop="idCard"> <el-form-item label="身份证"
<el-input v-model="searchForm.idCard" placeholder="请输入" class="input-width" clearable></el-input> prop="idCard">
<el-input v-model="searchForm.idCard"
placeholder="请输入"
class="input-width"
clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="地址" prop="address"> <el-form-item label="地址"
<el-input v-model="searchForm.address" placeholder="请输入" class="input-width" clearable></el-input> prop="address">
<el-input v-model="searchForm.address"
placeholder="请输入"
class="input-width"
clearable></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div> <div>
<el-form-item label="流动党员" prop="isLd"> <el-form-item label="流动党员"
<el-select v-model="searchForm.isLd" filterable placeholder="请选择" clearable> prop="isLd">
<el-option label="是" value="1" /> <el-select v-model="searchForm.isLd"
<el-option label="否" value="0" /> filterable
placeholder="请选择"
clearable>
<el-option label="是"
value="1" />
<el-option label="否"
value="0" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="流动党员证号" prop="ldzh"> <el-form-item label="流动党员证号"
<el-input v-model="searchForm.ldzh" placeholder="请输入" class="input-width" clearable></el-input> prop="ldzh">
<el-input v-model="searchForm.ldzh"
placeholder="请输入"
class="input-width"
clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="职务" prop="partyZw"> <el-form-item label="职务"
<el-select v-model="searchForm.partyZw" filterable placeholder="请选择" clearable> prop="partyZw">
<el-option <el-select v-model="searchForm.partyZw"
v-for="item in zwList" filterable
placeholder="请选择"
clearable>
<el-option v-for="item in zwList"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否缴费" prop="isPay"> <el-form-item label="是否缴费"
<el-select v-model="searchForm.isPay" filterable placeholder="请选择" clearable> prop="isPay">
<el-option label="是" value="1" /> <el-select v-model="searchForm.isPay"
<el-option label="否" value="0" /> filterable
placeholder="请选择"
clearable>
<el-option label="是"
value="1" />
<el-option label="否"
value="0" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="党员中心户" prop="isDyzxh"> <el-form-item label="党员中心户"
<el-select v-model="searchForm.isDyzxh" filterable placeholder="请选择" clearable> prop="isDyzxh">
<el-option label="是" value="1" /> <el-select v-model="searchForm.isDyzxh"
<el-option label="否" value="0" /> filterable
placeholder="请选择"
clearable>
<el-option label="是"
value="1" />
<el-option label="否"
value="0" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
<el-form-item label="免学习" prop="isMxx"> <el-form-item label="免学习"
<el-select v-model="searchForm.isMxx" filterable placeholder="请选择" clearable> prop="isMxx">
<el-option label="是" value="1" /> <el-select v-model="searchForm.isMxx"
<el-option label="否" value="0" /> filterable
placeholder="请选择"
clearable>
<el-option label="是"
value="1" />
<el-option label="否"
value="0" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="最近一次缴费时间" <el-form-item label="最近缴费时间"
label-width="130px" label-width="130px"
prop="startTime"> prop="startTime">
<el-date-picker v-model="timeRangePay" <el-date-picker v-model="timeRangePay"
@ -100,8 +154,12 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button class="diy-button--search" size="small" @click="handleSearch">查询</el-button> <el-button class="diy-button--search"
<el-button class="diy-button--reset" size="small" @click="resetForm('searchForm')">重置</el-button> size="small"
@click="handleSearch">查询</el-button>
<el-button class="diy-button--reset"
size="small"
@click="resetForm('searchForm')">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -109,9 +167,10 @@
<el-card class="resi-card-table"> <el-card class="resi-card-table">
<div class="resi-row-btn"> <div class="resi-row-btn">
<el-button class="diy-button--add" size="small" @click="handleAdd">新增</el-button> <el-button class="diy-button--add"
<el-button size="small"
class="diy-button--export" @click="handleAdd">新增</el-button>
<el-button class="diy-button--export"
size="small" size="small"
@click="handleExportModule('room')">下载模板</el-button> @click="handleExportModule('room')">下载模板</el-button>
<el-upload :headers="$getElUploadHeaders()" <el-upload :headers="$getElUploadHeaders()"
@ -125,178 +184,158 @@
:auto-upload="true" :auto-upload="true"
:on-success="handleExcelSuccess" :on-success="handleExcelSuccess"
:before-upload="beforeExcelUpload" :before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest" :http-request="uploadHttpRequest">
> <el-button size="small"
<el-button size="small" class="diy-button--delete" :loading="importLoading">{{importBtnTitle}}</el-button> class="diy-button--delete"
:loading="importLoading">{{importBtnTitle}}</el-button>
</el-upload> </el-upload>
<el-button class="diy-button--reset" size="small" :loading="exportBtn" @click="handleExport">{{ exportBtnTitle }}</el-button> <el-button class="diy-button--reset"
size="small"
:loading="exportBtn"
@click="handleExport">{{ exportBtnTitle }}</el-button>
</div> </div>
<el-table <el-table :data="tableData"
:data="tableData"
row-key="id" row-key="id"
v-loading="tableLoading" v-loading="tableLoading"
border border
:height="tableHeight" :height="tableHeight"
style="width: 100%" style="width: 100%"
class="resi-table" class="resi-table">
> <el-table-column label="序号"
<el-table-column label="序号" type="index" align="center" width="50"> type="index"
align="center"
width="50">
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="name"
prop="name"
label="姓名" label="姓名"
align="center" align="center"
width="100" width="100" />
/> <el-table-column prop="idCard"
<el-table-column
prop="idCard"
label="身份证号" label="身份证号"
align="center" align="center"
min-width="180" min-width="180" />
/> <el-table-column prop="mobile"
<el-table-column
prop="mobile"
label="手机号" label="手机号"
align="center" align="center"
min-width="160" min-width="160" />
/> <el-table-column prop="rdsj"
<el-table-column
prop="rdsj"
label="入党时间" label="入党时间"
align="center" align="center"
min-width="160" min-width="160" />
/> <el-table-column prop="sszb"
<el-table-column
prop="sszb"
label="所属党组织" label="所属党组织"
align="center" align="center"
min-width="160" min-width="160" />
/> <el-table-column prop="ldzh"
<el-table-column
prop="ldzh"
label="流动党员证号" label="流动党员证号"
align="center" align="center"
min-width="160" min-width="160" />
/> <el-table-column prop="partyZw"
<el-table-column
prop="partyZw"
label="职务" label="职务"
align="center" align="center"
width="100" width="100" />
/> <el-table-column prop="address"
<el-table-column
prop="address"
label="地址" label="地址"
align="center" align="center"
show-overflow-tooltip show-overflow-tooltip
min-width="180" min-width="180" />
/> <el-table-column prop="isPay"
<el-table-column
prop="isPay"
label="是否缴费" label="是否缴费"
align="center" align="center"
width="100" width="100" />
/> <el-table-column prop="payDate"
<el-table-column
prop="payDate"
label="最近一次缴费时间" label="最近一次缴费时间"
align="center" align="center"
min-width="160" min-width="160" />
/> <el-table-column prop="culture"
<el-table-column
prop="culture"
label="文化程度" label="文化程度"
align="center" align="center"
width="100" width="100" />
/> <el-table-column prop="point"
<el-table-column
prop="point"
label="量化积分" label="量化积分"
align="center" align="center"
width="100" width="100" />
/> <el-table-column prop="activityPoint"
<el-table-column
prop="activityPoint"
label="活跃积分" label="活跃积分"
align="center" align="center"
width="100" width="100" />
/> <el-table-column prop="volunteerCategory"
<el-table-column
prop="volunteerCategory"
label="志愿者类别" label="志愿者类别"
align="center" align="center"
width="100" width="100" />
/> <el-table-column prop="remark"
<el-table-column
prop="remark"
label="备注" label="备注"
align="center" align="center"
min-width="180" min-width="180" />
/>
<!-- <template slot-scope="scope"> <!-- <template slot-scope="scope">
<div class="div-content">{{ handleFilterSpan(scope.row, item) }}</div> <div class="div-content">{{ handleFilterSpan(scope.row, item) }}</div>
</template> --> </template> -->
<!-- </el-table-column> --> <!-- </el-table-column> -->
<el-table-column fixed="right" label="操作" align="center" width="200"> <el-table-column fixed="right"
label="操作"
align="center"
width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button @click="handleLook(scope.row)"
@click="handleLook(scope.row)"
type="text" type="text"
size="small" size="small"
class="btn-color-look" class="btn-color-look">查看</el-button>
>查看</el-button <el-button @click="handleEdit(scope.row, 'edit')"
>
<el-button
@click="handleEdit(scope.row, 'edit')"
type="text" type="text"
size="small" size="small"
class="btn-color-edit" class="btn-color-edit">修改</el-button>
>修改</el-button <el-popconfirm title="删除之后无法恢复,确认删除?"
> @onConfirm="handleDel(scope.row)">
<el-popconfirm <el-button slot="reference"
title="删除之后无法恢复,确认删除?"
@onConfirm="handleDel(scope.row)"
>
<el-button
slot="reference"
type="text" type="text"
size="small" size="small"
class="btn-color-del" class="btn-color-del">删除</el-button>
>删除</el-button
>
</el-popconfirm> </el-popconfirm>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div> <div>
<el-pagination <el-pagination @size-change="handleSizeChange"
@size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:current-page.sync="currentPage" :current-page.sync="currentPage"
:page-sizes="[20, 50, 100, 200]" :page-sizes="[20, 50, 100, 200]"
:page-size="pageSize" :page-size="pageSize"
layout="sizes, prev, pager, next, total" layout="sizes, prev, pager, next, total"
:total="total" :total="total">
>
</el-pagination> </el-pagination>
</div> </div>
</el-card> </el-card>
<el-dialog <el-dialog title="党员信息"
title="党员信息"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="60%" width="60%"
top="5vh" top="5vh"
class="dialog-h" class="dialog-h"
append-to-body append-to-body
:close-on-click-modal="false" :close-on-click-modal="false"
:before-close="handlerCancle" :before-close="handlerCancle">
> <crate-form v-if="dialogVisible"
<crate-form v-if="dialogVisible" :info="detailInfo" :partyList="optionsG" :info="detailInfo"
:partyList="optionsG"
:disabled="disabled" :disabled="disabled"
@saveBase="handleSearch" @cancle="handlerCancle" /> @saveBase="handleSearch"
@cancle="handlerCancle" />
</el-dialog>
<el-dialog title="党员信息"
:visible.sync="detailShow"
width="60%"
top="5vh"
class="dialog-h"
append-to-body
:close-on-click-modal="false"
:before-close="handlerCancle">
<detail-form v-if="detailShow"
:info="detailInfo"
:partyList="optionsG"
:disabled="disabled" />
</el-dialog> </el-dialog>
</div> </div>
@ -306,11 +345,12 @@
import axios from 'axios' import axios from 'axios'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import crateForm from './crateForm.vue' import crateForm from './crateForm.vue'
import detailForm from './detailForm.vue'
export default { export default {
components: { components: {
crateForm crateForm, detailForm
}, },
data() { data () {
return { return {
uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadqrcodeV2', uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadqrcodeV2',
importBtnTitle: '导入', importBtnTitle: '导入',
@ -340,7 +380,7 @@ export default {
{ {
label: '是', label: '是',
value: 1 value: 1
},{ }, {
label: '否', label: '否',
value: 2 value: 2
} }
@ -418,18 +458,20 @@ export default {
label: 'partyOrgName', label: 'partyOrgName',
value: 'id', value: 'id',
checkStrictly: true checkStrictly: true
} },
detailShow: false
} }
}, },
computed: { computed: {
...mapGetters(['clientHeight', 'iframeHeight']), ...mapGetters(['clientHeight', 'iframeHeight']),
tableHeight() { tableHeight () {
const h = this.clientHeight - this.searchH - 280 + this.iframeHeigh const h = this.clientHeight - this.searchH - 270 + this.iframeHeigh
const _h = this.clientHeight - 280 - this.searchH const _h = this.clientHeight - 270 - this.searchH
return this.$store.state.inIframe ? h : _h return this.$store.state.inIframe ? h : _h
} }
}, },
async created() { async created () {
this.customerId = localStorage.getItem('customerId') this.customerId = localStorage.getItem('customerId')
// setTimeout(() => { // setTimeout(() => {
// this.getTableData() // this.getTableData()
@ -448,7 +490,7 @@ export default {
// this.tableHeight = document.documentElement.clientHeight - this.$refs.searchCard.$el.offsetHeight - 280 + 'px' // this.tableHeight = document.documentElement.clientHeight - this.$refs.searchCard.$el.offsetHeight - 280 + 'px'
}, },
mounted() { mounted () {
this.$nextTick(() => { this.$nextTick(() => {
this.searchH = this.$refs.searchCard.$el.offsetHeight this.searchH = this.$refs.searchCard.$el.offsetHeight
@ -457,21 +499,21 @@ export default {
}, },
methods: { methods: {
handleSizeChange(val) { handleSizeChange (val) {
console.log(`每页 ${val}`) console.log(`每页 ${val}`)
this.pageSize = val this.pageSize = val
this.getTableData() this.getTableData()
}, },
handleCurrentChange(val) { handleCurrentChange (val) {
console.log(`当前页: ${val}`) console.log(`当前页: ${val}`)
this.currentPage = val this.currentPage = val
this.getTableData() this.getTableData()
}, },
handlePartyChange(val) { handlePartyChange (val) {
console.log('val------pp', val) console.log('val------pp', val)
this.searchForm.partyOrgId = val[val.length - 1] this.searchForm.partyOrgId = val[val.length - 1]
}, },
handleFilterSpan(row, item) { handleFilterSpan (row, item) {
let _val = '' let _val = ''
if (item.options && item.options.length > 0) { if (item.options && item.options.length > 0) {
item.options.forEach((n) => { item.options.forEach((n) => {
@ -510,7 +552,7 @@ export default {
this.$message.error(res.msg) this.$message.error(res.msg)
} }
}, },
handleProgress(event, file, fileList) { handleProgress (event, file, fileList) {
console.log('percentage', event, file.percentage) console.log('percentage', event, file.percentage)
this.uploading = true this.uploading = true
this.unloadPencent = Number(file.percentage.toFixed(0)) this.unloadPencent = Number(file.percentage.toFixed(0))
@ -570,7 +612,7 @@ export default {
const isTypeComputer = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' const isTypeComputer = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
const fileType = isType || isTypeComputer const fileType = isType || isTypeComputer
const isLt1M = (file.size / 1024 / 1024) < 10 const isLt1M = (file.size / 1024 / 1024) < 10
if(!fileType) { if (!fileType) {
this.$message.error('上传文件只能是xls/xlsx格式!') this.$message.error('上传文件只能是xls/xlsx格式!')
} }
@ -579,7 +621,7 @@ export default {
} }
return fileType && isLt1M return fileType && isLt1M
}, },
async uploadHttpRequest(file) { async uploadHttpRequest (file) {
this.importLoading = true this.importLoading = true
this.importBtnTitle = '正在上传中...' this.importBtnTitle = '正在上传中...'
this.$message({ this.$message({
@ -608,7 +650,7 @@ export default {
this.importBtnTitle = '导入' this.importBtnTitle = '导入'
this.$refs.upload.clearFiles() this.$refs.upload.clearFiles()
}, },
async handleExport() { async handleExport () {
this.exportBtn = true this.exportBtn = true
this.exportBtnTitle = '正在导出...' this.exportBtnTitle = '正在导出...'
let params = { let params = {
@ -670,15 +712,15 @@ export default {
this.$message.error(res.msg) this.$message.error(res.msg)
} }
}, },
handleDelimg(item, index) { handleDelimg (item, index) {
this.form.imageList.splice(index, 1) this.form.imageList.splice(index, 1)
}, },
handleSearch(val) { handleSearch (val) {
console.log('searchhh--', val) console.log('searchhh--', val)
this.currentPage = 1 this.currentPage = 1
this.getTableData() this.getTableData()
}, },
resetForm(formName) { resetForm (formName) {
this.timeRangePay = [] this.timeRangePay = []
this.timeRange = [] this.timeRange = []
this.searchForm.payStatrDate = '' this.searchForm.payStatrDate = ''
@ -688,27 +730,28 @@ export default {
this.$refs[formName].resetFields() this.$refs[formName].resetFields()
this.handleSearch() this.handleSearch()
}, },
handleAdd() { handleAdd () {
this.dialogVisible = true this.dialogVisible = true
}, },
handlerCancle() { handlerCancle () {
this.detailInfo = {} this.detailInfo = {}
this.disabled = false this.disabled = false
this.dialogVisible = false this.dialogVisible = false
this.detailShow = false
}, },
async handleLook(row) { async handleLook (row) {
this.disabled = true this.disabled = true
await this.getDetail(row.id) await this.getDetail(row.id, 'detail')
}, },
async handleEdit(row, addType) { async handleEdit (row, addType) {
// this.form = { ...row } // this.form = { ...row }
await this.getDetail(row.id) await this.getDetail(row.id)
this.dialogVisible = true this.dialogVisible = true
}, },
handleDel(row) { handleDel (row) {
let params = { let params = {
ids: [row.id] ids: [row.id]
} }
@ -727,7 +770,7 @@ export default {
return this.$message.error('网络错误') return this.$message.error('网络错误')
}) })
}, },
async getDetail(id) { async getDetail (id, formType) {
let params = { let params = {
id, id,
} }
@ -738,20 +781,25 @@ export default {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} else { } else {
this.detailInfo = { ...res.data } this.detailInfo = { ...res.data }
if (formType === 'detail') {
this.detailShow = true
} else {
this.dialogVisible = true this.dialogVisible = true
} }
}
}) })
.catch((err) => { .catch((err) => {
console.log('row4', err) console.log('row4', err)
return this.$message.error('网络错误') return this.$message.error('网络错误')
}) })
}, },
async getGridList(type, agencyId) { async getGridList (type, agencyId) {
const { user } = await this.$store.state const { user } = await this.$store.state
console.log('user---ppp', user) console.log('user---ppp', user)
// addorupdate query // addorupdate query
await this.$http await this.$http
.get('/resi/partymember/icPartyOrg/getSearchTreelist', { params: {agencyId: agencyId || user.agencyId} }) .get('/resi/partymember/icPartyOrg/getSearchTreelist', { params: { agencyId: agencyId || user.agencyId } })
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
@ -765,17 +813,17 @@ export default {
return this.$message.error('网络错误') return this.$message.error('网络错误')
}) })
}, },
deepArrTOnull(arr) { deepArrTOnull (arr) {
let a = [] let a = []
a = arr.map(item => { a = arr.map(item => {
return { return {
...item, ...item,
children: (item.children.length > 0 && this.deepArrTOnull(item.children) )|| null children: (item.children.length > 0 && this.deepArrTOnull(item.children)) || null
} }
}) })
return a return a
}, },
async getCateList(type) { async getCateList (type) {
const { user } = await this.$store.state const { user } = await this.$store.state
console.log('user---ppp', user) console.log('user---ppp', user)
const params = { const params = {
@ -799,7 +847,7 @@ export default {
return this.$message.error('网络错误') return this.$message.error('网络错误')
}) })
}, },
async getTableData() { async getTableData () {
this.tableLoading = true this.tableLoading = true
const { user } = await this.$store.state const { user } = await this.$store.state
let params = { let params = {
@ -853,7 +901,6 @@ export default {
.form-wr { .form-wr {
.input-width { .input-width {
width: 260px; width: 260px;
} }
.input-width-textarea { .input-width-textarea {
width: 500px; width: 500px;
@ -885,7 +932,6 @@ export default {
</style> </style>
<style lang="scss" scoped> <style lang="scss" scoped>
.resi-row-btn { .resi-row-btn {
display: flex; display: flex;
margin-bottom: 13px; margin-bottom: 13px;
@ -914,14 +960,13 @@ export default {
} }
} }
.avatar-uploader { .avatar-uploader {
::v-deep ::v-deep .el-upload {
.el-upload {
cursor: pointer; cursor: pointer;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
} }
.el-upload:hover { .el-upload:hover {
border-color: #409EFF; border-color: #409eff;
} }
.avatar { .avatar {
width: 100px; width: 100px;
@ -940,8 +985,6 @@ export default {
} }
} }
.resi-btns { .resi-btns {
margin-top: 20px; margin-top: 20px;
text-align: center; text-align: center;

5
src/views/modules/cpts/base/index.vue

@ -89,7 +89,8 @@
size="small" size="small"
@click="handleExportModule('room')">下载模板</el-button> @click="handleExportModule('room')">下载模板</el-button>
<el-upload :headers="$getElUploadHeaders()" v-if="importUrl" <el-upload :headers="$getElUploadHeaders()"
v-if="importUrl"
ref="upload" ref="upload"
class="upload-btn" class="upload-btn"
action="uploadUlr" action="uploadUlr"
@ -154,6 +155,8 @@
align="center" align="center"
width="200"> width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<slot name="listBtnbefore"
v-bind:item="scope.row"></slot>
<el-button v-if="infoUrl && infoAuth(scope.row)" <el-button v-if="infoUrl && infoAuth(scope.row)"
@click="handleWatch(scope.row)" @click="handleWatch(scope.row)"
type="text" type="text"

Loading…
Cancel
Save