This commit is contained in:
yanran200730
2022-04-28 10:28:24 +08:00
8 changed files with 486 additions and 470 deletions

View File

@@ -29,7 +29,7 @@
export default { export default {
name: "AppGridMemberJp", name: "AppGridMemberJp",
label: "网格管理员", label: "网格管理员(防返贫)",
props: { props: {
instance: Function, instance: Function,

View File

@@ -8,38 +8,39 @@
<template #left> <template #left>
<el-button size="small" type="primary" icon="iconfont iconAdd" @click="isShow = true">添加</el-button> <el-button size="small" type="primary" icon="iconfont iconAdd" @click="isShow = true">添加</el-button>
<el-button size="small" :disabled="!ids.length" icon="iconfont iconDelete" @click="removeAll">批量删除</el-button> <el-button size="small" :disabled="!ids.length" icon="iconfont iconDelete" @click="removeAll">批量删除</el-button>
<el-select size="small" style="width: 200px;" v-model="search.girdId" placeholder="所属网格" clearable @change="getListInit()"> <el-select size="small" style="width: 200px;" v-model="search.girdId" placeholder="所属网格" clearable
@change="getListInit()">
<el-option <el-option
v-for="(item,i) in girdList" v-for="(item,i) in girdList"
:key="i" :key="i"
:label="item.girdName" :label="item.girdName"
:value="item.id" :value="item.id"
> >
</el-option> </el-option>
</el-select> </el-select>
</template> </template>
<template #right> <template #right>
<el-input <el-input
v-model="search.name" v-model="search.name"
class="search-input" class="search-input"
size="small" size="small"
v-throttle="() => {search.current = 1, getList()}" v-throttle="() => {search.current = 1, getList()}"
placeholder="姓名/身份证/联系方式" placeholder="姓名/身份证/联系方式"
clearable clearable
@clear="search.current = 1, search.name = '', getList()" @clear="search.current = 1, search.name = '', getList()"
suffix-icon="iconfont iconSearch"> suffix-icon="iconfont iconSearch">
</el-input> </el-input>
</template> </template>
</ai-search-bar> </ai-search-bar>
<ai-table <ai-table
:tableData="tableData" :tableData="tableData"
:col-configs="colConfigs" :col-configs="colConfigs"
:total="total" :total="total"
style="margin-top: 6px;" style="margin-top: 6px;"
:current.sync="search.current" :current.sync="search.current"
:size.sync="search.size" :size.sync="search.size"
@handleSelectionChange="handleSelectionChange" @handleSelectionChange="handleSelectionChange"
@getList="getList"> @getList="getList">
<el-table-column slot="options" width="100px" fixed="right" label="操作" align="center"> <el-table-column slot="options" width="100px" fixed="right" label="操作" align="center">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div class="table-options"> <div class="table-options">
@@ -49,19 +50,20 @@
</el-table-column> </el-table-column>
</ai-table> </ai-table>
<ai-dialog <ai-dialog
:visible.sync="isShow" :visible.sync="isShow"
width="890px" width="890px"
@close="closeDialog" @close="closeDialog"
title="添加户主" title="添加户主"
@onConfirm="onConfirm"> @onConfirm="onConfirm">
<ai-area-select clearable always-show :instance="instance" v-model="areaId" :disabled-level="disabledLevel" @change="search.current = 1, getUserList()"></ai-area-select> <ai-area-select clearable always-show :instance="instance" v-model="areaId" :disabled-level="disabledLevel"
@change="search.current = 1, getUserList()"></ai-area-select>
<span style="margin-top:16px;"><span style="color:#f46;margin-right:4px;">*</span>网格</span> <span style="margin-top:16px;"><span style="color:#f46;margin-right:4px;">*</span>网格</span>
<el-select size="small" style="width: 280px;margin-top:16px;" v-model="girdId" placeholder="请选择网格" clearable> <el-select size="small" style="width: 280px;margin-top:16px;" v-model="girdId" placeholder="请选择网格" clearable>
<el-option <el-option
v-for="(item,i) in girdList" v-for="(item,i) in girdList"
:key="i" :key="i"
:label="item.girdName" :label="item.girdName"
:value="item.id" :value="item.id"
> >
</el-option> </el-option>
</el-select> </el-select>
@@ -72,22 +74,22 @@
<h2>户主信息列表</h2> <h2>户主信息列表</h2>
</div> </div>
<el-input <el-input
class="search-input" class="search-input"
size="mini" size="mini"
placeholder="请输入姓名/身份证号" placeholder="请输入姓名/身份证号"
v-model="name" v-model="name"
clearable clearable
v-throttle="getUserList" v-throttle="getUserList"
@clear="name = '', getUserList()" @clear="name = '', getUserList()"
suffix-icon="iconfont iconSearch"> suffix-icon="iconfont iconSearch">
</el-input> </el-input>
</div> </div>
<el-scrollbar class="AiWechatSelecter-list"> <el-scrollbar class="AiWechatSelecter-list">
<el-checkbox-group v-model="chooseUser"> <el-checkbox-group v-model="chooseUser">
<el-checkbox <el-checkbox
:label="`${item.name}~${item.id}`" :label="`${item.name}~${item.id}`"
v-for="(item, index) in userList" v-for="(item, index) in userList"
:key="index"> :key="index">
{{ item.name }}-{{ item.idNumber }} {{ item.name }}-{{ item.idNumber }}
</el-checkbox> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
@@ -102,12 +104,12 @@
<el-scrollbar class="AiWechatSelecter-list"> <el-scrollbar class="AiWechatSelecter-list">
<div class="tags-wrapper"> <div class="tags-wrapper">
<el-tag <el-tag
v-for="(item, index) in chooseUser" v-for="(item, index) in chooseUser"
:key="index" :key="index"
closable closable
@close="del(item)" @close="del(item)"
size="small" size="small"
type="info"> type="info">
{{ item.split('~')[0] }} {{ item.split('~')[0] }}
</el-tag> </el-tag>
</div> </div>
@@ -120,379 +122,380 @@
</template> </template>
<script> <script>
import { mapState } from 'vuex' import {mapState} from 'vuex'
export default {
name: 'Family',
props: { export default {
instance: Function, name: 'Family',
dict: Object,
params: Object
},
data() { props: {
return { instance: Function,
search: { dict: Object,
current: 1, params: Object
size: 10, },
name: '',
girdId: ''
},
isLoading: false,
form: {
}, data() {
userList: [], return {
search: {
current: 1,
size: 10,
name: '', name: '',
chooseUser: [], girdId: ''
isShow: false, },
total: 10, isLoading: false,
colConfigs: [ form: {},
{ type: 'selection', label: '' }, userList: [],
{ prop: 'name', label: '户主姓名', align: 'left', width: '200px' }, name: '',
{ prop: 'idNumber', label: '身份证号', align: 'center' }, chooseUser: [],
{ prop: 'phone', label: '联系方式', align: 'center' }, isShow: false,
{ prop: 'girdName', label: '所属网格', align: 'center' }, total: 10,
{ prop: 'createTime', label: '添加时间', align: 'center' }, colConfigs: [
{ slot: 'options', label: '操作', align: 'center' } {type: 'selection', label: ''},
], {prop: 'name', label: '户主姓名', align: 'left', width: '200px'},
tableData: [], {prop: 'idNumber', label: '身份证号', align: 'center'},
areaId: '', {prop: 'phone', label: '联系方式', align: 'center'},
ids: [], {prop: 'girdName', label: '所属网格', align: 'center'},
disabledLevel: 0, {prop: 'createTime', label: '添加时间', align: 'center'},
girdList: [], {slot: 'options', label: '操作', align: 'center'}
girdId: '', ],
} tableData: [],
}, areaId: '',
ids: [],
disabledLevel: 0,
girdList: [],
girdId: '',
}
},
computed: { computed: {
...mapState(['user']) ...mapState(['user'])
}, },
created() { created() {
this.areaId = this.user.info.areaId this.areaId = this.user.info.areaId
this.disabledLevel = this.user.info.areaList.length this.disabledLevel = this.user.info.areaList.length
this.dict.load('epidemicDangerousAreaLevel').then(() => { this.dict.load('epidemicDangerousAreaLevel').then(() => {
this.getGirdList() this.getGirdList()
this.getList() this.getList()
this.getUserList() this.getUserList()
})
},
methods: {
getGirdList() {
this.instance.post(`/app/appgirdmemberinfo/queryMyGirdListByLevel2?girdMemberId=${this.params.id}`).then(res => {
if (res.code == 0) {
this.girdList = res.data
}
})
},
getListInit() {
this.search.current = 1
this.getList()
},
getList() {
this.instance.post(`/app/appgirdmemberpoverty/listByGirdMemberByWeb`, null, {
params: {
...this.search,
girdMemberId: this.params.id,
}
}).then(res => {
if (res.code == 0) {
this.tableData = res.data.records
this.total = res.data.total
}
}) })
}, },
methods: {
getGirdList() {
this.instance.post(`/app/appgirdmemberinfo/queryMyGirdListByLevel2?girdMemberId=${this.params.id}`).then(res => {
if (res.code == 0) {
this.girdList = res.data
}
})
},
getListInit() {
this.search.current = 1
this.getList()
},
getList () {
this.instance.post(`/app/appgirdmemberpoverty/listByGirdMemberByWeb`, null, {
params: {
...this.search,
girdMemberId: this.params.id,
}
}).then(res => {
if (res.code == 0) {
this.tableData = res.data.records
this.total = res.data.total
}
})
},
removeAll() { removeAll() {
if (!this.ids) { if (!this.ids) {
return this.$message.error('请选择户主') return this.$message.error('请选择户主')
}
this.remove(this.ids.join(','))
},
handleSelectionChange(e) {
this.ids = e.map(v => v.gmrId)
},
clearAll () {
this.chooseUser = []
},
onConfirm () {
if(!this.girdId) {
return this.$message.error('请选择网格')
}
if (!this.chooseUser.length) {
return this.$message.error('请选择户主')
}
const povertyList = this.chooseUser.map(v => {
return {
girdMemberId: this.params.id,
name: v.split('~')[0],
girdId: this.girdId,
povertyId: v.split('~')[1]
}
})
this.instance.post(`/app/appgirdmemberpoverty/add`, {
povertyList
}).then(res => {
if (res.code == 0) {
this.current = 1
this.getList()
this.$message.success('添加成功')
this.closeDialog()
}
})
},
closeDialog() {
this.isShow = false
this.chooseUser = []
this.girdId = ''
this.name = ''
this.areaId = this.user.info.areaId
this.getUserList()
},
del (e) {
this.chooseUser.splice(this.chooseUser.indexOf(e), 1)
},
getUserList () {
this.isLoading = true
this.instance.post(`/app/apppreventionreturntopoverty/list`, null, {
params: {
current: 1,
size: 200,
con: this.name,
isHousehold: 1,
areaId: this.areaId
}
}).then(res => {
if (res.code == 0) {
this.userList = res.data.records
}
this.isLoading = false
})
},
onBack () {
this.$emit('change', {
type: 'list'
})
},
remove(id) {
this.$confirm('确定删除该数据?').then(() => {
this.instance.post(`/app/appgirdmemberresident/delete?ids=${id}`).then(res => {
if (res.code == 0) {
this.$message.success('删除成功!')
this.getList()
}
})
})
} }
this.remove(this.ids.join(','))
},
handleSelectionChange(e) {
this.ids = e.map(v => v.gmpId)
},
clearAll() {
this.chooseUser = []
},
onConfirm() {
if (!this.girdId) {
return this.$message.error('请选择网格')
}
if (!this.chooseUser.length) {
return this.$message.error('请选择户主')
}
const povertyList = this.chooseUser.map(v => {
return {
girdMemberId: this.params.id,
name: v.split('~')[0],
girdId: this.girdId,
povertyId: v.split('~')[1]
}
})
this.instance.post(`/app/appgirdmemberpoverty/add`, {
povertyList
}).then(res => {
if (res.code == 0) {
this.current = 1
this.getList()
this.$message.success('添加成功')
this.closeDialog()
}
})
},
closeDialog() {
this.isShow = false
this.chooseUser = []
this.girdId = ''
this.name = ''
this.areaId = this.user.info.areaId
this.getUserList()
},
del(e) {
this.chooseUser.splice(this.chooseUser.indexOf(e), 1)
},
getUserList() {
this.isLoading = true
this.instance.post(`/app/apppreventionreturntopoverty/list`, null, {
params: {
current: 1,
size: 200,
con: this.name,
isHousehold: 1,
areaId: this.areaId
}
}).then(res => {
if (res.code == 0) {
this.userList = res.data.records
}
this.isLoading = false
})
},
onBack() {
this.$emit('change', {
type: 'list'
})
},
remove(id) {
this.$confirm('确定删除该数据?').then(() => {
this.instance.post(`/app/appgirdmemberresident/delete?ids=${id}`).then(res => {
if (res.code == 0) {
this.$message.success('删除成功!')
this.getList()
}
})
})
} }
} }
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.Family { .Family {
.AiWechatSelecter-container { .AiWechatSelecter-container {
display: flex; display: flex;
height: 380px; height: 380px;
margin-top: 20px; margin-top: 20px;
::v-deep { ::v-deep {
.el-icon-circle-close { .el-icon-circle-close {
display: inline-block!important; display: inline-block !important;
} }
}
.tree-container {
& > span {
display: block;
margin-bottom: 4px;
} }
.tree-container { .tree-user__item {
& > span {
display: block;
margin-bottom: 4px;
}
.tree-user__item {
display: flex;
align-items: center;
margin-bottom: 10px;
&:last-child {
margin-bottom: 0;
}
}
img {
width: 27px;
height: 27px;
margin-right: 10px;
}
}
::v-deep .el-tree {
background: transparent;
.el-tree-node {
margin-bottom: 8px;
&:last-child {
margin-bottom: 0;
}
}
.el-tree-node__content {
height: auto;
margin-top: 2px;
// align-items: inherit;
}
.el-tree-node__expand-icon {
height: 24px;
}
}
.mask-btn__wrapper {
position: relative;
}
.mask-btn {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.userlist-item {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; margin-bottom: 10px;
&:last-child {
margin-bottom: 0;
}
}
img {
width: 27px;
height: 27px;
margin-right: 10px;
}
}
::v-deep .el-tree {
background: transparent;
.el-tree-node {
margin-bottom: 8px; margin-bottom: 8px;
padding: 0 17px;
cursor: pointer;
user-select: none;
::v-deep .el-checkbox__label { &:last-child {
display: none; margin-bottom: 0;
}
.userlist-item__left {
display: flex;
align-items: center;
span {
color: #222222;
font-size: 14px;
}
img {
width: 40px;
height: 40px;
margin-right: 8px;
}
} }
} }
& > div { .el-tree-node__content {
width: 280px; height: auto;
background: #FCFCFC; margin-top: 2px;
border: 1px solid #D0D4DC; // align-items: inherit;
} }
.AiWechatSelecter-list { .el-tree-node__expand-icon {
height: calc(100% - 40px); height: 24px;
padding: 8px 0; }
}
::v-deep .el-scrollbar__wrap { .mask-btn__wrapper {
margin-bottom: 0!important; position: relative;
overflow-x: hidden; }
}
::v-deep .el-checkbox-group { .mask-btn {
padding: 0 8px; position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.el-checkbox { .userlist-item {
display: block; display: flex;
margin-right: 0; align-items: center;
} justify-content: space-between;
} margin-bottom: 8px;
padding: 0 17px;
cursor: pointer;
user-select: none;
::v-deep .el-checkbox__label {
display: none;
} }
.AiWechatSelecter-container__left { .userlist-item__left {
flex: 1;
}
.AiWechatSelecter-container__right {
flex: 1;
margin-left: 20px;
.AiWechatSelecter-list {
.tags-wrapper {
padding: 0 8px;
}
.el-tag {
margin: 0 8px 8px 0px;
color: #222222;
font-size: 14px;
}
}
}
.AiWechatSelecter-header {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between;
height: 40px;
padding: 0 8px 0 0;
border-bottom: 1px solid #D0D4DC;
background: #F5F7FA;
.AiWechatSelecter-header__left { span {
display: flex;
align-items: center;
padding: 0 8px;
h2 {
height: 100%;
line-height: 40px;
color: #222222;
font-size: 14px;
text-align: center;
cursor: pointer;
border-bottom: 2px solid transparent;
&.active {
color: #2266FF;
border-color: #2266FF;
}
}
}
.el-button {
height: 28px;
padding: 7px 5px;
}
.el-input {
width: 160px;
}
}
.AiWechatSelecter-header__right {
padding: 0 8px;
h2 {
color: #222222; color: #222222;
font-size: 14px; font-size: 14px;
text-align: center; }
img {
width: 40px;
height: 40px;
margin-right: 8px;
} }
} }
} }
& > div {
width: 280px;
background: #FCFCFC;
border: 1px solid #D0D4DC;
}
.AiWechatSelecter-list {
height: calc(100% - 40px);
padding: 8px 0;
::v-deep .el-scrollbar__wrap {
margin-bottom: 0 !important;
overflow-x: hidden;
}
::v-deep .el-checkbox-group {
padding: 0 8px;
.el-checkbox {
display: block;
margin-right: 0;
}
}
}
.AiWechatSelecter-container__left {
flex: 1;
}
.AiWechatSelecter-container__right {
flex: 1;
margin-left: 20px;
.AiWechatSelecter-list {
.tags-wrapper {
padding: 0 8px;
}
.el-tag {
margin: 0 8px 8px 0px;
color: #222222;
font-size: 14px;
}
}
}
.AiWechatSelecter-header {
display: flex;
align-items: center;
justify-content: space-between;
height: 40px;
padding: 0 8px 0 0;
border-bottom: 1px solid #D0D4DC;
background: #F5F7FA;
.AiWechatSelecter-header__left {
display: flex;
align-items: center;
padding: 0 8px;
h2 {
height: 100%;
line-height: 40px;
color: #222222;
font-size: 14px;
text-align: center;
cursor: pointer;
border-bottom: 2px solid transparent;
&.active {
color: #2266FF;
border-color: #2266FF;
}
}
}
.el-button {
height: 28px;
padding: 7px 5px;
}
.el-input {
width: 160px;
}
}
.AiWechatSelecter-header__right {
padding: 0 8px;
h2 {
color: #222222;
font-size: 14px;
text-align: center;
}
}
} }
}
</style> </style>

View File

@@ -30,7 +30,7 @@ export default {
"yesOrNo", "fpLaborSkills", "fpEducation", "fpType", "fpPoliticalOutlook","fpType", "fpRiskType", "fpAssistanceMeasures", "yesOrNo", "fpLaborSkills", "fpEducation", "fpType", "fpPoliticalOutlook","fpType", "fpRiskType", "fpAssistanceMeasures",
"fpPublicWelfarePostAssistance","fpHealthAssistance","fpFnancialAssistance","fpEmploymentAssistance","fpEducationalAssistance", "fpPublicWelfarePostAssistance","fpHealthAssistance","fpFnancialAssistance","fpEmploymentAssistance","fpEducationalAssistance",
"fpIndustrialAssistance","fpSocialAssistance", "fpRiskEliminationMethod", "fpNaturalDisaster", "fpHouseType", "fpHouseRoadType", "fpIndustrialAssistance","fpSocialAssistance", "fpRiskEliminationMethod", "fpNaturalDisaster", "fpHouseType", "fpHouseRoadType",
"fpFuelType", "fpDisabilityType",) "fpFuelType", "fpDisabilityType", "fpEmploymentChannels")
} }
} }
</script> </script>

View File

@@ -75,13 +75,13 @@
<ai-select v-model="form.labourStatus" :selectList="dict.getDict('fpLaborSkills')"/> <ai-select v-model="form.labourStatus" :selectList="dict.getDict('fpLaborSkills')"/>
</el-form-item> </el-form-item>
<el-form-item label="是否会讲普通话"> <el-form-item label="是否会讲普通话">
<ai-select v-model="form.mandarin" :selectList="dict.getDict('fpYesOrNo')" placeholder="请选择" /> <ai-select v-model="form.mandarin" :selectList="dict.getDict('fpYesOrNo')" />
</el-form-item> </el-form-item>
<el-form-item label="务工时间(月)"> <el-form-item label="务工时间(月)">
<el-input v-model="form.workeMonths" placeholder="请输入" clearable/> <el-input v-model="form.workeMonths" placeholder="请输入" clearable/>
</el-form-item> </el-form-item>
<el-form-item label="就业渠道"> <el-form-item label="就业渠道">
<el-input v-model="form.employmentChannels" placeholder="请输入" clearable/> <ai-select v-model="form.employmentChannels" :selectList="dict.getDict('fpEmploymentChannels')" />
</el-form-item> </el-form-item>
<el-form-item label="务工企业名称"> <el-form-item label="务工企业名称">
<el-input v-model="form.migrantEnterprises" placeholder="请输入" clearable/> <el-input v-model="form.migrantEnterprises" placeholder="请输入" clearable/>
@@ -90,7 +90,7 @@
<el-input v-model="form.publicWelfarePosts" placeholder="请输入" clearable/> <el-input v-model="form.publicWelfarePosts" placeholder="请输入" clearable/>
</el-form-item> </el-form-item>
<el-form-item label="是否国外务工"> <el-form-item label="是否国外务工">
<ai-select v-model="form.foreignWorkers" :selectList="dict.getDict('fpYesOrNo')" placeholder="请选择" /> <ai-select v-model="form.foreignWorkers" :selectList="dict.getDict('fpYesOrNo')" />
</el-form-item> </el-form-item>
<el-form-item label="公益性岗位(月数)"> <el-form-item label="公益性岗位(月数)">
<el-input v-model="form.publicWelfarePostsMonths" placeholder="请输入" clearable/> <el-input v-model="form.publicWelfarePostsMonths" placeholder="请输入" clearable/>
@@ -99,17 +99,6 @@
<el-form-item label="务工所在地"> <el-form-item label="务工所在地">
<el-input v-model="form.foreignWorkersAddress" placeholder="请输入" clearable maxlength="30" show-word-limit/> <el-input v-model="form.foreignWorkersAddress" placeholder="请输入" clearable maxlength="30" show-word-limit/>
</el-form-item> </el-form-item>
<div flex class="half wrap">
<el-form-item label="判刑收监年度">
<el-date-picker v-model="form.sentencingYear" type="year" placeholder="请选择"/>
</el-form-item>
<el-form-item label="刑满释放">
<el-date-picker v-model="form.releaseFromPrisonYear" type="year" placeholder="请选择"/>
</el-form-item>
<el-form-item label="死亡年度">
<el-date-picker v-model="form.deathYear" type="year" placeholder="请选择"/>
</el-form-item>
</div>
<el-form-item label="现住址" prop="currentAreaId"> <el-form-item label="现住址" prop="currentAreaId">
<ai-area-get :instance="instance" v-model="form.currentAreaId" :root="rootArea" valueLevel="5"/> <ai-area-get :instance="instance" v-model="form.currentAreaId" :root="rootArea" valueLevel="5"/>
<el-form-item prop="currentAddress"> <el-form-item prop="currentAddress">
@@ -213,10 +202,10 @@
</el-form-item> </el-form-item>
</div> </div>
<el-form-item label="义务阶段未上学原因"> <el-form-item label="义务阶段未上学原因">
<el-input v-model="form.dropOutOfSchoolReason" placeholder="请输入" maxlength="30" show-word-limit clearable/> <el-input v-model="form.dropOutOfSchoolReason" type="textarea" placeholder="请输入" maxlength="500" show-word-limit clearable/>
</el-form-item> </el-form-item>
<el-form-item label="备注说明"> <el-form-item label="备注说明">
<el-input v-model="form.detail" placeholder="请输入" maxlength="30" show-word-limit clearable/> <el-input v-model="form.detail" placeholder="请输入" type="textarea" maxlength="500" show-word-limit clearable/>
</el-form-item> </el-form-item>
<el-form-item label="图片最多9张" > <el-form-item label="图片最多9张" >
<ai-uploader <ai-uploader
@@ -377,6 +366,9 @@ export default {
this.form.birthDate = '' this.form.birthDate = ''
this.form.sex = '' this.form.sex = ''
this.form.age = '' this.form.age = ''
this.form.nation = ''
this.form.education = ''
this.form.politicsStatus = ''
return return
} }
this.form.name = e.name this.form.name = e.name
@@ -384,6 +376,9 @@ export default {
this.form.phone = e.phone this.form.phone = e.phone
this.form.currentAreaId = e.currentAreaId this.form.currentAreaId = e.currentAreaId
this.form.currentAddress = e.currentAddress this.form.currentAddress = e.currentAddress
this.form.nation = e.nation
this.form.education = e.education
this.form.politicsStatus = e.politicsStatus
this.handleIdNumberAutocomplete(e.idNumber) this.handleIdNumberAutocomplete(e.idNumber)
this.isSelectUser = true this.isSelectUser = true
}, },

View File

@@ -5,20 +5,21 @@
<template #rightBtn> <template #rightBtn>
<el-button type="primary" icon="iconfont iconEdit" @click="gotoEdit" v-if="$permissions('app_apppreventionreturntopoverty_edit')">编辑</el-button> <el-button type="primary" icon="iconfont iconEdit" @click="gotoEdit" v-if="$permissions('app_apppreventionreturntopoverty_edit')">编辑</el-button>
<template v-if="isGridAdmin"> <template v-if="isGridAdmin">
<el-button type="primary" @click="applyMonitor('纳入监测', 1)" v-if="detail.status == 0 && girdAdminApplyStatus != 1">纳入监测</el-button> <template v-if="detail.status == 0 || detail.status == 4">
<el-button type="primary" @click="examine('纳入监测审批', 2)" v-if="detail.status == 0 && girdAdminApplyStatus == 1">纳入监测审批</el-button> <el-button type="primary" @click="applyMonitor('纳入监测', 1)" v-if="girdAdminApplyStatus != 1">纳入监测</el-button>
<el-button type="primary" @click="applyMonitor('纳入监测', 1)" v-if="detail.status == 4 && girdAdminApplyStatus != 1">纳入监测</el-button> <el-button type="primary" @click="examine('纳入监测审批', 2)" v-if="girdAdminApplyStatus == 1">纳入监测审批</el-button>
<el-button type="primary" @click="examine('纳入监测审批', 2)" v-if="detail.status == 4 && girdAdminApplyStatus == 1">纳入监测审批</el-button> </template>
<el-button type="primary" @click="applyMonitor('纳入监测', 1)" v-if="detail.status == 3">纳入监测</el-button>
<el-button type="primary" @click="applyMonitor('解除风险', 4)" v-if="detail.status == 1">解除风险</el-button> <el-button type="primary" @click="applyMonitor('解除风险', 4)" v-if="detail.status == 1">解除风险</el-button>
<el-button type="primary" @click="examine('解除风险审批', 5)" v-if="detail.status == 2">解除风险审批</el-button> <el-button type="primary" @click="examine('解除风险审批', 5)" v-if="detail.status == 2">解除风险审批</el-button>
<el-button type="primary" @click="applyMonitor('纳入监测', 1)" v-if="detail.status == 3">纳入监测</el-button>
</template> </template>
<template v-if="user.info.girdCheckType == 1"> <template v-if="user.info.girdCheckType == 1">
<el-button type="primary" @click="applyMonitor('申请纳入监测', 0)" v-if="detail.status == 3">申请纳入监测</el-button> <el-button type="primary" @click="applyMonitor('申请纳入监测', 0)" v-if="detail.status == 4 || detail.status == 3">申请纳入监测</el-button>
<el-button type="primary" @click="applyMonitor('申请纳入监测', 0)" v-if="detail.status == 4">申请纳入监测</el-button>
<el-button type="primary" @click="applyMonitor('申请解除风险', 3)" v-if="detail.status == 1">申请解除风险</el-button> <el-button type="primary" @click="applyMonitor('申请解除风险', 3)" v-if="detail.status == 1">申请解除风险</el-button>
</template> </template>
<el-button v-if="$permissions('app_apppreventionreturntopoverty_del') && /4/g.test(detail.status) && user.info.girdCheckType != 0" icon="iconfont iconDelete" @click="handleDelete(detail.id)">删除</el-button> <template v-if="detail.status == 3 || detail.status == 4">
<el-button v-if="$permissions('app_apppreventionreturntopoverty_del') && user.info.girdCheckType != 0" icon="iconfont iconDelete" @click="handleDelete(detail.id)">删除</el-button>
</template>
</template> </template>
</ai-title> </ai-title>
<template #content> <template #content>
@@ -64,7 +65,7 @@
<el-form-item label="劳动技能">{{dict.getLabel("fpLaborSkills", detail.labourStatus)}}</el-form-item> <el-form-item label="劳动技能">{{dict.getLabel("fpLaborSkills", detail.labourStatus)}}</el-form-item>
<el-form-item label="是否会讲普通话">{{dict.getLabel("fpYesOrNo", detail.mandarin)}}</el-form-item> <el-form-item label="是否会讲普通话">{{dict.getLabel("fpYesOrNo", detail.mandarin)}}</el-form-item>
<el-form-item label="务工时间(月)">{{detail.workeMonths}}</el-form-item> <el-form-item label="务工时间(月)">{{detail.workeMonths}}</el-form-item>
<el-form-item label="就业渠道">{{detail.employmentChannels}}</el-form-item> <el-form-item label="就业渠道">{{dict.getLabel("fpEmploymentChannels", detail.employmentChannels)}}</el-form-item>
<el-form-item label="务工企业名称">{{detail.migrantEnterprises}}</el-form-item> <el-form-item label="务工企业名称">{{detail.migrantEnterprises}}</el-form-item>
<el-form-item label="公益性岗位">{{detail.publicWelfarePosts}}</el-form-item> <el-form-item label="公益性岗位">{{detail.publicWelfarePosts}}</el-form-item>
<el-form-item label="是否国外务工">{{dict.getLabel("fpYesOrNo", detail.foreignWorkers)}}</el-form-item> <el-form-item label="是否国外务工">{{dict.getLabel("fpYesOrNo", detail.foreignWorkers)}}</el-form-item>
@@ -72,11 +73,6 @@
</div> </div>
<el-form-item label="务工所在地">{{detail.foreignWorkersAddress}} <el-form-item label="务工所在地">{{detail.foreignWorkersAddress}}
</el-form-item> </el-form-item>
<div flex class="half wrap">
<el-form-item label="判刑收监年度">{{detail.sentencingYear}} </el-form-item>
<el-form-item label="刑满释放">{{detail.releaseFromPrisonYear}}</el-form-item>
<el-form-item label="死亡年度">{{detail.deathYear}}</el-form-item>
</div>
<el-form-item label="现住址">{{currentFullAddress}}</el-form-item> <el-form-item label="现住址">{{currentFullAddress}}</el-form-item>
</template> </template>
</ai-card> </ai-card>
@@ -259,7 +255,7 @@
<el-input v-model="form.workeMonths" placeholder="请输入" clearable /> <el-input v-model="form.workeMonths" placeholder="请输入" clearable />
</el-form-item> </el-form-item>
<el-form-item label="就业渠道"> <el-form-item label="就业渠道">
<el-input v-model="form.employmentChannels" placeholder="请输入" clearable /> <ai-select v-model="form.employmentChannels" :selectList="dict.getDict('fpEmploymentChannels')" />
</el-form-item> </el-form-item>
<el-form-item label="务工企业名称"> <el-form-item label="务工企业名称">
<el-input v-model="form.migrantEnterprises" placeholder="请输入" clearable /> <el-input v-model="form.migrantEnterprises" placeholder="请输入" clearable />
@@ -277,17 +273,6 @@
<el-form-item label="务工所在地"> <el-form-item label="务工所在地">
<el-input v-model="form.foreignWorkersAddress" placeholder="请输入" clearable maxlength="30" show-word-limit /> <el-input v-model="form.foreignWorkersAddress" placeholder="请输入" clearable maxlength="30" show-word-limit />
</el-form-item> </el-form-item>
<div flex class="half wrap">
<el-form-item label="判刑收监年度">
<el-date-picker v-model="form.sentencingYear" type="year" placeholder="请选择" />
</el-form-item>
<el-form-item label="刑满释放">
<el-date-picker v-model="form.releaseFromPrisonYear" type="year" placeholder="请选择" />
</el-form-item>
<el-form-item label="死亡年度">
<el-date-picker v-model="form.deathYear" type="year" placeholder="请选择" />
</el-form-item>
</div>
<el-form-item label="现住址" prop="currentAreaId"> <el-form-item label="现住址" prop="currentAreaId">
<ai-area-get :instance="instance" v-model="form.currentAreaId" :root="rootArea" valueLevel="5" /> <ai-area-get :instance="instance" v-model="form.currentAreaId" :root="rootArea" valueLevel="5" />
<el-form-item prop="currentAddress"> <el-form-item prop="currentAddress">
@@ -336,7 +321,7 @@
<el-form-item label="劳动技能">{{dict.getLabel("fpLaborSkills", familyInfo.labourStatus)}}</el-form-item> <el-form-item label="劳动技能">{{dict.getLabel("fpLaborSkills", familyInfo.labourStatus)}}</el-form-item>
<el-form-item label="是否会讲普通话">{{dict.getLabel("fpYesOrNo", familyInfo.mandarin)}}</el-form-item> <el-form-item label="是否会讲普通话">{{dict.getLabel("fpYesOrNo", familyInfo.mandarin)}}</el-form-item>
<el-form-item label="务工时间(月)">{{familyInfo.workeMonths}}</el-form-item> <el-form-item label="务工时间(月)">{{familyInfo.workeMonths}}</el-form-item>
<el-form-item label="就业渠道">{{familyInfo.employmentChannels}}</el-form-item> <el-form-item label="就业渠道">{{dict.getLabel("fpEmploymentChannels", familyInfo.employmentChannels)}}</el-form-item>
<el-form-item label="务工企业名称">{{familyInfo.migrantEnterprises}}</el-form-item> <el-form-item label="务工企业名称">{{familyInfo.migrantEnterprises}}</el-form-item>
<el-form-item label="公益性岗位">{{familyInfo.publicWelfarePosts}}</el-form-item> <el-form-item label="公益性岗位">{{familyInfo.publicWelfarePosts}}</el-form-item>
<el-form-item label="是否国外务工">{{dict.getLabel("fpYesOrNo", familyInfo.foreignWorkers)}}</el-form-item> <el-form-item label="是否国外务工">{{dict.getLabel("fpYesOrNo", familyInfo.foreignWorkers)}}</el-form-item>
@@ -344,11 +329,6 @@
</div> </div>
<el-form-item label="务工所在地">{{familyInfo.foreignWorkersAddress}} <el-form-item label="务工所在地">{{familyInfo.foreignWorkersAddress}}
</el-form-item> </el-form-item>
<div flex class="half wrap">
<el-form-item label="判刑收监年度">{{familyInfo.sentencingYear}} </el-form-item>
<el-form-item label="刑满释放">{{familyInfo.releaseFromPrisonYear}}</el-form-item>
<el-form-item label="死亡年度">{{familyInfo.deathYear}}</el-form-item>
</div>
<el-form-item label="现住址">{{currentFullAddressFamily}}</el-form-item> <el-form-item label="现住址">{{currentFullAddressFamily}}</el-form-item>
</el-form> </el-form>
<template slot="footer"> <template slot="footer">
@@ -557,6 +537,9 @@ export default {
this.form.age = '' this.form.age = ''
this.form.currentAreaId = '' this.form.currentAreaId = ''
this.form.currentAddress = '' this.form.currentAddress = ''
this.form.nation = ''
this.form.education = ''
this.form.politicsStatus = ''
return return
} }
this.form.name = e.name this.form.name = e.name
@@ -564,6 +547,9 @@ export default {
this.form.phone = e.phone this.form.phone = e.phone
this.form.currentAreaId = e.currentAreaId this.form.currentAreaId = e.currentAreaId
this.form.currentAddress = e.currentAddress this.form.currentAddress = e.currentAddress
this.form.nation = e.nation
this.form.education = e.education
this.form.politicsStatus = e.politicsStatus
this.handleIdNumberAutocomplete(e.idNumber) this.handleIdNumberAutocomplete(e.idNumber)
this.isSelectUser = true this.isSelectUser = true
}, },

View File

@@ -18,9 +18,9 @@
<el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="search.birthEnd" type="date" size="small" placeholder="选择出生结束日期" <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="search.birthEnd" type="date" size="small" placeholder="选择出生结束日期"
unlink-panels @change="page.current=1,getTableData()" /> unlink-panels @change="page.current=1,getTableData()" />
<ai-select placeholder="性别" v-model="search.sex" :selectList="dict.getDict('sex')" @change="page.current=1,getTableData()"/> <ai-select placeholder="性别" v-model="search.sex" :selectList="dict.getDict('sex')" @change="page.current=1,getTableData()"/>
<ai-select placeholder="文化程度" v-model="search.education" :selectList="dict.getDict('fpEducation')" @change="page.current=1,getTableData()"/> <!-- <ai-select placeholder="文化程度" v-model="search.education" :selectList="dict.getDict('fpEducation')" @change="page.current=1,getTableData()"/>
<ai-select placeholder="民族" v-model="search.nation" :selectList="dict.getDict('fpNation')" @change="page.current=1,getTableData()"/> <ai-select placeholder="民族" v-model="search.nation" :selectList="dict.getDict('fpNation')" @change="page.current=1,getTableData()"/>
<!-- <ai-select placeholder="政治面貌" v-model="search.politicsStatus" :selectList="dict.getDict('fpPoliticalOutlook')" @change="page.current=1,getTableData()"/> --> <ai-select placeholder="政治面貌" v-model="search.politicsStatus" :selectList="dict.getDict('fpPoliticalOutlook')" @change="page.current=1,getTableData()"/> -->
</template> </template>
<template #right> <template #right>
<el-input size="small" placeholder="姓名/身份证/联系方式" v-model="search.con" clearable <el-input size="small" placeholder="姓名/身份证/联系方式" v-model="search.con" clearable

View File

@@ -2,24 +2,30 @@
<section class="List"> <section class="List">
<ai-list> <ai-list>
<ai-title slot="title" title="宣传资讯" isShowBottomBorder isShowArea v-model="search.areaId" :instance="instance" <ai-title slot="title" title="宣传资讯" isShowBottomBorder isShowArea v-model="search.areaId" :instance="instance"
@change="page.current=1,getTableData()"> @change="page.current=1,getTableData()">
</ai-title> </ai-title>
<template #content> <template #content>
<div class="flex"> <div class="flex fill">
<div class="type"> <div class="type">
<div class="title">宣传板块<span><el-button type="text" @click="addType(0, typeList.length+1, '')">添加</el-button></span></div> <div class="title">宣传板块<span><el-button type="text"
@click="addType(0, typeList.length+1, '')">添加</el-button></span>
</div>
<div class="list"> <div class="list">
<div class="item" v-for="(item, index) in typeList" :key="index" :class="typeIndex == index ? 'active' : ''" @click="typeClick(index)"> <div class="item" v-for="(item, index) in typeList" :key="index"
{{item.categoryName}} :class="typeIndex == index ? 'active' : ''" @click="typeClick(index)">
{{ item.categoryName }}
</div> </div>
<div class="item" v-if="!typeList.length">暂无数据</div> <div class="item" v-if="!typeList.length">暂无数据</div>
</div> </div>
</div> </div>
<div class="type mini-type"> <div class="type mini-type">
<div class="title">模块名称<span><el-button type="text" @click="addType(1, miniTypeList.length+1, typeList[typeIndex].id)">添加</el-button></span></div> <div class="title">模块名称<span><el-button type="text"
@click="addType(1, miniTypeList.length+1, typeList[typeIndex].id)">添加</el-button></span>
</div>
<div class="list"> <div class="list">
<div class="item" v-for="(item, index) in miniTypeList" :key="index" :class="miniTypeIndex == index ? 'active' : ''" @click="miniTypeClick(index)"> <div class="item" v-for="(item, index) in miniTypeList" :key="index"
<span class="text">{{item.categoryName}}</span> :class="miniTypeIndex == index ? 'active' : ''" @click="miniTypeClick(index)">
<span class="text">{{ item.categoryName }}</span>
<span class="icon"> <span class="icon">
<i class="el-icon-circle-plus-outline" @click="addNewType(index)"></i> <i class="el-icon-circle-plus-outline" @click="addNewType(index)"></i>
<i class="el-icon-edit" @click="editMini(index)"></i> <i class="el-icon-edit" @click="editMini(index)"></i>
@@ -32,12 +38,15 @@
<div class="content"> <div class="content">
<ai-search-bar> <ai-search-bar>
<template #right> <template #right>
<el-input size="small" placeholder="请输入标题" v-model="search.title" clearable @change="page.current=1,getTableData()"/> <el-input size="small" placeholder="请输入标题" v-model="search.title" clearable
@change="page.current=1,getTableData()"/>
</template> </template>
</ai-search-bar> </ai-search-bar>
<ai-search-bar> <ai-search-bar>
<template #left> <template #left>
<el-button type="primary" icon="iconfont iconAdd" @click="showEdit('')" v-if="typeList.length && miniTypeList.length">添加</el-button> <el-button type="primary" icon="iconfont iconAdd" @click="showEdit('')"
v-if="typeList.length && miniTypeList.length">添加
</el-button>
<!-- <el-button icon="iconfont iconDelete" :disabled="!ids.length" @click="handleDelete(ids)">删除</el-button> --> <!-- <el-button icon="iconfont iconDelete" :disabled="!ids.length" @click="handleDelete(ids)">删除</el-button> -->
</template> </template>
</ai-search-bar> </ai-search-bar>
@@ -53,7 +62,6 @@
</ai-table> </ai-table>
</div> </div>
</div> </div>
</template> </template>
</ai-list> </ai-list>
<ai-dialog :visible.sync="dialog" :title="dialogTitle" @closed="form={}" @onConfirm="submitDialog" width="600px"> <ai-dialog :visible.sync="dialog" :title="dialogTitle" @closed="form={}" @onConfirm="submitDialog" width="600px">
@@ -65,8 +73,9 @@
<el-input-number v-model="form.showIndex" @change="handleChange" :min="1" :max="100"></el-input-number> <el-input-number v-model="form.showIndex" @change="handleChange" :min="1" :max="100"></el-input-number>
</el-form-item> </el-form-item>
</el-form> </el-form>
<ai-table :tableData="newTypeList" :total="newPage.total" :current.sync="newPage.current" :size.sync="newPage.size" <ai-table :tableData="newTypeList" :total="newPage.total" :current.sync="newPage.current"
:col-configs="colConfigsNew" v-if="type == 2"> :size.sync="newPage.size"
:col-configs="colConfigsNew" v-if="type == 2">
<el-table-column slot="options" label="操作" fixed="right" align="center"> <el-table-column slot="options" label="操作" fixed="right" align="center">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-button type="text" @click="editNew(row)">编辑</el-button> <el-button type="text" @click="editNew(row)">编辑</el-button>
@@ -139,7 +148,13 @@ export default {
}) })
}, },
showEdit(id) { showEdit(id) {
this.$router.push({query: {id: id, parentId: this.typeList[this.typeIndex].id, moduleId: this.miniTypeList[this.miniTypeIndex].id}, hash: "#add"}) this.$router.push({
query: {
id: id,
parentId: this.typeList[this.typeIndex].id,
moduleId: this.miniTypeList[this.miniTypeIndex].id
}, hash: "#add"
})
}, },
handleDelete(ids) { handleDelete(ids) {
this.$confirm("是否删除该条宣传资讯信息").then(() => { this.$confirm("是否删除该条宣传资讯信息").then(() => {
@@ -164,10 +179,10 @@ export default {
this.instance.post(`/app/apppublicitycategory/addPublicityCategory`, this.form).then(res => { this.instance.post(`/app/apppublicitycategory/addPublicityCategory`, this.form).then(res => {
if (res.code == 0) { if (res.code == 0) {
this.$message.success('添加成功'); this.$message.success('添加成功');
if(this.type == 0) { if (this.type == 0) {
this.getTypeList() this.getTypeList()
} }
if(this.type == 1) { if (this.type == 1) {
this.getMiniTypeList(this.typeList[this.typeIndex].id) this.getMiniTypeList(this.typeList[this.typeIndex].id)
} }
this.dialog = false this.dialog = false
@@ -182,7 +197,7 @@ export default {
this.form.showIndex = index this.form.showIndex = index
this.dialogTitle = ['宣传板块', '宣传模块', '文章分类'][e] this.dialogTitle = ['宣传板块', '宣传模块', '文章分类'][e]
this.addLabelText = ['板块名称', '模块名称', '分类名称'][e] this.addLabelText = ['板块名称', '模块名称', '分类名称'][e]
this.rules.categoryName = [{required: true, message: "请输入"+this.addLabelText, trigger: "change"}] this.rules.categoryName = [{required: true, message: "请输入" + this.addLabelText, trigger: "change"}]
this.dialog = true this.dialog = true
}, },
getTypeList() { getTypeList() {
@@ -197,10 +212,10 @@ export default {
this.instance.post(`/app/apppublicitycategory/list?categoryType=1&size=100&parentId=${parentId}`).then(res => { this.instance.post(`/app/apppublicitycategory/list?categoryType=1&size=100&parentId=${parentId}`).then(res => {
if (res.code == 0) { if (res.code == 0) {
this.miniTypeList = res.data.records this.miniTypeList = res.data.records
if(res.data.records && res.data.records.length) { if (res.data.records && res.data.records.length) {
this.miniTypeClick(0) this.miniTypeClick(0)
} }
} }
}) })
}, },
@@ -261,27 +276,32 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.List { .List {
height: 100%; height: 100%;
.flex{
.flex {
display: flex; display: flex;
.type{
.type {
width: 250px; width: 250px;
border: 1px solid #ddd; border: 1px solid #ddd;
box-sizing: border-box; box-sizing: border-box;
.title{
.title {
font-size: 16px; font-size: 16px;
line-height: 40px; line-height: 40px;
border-bottom: 1px solid #ddd; border-bottom: 1px solid #ddd;
padding: 0 16px; padding: 0 16px;
font-weight: 600; font-weight: 600;
span{
span {
color: #26f; color: #26f;
font-size: 12px; font-size: 12px;
font-weight: 400; font-weight: 400;
float: right; float: right;
} }
} }
.list{
.item{ .list {
.item {
padding: 0 16px; padding: 0 16px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@@ -289,38 +309,51 @@ export default {
font-size: 14px; font-size: 14px;
color: #333; color: #333;
box-sizing: border-box; box-sizing: border-box;
.text{
.text {
width: calc(100% - 70px); width: calc(100% - 70px);
cursor: pointer; cursor: pointer;
} }
.icon{
.icon {
width: 70px; width: 70px;
text-align: right; text-align: right;
i{
i {
font-size: 14px; font-size: 14px;
cursor: pointer; cursor: pointer;
margin-left: 8px; margin-left: 8px;
} }
.el-icon-delete{
.el-icon-delete {
color: #f46; color: #f46;
} }
.el-icon-circle-plus-outline{
.el-icon-circle-plus-outline {
color: #26f; color: #26f;
} }
} }
} }
.active{
.active {
// color: #26f; // color: #26f;
background-color: #f3f6f9; background-color: #f3f6f9;
} }
} }
} }
.mini-type{
.mini-type {
margin-right: 16px; margin-right: 16px;
} }
.content{
.content {
width: calc(100% - 516px); width: calc(100% - 516px);
} }
} }
::v-deep .ai-list__content--right-wrapper {
min-height: calc(100% - 6px) !important;
display: flex;
}
} }
</style> </style>

View File

@@ -221,9 +221,8 @@
:label="op.fieldName + (op.fieldNameSuffix ? op.fieldNameSuffix : '')" class="dynamicFormItem" :label="op.fieldName + (op.fieldNameSuffix ? op.fieldNameSuffix : '')" class="dynamicFormItem"
:prop="`fieldInfos.${i}.fieldValue`" :prop="`fieldInfos.${i}.fieldValue`"
:rules="{required:op.mustFill==1,message:`请输入${op.fieldName}`}"> :rules="{required:op.mustFill==1,message:`请输入${op.fieldName}`}">
<el-input placeholder="请输入..." v-model.trim="op.fieldValue" <el-input placeholder="请输入..." v-model.number="op.fieldValue"
clearable v-if="op.fieldDataType=='0'" oninput="value=value.replace(/[^\d]/g,'')" show-word-limit clearable v-if="op.fieldDataType=='0'" show-word-limit :maxlength="op.fieldLength"/>
:maxlength="op.fieldLength"/>
<el-input type="textarea" :rows="3" placeholder="请输入..." v-model.trim="op.fieldValue" <el-input type="textarea" :rows="3" placeholder="请输入..." v-model.trim="op.fieldValue"
clearable v-if="op.fieldDataType=='1'" show-word-limit clearable v-if="op.fieldDataType=='1'" show-word-limit