Browse Source

Merge branch 'dev_community_party_stas_zxc' into dev-calendar

V1.0
zxc 3 years ago
parent
commit
5693862d48
  1. 14
      src/utils/validate.js
  2. 12
      src/views/components/editResi.vue
  3. 495
      src/views/components/resiForm.vue
  4. 4
      src/views/components/resiSearch.vue
  5. 14
      src/views/modules/base/collect.vue
  6. 33
      src/views/modules/base/community/communityTable.vue
  7. 34
      src/views/modules/base/epidemic/travelForm.vue
  8. 8
      src/views/modules/base/huji/chusheng/cpts/edit.vue
  9. 6
      src/views/modules/base/huji/chusheng/index.vue
  10. 36
      src/views/modules/base/huji/immigration/edit.vue
  11. 14
      src/views/modules/base/huji/immigration/index.vue
  12. 12
      src/views/modules/base/visitor.vue
  13. 75
      src/views/modules/communityParty/regionalParty/activitysForm.vue
  14. 19
      src/views/modules/communityParty/regionalParty/units.vue
  15. 3
      src/views/modules/communityParty/regionalParty/unitsDetail.vue
  16. 53
      src/views/modules/communityParty/regionalParty/unitsForm.vue
  17. 359
      src/views/modules/communityParty/stas/index.vue
  18. 690
      src/views/modules/communityService/fuwujilu/addForm.vue
  19. 443
      src/views/modules/communityService/shzz/cpts/edit.vue
  20. 430
      src/views/modules/communityService/shzz/index.vue
  21. 746
      src/views/modules/communityService/worklog/workLog.vue
  22. 151
      src/views/modules/communityService/worklog/workLogDetail.vue
  23. 414
      src/views/modules/communityService/worklog/workLogForm.vue
  24. 4
      src/views/modules/plugins/change/changedeath-add-or-update.vue
  25. 8
      src/views/modules/plugins/change/changedeath.vue
  26. 8
      src/views/modules/plugins/change/changerelocation.vue
  27. 4
      src/views/modules/plugins/change/changewelfare-add-or-update.vue
  28. 8
      src/views/modules/plugins/change/changewelfare.vue
  29. 14
      src/views/modules/plugins/change/verify.vue
  30. 12
      src/views/modules/plugins/change/verifyForm.vue
  31. 4
      src/views/modules/plugins/rent/hikerrorinfo-add-or-update.vue
  32. 2
      src/views/modules/plugins/rent/hikerrorinfo.vue
  33. 4
      src/views/modules/plugins/rent/rentblacklist-add-or-update.vue
  34. 14
      src/views/modules/plugins/rent/rentblacklist.vue
  35. 16
      src/views/modules/plugins/rent/rentcontractinfo-add-or-update.vue
  36. 12
      src/views/modules/plugins/rent/rentcontractinfo-look-or-check.vue
  37. 34
      src/views/modules/plugins/rent/rentcontractinfo.vue
  38. 30
      src/views/modules/plugins/rent/rentcontractreview.vue
  39. 4
      src/views/modules/plugins/rent/renthouse-add-or-update.vue
  40. 113
      src/views/modules/plugins/rent/renthouse.vue
  41. 9
      src/views/modules/plugins/rent/renthouseForm.vue
  42. 6
      src/views/modules/plugins/rent/renttenantinfo-add-or-update.vue
  43. 16
      src/views/modules/plugins/rent/renttenantinfo.vue
  44. 6
      src/views/modules/plugins/stats/factagencyuserhousedaily.vue
  45. 4
      src/views/modules/plugins/visit/visitor-add-or-update.vue
  46. 4
      src/views/modules/plugins/visit/visitvisitor-add-or-update.vue
  47. 6
      src/views/modules/plugins/visit/visitvisitor.vue
  48. 14
      src/views/modules/shequzhili/event/cpts/add.vue
  49. 37
      src/views/modules/shequzhili/event/eventList.vue
  50. 10
      src/views/modules/shequzhili/xiangmu/cpts/edit.vue
  51. 38
      src/views/modules/visual/shundeju/controlCount.vue
  52. 176
      src/views/modules/workSys/workLog/edit.vue
  53. 290
      src/views/modules/workSys/workLog/list.vue

14
src/utils/validate.js

@ -33,9 +33,19 @@ export function isURL(s) {
}
/**
* 身份证
* 身份证或证件号
* @param {*} s
*/
export function isCard(s) {
return /^(\d{15}$)|(^\d{17}([0-9]|X)$)/.test(s);
return /^(\d{15}$)|(^\d{17}([0-9]|X)$)|^[a-zA-Z]{2}\d{7}$|^[a-zA-Z]{1}\d{8}$/.test(s);
}
/**
* 护照
* @param {*} s
*/
export function isPassport(s) {
let reg=/(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/; //护照(包括香港和澳门)
return reg.test(s);
}

12
src/views/components/editResi.vue

@ -87,16 +87,16 @@
</el-form-item>
</div>
<!-- <el-col :span="6">
</el-col>
<el-col :span="6">
</el-col>
<el-col :span="6">
</el-col>
<el-col :span="6">
</el-col> -->
</div>
</el-form-item>
@ -333,10 +333,10 @@ export default {
}
let checkIdCard = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入身份证'))
callback(new Error('请输入证件号'))
} else {
if (!isCard(value)) {
callback(new Error('身份证号格式不正确'))
callback(new Error('证号格式不正确'))
}
callback()
}

495
src/views/components/resiForm.vue

@ -1,91 +1,115 @@
<template>
<div :id="formId" class="resi-container">
<el-form :ref="formId" class="resi-form" :model="form" :rules="rulesForm" :label-width="labelWidth">
<div :id="formId"
class="resi-container">
<el-form :ref="formId"
class="resi-form"
:model="form"
:rules="rulesForm"
:label-width="labelWidth">
<template v-if="supportAdd">
<el-row style="margin-bottom: 10px;">
<el-col :span="24">
<el-button icon="el-icon-plus" size="small" @click="handleAddRow"></el-button>
<el-button icon="el-icon-plus"
size="small"
@click="handleAddRow"></el-button>
</el-col>
</el-row>
<resi-form v-for="(item, index) in addList" :key="index" :ref="'baseForms' + index" :columns="3" :form-list="formList" :form-id="'baseForms' + item" />
<resi-form v-for="(item, index) in addList"
:key="index"
:ref="'baseForms' + index"
:columns="3"
:form-list="formList"
:form-id="'baseForms' + item" />
</template>
<template v-else>
<el-row v-if="fixed" class="resi-row">
<el-row v-if="fixed"
class="resi-row">
<!-- <el-col v-for="n in item" :key="n.id" :span="n.itemType === 'textarea'&&24 || (24/columns)"> -->
<el-col :span="6">
<el-form-item prop="GRID_ID" label="所属网格">
<el-form-item prop="GRID_ID"
label="所属网格">
<!-- <div class="resi-cell"> -->
<!-- <div class="resi-cell-label">{{n.label}}</div> -->
<div class="resi-cell-value">
<el-select v-model.trim="form.GRID_ID" placeholder="请选择网格" size="small"
clearable class="resi-cell-select" @change="handleChangeGrid"
>
<el-option
v-for="item in optionsG"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<!-- <div class="resi-cell-label">{{n.label}}</div> -->
<div class="resi-cell-value">
<el-select v-model.trim="form.GRID_ID"
placeholder="请选择网格"
size="small"
clearable
class="resi-cell-select"
@change="handleChangeGrid">
<el-option v-for="item in optionsG"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<!-- </div> -->
</el-form-item>
</el-col>
<el-col :span="18">
<el-form-item label="所属房屋" required>
<div class="resi-cell-value">
<div class="resi-cell-col">
<el-form-item prop="VILLAGE_ID">
<el-select v-model.trim="form.VILLAGE_ID" placeholder="请选择小区" size="small"
clearable class="resi-cell-select" @change="handleChangeV"
>
<el-option
v-for="item in optionsV"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="BUILD_ID">
<el-select v-model.trim="form.BUILD_ID" placeholder="请选择楼号" size="small"
clearable class="resi-cell-select resi-cell-select-middle" @change="handleChangeB"
>
<el-option
v-for="item in optionsB"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="UNIT_ID">
<el-select v-model.trim="form.UNIT_ID" placeholder="请选择单元" size="small"
clearable class="resi-cell-select resi-cell-select-middle" @change="handleChangeD"
>
<el-option
v-for="item in optionsD"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="HOME_ID">
<el-select v-model.trim="form.HOME_ID" placeholder="请选择房号" size="small"
clearable class="resi-cell-select resi-cell-select-middle"
@change="handleChangeH"
>
<el-option
v-for="item in optionsH"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
<!-- <el-col :span="6">
<el-form-item label="所属房屋"
required>
<div class="resi-cell-value">
<div class="resi-cell-col">
<el-form-item prop="VILLAGE_ID">
<el-select v-model.trim="form.VILLAGE_ID"
placeholder="请选择小区"
size="small"
clearable
class="resi-cell-select"
@change="handleChangeV">
<el-option v-for="item in optionsV"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="BUILD_ID">
<el-select v-model.trim="form.BUILD_ID"
placeholder="请选择楼号"
size="small"
clearable
class="resi-cell-select resi-cell-select-middle"
@change="handleChangeB">
<el-option v-for="item in optionsB"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="UNIT_ID">
<el-select v-model.trim="form.UNIT_ID"
placeholder="请选择单元"
size="small"
clearable
class="resi-cell-select resi-cell-select-middle"
@change="handleChangeD">
<el-option v-for="item in optionsD"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item prop="HOME_ID">
<el-select v-model.trim="form.HOME_ID"
placeholder="请选择房号"
size="small"
clearable
class="resi-cell-select resi-cell-select-middle"
@change="handleChangeH">
<el-option v-for="item in optionsH"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
<!-- <el-col :span="6">
</el-col>
<el-col :span="6">
@ -97,41 +121,42 @@
<el-col :span="6">
</el-col> -->
</div>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row v-for="(item, index) in sliceList(formList, columns)" :key="index" class="resi-row">
<!-- <el-col v-for="n in item" :key="n.id" :span="n.itemType === 'textarea'&&24 || (24/columns)"> -->
<el-col v-for="n in item" :key="n.itemId" :span="item.length === 1 ? 24 : (24/columns)"
:style="n.itemType === 'divider' && 'display: none;'">
<el-form-item :prop="n.columnName" :label="n.label">
<!-- <div class="resi-cell"> -->
<!-- <div class="resi-cell-label">{{n.label}}</div> -->
<div class="resi-cell-value">
<template v-if="n.itemType === 'input' || n.itemType === 'textarea'">
<el-input
v-if="n.validType"
v-model.trim="form[n.columnName]"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入内容"
@blur="handleValidBlur(n)"
>
</el-input>
<el-input
v-else
v-model.trim="form[n.columnName]"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入内容"
>
</el-input>
</template>
<!-- <template v-if="n.itemType === 'textarea'">
<el-row v-for="(item, index) in sliceList(formList, columns)"
:key="index"
class="resi-row">
<!-- <el-col v-for="n in item" :key="n.id" :span="n.itemType === 'textarea'&&24 || (24/columns)"> -->
<el-col v-for="n in item"
:key="n.itemId"
:span="item.length === 1 ? 24 : (24/columns)"
:style="n.itemType === 'divider' && 'display: none;'">
<el-form-item :prop="n.columnName"
:label="n.label">
<!-- <div class="resi-cell"> -->
<!-- <div class="resi-cell-label">{{n.label}}</div> -->
<div class="resi-cell-value">
<template v-if="n.itemType === 'input' || n.itemType === 'textarea'">
<el-input v-if="n.validType"
v-model.trim="form[n.columnName]"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入内容"
@blur="handleValidBlur(n)">
</el-input>
<el-input v-else
v-model.trim="form[n.columnName]"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入内容">
</el-input>
</template>
<!-- <template v-if="n.itemType === 'textarea'">
<el-input
v-model.trim="form[n.columnName]"
class="resi-cell-textarea"
@ -142,88 +167,90 @@
>
</el-input>
</template> -->
<el-date-picker
v-else-if="n.itemType === 'datepicker'"
v-model.trim="form[n.columnName]"
class="resi-cell-input"
type="date"
size="small"
clearable
placeholder="选择日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd">
</el-date-picker>
<el-date-picker
v-else-if="n.itemType === 'daterange'"
v-model.trim="form[n.columnName]"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
<el-time-picker
v-else-if="n.itemType === 'timepicker'"
v-model.trim="form[n.columnName]"
placeholder="任意时间点">
</el-time-picker>
<el-time-picker
v-else-if="n.itemType === 'timerange'"
v-model.trim="form[n.columnName]"
is-range
class="resi-cell-range"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="选择时间范围">
</el-time-picker>
<el-select v-else-if="n.itemType === 'select'" v-model.trim="form[n.columnName]"
:multiple="n.multiSelect"
placeholder="请选择" size="small" clearable class="resi-cell-select">
<el-option
v-for="item in n.options || options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<!-- <el-cascader
<el-date-picker v-else-if="n.itemType === 'datepicker'"
v-model.trim="form[n.columnName]"
class="resi-cell-input"
type="date"
size="small"
clearable
placeholder="选择日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd">
</el-date-picker>
<el-date-picker v-else-if="n.itemType === 'daterange'"
v-model.trim="form[n.columnName]"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd">
</el-date-picker>
<el-time-picker v-else-if="n.itemType === 'timepicker'"
v-model.trim="form[n.columnName]"
placeholder="任意时间点">
</el-time-picker>
<el-time-picker v-else-if="n.itemType === 'timerange'"
v-model.trim="form[n.columnName]"
is-range
class="resi-cell-range"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="选择时间范围">
</el-time-picker>
<el-select v-else-if="n.itemType === 'select'"
v-model.trim="form[n.columnName]"
:multiple="n.multiSelect"
placeholder="请选择"
size="small"
clearable
class="resi-cell-select">
<el-option v-for="item in n.options || options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<!-- <el-cascader
:options="options"
:props="{ checkStrictly: true }"
clearable></el-cascader> -->
<el-cascader
v-else-if="n.itemType === 'cascader'"
v-model.trim="form[n.columnName]"
:options="n.options"
:props="{ emitPath: false }"
clearable
size="small"
class="resi-cell-select">
</el-cascader>
<template v-else-if="n.itemType === 'radio'">
<el-radio v-for="ns in n.options" :key="ns.value" v-model.trim="form[n.columnName]"
:label="ns.value" @change="hanldeChangeRadio(n)">
{{ ns.label }}
</el-radio>
<!-- <el-radio v-model.trim="form[n.columnName]" label="1">备选项</el-radio> -->
</template>
<template v-else-if="n.itemType === 'checkbox'">
<el-checkbox-group v-model.trim="form[n.columnName]">
<template v-for="ns in n.options">
<el-checkbox v-if="ns.value != 'dangyuanzhongxinhu'" :key="ns.value" :label="ns.value">
{{ns.label}}
</el-checkbox>
</template>
<!-- <el-checkbox label="n.la"></el-checkbox> -->
</el-checkbox-group>
<el-cascader v-else-if="n.itemType === 'cascader'"
v-model.trim="form[n.columnName]"
:options="n.options"
:props="{ emitPath: false }"
clearable
size="small"
class="resi-cell-select">
</el-cascader>
<template v-else-if="n.itemType === 'radio'">
<el-radio v-for="ns in n.options"
:key="ns.value"
v-model.trim="form[n.columnName]"
:label="ns.value"
@change="hanldeChangeRadio(n)">
{{ ns.label }}
</el-radio>
<!-- <el-radio v-model.trim="form[n.columnName]" label="1">备选项</el-radio> -->
</template>
<template v-else-if="n.itemType === 'checkbox'">
<el-checkbox-group v-model.trim="form[n.columnName]">
<template v-for="ns in n.options">
<el-checkbox v-if="ns.value != 'dangyuanzhongxinhu'"
:key="ns.value"
:label="ns.value">
{{ns.label}}
</el-checkbox>
</template>
</div>
<!-- </div> -->
</el-form-item>
</el-col>
<!-- <el-checkbox label="n.la"></el-checkbox> -->
</el-checkbox-group>
</template>
</div>
<!-- </div> -->
</el-form-item>
</el-col>
</el-row>
</template>
</el-form>
@ -231,7 +258,7 @@
</template>
<script>
import { isCard, isMobile } from '@/utils/validate'
import { isCard, isPassport, isMobile } from '@/utils/validate'
import { computedCard } from '@/utils/index'
export default {
@ -286,10 +313,10 @@ export default {
}
let checkIdCard = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入身份证'))
callback(new Error('请输入证件号码'))
} else {
if (!isCard(value)) {
callback(new Error('身份证号格式不正确'))
if (!isCard(value) && !isPassport(value)) {
callback(new Error('证格式不正确'))
}
callback()
}
@ -311,13 +338,13 @@ export default {
_form[item.columnName] = obj[item.columnName]
item.isChange = true
}
} else {
if (item.multiSelect) _form[item.columnName] = []
else if (item.itemType == 'radio' && item.defaultValue == '0') _form[item.columnName] = item.defaultValue
else _form[item.columnName] = ''
}
// if (item.optionSourceType === 'remote') {
// this.getOptionsLists(item.optionSourceValue).then(res => {
@ -351,7 +378,7 @@ export default {
let form = initForm(this.formInfo, this.formList)
let rules = initRules(this.formList)
console.log('rulessss', rules)
let tempFormList = [ ...this.formList ].map(item => {
let tempFormList = [...this.formList].map(item => {
const isChange = (item.itemType == 'radio' && item.defaultValue == '0') && true
return {
...item,
@ -506,27 +533,30 @@ export default {
// }
})
},
hanldeChangeRadio(n) {
hanldeChangeRadio (n) {
this.$emit('changeradio', n)
},
handleValidBlur(n) {
handleValidBlur (n) {
console.log('n---', n)
if (n.columnName !== 'ID_CARD') return
if (!isCard(this.form.ID_CARD)) return
if (!isCard(this.form.ID_CARD) && !isPassport(this.form.ID_CARD)) return
const { user } = this.$store.state
let huji = '', i = 0
if (user.areaCodePath && user.areaCodePath.length > 0) {
i = user.areaCodePath.length - 1
huji = user.areaCodePath[i].length > 6 ? user.areaCodePath[i].substr(0, 6) : user.areaCodePath[i]
}
const _id = this.form.ID_CARD.substr(0, 6)
const { sex, birth, age } = computedCard(this.form.ID_CARD)
this.form.BIRTHDAY = birth
this.form.GENDER = sex == 1 ? '1' : '2'
this.form.IS_OLD_PEOPLE = age >= 60 ? '1' : '0'
this.form.IS_BDHJ = huji == _id ? '1' : ''
this.validateIdcard(this.form.ID_CARD)
console.log('age-----', age, _id)
if (this.form.ID_CARD.length === 18 || this.form.ID_CARD.length === 15) {
const _id = this.form.ID_CARD.substr(0, 6)
const { sex, birth, age } = computedCard(this.form.ID_CARD)
this.form.BIRTHDAY = birth
this.form.GENDER = sex == 1 ? '1' : '2'
this.form.IS_OLD_PEOPLE = age >= 60 ? '1' : '0'
this.form.IS_BDHJ = huji == _id ? '1' : ''
this.validateIdcard(this.form.ID_CARD)
console.log('age-----', age, _id)
}
},
handleOpenSearch () {
this.openSearch = !this.openSearch
@ -551,7 +581,7 @@ export default {
if (this.isParty) {
this.$emit('changegroup', { value, partyInfo: this.partyInfo, childGroup: item.childGroup })
} else this.$emit('changegroup', { value, childGroup: item.childGroup })
}
})
},
@ -589,9 +619,9 @@ export default {
this.getHouseList()
},
//
handleChangeH(val){
handleChangeH (val) {
let item = this.optionsH.find(item => item.value === val);
if(item && item.type == '1'){
if (item && item.type == '1') {
this.form.IS_TENANT = '1'
console.log('item-----', item)
} else this.form.IS_TENANT = '0'
@ -619,7 +649,7 @@ export default {
let arr = []
this.addList.forEach(item => {
// console.log('handlerMuscForm----000', this.$refs['baseForms' + item][0].handleForm())
arr.push([ ...this.$refs['baseForms' + item][0].handleForm() ])
arr.push([...this.$refs['baseForms' + item][0].handleForm()])
})
// console.log('handlerMuscForm----111', arr)
let arr2 = arr.reduce(function (a, b) { return a.concat(b) })
@ -698,19 +728,19 @@ export default {
return this.$message.error(res.msg)
} else {
console.log('获取查询详情成功', res.data)
if (res.data.isVolunteer == '1') this.form.IS_VOLUNTEER = '1'
else this.form.IS_VOLUNTEER = '0'
if (res.data.isPartyMember == '1') {
this.form.IS_PARTY = '1'
this.isParty = true
this.isParty = true
this.partyInfo = res.data.detail.ic_party_member
} else this.form.IS_PARTY = '0'
// if (type == 'vol') {
// this.isParty = false
// } else if (res.data.isPartyMember == '1' && val == 'party') {
// this.isParty = true
// }
@ -822,12 +852,13 @@ export default {
<style lang="scss" scoped>
.resi-form {
:deep .el-date-editor.el-input, .el-date-editor.el-input__inner {
:deep .el-date-editor.el-input,
.el-date-editor.el-input__inner {
width: 100% !important;
}
}
.resi-cell-value .resi-cell-input {
width: 190px;
width: 190px;
}
.resi-cell-value {
:deep .el-col {
@ -839,33 +870,31 @@ export default {
}
</style>
<style lang="scss" scoped>
.resi-form .resi-row {
margin-bottom: 0;
}
.resi-cell-value .resi-cell-textarea {
width: 300px;
}
.resi-cell-col {
display: flex;
.el-form-item {
margin-right: 10px;
}
}
.resi-cell-select {
width: 190px;
box-sizing: border-box;
.resi-cell-value .resi-cell-textarea {
width: 300px;
}
.resi-cell-col {
display: flex;
.el-form-item {
margin-right: 10px;
&-middle {
width: 130px;
}
&-small {
width: 88px;
}
}
.resi-cell-select:last-child {
margin-right: 0;
}
.resi-cell-select {
width: 190px;
box-sizing: border-box;
margin-right: 10px;
&-middle {
width: 130px;
}
&-small {
width: 88px;
}
}
.resi-cell-select:last-child {
margin-right: 0;
}
</style>

4
src/views/components/resiSearch.vue

@ -48,6 +48,7 @@
v-model.trim="form.VILLAGE_ID"
placeholder="请选择小区"
size="small"
filterable
clearable
class="resi-cell-select"
@clear="handleClearVillage"
@ -65,6 +66,7 @@
v-model.trim="form.BUILD_ID"
placeholder="楼号"
size="small"
filterable
clearable
style="width: 120px;"
class="resi-cell-select"
@ -85,6 +87,7 @@
:disabled="changeBDisabled"
placeholder="单元"
size="small"
filterable
clearable
style="width: 120px;"
class="resi-cell-select"
@ -104,6 +107,7 @@
:disabled="changeDDisabled"
placeholder="房号"
size="small"
filterable
clearable
style="width: 120px;"
class="resi-cell-select"

14
src/views/modules/base/collect.vue

@ -141,7 +141,7 @@
prop="memberIdNum"
width="180"
align="center"
label="成员身份证"
label="成员证件号"
:show-overflow-tooltip="true"
/>
<el-table-column
@ -209,9 +209,9 @@
label="人脸"
>
<template slot-scope="scope">
<el-image
<el-image
style="max-height: 50px; max-width: 50px;"
:src="scope.row.faceImg"
:src="scope.row.faceImg"
:preview-src-list="[scope.row.faceImg]">
<div slot="error" class="image-slot">
<!-- <i class="el-icon-picture-outline"></i> -->
@ -349,7 +349,7 @@
prop="memberIdNum"
width="180"
align="center"
label="成员身份证"
label="成员证件号"
:show-overflow-tooltip="true"
/>
<el-table-column
@ -406,9 +406,9 @@
label="人脸"
>
<template slot-scope="scope">
<el-image
<el-image
style="max-height: 50px; max-width: 50px;"
:src="scope.row.faceImg"
:src="scope.row.faceImg"
:preview-src-list="[scope.row.faceImg]">
<div slot="error" class="image-slot">
<!-- <i class="el-icon-picture-outline"></i> -->
@ -773,7 +773,7 @@ export default {
// this.fileJurisdiction(params)
}).catch(() => {})
}).catch(() => {
//
//
})
} else {
this.$http.post('/epmetuser/icresicollect/collectCheck', params).then(({ data: res }) => {

33
src/views/modules/base/community/communityTable.vue

@ -8,6 +8,12 @@
size="small"
:loading="yhymLoading"
@click="handleYhymInfo">补全一房一码信息</el-button>
<el-button v-if="showYhymInfo"
style=""
class="diy-button--export"
size="small"
:loading="xcxmLoading"
@click="createBatchNeiQrUrl">补全小程序小区码</el-button>
<el-button style=""
class="diy-button--add"
size="small"
@ -247,6 +253,7 @@ export default {
roleList: [],//
showYhymInfo: false, //
yhymLoading: false,
xcxmLoading: false,
agencyObj: {},//
@ -443,7 +450,33 @@ export default {
this.$message.error(msg)
}
},
//
async createBatchNeiQrUrl () {
this.xcxmLoading = true
const url = "/gov/org/neighborhood/createBatchNeiQrUrl"
let params = {}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.xcxmLoading = false
this.$message({
type: "success",
message: "批量生成成功"
});
} else if (code > 8000) {
this.xcxmLoading = false
this.$message({
showClose: true,
message: msg,
duration: 0
})
} else {
this.xcxmLoading = false
this.$message.error(msg)
}
},
async handleEdit (row) {
this.formTitle = '修改小区'
this.formShow = true

34
src/views/modules/base/epidemic/travelForm.vue

@ -83,18 +83,18 @@
v-model="formData.mobile">
</el-input>
</el-form-item>
<el-form-item label="身份证号"
<el-form-item label="证号"
prop="idCard"
label-width="150px"
style="display: block">
<el-input class="item_width_2"
placeholder="请输入身份证号"
placeholder="请输入身份证号或证件号"
clearable
:disabled="isFromResi"
v-model="formData.idCard">
</el-input>
</el-form-item>
<el-form-item
<el-form-item
label="现居地"
prop="presentAddress"
style="display: block"
@ -111,7 +111,7 @@
clearable
:disabled="isFromResi"
v-model="formData.presentAddress" />
<el-cascader v-else ref="nowArea" class="item_width_2" :props="areaProps"
<el-cascader v-else ref="nowArea" class="item_width_2" :props="areaProps"
v-model="nowAllCode" clearable @change="handleNowArea"></el-cascader>
</template>
</el-form-item>
@ -245,10 +245,10 @@ export default {
}
let checkIdCard = (rule, value, callback) => {
if (value === '') {
callback(new Error('身份证不能为空'))
callback(new Error('证件号不能为空'))
} else {
if (!isCard(value)) {
callback(new Error('身份证号格式不正确'))
callback(new Error('证号格式不正确'))
}
callback()
}
@ -273,9 +273,9 @@ export default {
icNatId: '',
formData: {
gridId: '',
agencyId: '',//Id
userId: '',//idicResiUserId
userType: 'icresi',//resi;icresi;import;synchro
agencyId: '',//Id
userId: '',//idicResiUserId
userType: 'icresi',//resi;icresi;import;synchro
name: '',
idCard: '',
mobile: '',
@ -358,12 +358,12 @@ export default {
if (type != 'add') {
// this.formData = { ...row, channel: [], content: '' }
await this.loadFormData(row.id)
} else {
const { user } = this.$store.state
this.nowAllCode = user.areaCodePath
}
}
// this.$refs['ref_form'].resetFields();
console.log('formtype', type)
@ -386,7 +386,7 @@ export default {
const { user } = this.$store.state
this.nowAllCode = user.areaCodePath
}
},
handleSourceArea(val) {
@ -403,7 +403,7 @@ export default {
this.formData.sourceAddress = ''
this.formData.sourceAddressPathCode = ''
}
},
handleNowArea(val) {
console.log('val-----', val)
@ -469,7 +469,7 @@ export default {
if (code === 0) {
const nodes = data.map(item => ({
value: item.areaCode, //
value: item.areaCode, //
label: item.areaName,
code: item.areaCode,
level: item.level,
@ -517,7 +517,7 @@ export default {
console.log('deda-------', data)
this.formData = { ...data, channel: [], content: '' }
this.sourceAllCode = data.sourceAddressPathCode && data.sourceAddressPathCode.split(',')
if (data.userType == 'icresi') this.isFromResi = true
else this.nowAllCode = data.presentAddressPathCode && data.presentAddressPathCode.split(',')
} else {
@ -566,7 +566,7 @@ export default {
return false;
}
});
},

8
src/views/modules/base/huji/chusheng/cpts/edit.vue

@ -170,7 +170,7 @@
</el-form-item>
<el-form-item
label="身份证号"
label="证号"
prop="idCard"
label-width="150px"
style="display: block"
@ -178,7 +178,7 @@
<el-input
class="item_width_1"
maxlength="30"
placeholder="请输入身份证号"
placeholder="请输入身份证号或护照号"
v-model="fmData.idCard"
@blur="handleBlurId"
:disabled="formType === 'edit'"
@ -444,10 +444,10 @@ export default {
dataRule() {
let checkIdCard = (rule, value, callback) => {
if (value === "") {
callback(new Error("请输入身份证"));
callback(new Error("请输入证件号"));
} else {
if (!isCard(value)) {
callback(new Error("身份证号格式不正确"));
callback(new Error("证号格式不正确"));
}
callback();
}

6
src/views/modules/base/huji/chusheng/index.vue

@ -131,13 +131,13 @@
</el-input>
</el-form-item>
<el-form-item label="身份证号" prop="idCard">
<el-form-item label="证号" prop="idCard">
<el-input
v-model="fmData.idCard"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入"
placeholder="请输入身份证号或证件号"
>
</el-input>
</el-form-item>
@ -282,7 +282,7 @@
<el-table-column
prop="idCard"
align="center"
label="身份证号"
label="证号"
:show-overflow-tooltip="true"
>
</el-table-column>

36
src/views/modules/base/huji/immigration/edit.vue

@ -153,7 +153,7 @@
>补充居民信息</el-checkbox
>
</template>
<el-checkbox
v-else
v-model="fmData.isCheck"
@ -183,14 +183,14 @@
</el-form-item>
<el-form-item
label="身份证号"
label="证号"
prop="idCard"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入身份证号"
placeholder="请输入身份证号或护照号"
v-model="fmData.idCard"
:disabled="formType === 'edit'"
@blur="handleBlurId"
@ -282,9 +282,9 @@
disabled
v-model="fmData.sourceAddress"
/>
<el-cascader v-else ref="nowArea" class="item_width_1" :props="areaProps"
<el-cascader v-else ref="nowArea" class="item_width_1" :props="areaProps"
v-model="nowAllCode" clearable @change="handleNowArea"></el-cascader>
</el-form-item>
<el-form-item
label="详细地址"
@ -439,10 +439,10 @@ export default {
dataRule() {
let checkIdCard = (rule, value, callback) => {
if (value === '') {
callback(new Error('请输入身份证'))
callback(new Error('请输入证件号'))
} else {
if (!isCard(value)) {
callback(new Error('身份证号格式不正确'))
callback(new Error('证号格式不正确'))
}
callback()
}
@ -457,7 +457,7 @@ export default {
],
name: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
idCard: [
{ required: true, message: '身份证号不能为空', trigger: 'blur' },
{ required: true, message: '证号不能为空', trigger: 'blur' },
{ required: true, validator: checkIdCard, trigger: 'blur' }
],
inTime: [
@ -491,7 +491,7 @@ export default {
async mounted() {
console.log('mounted-----我执行了')
await this.getGridList()
this.getRelationList()
},
@ -616,7 +616,7 @@ export default {
if (code === 0) {
const nodes = data.map(item => ({
value: item.areaCode, //
value: item.areaCode, //
label: item.areaName,
code: item.areaCode,
level: item.level,
@ -748,7 +748,7 @@ export default {
return this.$message.error(res.msg)
} else {
console.log('获取户主信息成功', res.data)
if (res.data) {
const { name } = res.data
this.fmData.householderName = name
@ -767,7 +767,7 @@ export default {
this.$refs.ref_form.resetFields()
this.formType = type
if (id) {
await this.getDatail(id)
}
@ -780,7 +780,7 @@ export default {
},
async getDatail(moveInId) {
let url = '/epmetuser/icMoveIn/detail'
const params = {
moveInId: moveInId || ''
}
@ -793,7 +793,7 @@ export default {
},
async handleComfirm() {
// setTimeout(() => {
// this.btnDisable = false
// }, 10000)
@ -821,21 +821,21 @@ export default {
this.fmData.isReplace = '1'
this.submit()
}).catch(() => {
this.fmData.isReplace = '0'
this.submit()
this.fmData.isReplace = '0'
this.submit()
});
return
}
}
}
this.submit()
}
})
},
async submit() {
let url = ''
if (this.formType === 'add') {
url = '/epmetuser/icMoveIn/add'

14
src/views/modules/base/huji/immigration/index.vue

@ -134,7 +134,7 @@
</el-input>
</el-form-item>
<el-form-item label="身份证号" prop="idCard">
<el-form-item label="证号" prop="idCard">
<el-input
v-model="fmData.idCard"
class="resi-cell-input"
@ -291,7 +291,7 @@
prop="idCard"
align="center"
min-width="160"
label="身份证号"
label="证号"
>
</el-table-column>
@ -491,9 +491,9 @@ export default {
const _h = this.clientHeight - this.searchH
console.log('computed-searchH---_h', _h)
return this.$store.state.inIframe ? h : _h
},
changeVDisabled() {
return !this.fmData.villageId
},
@ -519,7 +519,7 @@ export default {
const h = this.clientHeight - this.searchH + this.iframeHeight
const _h = this.clientHeight - this.searchH
console.log('computed-searchH---_h', _h)
this.$nextTick(() => {
this.tableHeight = this.$store.state.inIframe ? h : _h
})
@ -831,13 +831,13 @@ export default {
console.log('res----dddd', res)
// this.download(res.data, title + '.xls')
// this.getTemplateList()
// this.exportLoading = false
// if (res.data.code && res.data.code == 9999) {
// return this.$message.error(res.data.msg)
// }
this.formatData(res)
})
.catch(err => {
console.log('err', err)

12
src/views/modules/base/visitor.vue

@ -10,13 +10,13 @@
<el-form-item label="填写时间" prop="startTime">
<el-date-picker
v-model="timeRange"
type="daterange"
type="datetimerange"
clearable
size="small"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-form-item>
@ -67,7 +67,7 @@
<el-table-column
prop="idCard"
width="240"
label="身份证号"
label="证号"
align="center"
:show-overflow-tooltip="true"
/>
@ -85,9 +85,9 @@
label="人脸"
>
<template slot-scope="scope">
<el-image
<el-image
style="max-height: 50px; max-width: 50px;"
:src="scope.row.faceImg"
:src="scope.row.faceImg"
:preview-src-list="[scope.row.faceImg]">
<div slot="error" class="image-slot">
<!-- <i class="el-icon-picture-outline"></i> -->
@ -155,7 +155,7 @@ export default {
mounted() {
this.getTableData()
},
methods: {
methods: {
handleSizeChange(val) {
console.log(`每页 ${val}`)
this.pageSize = val

75
src/views/modules/communityParty/regionalParty/activitysForm.vue

@ -234,6 +234,22 @@ var geocoder // 新建一个正逆地址解析类
let loading //
export default {
data () {
let initFormData = () => {
let _form = {
unitName: '',
serviceMatterList: [],
type: '',
contact: '',
contactMobile: '',
memberCount: 0,
remark: '', //500
address: '', //
longitude: this.$store.state.user.longitude, //
latitude: this.$store.state.user.latitude//
}
return _form
}
return {
formType: 'add', // addeditdetail
@ -241,22 +257,7 @@ export default {
keyWords: '',
activityId: '',
formData: {
gridId: '',
serviceMatter: '',//
serviceMatterList: [],
unitId: '',//ID
unitIdList: [],
title: '',//
target: '',//
content: '',//
activityTime: '',//
peopleCount: 0,//
result: '', //
address: '', //
longitude: 36.0722275, //
latitude: 120.38945519 //
},
formData: initFormData(),
serviceList: [],
// gridList: [],
agencyId: ''
@ -274,23 +275,31 @@ export default {
async initForm (type, activityId) {
this.startLoading()
this.$refs.ref_form.resetFields();
// const { user } = this.$store.state
// this.agencyId = user.agencyId
// await this.loadGrid()
//
await this.loadService()
let { latitude, longitude } = this.$store.state.user;
if (!latitude || latitude == "" || latitude == "0") {
latitude = 39.9088810666821;
longitude = 116.39743841556731;
}
this.formData.latitude = latitude
this.formData.longitude = longitude
this.formType = type
if (activityId) {
this.activityId = activityId
this.formData.id = activityId
await this.loadFormData()
} else {
map.setCenter(new TMap.LatLng(36.0722275, 120.38945519))
this.setMarker(36.0722275, 120.38945519)
}
map.setCenter(new TMap.LatLng(this.formData.latitude, this.formData.longitude))
this.setMarker(this.formData.latitude, this.formData.longitude)
this.endLoading()
},
@ -353,8 +362,8 @@ export default {
}
console.log(this.formData.content)
map.setCenter(new TMap.LatLng(parseFloat(this.formData.latitude), parseFloat(this.formData.longitude)))
this.setMarker(this.formData.latitude, this.formData.longitude)
// map.setCenter(new TMap.LatLng(parseFloat(this.formData.latitude), parseFloat(this.formData.longitude)))
// this.setMarker(this.formData.latitude, this.formData.longitude)
} else {
this.$message.error(msg)
}
@ -519,20 +528,16 @@ export default {
this.activityId = ''
this.keyWords = ''
this.formData = {
gridId: '',
serviceMatter: '',//
unitName: '',
serviceMatterList: [],
unitId: '',//ID
unitIdList: [],
title: '',//
target: '',//
content: '',//
activityTime: '',//
peopleCount: 0,//
result: '', //
type: '',
contact: '',
contactMobile: '',
memberCount: 0,
remark: '', //500
address: '', //
longitude: 36.0722275, //
latitude: 120.38945519 //
longitude: this.$store.state.user.longitude, //
latitude: this.$store.state.user.latitude//
}
},
//

19
src/views/modules/communityParty/regionalParty/units.vue

@ -477,9 +477,10 @@ export default {
},
handleDetail (row) {
this.detailShow = true
this.formTitle = '详情'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_detail.initForm(row)
this.$refs.ref_form.initForm('detail', row.id)
})
},
@ -501,7 +502,7 @@ export default {
handleAdd () {
this.formTitle = '新增'
this.formShow = 'edit'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_form.initForm('add', null)
})
@ -574,12 +575,12 @@ export default {
if (code === 0) {
if (data.type) {
this.$message({
type: "success",
message: data.msg || "同步成功"
});
this.loadTable()
this.$message({
type: "success",
message: data.msg || "同步成功"
});
this.loadTable()
} else {
this.$message.error(data.msg)
}

3
src/views/modules/communityParty/regionalParty/unitsDetail.vue

@ -106,7 +106,7 @@ export default {
}
},
components: {},
mounted () {
created () {
this.initMap()
},
@ -118,6 +118,7 @@ export default {
},
async initForm (row) {
this.startLoading()
this.formData = { ...row }
map.setCenter(new TMap.LatLng(this.formData.latitude, this.formData.longitude))

53
src/views/modules/communityParty/regionalParty/unitsForm.vue

@ -173,14 +173,8 @@ var geocoder // 新建一个正逆地址解析类
let loading //
export default {
data () {
return {
formType: 'add', // addeditdetail
btnDisable: false,
unitId: '',
keyWords: '',
formData: {
let initFormData = () => {
let _form = {
unitName: '',
serviceMatterList: [],
type: '',
@ -189,15 +183,27 @@ export default {
memberCount: 0,
remark: '', //500
address: '', //
longitude: 36.0722275, //
latitude: 120.38945519 //
},
longitude: this.$store.state.user.longitude, //
latitude: this.$store.state.user.latitude//
}
return _form
}
return {
formType: 'add', // addeditdetail
btnDisable: false,
unitId: '',
keyWords: '',
formData: initFormData(),
serviceList: [],//list
}
},
components: {},
mounted () {
this.initMap()
},
@ -210,16 +216,27 @@ export default {
//
await this.loadService()
let { latitude, longitude } = this.$store.state.user;
if (!latitude || latitude == "" || latitude == "0") {
latitude = 39.9088810666821;
longitude = 116.39743841556731;
}
this.formData.latitude = latitude
this.formData.longitude = longitude
this.formType = type
if (unitId) {
this.unitId = unitId
this.formData.id = unitId
await this.loadFormData()
} else {
map.setCenter(new TMap.LatLng(36.0722275, 120.38945519))
this.setMarker(36.0722275, 120.38945519)
}
map.setCenter(new TMap.LatLng(this.formData.latitude, this.formData.longitude))
this.setMarker(this.formData.latitude, this.formData.longitude)
this.endLoading()
},
@ -259,8 +276,8 @@ export default {
}
this.formData = { ...data }
map.setCenter(new TMap.LatLng(this.formData.latitude, this.formData.longitude))
this.setMarker(this.formData.latitude, this.formData.longitude)
// map.setCenter(new TMap.LatLng(this.formData.latitude, this.formData.longitude))
// this.setMarker(this.formData.latitude, this.formData.longitude)
} else {
this.$message.error(msg)
}
@ -329,7 +346,7 @@ export default {
// init
initMap () {
//
var center = new window.TMap.LatLng(36.0722275, 120.38945519)
var center = new window.TMap.LatLng(this.formData.latitude, this.formData.longitude)
// map TMap.Map()
map = new window.TMap.Map(document.getElementById('app'), {
center: center, //
@ -450,8 +467,8 @@ export default {
memberCount: 0,
remark: '', //500
address: '', //
longitude: '', //
latitude: '' //
longitude: this.$store.state.user.longitude, //
latitude: this.$store.state.user.latitude//
}
},
//

359
src/views/modules/communityParty/stas/index.vue

@ -0,0 +1,359 @@
<template>
<div class="div_main">
<div class="div_search">
<el-form :inline="true"
:model="form"
ref="ref_searchform"
:label-width="'100px'">
<div>
<el-form-item prop="mySelectOrg" label-width="130px" label="参加活动党组织">
<el-cascader
class="list_item_width_1"
v-model="joinOrgIds"
size="small"
:options="orgList"
placeholder="请选择党组织"
:props="{
checkStrictly: true,
label: 'partyOrgName',
value: 'id',
children: 'children'
}"
@change="handleChangeOrg"
clearable/>
</el-form-item>
<el-form-item label="活动开始时间"
prop="serviceTimeArea">
<el-date-picker v-model="serviceTimeArea"
clearable
type="daterange"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-button style="margin-left:10px"
class="diy-button--search"
size="small"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
class="diy-button--reset"
size="small"
@click="resetSearch">重置</el-button>
</div>
</el-form>
</div>
<div class="div_table">
<div class="div_btn">
<el-button style="margin-left:10px"
class="diy-button--reset"
size="small"
@click="handleExport">导出</el-button>
</div>
<el-table class="table"
:data="tableData"
border
:height="tableHeight"
v-loading="tableLoading"
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
style="width: 100%">
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="joinOrgName"
header-align="center"
align="center"
label="参加活动党组织"
min-width="100">
</el-table-column>
<el-table-column prop="dydhNum"
header-align="center"
align="center"
label="支部党员大会(次)"
min-width="80">
</el-table-column>
<el-table-column prop="wyhNum"
header-align="center"
align="center"
label="支部委员会(次)"
show-overflow-tooltip
max-width="100">
</el-table-column>
<el-table-column prop="dxzhNum"
header-align="center"
show-overflow-tooltip
align="center"
label="党小组会(次)"
mix-width="80">
</el-table-column>
<el-table-column prop="dkNum"
header-align="center"
align="center"
show-overflow-tooltip
label="党课(次)"
mix-width="80">
</el-table-column>
<el-table-column prop="ztdrNum"
header-align="center"
align="center"
show-overflow-tooltip
label="主题党日(次)"
width="100">
</el-table-column>
<el-table-column prop="wmfwNum"
header-align="center"
align="center"
show-overflow-tooltip
label="为民服务活动(次)"
width="130">
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
let loading //
export default {
data () {
return {
form: {
joinOrgId: '',
joinOrgType: '',
startTime: '',
endTime: ''
},
tableData: [],
orgList: [],
serviceTimeArea: '',
partyOrg: {
partyOrgType: '',
id: ''
},
joinOrgIds: [],
tableLoading: false,
agencyId: ''
}
},
components: {
},
async created () {
await this.getOrgList()
await this.handleSearch()
},
async mounted () {
const { user } = this.$store.state
this.agencyId = user.agencyId
},
methods: {
handleSearch () {
this.loadTable()
},
handleChangeOrg () {
if (this.joinOrgIds.length > 0 && this.joinOrgIds) {
this.form.joinOrgId = this.joinOrgIds[this.joinOrgIds.length - 1]
} else {
this.form.joinOrgId = ''
}
},
getOrgList() {
return this.$http
.get('/resi/partymember/icPartyOrg/getSearchTreelist', {
params: { agencyId: localStorage.getItem('agencyId') }
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}else {
this.orgList = this.deepArrTOnull(res.data)
}
}).catch(() => {return this.$message.error("网络错误");})
},
deepArrTOnull(arr) {
let a = []
a = arr.map(item => {
return {
...item,
children: (item.children.length > 0 && this.deepArrTOnull(item.children) )|| null
}
})
return a
},
async loadTable () {
this.tableLoading = true
if (Array.isArray(this.serviceTimeArea) && this.serviceTimeArea.length > 0) {
this.form.startTime = this.serviceTimeArea[0];
this.form.endTime = this.serviceTimeArea[1];
}else {
this.form.startTime = '';
this.form.endTime = '';
}
if (this.form.joinOrgId === '' || this.form.joinOrgId === null || this.form.joinOrgId === undefined){
let a = this.orgList[0]
this.form.joinOrgId = a.id;
this.joinOrgIds = this.form.joinOrgId
}else {
if (Array.isArray(this.joinOrgIds)){
this.form.joinOrgId = this.joinOrgIds[this.joinOrgIds.length - 1];
}
}
const url = "/resi/partymember/icPartyAct/patryactstatis"
// const url = "http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/patryactstatis"
let params = {
...this.form
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.tableData = data
} else {
this.$message.error(msg)
}
this.tableLoading = false
},
//
resetSearch () {
this.form = {
joinOrgId: '',
joinOrgType: '',
startTime: '',
endTime: ''
}
this.serviceTimeArea = ''
this.joinOrgIds = []
this.partyOrg = {
id: '',
partyOrgType: ''
}
this.loadTable()
},
//
async handleExport () {
let title = '党建数据统计'
const url = "/resi/partymember/icPartyAct/export"
// const url = "http://yapi.elinkservice.cn/mock/245/resi/partymember/icPartyAct/export"
let params = {
...this.form
}
app.ajax.exportFilePost(
url,
params,
(data, rspMsg) => {
this.download(data, title + '.xls')
},
(rspMsg, data) => {
this.$message.error(rspMsg);
}
);
},
//
download (data, fileName) {
if (!data) {
return
}
var csvData = new Blob([data])
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(csvData, fileName);
}
// for Non-IE (chrome, firefox etc.)
else {
var a = document.createElement('a');
document.body.appendChild(a);
a.style = 'display: none';
var url = window.URL.createObjectURL(csvData);
a.href = url;
a.download = fileName;
a.click();
a.remove();
window.URL.revokeObjectURL(url);
}
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
if (loading) {
loading.close()
}
}
},
computed: {
tableHeight () {
return this.$store.state.inIframe ? this.clientHeight - 350 + this.iframeHeight : this.clientHeight - 350
},
...mapGetters(['clientHeight', 'iframeHeight'])
},
watch: {
},
props: {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/buttonstyle.scss";
@import "@/assets/scss/modules/management/list-main.scss";
.div_main {
width: 100%;
}
.div_search {
background: #ffffff;
border-radius: 4px;
padding: 30px 20px 5px;
box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1);
}
.item_width_1 {
width: 260px;
}
.item_width_2 {
width: 620px;
}
.div_table {
background: #ffffff;
box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1);
border-radius: 4px;
margin-top: 15px;
// padding: 23px 30px 10px;
.table {
margin-top: 20px;
}
}
.el-row {
/* margin-bottom: 20px; */
display: flex;
flex-wrap: wrap;
margin-top: 10px;
margin-right: 50px;
}
</style>

690
src/views/modules/communityService/fuwujilu/addForm.vue

@ -1,304 +1,229 @@
<template>
<div>
<div
class="dialog-h-content scroll-h"
:class="{ 'visiual-form': source === 'visiual' }"
>
<el-form
v-if="formType === 'add'"
ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
class="div_form"
>
<el-form-item
label="服务分类"
prop="serviceCategoryKey"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-select
v-model="formData.serviceCategoryKey"
class="item_width_1"
placeholder="请选择"
clearable
>
<el-option
v-for="item in categrayOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
<div class="dialog-h-content scroll-h"
:class="{ 'visiual-form': source === 'visiual' }">
<el-form v-if="formType === 'add'"
ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
class="div_form">
<el-form-item label="服务分类"
prop="serviceCategoryKey"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block">
<el-select v-model="formData.serviceCategoryKey"
class="item_width_1"
placeholder="请选择"
clearable>
<el-option v-for="item in categrayOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="服务名称"
prop="serviceName"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入服务名称"
v-model="formData.serviceName"
>
<el-form-item label="服务名称"
prop="serviceName"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入服务名称"
v-model="formData.serviceName">
</el-input>
</el-form-item>
<el-form-item
label="服务组织"
prop="serviceOrgId"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-select
v-model="formData.serviceOrgType"
class="input-width-small"
placeholder="请选择"
clearable
@change="handleServiceChange('add', $event)"
>
<el-option
v-for="item in serviceOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
<el-form-item label="服务组织"
prop="serviceOrgId"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block">
<el-select v-model="formData.serviceOrgType"
class="input-width-small"
placeholder="请选择"
clearable
@change="handleServiceChange('add', $event)">
<el-option v-for="item in serviceOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
-
<el-select
v-model="formData.serviceOrgId"
class="input-width-middle"
filterable
placeholder="请选择"
clearable
>
<el-option
v-for="item in serviceOptiondList"
:key="item.value"
:label="item.label"
:value="item.value"
>
<el-select v-model="formData.serviceOrgId"
class="input-width-middle"
filterable
placeholder="请选择"
clearable>
<el-option v-for="item in serviceOptiondList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="服务范围"
prop="objList"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-cascader
class="item_width_1"
ref="myCascader"
v-model="scopeIdArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
@change="handleChangeScope"
></el-cascader>
<el-form-item label="服务范围"
prop="objList"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block">
<el-cascader class="item_width_1"
ref="myCascader"
v-model="scopeIdArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
@change="handleChangeScope"></el-cascader>
</el-form-item>
<el-form-item
label="政策依据"
prop="policyId"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-select
v-model="formData.policyId"
class="input-width-small"
placeholder="请选择"
clearable
>
<el-option
v-for="item in policyList"
:key="item.policyId"
:label="item.title"
:value="item.policyId"
>
<el-form-item label="政策依据"
prop="policyId"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block">
<el-select v-model="formData.policyId"
class="input-width-small"
placeholder="请选择"
clearable>
<el-option v-for="item in policyList"
:key="item.policyId"
:label="item.title"
:value="item.policyId">
</el-option>
</el-select>
<el-button
style="margin-left: 10px"
type="primary"
size="small"
@click="handlePersonList"
>预览</el-button
>
<el-button style="margin-left: 10px"
type="primary"
size="small"
@click="handlePersonList">预览</el-button>
</el-form-item>
<el-form-item
label="经办人"
prop="principalName"
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入联系人姓名"
v-model="formData.principalName"
>
<el-form-item label="经办人"
prop="principalName"
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入联系人姓名"
v-model="formData.principalName">
</el-input>
</el-form-item>
<el-form-item
label="联系方式"
prop="principalContact"
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入联系人电话"
v-model="formData.principalContact"
>
<el-form-item label="联系方式"
prop="principalContact"
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入联系人电话"
v-model="formData.principalContact">
</el-input>
</el-form-item>
<el-form-item
label="服务时间"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="serviceTimeStart"
>
<el-date-picker
v-model="formData.serviceTimeStart"
:picker-options="startPickerOptions"
class="item_width_2"
style="width: 220px"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd"
placeholder="开始时间"
>
<el-form-item label="服务时间"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="serviceTimeStart">
<el-date-picker v-model="formData.serviceTimeStart"
:picker-options="startPickerOptions"
class="item_width_2"
style="width: 220px"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd"
placeholder="开始时间">
</el-date-picker>
<span class="data-tag"></span>
<el-date-picker
v-model="formData.serviceTimeEnd"
:picker-options="endPickerOptions"
class="item_width_2 data-tag"
style="width: 220px"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd"
placeholder="结束时间"
>
<el-date-picker v-model="formData.serviceTimeEnd"
:picker-options="endPickerOptions"
class="item_width_2 data-tag"
style="width: 220px"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd"
placeholder="结束时间">
</el-date-picker>
</el-form-item>
<el-form-item
label="备注"
prop="remark"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-input
class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入备注,不超过1000字"
v-model="formData.remark"
></el-input>
<el-form-item label="备注"
prop="remark"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入备注,不超过1000字"
v-model="formData.remark"></el-input>
</el-form-item>
<el-form-item
label="直接反馈"
prop="remark"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-checkbox
:label="'是'"
v-model="showFeedback"
@change="handleChangeFeedback"
></el-checkbox>
<el-form-item label="直接反馈"
prop="remark"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block">
<el-checkbox :label="'是'"
v-model="showFeedback"
@change="handleChangeFeedback"></el-checkbox>
</el-form-item>
</el-form>
<div v-show="formType === 'feedback' || showFeedback">
<!-- <h3 class="d-h3">反馈内容</h3> -->
<el-form
ref="ref_form_feedback"
:inline="true"
:model="feedbackFormData"
:rules="feedbackDataRule"
class="div_form"
>
<el-form-item
label="服务目标"
prop="serviceGoal"
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入服务目标,不超过1000字"
v-model="feedbackFormData.serviceGoal"
></el-input>
<el-form ref="ref_form_feedback"
:inline="true"
:model="feedbackFormData"
:rules="feedbackDataRule"
class="div_form">
<el-form-item label="服务目标"
prop="serviceGoal"
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入服务目标,不超过1000字"
v-model="feedbackFormData.serviceGoal"></el-input>
</el-form-item>
<el-form-item
label="服务效果"
prop="serviceEffect"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-input
class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入服务效果,不超过1000字"
v-model="feedbackFormData.serviceEffect"
></el-input>
<el-form-item label="服务效果"
prop="serviceEffect"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block">
<el-input class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入服务效果,不超过1000字"
v-model="feedbackFormData.serviceEffect"></el-input>
</el-form-item>
<el-form-item
label="服务人数"
style="display: block"
:class="{ 'form-item': source === 'visiual' }"
prop="servicePeopleNumber"
label-width="150px"
>
<el-input-number
class="item_width_2"
v-model="feedbackFormData.servicePeopleNumber"
:min="0"
:max="9999"
label="服务人数"
></el-input-number>
<el-form-item label="服务人数"
style="display: block"
:class="{ 'form-item': source === 'visiual' }"
prop="servicePeopleNumber"
label-width="150px">
<el-input-number class="item_width_2"
v-model="feedbackFormData.servicePeopleNumber"
:min="0"
:max="9999"
label="服务人数"></el-input-number>
</el-form-item>
<el-form-item
label="服务状态"
style="display: block"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="serviceStatus"
>
<el-form-item label="服务状态"
style="display: block"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="serviceStatus">
<span>已完成</span>
<!-- <el-select class="item_width_1"
v-model="feedbackFormData.serviceStatus"
@ -311,93 +236,70 @@
</el-option>
</el-select> -->
</el-form-item>
<el-form-item
label="满意度"
style="display: block"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="satisfaction"
>
<el-select
class="item_width_2"
v-model="feedbackFormData.satisfaction"
placeholder="全部"
clearable
>
<el-option
v-for="item in satisfyArray"
:key="item.value"
:label="item.label"
:value="item.value"
>
<el-form-item label="满意度"
style="display: block"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="satisfaction">
<el-select class="item_width_2"
v-model="feedbackFormData.satisfaction"
placeholder="全部"
clearable>
<el-option v-for="item in satisfyArray"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="地址"
prop="address"
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
v-model="feedbackFormData.address"
></el-input>
<el-form-item label="地址"
prop="address"
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
v-model="feedbackFormData.address"></el-input>
</el-form-item>
<el-form-item
label="地图位置"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-form-item label="地图位置"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block">
<div style="width: 500px">
<div class="div_map">
<div id="map_app"></div>
<div class="div_searchmap">
<el-input
maxlength="50"
size="mini"
placeholder="请输入关键字"
v-model="keyWords"
>
<el-input maxlength="50"
size="mini"
placeholder="请输入关键字"
v-model="keyWords">
</el-input>
<el-button
style="margin-left: 10px"
type="primary"
size="mini"
@click="handleSearchMap"
>查询</el-button
>
<el-button style="margin-left: 10px"
type="primary"
size="mini"
@click="handleSearchMap">查询</el-button>
</div>
</div>
</div>
</el-form-item>
<el-form-item
class="block"
label="附件"
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
prop="attach"
>
<el-upload
class="upload-demo"
:action="uploadUlr"
accept=".doc,.pdf,.xls,.docx,.xlsx,.jpg,.png,.jpeg,.bmp,.mp4,.wma,.m4a,.mp3"
:on-success="handleFileSuccess"
:on-remove="handleFileRemove"
:limit="3"
:before-upload="beforeUpload"
:file-list="fileList"
>
<el-button
size="small"
:disabled="fileList.length === 3"
type="primary"
>点击上传</el-button
>
<div slot="tip" class="el-upload__tip">支持图片wordpdf</div>
<el-form-item class="block"
label="附件"
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
prop="attach">
<el-upload class="upload-demo"
:action="uploadUlr"
accept=".doc,.pdf,.xls,.docx,.xlsx,.jpg,.png,.jpeg,.bmp,.mp4,.wma,.m4a,.mp3"
:on-success="handleFileSuccess"
:on-remove="handleFileRemove"
:limit="3"
:before-upload="beforeUpload"
:file-list="fileList">
<el-button size="small"
:disabled="fileList.length === 3"
type="primary">点击上传</el-button>
<div slot="tip"
class="el-upload__tip">支持图片wordpdf</div>
</el-upload>
</el-form-item>
</el-form>
@ -405,35 +307,29 @@
</div>
<div class="div_btn">
<el-button size="small" @click="handleCancle"> </el-button>
<el-button
size="small"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"
> </el-button
>
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button size="small"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
</div>
<el-dialog
v-if="showPersonList"
:visible.sync="showPersonList"
:append-to-body="true"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="'政策预览'"
width="1150px"
top="5vh"
class="dialog-h"
@closed="showPersonList = false"
>
<person-list
ref="ref_detail_form"
:policyId="policyId"
:ruleList="ruleList"
@handleOk="handleOk"
@handleClose="handleClose"
>
<el-dialog v-if="showPersonList"
:visible.sync="showPersonList"
:append-to-body="true"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="'政策预览'"
width="1150px"
top="5vh"
class="dialog-h"
@closed="showPersonList = false">
<person-list ref="ref_detail_form"
:policyId="policyId"
:ruleList="ruleList"
@handleOk="handleOk"
@handleClose="handleClose">
</person-list>
</el-dialog>
</div>
@ -480,7 +376,7 @@ export default {
},
categrayArray: {
type: Array,
default() {
default () {
return [];
},
},
@ -491,7 +387,7 @@ export default {
},
},
data() {
data () {
let endDisabledDate = (time) => {
//datareturn
let nowData = Date.now();
@ -555,10 +451,10 @@ export default {
},
endPickerOptions: {
disabledDate: endDisabledDate,
// disabledDate: endDisabledDate,
},
startPickerOptions: {
disabledDate: startDisabledDate,
// disabledDate: startDisabledDate,
},
showFeedback: false,
@ -604,7 +500,7 @@ export default {
},
computed: {
dataRule() {
dataRule () {
return {
serviceName: [
{ required: true, message: "服务名称不能为空", trigger: "change" },
@ -621,7 +517,7 @@ export default {
],
};
},
feedbackDataRule() {
feedbackDataRule () {
return {
serviceGoal: [
{ required: true, message: "服务目标不能为空", trigger: "blur" },
@ -655,7 +551,7 @@ export default {
components: { personList },
async mounted() {
async mounted () {
this.startLoading();
// prop
this.categrayOptions = this.categrayArray;
@ -680,7 +576,7 @@ export default {
},
methods: {
async iniDefaultData() {
async iniDefaultData () {
const { defaultData } = this;
console.log("iniDefaultData3", defaultData);
if (defaultData) {
@ -701,7 +597,7 @@ export default {
},
//
async handlePersonList() {
async handlePersonList () {
if (!this.formData.policyId) {
this.$message.info("请先选择政策");
return false;
@ -713,7 +609,7 @@ export default {
this.showPersonList = true;
},
async loadRuleList() {
async loadRuleList () {
const url = "/heart/policy/rulelist/" + this.policyId;
let params = {};
@ -727,14 +623,14 @@ export default {
}
},
handleClose() {
handleClose () {
this.showPersonList = false;
},
handleOk() {
handleOk () {
this.showPersonList = false;
},
async getPolicyList() {
async getPolicyList () {
const url = "/heart/policy/policyListSelect";
let params = {};
@ -747,7 +643,7 @@ export default {
this.$message.error(msg);
}
},
async getDictOptions() {
async getDictOptions () {
this.$http
.post("/sys/dict/data/dictlist", {
dictType: "user_demand_service_type",
@ -765,7 +661,7 @@ export default {
},
//
async getCategrayList() {
async getCategrayList () {
const url = "/sys/dict/data/dictlist";
let params = {
@ -780,14 +676,14 @@ export default {
this.$message.error(msg);
}
},
handleServiceChange(type, val) {
handleServiceChange (type, val) {
if (val === "social_org") {
if (type === "add") this.getServiceuserList(val, "add_demand");
else this.getServiceuserList(val, "query_demand");
} else this.getServiceuserList(val, "");
},
async getServiceuserList(serviceType, query) {
async getServiceuserList (serviceType, query) {
if (!serviceType) return false;
const params = {
@ -808,7 +704,7 @@ export default {
return this.$message.error("网络错误");
});
},
handleChangeFeedback(val) {
handleChangeFeedback (val) {
this.showFeedback = val;
if (this.firstInitMap) {
@ -819,7 +715,7 @@ export default {
},
//
async loadScopeTree() {
async loadScopeTree () {
const url = "/gov/org/icServiceProject/service/serviceScopeTree";
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/isServiceProject/service/serviceScopeTree'
let params = {};
@ -836,7 +732,7 @@ export default {
}
},
handleChangeScope(value) {
handleChangeScope (value) {
this.formData.objList = [];
let selArray = this.$refs["myCascader"].getCheckedNodes();
console.log("handleChangeScope", selArray);
@ -846,8 +742,8 @@ export default {
element.data.objectType === "grid"
? "grid"
: element.data.objectType === "neighborhood"
? "neighborhood"
: "agency",
? "neighborhood"
: "agency",
objectId: element.data.objectId,
objectName: element.data.objectName,
};
@ -855,7 +751,7 @@ export default {
});
},
async handleComfirm() {
async handleComfirm () {
if (this.formType === "add") {
this.handleAdd();
} else if (this.formType === "feedback") {
@ -863,7 +759,7 @@ export default {
}
},
async handleAdd() {
async handleAdd () {
this.btnDisable = true;
setTimeout(() => {
this.btnDisable = false;
@ -897,7 +793,7 @@ export default {
});
},
async addFuwu() {
async addFuwu () {
if (this.showFeedback) {
this.feedbackFormData.fileList = [];
this.feedbackFormData.fileList = [...this.fileList];
@ -942,7 +838,7 @@ export default {
}
},
async handleFeedback() {
async handleFeedback () {
this.btnDisable = true;
setTimeout(() => {
this.btnDisable = false;
@ -958,7 +854,7 @@ export default {
});
},
async addFeecback() {
async addFeecback () {
this.feedbackFormData.fileList = [];
this.feedbackFormData.fileList = [...this.fileList];
this.feedbackFormData.serviceRecordId = this.serviceRecordId;
@ -983,7 +879,7 @@ export default {
}
},
beforeUpload(file) {
beforeUpload (file) {
const array = file.name.split(".");
const extension = array[array.length - 1];
@ -1009,7 +905,7 @@ export default {
}
},
handleFileRemove(file) {
handleFileRemove (file) {
if (file && file.status === "success") {
this.fileList.splice(
this.fileList.findIndex((item) => item.uid === file.uid),
@ -1018,7 +914,7 @@ export default {
}
},
handleFileSuccess(res, file) {
handleFileSuccess (res, file) {
if (res.code === 0 && res.msg === "success") {
const array = file.name.split(".");
const fileType = array[array.length - 1];
@ -1051,7 +947,7 @@ export default {
},
//
handleFileDownload(file) {
handleFileDownload (file) {
var a = document.createElement("a");
var event = new MouseEvent("click");
a.download = file.name;
@ -1059,13 +955,13 @@ export default {
a.href = file.url;
a.dispatchEvent(event);
},
handleCancle() {
handleCancle () {
this.resetData();
this.$emit("handleClose");
},
// init
initMap() {
initMap () {
//
var center = new window.TMap.LatLng(36.0722275, 120.38945519);
// map TMap.Map()
@ -1096,7 +992,7 @@ export default {
this.firstInitMap = false;
},
setMarker(lat, lng) {
setMarker (lat, lng) {
markers.setGeometries([]);
markers.add([
{
@ -1110,7 +1006,7 @@ export default {
]);
},
handleSearchMap() {
handleSearchMap () {
infoWindowList.forEach((infoWindow) => {
infoWindow.close();
});
@ -1140,7 +1036,7 @@ export default {
});
},
handleMoveCenter() {
handleMoveCenter () {
//
const center = map.getCenter();
const lat = center.getLat();
@ -1151,7 +1047,7 @@ export default {
this.convert(lat, lng);
},
convert(lat, lng) {
convert (lat, lng) {
markers.setGeometries([]);
// var input = document.getElementById('location').value.split(',');
let location;
@ -1179,7 +1075,7 @@ export default {
});
},
resetData() {
resetData () {
this.formData = {
objList: [], //
principalName: "", //()
@ -1202,7 +1098,7 @@ export default {
};
},
//
startLoading() {
startLoading () {
loading = Loading.service({
lock: true, //
text: "正在加载……", //
@ -1210,7 +1106,7 @@ export default {
});
},
//
endLoading() {
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close();

443
src/views/modules/communityService/shzz/cpts/edit.vue

@ -2,179 +2,217 @@
<div>
<div>
<el-form
ref="ref_form"
:inline="true"
:model="dataForm"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form"
ref="ref_form"
:inline="true"
:model="dataForm"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form"
>
<el-form-item label="头像" label-width="150px"
prop="imageList"
style="display: block">
<div class="imsg-list">
<div v-for="(item, index) in dataForm.imageList" :key="index" class="imgs-item">
<el-image
style="width: 100px; height: 100px"
:src="item"
fit="fill"
:preview-src-list="dataForm.imageList"></el-image>
<i class="el-icon-delete" @click="handleDelimg(item, index)"></i>
</div>
<el-upload class="avatar-uploader"
v-if="dataForm.imageList.length < 1 && !disabled"
:action="uploadUlr"
:data="{customerId:customerId}"
:show-file-list="false"
:disabled="disabled"
:on-progress="handleProgress"
:on-success="handleImgSuccess"
:before-upload="beforeImgUpload"
accept=".jpg,.jpeg,.png,.gif,.bmp,.JPG,.JPEG,.PBG,.GIF,.BMP">
<el-progress v-if="uploading" :width="100" type="circle" :percentage="unloadPencent"></el-progress>
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</el-form-item>
<el-form-item
label="社会组织名称 "
prop="societyName"
label-width="150px"
style="display: block"
label="组织名称 "
prop="societyName"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入社会组织名称 "
v-model="dataForm.societyName"
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入组织名称 "
v-model="dataForm.societyName"
>
</el-input>
</el-form-item>
<el-form-item
label="服务事项"
prop="serviceMatters"
label-width="150px"
style="display: block"
label="服务内容"
prop="serviceMatters"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入服务事项,不超过1000字"
v-model="dataForm.serviceMatters"
class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入服务内容,不超过1000字"
v-model="dataForm.serviceMatters"
></el-input>
</el-form-item>
<el-form-item
label="负责人姓名 "
prop="personInCharge"
label-width="150px"
style="display: block"
<!-- <el-form-item
label="负责人姓名 "
prop="personInCharge"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入负责人姓名 "
v-model="dataForm.personInCharge"
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入负责人姓名 "
v-model="dataForm.personInCharge"
>
</el-input>
</el-form-item>
</el-form-item>-->
<el-form-item
label="负责人电话 "
prop="mobile"
label-width="150px"
style="display: block"
label="服务电话 "
prop="mobile"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入负责人电话 "
v-model="dataForm.mobile"
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入服务电话 "
v-model="dataForm.mobile"
>
</el-input>
</el-form-item>
<el-form-item
label="服务时间 "
prop="serviceTime"
label-width="150px"
style="display: block"
label="服务时间 "
prop="serviceTimeStr"
label-width="150px"
style="display: block"
>
<el-date-picker
v-model="dataForm.serviceTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
<el-input
class="item_width_1"
maxlength="50"
show-word-limit
placeholder="请输入服务时间 "
v-model="dataForm.serviceTimeStr"
>
</el-input>
<!-- <el-date-picker
v-model="dataForm.serviceTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-date-picker>-->
</el-form-item>
<el-form-item
label="绑定管理员"
prop="adminStaffId"
label-width="150px"
style="display: block"
label="绑定管理员"
prop="adminStaffId"
label-width="150px"
style="display: block"
>
<el-select
class="item_width_1"
v-model="dataForm.adminStaffId"
placeholder="请选择"
clearable
filterable
class="item_width_1"
v-model="dataForm.adminStaffId"
placeholder="请选择"
clearable
filterable
>
<el-option
v-for="item in staffList"
:key="item.staffId"
:label="item.staffName"
:value="item.staffId"
v-for="item in staffList"
:key="item.staffId"
:label="item.staffName"
:value="item.staffId"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="位置坐标"
prop="longitude"
label-width="150px"
style="display: block"
>
<div style="width: 500px">
<el-input
class="item_width_4"
maxlength="50"
placeholder="请输入关键字"
v-model="dataForm.address"
>
</el-input>
<el-button
style="margin-left: 10px"
type="primary"
size="small"
@click="handleSearchMap"
>查询</el-button
>
<div id="app" class="div_map"></div>
<div style="margin-top: 10px">
<span>经度</span>
<el-input
class="item_width_3"
maxlength="50"
placeholder="请输入经度"
v-model="dataForm.longitude"
>
</el-input>
<span style="margin-left: 20px">纬度</span>
<el-input
class="item_width_3"
maxlength="50"
placeholder="请输入纬度"
v-model="dataForm.latitude"
>
</el-input>
</div>
</div>
</el-form-item>
<!-- <el-form-item
label="位置坐标"
prop="longitude"
label-width="150px"
style="display: block"
>
<div style="width: 500px">
<el-input
class="item_width_4"
maxlength="50"
placeholder="请输入关键字"
v-model="dataForm.address"
>
</el-input>
<el-button
style="margin-left: 10px"
type="primary"
size="small"
@click="handleSearchMap"
>查询</el-button
>
<div id="app" class="div_map"></div>
<div style="margin-top: 10px">
<span>经度</span>
<el-input
class="item_width_3"
maxlength="50"
placeholder="请输入经度"
v-model="dataForm.longitude"
>
</el-input>
<span style="margin-left: 20px">纬度</span>
<el-input
class="item_width_3"
maxlength="50"
placeholder="请输入纬度"
v-model="dataForm.latitude"
>
</el-input>
</div>
</div>
</el-form-item>-->
</el-form>
</div>
<div class="div_btn">
<el-button @click="handleCancle"> </el-button>
<el-button
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"
> </el-button
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"
>
</el-button
>
</div>
</div>
</template>
<script>
import { mapGetters } from "vuex";
import { Loading } from "element-ui"; // Loading
import { requestPost } from "@/js/dai/request";
import {mapGetters} from "vuex";
import {Loading} from "element-ui"; // Loading
import {requestPost} from "@/js/dai/request";
var map;
var search;
@ -185,6 +223,11 @@ let loading; // 加载动画
export default {
data() {
return {
uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadqrcodeV2',
btnLoading: false,
uploading: false,
disabled: false,
customerId: '',
formType: "add", // addeditdetail
agencyId: "",
@ -201,11 +244,13 @@ export default {
mobile: "",
serviceStartTime: "",
serviceEndTime: "",
serviceTimeStr: "",
serviceTime: ["", ""],
adminStaffId: "",
address: "",
longitude: "",
latitude: "",
imageList: [],
},
};
},
@ -214,29 +259,35 @@ export default {
dataRule() {
return {
societyName: [
{ required: true, message: "社会组织名称 不能为空", trigger: "blur" },
{required: true, message: "组织名称 不能为空", trigger: "blur"},
{
min: 1,
max: 50,
message: "社会组织名称 长度在 1 到 50个字符",
message: "组织名称 长度在 1 到 50个字符",
trigger: "blur",
},
],
serviceMatters: [
{ required: true, message: "服务事项不能为空", trigger: "blur" },
imageList: [
{required: true, message: "头像不能为空", trigger: "blur"},
],
personInCharge: [
{ required: true, message: "负责人姓名不能为空", trigger: "blur" },
serviceMatters: [
{required: true, message: "服务内容不能为空", trigger: "blur"},
],
adminStaffId: [
/*personInCharge: [
{required: true, message: "负责人姓名不能为空", trigger: "blur"},
],*/
/*adminStaffId: [
{ required: true, message: "绑定管理员不能为空", trigger: "blur" },
],
],*/
mobile: [
{ required: true, message: "负责人电话不能为空", trigger: "blur" },
{required: true, message: "服务电话不能为空", trigger: "blur"},
],
longitude: [
{ required: true, message: "位置坐标不能为空", trigger: "blur" },
serviceTimeStr: [
{required: true, message: "服务时间不能为空", trigger: "blur"},
],
/*longitude: [
{ required: true, message: "位置坐标不能为空", trigger: "blur" },
],*/
};
},
},
@ -251,7 +302,7 @@ export default {
},
async mounted() {
this.initMap();
//this.initMap();
await this.loadAgency();
this.loadStaff();
@ -270,7 +321,7 @@ export default {
rotation: 45, //
});
search = new window.TMap.service.Search({ pageSize: 10 });
search = new window.TMap.service.Search({pageSize: 10});
//
markers = new TMap.MultiMarker({
map: map,
@ -307,26 +358,53 @@ export default {
markers.setGeometries([]);
//
search
.searchRectangle({
keyword: this.dataForm.address,
bounds: map.getBounds(),
})
.then((result) => {
let { data } = result;
if (Array.isArray(data) && data.length > 0) {
const {
location: { lat, lng },
} = data[0];
map.setCenter(new TMap.LatLng(lat, lng));
this.setMarker(lat, lng);
this.dataForm.latitude = lat;
this.dataForm.longitude = lng;
} else {
this.$message.error("未检索到相关位置坐标");
}
});
.searchRectangle({
keyword: this.dataForm.address,
bounds: map.getBounds(),
})
.then((result) => {
let {data} = result;
if (Array.isArray(data) && data.length > 0) {
const {
location: {lat, lng},
} = data[0];
map.setCenter(new TMap.LatLng(lat, lng));
this.setMarker(lat, lng);
this.dataForm.latitude = lat;
this.dataForm.longitude = lng;
} else {
this.$message.error("未检索到相关位置坐标");
}
});
},
beforeImgUpload(file) {
const isPNG = (file.type === 'image/png') || (file.type === 'image/jpeg')
const isLt1M = file.size / 1024 / 1024 < 10
if (!isPNG) {
this.$message.error('上传图片只能是 PNG 或 JPEG 格式!')
}
if (!isLt1M) {
this.$message.error('上传图片大小不能超过 10MB!')
}
return isPNG && isLt1M
},
handleProgress(event, file, fileList) {
this.uploading = true
this.unloadPencent = Number(file.percentage.toFixed(0))
},
handleImgSuccess(res, file) {
if (res.code === 0 && res.msg === 'success') {
this.uploading = false
this.unloadPencent = 0
this.dataForm.imageList.push(res.data.url)
} else {
this.$message.error(res.msg)
}
},
handleDelimg(item, index) {
this.dataForm.imageList.splice(index, 1)
},
handleMoveCenter() {
//
const center = map.getCenter();
@ -341,9 +419,12 @@ export default {
this.$refs.ref_form.resetFields();
this.formType = type;
console.log(row);
this.dataForm.imageList = []
if (row) {
this.dataForm = { ...this.dataForm, ...row };
this.dataForm = {...this.dataForm, ...row};
if (row.imgUrl) {
this.dataForm.imageList.push(row.imgUrl);
}
this.societyId = this.dataForm.societyId;
if (row.latitude && row.longitude) {
map.setCenter(new TMap.LatLng(row.latitude, row.longitude));
@ -355,8 +436,7 @@ export default {
async loadAgency() {
const url = "/epmetuser/customerstaff/staffbasicinfo";
let params = {};
const { data, code, msg } = await requestPost(url, params);
const {data, code, msg} = await requestPost(url, params);
if (code === 0) {
this.agencyId = data.agencyId;
@ -375,7 +455,7 @@ export default {
pageSize: 100000,
};
const { data, code, msg } = await requestPost(url, params);
const {data, code, msg} = await requestPost(url, params);
if (code === 0) {
this.staffList = data.staffList.map((item) => {
@ -405,6 +485,7 @@ export default {
},
async submit() {
let url = "";
if (this.formType === "add") {
url = "/heart/societyorg/add";
@ -415,7 +496,7 @@ export default {
this.dataForm.societyId = this.societyId;
}
const { data, code, msg } = await requestPost(url, this.dataForm);
const {data, code, msg} = await requestPost(url, this.dataForm);
if (code === 0) {
this.$message({
@ -437,6 +518,9 @@ export default {
},
resetData() {
this.societyId = ""; //ID
this.$refs.ref_form.resetFields();
this.propertyFormShow = false;
/*
this.dataForm = {
societyName: "",
serviceMatters: "",
@ -449,8 +533,9 @@ export default {
address: "",
longitude: "",
latitude: "",
};
this.propertyFormShow = false;
imageList:[]
};*/
},
//
startLoading() {
@ -471,17 +556,20 @@ export default {
};
</script>
<style scoped>
<style lang="scss" scoped>
.item_width_1 {
width: 500px;
}
.item_width_2 {
width: 400px;
}
.item_width_3 {
margin-left: 10px;
width: 200px;
}
.item_width_4 {
width: 200px;
}
@ -494,14 +582,47 @@ export default {
display: flex;
justify-content: flex-end;
}
.el-tabs {
margin: 0 20px;
}
.el-upload__tip {
color: rgb(155, 155, 155);
margin: 0;
}
.form {
margin-top: 30px;
}
.avatar-uploader {
::v-deep
.el-upload {
cursor: pointer;
position: relative;
overflow: hidden;
}
.el-upload:hover {
border-color: #409EFF;
}
.avatar {
width: 100px;
height: 100px;
display: block;
}
.avatar-uploader-icon {
border: 1px dashed #d9d9d9;
border-radius: 6px;
font-size: 28px;
color: #8c939d;
width: 100px;
height: 100px;
line-height: 100px;
text-align: center;
}
}
</style>

430
src/views/modules/communityService/shzz/index.vue

@ -1,89 +1,93 @@
<template>
<div>
<div class="resi-container">
<el-card class="resi-card">
<el-row class="resi-row-box"
:class="openSearch && 'resi-row-more'">
<el-row class="resi-row"
:gutter="20">
<el-col :span="8">
<div class="resi-cell">
<div class="resi-cell-label">组织名称</div>
<div class="resi-cell-value"
:class="'resi-cell-value-radio'">
<el-input v-model="fmData.societyName"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入">
</el-input>
</div>
</div>
</el-col>
<el-col :span="8">
<div class="resi-cell">
<div class="resi-cell-label">负责人</div>
<div class="resi-cell-value"
:class="'resi-cell-value-radio'">
<el-input v-model="fmData.personInCharge"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入">
</el-input>
</div>
</div>
</el-col>
<el-col :span="8">
<div class="resi-cell">
<div class="resi-cell-label">联系电话</div>
<div class="resi-cell-value"
:class="'resi-cell-value-radio'">
<el-input v-model="fmData.mobile"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入">
</el-input>
</div>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="resi-cell">
<div class="resi-cell-label">服务时间</div>
<div class="resi-cell-value"
:class="'resi-cell-value-radio'">
<el-date-picker v-model="fmData.serviceTime"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd">
</el-date-picker>
</div>
</div>
</el-col>
</el-row>
</el-row>
<el-row class="resi-search">
<el-col :span="24">
<el-button type="primary"
size="small"
@click="handleSearch">查询</el-button>
</el-col>
</el-row>
</el-card>
</div>
<div class="resi-container">
<el-card class="resi-card">
<div class="">
<el-form ref="fmData" :inline="true" :model="fmData" class="demo-form-inline">
<el-form-item label="组织名称" prop="societyName">
<el-input v-model="fmData.societyName" placeholder="请输入" class="input-width" clearable></el-input>
</el-form-item>
<el-form-item label="服务电话" prop="mobile">
<el-input v-model="fmData.mobile" placeholder="请输入" class="input-width" clearable></el-input>
</el-form-item>
<el-form-item label="服务时间" prop="serviceTimeStr">
<el-input v-model="fmData.serviceTimeStr" placeholder="请输入" class="input-width" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button class="diy-button--search" size="small" @click="handleSearch">查询</el-button>
<el-button class="diy-button--reset" size="small" @click="resetForm('fmData')">重置</el-button>
</el-form-item>
</el-form>
</div>
<!-- <el-row class="resi-row-box"
:class="openSearch && 'resi-row-more'">
<el-row class="resi-row"
:gutter="20">
<el-col :span="8">
<div class="resi-cell">
<div class="resi-cell-label">组织名称</div>
<div class="resi-cell-value"
:class="'resi-cell-value-radio'">
<el-input v-model="fmData.societyName"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入">
</el-input>
</div>
</div>
</el-col>
<el-col :span="8">
<div class="resi-cell">
<div class="resi-cell-label">服务电话</div>
<div class="resi-cell-value"
:class="'resi-cell-value-radio'">
<el-input v-model="fmData.mobile"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入">
</el-input>
</div>
</div>
</el-col>
<el-col :span="8">
<div class="resi-cell">
<div class="resi-cell-label">服务时间</div>
<div class="resi-cell-value"
:class="'resi-cell-value-radio'">
<el-input v-model="fmData.serviceTimeStr"
class="resi-cell-input"
size="small"
clearable
placeholder="请输入">
</el-input>
</div>
</div>
</el-col>
</el-row>
</el-row>
<el-row class="resi-search">
<el-col :span="24">
<el-button class="diy-button&#45;&#45;add"
size="small"
@click="handleSearch">查询
</el-button>
</el-col>
</el-row>-->
</el-card>
<el-card class="resi-card-table">
<div class="resi-row-btn">
<el-button type="success"
<el-button class="diy-button--add"
size="small"
@click="handleAdd">新增</el-button>
@click="handleAdd">新增
</el-button>
<el-button class="diy-button--search"
style="margin-left:10px"
size="small"
@click="handleExportModule('room')">下载模板
</el-button>
<el-upload ref="upload"
class="upload-btn"
action="uploadUlr"
@ -95,16 +99,18 @@
:on-success="handleExcelSuccess"
:before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest">
<el-button type="warning"
<el-button class="diy-button--delete"
size="small"
:loading="importLoading">{{
importBtnTitle
}}</el-button>
importBtnTitle
}}
</el-button>
</el-upload>
<el-button @click="handleChu"
type="danger"
size="small">excel导出</el-button>
class="diy-button--reset"
size="small">导出
</el-button>
</div>
<el-table :data="tableData"
border
@ -114,23 +120,23 @@
<el-table-column label="序号"
type="index"
align="center"
width="50" />
width="50"/>
<el-table-column prop="societyName"
label="社会组织名称">
label="组织名称">
</el-table-column>
<el-table-column prop="serviceMatters"
label="服务事项">
</el-table-column>
<el-table-column prop="personInCharge"
label="负责人">
label="服务内容">
</el-table-column>
<!-- <el-table-column prop="personInCharge"
label="负责人">
</el-table-column>-->
<el-table-column prop="mobile"
label="负责人电话"> </el-table-column>
<el-table-column prop="serviceTime"
label="服务时间"> </el-table-column>
<el-table-column prop="score"
width="80"
label="积分"> </el-table-column>
label="服务电话"></el-table-column>
<el-table-column prop="serviceTimeStr"
label="服务时间"></el-table-column>
<!-- <el-table-column prop="score"
width="80"
label="积分"> </el-table-column>-->
<el-table-column fixed="right"
label="操作"
align="center"
@ -138,16 +144,18 @@
<template slot-scope="scope">
<el-button @click="handleWatch(scope.$index)"
type="text"
size="small">查看</el-button>
<el-button type="text"
style="color:#00A7A9;"
size="small"
@click="handleScore(scope.row)">积分记录</el-button>
size="small">查看
</el-button>
<!-- <el-button type="text"
style="color:#00A7A9;"
size="small"
@click="handleScore(scope.row)">积分记录</el-button>-->
<el-button @click="handleEdit(scope.$index)"
type="text"
size="small"
style="margin-right: 10px; color: #00a7a9">编辑</el-button>
style="margin-right: 10px; color: #00a7a9">编辑
</el-button>
<el-popconfirm title="删除之后无法回复,确认删除?"
@onConfirm="handleDel(scope.row, scope.$index)"
@ -155,7 +163,8 @@
<el-button slot="reference"
type="text"
size="small"
style="color: #d51010">删除</el-button>
style="color: #d51010">删除
</el-button>
</el-popconfirm>
</template>
</el-table-column>
@ -200,16 +209,16 @@
</template>
<script>
import { requestPost } from "@/js/dai/request";
import {requestPost} from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
import { mapGetters } from "vuex";
import {mapGetters} from "vuex";
import editForm from "./cpts/edit";
import axios from "axios";
import scoreRecord from '../../../components/scoreRecord.vue'
export default {
components: { editForm, scoreRecord },
data () {
components: {editForm, scoreRecord},
data() {
return {
openSearch: false,
@ -229,9 +238,10 @@ export default {
serviceStartTime: "",
serviceEndTime: "",
serviceTime: "",
serviceTimeStr: "",
},
importBtnTitle: "excel导入",
importBtnTitle: "导入",
importLoading: false,
//
@ -240,13 +250,14 @@ export default {
};
},
computed: {
maxTableHeight () {
maxTableHeight() {
return this.clientHeight - 450;
},
...mapGetters(["clientHeight"]),
},
watch: {
"fmData.serviceTime": function (val) {
console.log("watch start" + val + '_' + Array.isArray(val))
if (Array.isArray(val) && val.length == 2) {
this.fmData.serviceStartTime = val[0];
this.fmData.serviceEndTime = val[1];
@ -256,28 +267,28 @@ export default {
}
},
},
mounted () {
mounted() {
this.getTableData();
},
methods: {
//
handleExcelSuccess (res, file) {
handleExcelSuccess(res, file) {
if (res.code === 0 && res.msg === "success") {
console.log("resss---ppp", res);
} else {
this.$message.error(res.msg);
}
},
handleProgress (event, file, fileList) {
handleProgress(event, file, fileList) {
console.log("percentage", file.percentage);
},
beforeExcelUpload (file) {
beforeExcelUpload(file) {
console.log("file", file);
const isType = file.type === "application/vnd.ms-excel";
const isTypeComputer =
file.type ===
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
file.type ===
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
const fileType = isType || isTypeComputer;
const isLt1M = file.size / 1024 / 1024 < 10;
if (!fileType) {
@ -289,66 +300,69 @@ export default {
}
return fileType && isLt1M;
},
uploadHttpRequest (file) {
uploadHttpRequest(file) {
this.importLoading = true;
this.importBtnTitle = "正在上传中...";
const formData = new FormData(); //FormDataappend('key', value)
formData.append("file", file.file); //
axios({
url: window.SITE_CONFIG["apiURL"] + "/heart/societyorg/import",
url: window.SITE_CONFIG["apiURL"] + "/heart/societyorg/importV2",
method: "post",
data: formData,
// responseType: "blob",
})
.then((res) => {
this.importLoading = false;
this.importBtnTitle = "excel导入";
console.log("resresresresresresres", res);
this.getTableData();
if (res.data.code == 0) {
return this.$message.success(res.data.data || '导入成功');
} else {
return this.$message.error(res.data.msg);
}
})
.catch((err) => {
console.log("失败", err);
});
.then((res) => {
this.importLoading = false;
this.importBtnTitle = "导入";
console.log("resresresresresresres", res);
this.getTableData();
this.$message({
showClose: true,
message: '导入中,请到系统管理-导入记录中查看进度',
duration: 0
})
})
.catch((err) => {
console.log("失败", err);
});
this.$refs.upload.clearFiles();
},
handleSizeChange (val) {
handleSizeChange(val) {
console.log(`每页 ${val}`);
this.pageSize = val;
window.localStorage.setItem("pageSize", val);
this.getTableData();
},
handleCurrentChange (val) {
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.pageNo = val;
this.getTableData();
},
handleClose () {
handleClose() {
this.formShow = false;
},
handleSearch (val) {
handleSearch(val) {
console.log(this.fmData);
this.pageNo = 1;
this.getTableData();
},
async handleAdd () {
resetForm(formName) {
this.$refs[formName].resetFields()
this.handleSearch()
},
async handleAdd() {
this.formShow = true;
await nextTick();
console.log(this.$refs);
this.$refs.eleEditForm.initForm("add");
},
async handleChu () {
async handleChu() {
const url = "/heart/societyorg/export";
const { pageSize, pageNo, fmData } = this;
const {pageSize, pageNo, fmData} = this;
axios({
url: window.SITE_CONFIG["apiURL"] + url,
method: "post",
@ -359,50 +373,50 @@ export default {
},
responseType: "blob",
})
.then((res) => {
let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1]
);
console.log("filename", fileName);
let blob = new Blob([res.data], { type: "application/vnd.ms-excel" });
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", fileName);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //
window.URL.revokeObjectURL(url); //blob
})
.catch((err) => {
console.log("获取导出情失败", err);
return this.$message.error("网络错误");
});
.then((res) => {
let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1]
);
console.log("filename", fileName);
let blob = new Blob([res.data], {type: "application/vnd.ms-excel"});
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", fileName);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //
window.URL.revokeObjectURL(url); //blob
})
.catch((err) => {
console.log("获取导出情失败", err);
return this.$message.error("网络错误");
});
},
async handleWatch (rowIndex) {
async handleWatch(rowIndex) {
this.formShow = true;
await nextTick();
this.$refs.eleEditForm.initForm("detail", this.tableData[rowIndex]);
},
async handleEdit (rowIndex) {
async handleEdit(rowIndex) {
this.formShow = true;
await nextTick();
this.$refs.eleEditForm.initForm("edit", this.tableData[rowIndex]);
},
handleEditSuccess () {
handleEditSuccess() {
this.handleClose();
this.getTableData();
},
async handleDel (rowData, rowIndex) {
async handleDel(rowData, rowIndex) {
console.log(rowData, rowIndex);
const url = "/heart/societyorg/del";
const { tableData } = this;
const {tableData} = this;
const { data, code, msg } = await requestPost(url, {
const {data, code, msg} = await requestPost(url, {
societyId: tableData[rowIndex].societyId,
});
@ -414,10 +428,10 @@ export default {
}
},
async getTableData () {
async getTableData() {
const url = "/heart/societyorg/getlist";
const { pageSize, pageNo, fmData } = this;
const { data, code, msg } = await requestPost(url, {
const {pageSize, pageNo, fmData} = this;
const {data, code, msg} = await requestPost(url, {
pageSize,
pageNo,
...fmData,
@ -426,28 +440,65 @@ export default {
console.log("列表请求成功!!!!!!!!!!!!!!");
this.total = data.total || 0;
this.tableData = data.list
? data.list.map((item) => {
item.serviceTime =
item.serviceStartTime + "至" + item.serviceEndTime;
return item;
})
: [];
? data.list.map((item) => {
item.serviceTime =
item.serviceStartTime + "至" + item.serviceEndTime;
return item;
})
: [];
} else {
}
},
//
handleScore (row) {
handleScore(row) {
this.scoreDiaShow = true
this.$nextTick(() => {
this.$refs.ref_score.initForm(row.societyId)
})
},
diaClose () {
diaClose() {
this.scoreDiaShow = false
},
async handleExportModule() {
let url = "/heart/societyorg/import-template-download";
let params = {};
await this.$http({
method: "POST",
url,
responseType: "blob",
data: params,
})
.then((res) => {
// this.download(res.data, title + '.xls')
if (res.headers["content-disposition"]) {
let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1]
);
console.log("filename", fileName);
let blob = new Blob([res.data], {
type: "application/vnd.ms-excel",
});
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", fileName);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //
window.URL.revokeObjectURL(url); //blob
} else this.$message.error("下载失败");
})
.catch((err) => {
console.log("err", err);
return this.$message.error("网络错误");
});
},
},
};
</script>
@ -467,10 +518,12 @@ export default {
background: #ebecf1;
border-radius: 2px;
}
.el-tabs__nav-wrap::after,
.el-tabs__active-bar {
display: none;
}
.el-tabs__nav-next,
.el-tabs__nav-prev {
line-height: 20px;
@ -480,16 +533,20 @@ export default {
.resi-card-table {
margin-top: 20px;
}
.resi-row-btn {
margin-bottom: 13px;
.upload-btn {
display: inline-block;
margin: 0 10px;
}
}
.resi-other {
width: 100%;
display: flex;
.resi-other-title {
width: 100px;
box-sizing: border-box;
@ -500,6 +557,7 @@ export default {
color: #333;
text-align: center;
}
.tabs-other-info {
// padding-left: 60px;
}
@ -514,6 +572,7 @@ export default {
position: relative;
overflow: visible;
}
.resi-down {
position: absolute;
left: 50%;
@ -528,30 +587,37 @@ export default {
cursor: pointer;
background: #ffffff;
border-radius: 0 0 10px 10px;
img {
display: block;
}
}
.resi-row-box {
height: 104px;
overflow: hidden;
transition: height 0.5s;
}
.resi-row-more {
height: max-content;
transition: height 0.5s;
}
.resi-row {
margin-bottom: 20px;
}
.resi-search {
.el-col {
text-align: right;
}
}
.resi-cell {
display: flex;
align-items: center;
.resi-cell-label {
width: 70px;
box-sizing: border-box;
@ -559,25 +625,31 @@ export default {
text-align: right;
// line-height: 32;
}
.resi-cell-value-radio {
display: flex;
align-items: center;
min-height: 32px;
}
.resi-cell-input {
width: 180px;
}
.resi-cell-select {
width: 180px;
box-sizing: border-box;
margin-right: 10px;
&-middle {
width: 130px;
}
&-small {
width: 88px;
}
}
.resi-cell-select:last-child {
margin-right: 0;
}

746
src/views/modules/communityService/worklog/workLog.vue

@ -0,0 +1,746 @@
<template>
<div class="div_main">
<div class="div_search">
<el-form :inline="true"
:model="workLog"
ref="ref_searchform"
:label-width="'100px'">
<div>
<el-form-item label="所属网格"
prop="gridId">
<el-select v-model="workLog.gridId"
filterable
placeholder="请选择"
clearable>
<el-option v-for="item in optionsG"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="服务类型"
prop="serviceType">
<el-select v-model="workLog.serviceType"
filterable
placeholder="请选择"
clearable>
<el-option v-for="item in serviceTypeList"
:key="item.serviceType"
:label="item.serviceTypeName"
:value="item.serviceType">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="申请人"
prop="applicantName">
<el-input v-model="workLog.applicantName"
class="item_width_1"
clearable
size="small"
placeholder="请输入内容">
</el-input>
</el-form-item>
<el-form-item label="住址"
prop="applicantAddress">
<el-input v-model="workLog.applicantAddress"
class="item_width_1"
clearable
size="small"
placeholder="请输入内容">
</el-input>
</el-form-item>
</div>
<div>
<el-form-item label="服务内容"
prop="serviceContent">
<el-input v-model="workLog.serviceContent"
class="item_width_1"
clearable
size="small"
placeholder="请输入内容">
</el-input>
</el-form-item>
<el-form-item label="联系电话"
prop="applicantMobile">
<el-input v-model="workLog.applicantMobile"
class="item_width_1"
clearable
size="small"
placeholder="请输入内容">
</el-input>
</el-form-item>
<el-form-item label="服务时间"
prop="serviceTimeArea">
<el-date-picker v-model="serviceTimeArea"
clearable
type="daterange"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-button style="margin-left:10px"
class="diy-button--search"
size="small"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
class="diy-button--reset"
size="small"
@click="resetSearch">重置</el-button>
</div>
</el-form>
</div>
<div class="div_table">
<div class="div_btn">
<el-button class="diy-button--add"
size="small"
@click="handleAdd">新增</el-button>
<el-button class="diy-button--search"
style="margin-left:10px"
size="small"
@click="handleExportModule('room')">下载模板</el-button>
<el-upload ref="upload"
:multiple='false'
:show-file-list='false'
:before-upload="beforeUpload"
action=""
accept=".xls,.xlsx"
:limit="1"
:on-exceed="handleExceed"
:http-request="uploadFile">
<el-button style="margin-left:10px"
class="diy-button--delete"
size="small">导入</el-button>
</el-upload>
<el-button style="float:left;margin-left:10px"
class="diy-button--reset"
size="small"
@click="handleExport">导出</el-button>
</div>
<el-table class="table"
:data="tableData"
border
:height="tableHeight"
v-loading="tableLoading"
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
style="width: 100%">
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="gridName"
header-align="center"
align="center"
label="所属网格"
min-width="100">
</el-table-column>
<el-table-column prop="serviceTypeName"
header-align="center"
align="center"
label="服务类型"
min-width="80">
</el-table-column>
<el-table-column prop="applicantName"
header-align="center"
align="center"
label="申请人"
show-overflow-tooltip
max-width="100">
</el-table-column>
<el-table-column prop="applicantAddress"
header-align="center"
show-overflow-tooltip
align="center"
label="住址"
width="80">
</el-table-column>
<el-table-column prop="serviceContent"
header-align="center"
align="center"
show-overflow-tooltip
label="服务内容"
mix-width="230">
</el-table-column>
<el-table-column prop="applicantMobile"
header-align="center"
align="center"
show-overflow-tooltip
label="联系电话"
width="100">
</el-table-column>
<el-table-column prop="principalName"
header-align="center"
align="center"
show-overflow-tooltip
label="责任人"
width="130">
</el-table-column>
<el-table-column prop="serviceTime"
header-align="center"
align="center"
show-overflow-tooltip
label="服务时间"
width="130">
</el-table-column>
<el-table-column prop="remark"
header-align="center"
align="center"
show-overflow-tooltip
label="备注"
width="130">
</el-table-column>
<el-table-column label="操作"
fixed="right"
width="200"
header-align="center"
align="center"
class="operate">
<template slot-scope="scope">
<el-button type="text"
class="div-table-button--detail"
size="small"
@click="handleDetail(scope.row)">查看</el-button>
<el-button type="text"
class="div-table-button--edit"
size="small"
@click="handleEdit(scope.row)">修改</el-button>
<el-button type="text"
class="div-table-button--delete"
size="small"
@click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div>
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[10, 20, 50]"
:page-size="pageSize"
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination>
</div>
</div>
<!-- 修改弹出框 -->
<el-dialog :visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="formTitle"
:destroy-on-close="true"
width="950px"
top="5vh"
class="dialog-h"
@closed="editDiaClose">
<work-log-form ref="ref_form"
:typeList="typeList"
@dialogCancle="addFormCancle"
@dialogOk="addFormOk"></work-log-form>
</el-dialog>
<el-dialog :visible.sync="detailShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="'详情'"
width="950px"
top="5vh"
class="dialog-h"
@closed="diaClose">
<work-log-detail ref="ref_detail"
@diaClose="diaClose"></work-log-detail>
</el-dialog>
</div>
</template>
<script>
import workLogForm from './workLogForm'
import workLogDetail from './workLogDetail'
import { requestPost } from "@/js/dai/request";
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
let loading //
export default {
data () {
return {
loading: false,
serviceTimeArea: '',
total: 0,
pageSize: 20,
pageNo: 0,
tableLoading: false,
agencyId: '',
typeList: [],//list
formData: {
gridId: '',
serviceType: '',
applicantName: '',
applicantAddress: '',
applicantMobile: '',
serviceContent: '',
serviceTimeStart: '',
serviceTimeEnd: ''
},
tableData: [],
//form
formShow: false,
formTitle: '新增',
detailShow: false,
finishDiaShow: false,
scoreDiaShow: false,
files: "",
fileName: "",
uploadUlr: window.SITE_CONFIG['apiURL'] + '/heart/workdiaryService/record/import',
optionsG: [],
optionsEditG: [],
workLog: {
gridId: '',
serviceType: '',
applicantName: '',
applicantAddress: '',
applicantMobile: '',
serviceContent: '',
serviceTimeStart: '',
serviceTimeEnd: ''
},
serviceTypeList: [],
}
},
components: {
workLogDetail, workLogForm
},
async created () {
this.getGridList("query");
this.getServiceTypeList();
},
async mounted () {
const { user } = this.$store.state
this.agencyId = user.agencyId
await this.loadTable()
},
methods: {
handleSearch () {
this.loadTable()
},
async getGridList (type, agencyId) {
const { user } = await this.$store.state;
await this.$http
.post("/gov/org/customergrid/gridoption", {
agencyId: agencyId || user.agencyId,
purpose: type,
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
console.log("获取查询详情成功", res.data);
if (type === "query") this.optionsG = res.data;
else this.optionsEditG = res.data;
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
async getServiceTypeList () {
// let url = 'http://yapi.elinkservice.cn/mock/245/heart/workdiaryService/serviceType/page'
let url = '/heart/workdiaryService/serviceType/page'
let params = {
pageNo: 1,
pageSize: 10000
}
await this.$http
.post(url, params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.serviceTypeList = res.data.list;
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
async handleExportModule () {
let url = "/heart/workdiaryService/record/downloadTemplate";
// let url = "http://yapi.elinkservice.cn/mock/245/heart/workdiaryService/record/downloadTemplate";
let params = {};
await this.$http({
method: "POST",
url,
responseType: "blob",
data: params,
})
.then((res) => {
if (res.headers["content-disposition"]) {
let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1]
);
console.log("filename", fileName);
let blob = new Blob([res.data], {
type: "application/vnd.ms-excel",
});
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", fileName);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //
window.URL.revokeObjectURL(url); //blob
} else this.$message.error("下载失败");
})
.catch((err) => {
console.log("err", err);
return this.$message.error("网络错误");
});
},
async loadTable () {
this.tableLoading = true
if (Array.isArray(this.serviceTimeArea) && this.serviceTimeArea.length > 0) {
this.workLog.serviceTimeStart = this.serviceTimeArea[0];
this.workLog.serviceTimeEnd = this.serviceTimeArea[1];
}else {
this.workLog.serviceTimeStart = '';
this.workLog.serviceTimeEnd = '';
}
const url = "/heart/workdiaryService/record/page"
// const url = "http://yapi.elinkservice.cn/mock/245/heart/workdiaryService/record/page"
let params = {
pageSize: this.pageSize,
pageNo: this.pageNo,
...this.workLog
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.total = data.total
this.tableData = data.list
} else {
this.$message.error(msg)
}
this.tableLoading = false
},
editDiaClose () {
this.$refs.ref_form.resetData()
this.formShow = false
},
diaClose () {
this.detailShow = false
this.finishDiaShow = false
this.scoreDiaShow = false
},
handleDetail (row) {
this.detailShow = true
this.$nextTick(() => {
this.$refs.ref_detail.initForm(row)
})
},
//
handleFinish (row) {
this.finishDiaShow = true
this.$nextTick(() => {
this.$refs.ref_finish.initTable(row)
})
},
//
handleScore (row) {
this.scoreDiaShow = true
this.$nextTick(() => {
this.$refs.ref_score.initForm(row.icPublicServiceId)
})
},
handleAdd () {
this.formTitle = '新增'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_form.initForm('add', null)
})
},
handleEdit (row) {
this.formTitle = '修改'
this.formShow = true
this.$nextTick(() => {
this.$refs.ref_form.initForm('edit', row)
})
},
addFormCancle () {
this.formShow = false
},
addFormOk () {
this.formShow = false
this.loadTable()
},
async handleDelete (row) {
this.$confirm("确认删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.deleteUnit(row)
})
.catch(err => {
if (err == "cancel") {
}
});
},
async deleteUnit (row) {
const url = "/heart/workdiaryService/record/delete"
// const url = "http://yapi.elinkservice.cn/mock/245/heart/workdiaryService/record/delete"
let params = [row.id]
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.$message({
type: "success",
message: "删除成功"
});
this.loadTable()
} else {
this.$message.error(msg)
}
},
//
resetSearch () {
this.optionsG = []
this.demandUserList = []
this.workLog = {
gridId: '',
serviceType: '',
applicantName: '',
applicantAddress: '',
applicantMobile: '',
serviceContent: '',
serviceTimeStart: '',
serviceTimeEnd: ''
}
this.serviceTimeArea = ''
this.pageSize = 10
this.pageNo = 0
this.loadTable()
},
//
async handleExport () {
let title = '工作日志'
const url = "/heart/workdiaryService/record/export"
// const url = "http://yapi.elinkservice.cn/mock/245/heart/workdiaryService/record/export"
let params = {
...this.workLog
}
app.ajax.exportFilePost(
url,
params,
(data, rspMsg) => {
this.download(data, title + '.xls')
},
(rspMsg, data) => {
this.$message.error(rspMsg);
}
);
},
//
download (data, fileName) {
if (!data) {
return
}
var csvData = new Blob([data])
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(csvData, fileName);
}
// for Non-IE (chrome, firefox etc.)
else {
var a = document.createElement('a');
document.body.appendChild(a);
a.style = 'display: none';
var url = window.URL.createObjectURL(csvData);
a.href = url;
a.download = fileName;
a.click();
a.remove();
window.URL.revokeObjectURL(url);
}
},
//
beforeUpload (file) {
this.files = file;
const isText = file.type === 'application/vnd.ms-excel'
const isTextComputer = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
if (!isText && !isTextComputer) {
this.$message.error('请选择正确格式的文件')
return false
} else {
this.fileName = file.name;
return true
}
},
//
handleExceed (files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,请删除后继续上传`)
},
async uploadFile () {
this.loading = true
if (this.fileName == "") {
this.$message.warning('请选择要上传的文件!')
return false
}
//
this.$refs['upload'].clearFiles()
var url = '/heart/workdiaryService/record/import'
// var url = 'http://yapi.elinkservice.cn/mock/245/heart/workdiaryService/record/import'
let fileFormData = new FormData();
fileFormData.append('file', this.files);//filenamefiletest.zip
const { data, code, msg } = await requestPost(url, fileFormData)
if (code === 0) {
this.$message({
showClose: true,
message: "导入中,请到系统管理-导入记录中查看进度",
duration: 0,
});
this.loadTable()
} else {
this.$message.error(msg)
}
},
handleSizeChange (val) {
this.pageSize = val
this.pageNo = 1
this.loadTable()
},
handleCurrentChange (val) {
this.pageNo = val
this.loadTable()
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
},
computed: {
tableHeight () {
return this.$store.state.inIframe ? this.clientHeight - 350 + this.iframeHeight : this.clientHeight - 350
},
...mapGetters(['clientHeight', 'iframeHeight'])
},
watch: {
},
props: {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/buttonstyle.scss";
@import "@/assets/scss/modules/management/list-main.scss";
.div_main {
width: 100%;
}
.div_search {
background: #ffffff;
border-radius: 4px;
padding: 30px 20px 5px;
box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1);
}
.item_width_1 {
width: 260px;
}
.item_width_2 {
width: 620px;
}
.div_table {
background: #ffffff;
box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1);
border-radius: 4px;
margin-top: 15px;
// padding: 23px 30px 10px;
.table {
margin-top: 20px;
}
}
.el-row {
/* margin-bottom: 20px; */
display: flex;
flex-wrap: wrap;
margin-top: 10px;
margin-right: 50px;
}
</style>

151
src/views/modules/communityService/worklog/workLogDetail.vue

@ -0,0 +1,151 @@
<template>
<div>
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="formData"
class="form">
<el-form-item label="服务类型:"
prop="serviceTypeName"
label-width="150px"
style="display: block"
class="input-width">
<span>{{formData.serviceTypeName}}</span>
</el-form-item>
<el-form-item label="所属网格:"
prop="gridName"
label-width="150px"
style="display: block">
<span>{{formData.gridName}}</span>
</el-form-item>
<el-form-item label="申请人:"
prop="applicantName"
label-width="150px"
class="input-width"
style="display: block">
<span>{{formData.applicantName}}</span>
</el-form-item>
<el-form-item label="住址:"
prop="capacity"
label-width="150px"
style="display: block">
<span>{{formData.applicantAddress}}</span>
</el-form-item>
<el-form-item label="服务内容:"
prop="serviceContent"
label-width="150px"
style="display: block">
<span>{{formData.serviceContent}}</span>
</el-form-item>
<el-form-item label="联系电话:"
prop="mobile"
label-width="150px"
style="display: block">
<span>{{formData.applicantMobile}}</span>
</el-form-item>
<el-form-item label="负责人:"
style="display: block"
prop="address"
label-width="150px">
<span>{{formData.principalName}}</span>
</el-form-item>
<el-form-item label="服务时间:"
style="display: block"
prop="address"
label-width="150px">
<span>{{formData.serviceTime}}</span>
</el-form-item>
<el-form-item label="备注:"
style="display: block"
prop="address"
label-width="150px">
<span>{{formData.remark}}</span>
</el-form-item>
</el-form>
</div>
<div class="div_btn">
<el-button size="small"
@click="handleCancle"> </el-button>
</div>
</div>
</template>
<script>
import { Loading } from 'element-ui' // Loading
var infoWindowList
var geocoder //
let loading //
export default {
data () {
return {
formData: {},
}
},
components: {},
mounted () {
},
methods: {
handleCancle () {
this.$emit('diaClose')
},
async initForm (row) {
this.startLoading()
this.formData = { ...row }
this.endLoading()
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
},
computed: {
},
props: {
}
}
</script>
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
</style>
<style scoped>
.detail_span {
width: 500px;
font-weight: bold;
text-align: left;
margin: 0 0;
font-size: 16px;
}
.form {
margin-top: 30px;
}
</style>

414
src/views/modules/communityService/worklog/workLogForm.vue

@ -0,0 +1,414 @@
<template>
<div>
<div class="dialog-h-content scroll-h">
<el-form ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
:disabled="formType === 'detail'"
class="form">
<el-form-item label="所属网格"
label-width="150px"
style="display: block"
prop="gridId">
<el-select v-model="formData.gridId"
filterable
placeholder="请选择"
@change="handleGridChange"
clearable>
<el-option v-for="item in optionsG"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="服务类型"
label-width="150px"
style="display: block"
prop="serviceType">
<el-select v-model="formData.serviceType" filterable placeholder="请选择"
clearable>
<el-option v-for="item in serviceTypeList"
:key="item.serviceType"
:label="item.serviceTypeName"
:value="item.serviceType">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="申请人"
label-width="150px"
style="display: block"
prop="applicantId">
<el-select v-model="formData.applicantId"
filterable
placeholder="请选择"
@change="handleUserChange"
clearable>
<el-option v-for="item in demandUserList"
:key="item.demandUserId"
:label="item.demandUserName + '(' +item.idCard + ')'"
:value="item.demandUserId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="住址"
style="display: block"
label-width="150px"
prop="applicantAddress">
<el-input v-model="formData.applicantAddress"
class="item_width_1"
placeholder="请输入住址"></el-input>
</el-form-item>
<el-form-item label="服务内容"
style="display: block"
label-width="150px"
prop="serviceContent">
<el-input v-model="formData.serviceContent"
class="item_width_1"
type="textarea"
placeholder="请输入服务内容"></el-input>
</el-form-item>
<el-form-item label="联系电话"
style="display: block"
label-width="150px"
prop="applicantMobile">
<el-input v-model="formData.applicantMobile"
class="item_width_1"
placeholder="请输入联系电话"></el-input>
</el-form-item>
<el-form-item label="负责人"
style="display: block"
label-width="150px"
prop="principalName">
<el-input v-model="formData.principalName"
class="item_width_1"
placeholder="请输入负责人"></el-input>
</el-form-item>
<el-form-item label="服务时间"
style="display: block"
label-width="150px"
prop="serviceTime">
<el-date-picker v-model="formData.serviceTime"
type="date"
class="input-width"
clearable
value-format="yyyy-MM-dd"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="备注"
style="display: block"
label-width="150px"
prop="remark">
<el-input v-model="formData.remark"
class="item_width_1"
type="textarea"
placeholder="请输入备注"></el-input>
</el-form-item>
</el-form>
</div>
<div class="div_btn">
<el-button size="small"
@click="handleCancle"> </el-button>
<el-button size="small"
v-if="formType != 'detail'"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"> </el-button>
</div>
</div>
</template>
<script>
import { Loading } from 'element-ui' // Loading
import { requestPost } from '@/js/dai/request'
import {requestGet} from "../../../../js/dai/request";
var map
var search
var markers
var infoWindowList
var geocoder //
let loading //
export default {
data () {
return {
formType: 'add', // addeditdetail
agencyId: '',
btnDisable: false,
disabled: false,
applicantId: '',
keyWords: '',
formData: {
serviceType: '',
serviceTypeName: '',
gridId: '',
gridName: '',
applicantAddress: '',
applicantName: '',
applicantId: '',
serviceContent: '',
applicantMobile: '',
principalName: '',
serviceTime: '',
remark: ''
},
optionsG: [],
serviceTypeList: [],
publicServiceData: {},
demandUserList: [],
}
},
components: {},
async created () {
this.getGridList('query')
this.getServiceTypeList()
// this.getDemandUserList()
},
mounted () {
},
methods: {
async initForm (type, row) {
this.startLoading()
this.$refs.ref_form.resetFields();
//
await this.getServiceTypeList()
this.getGridList(type)
this.formType = type
if (type === 'edit'){
this.formData = row
this.getDemandUserList(this.formData.gridId)
this.serviceTypeList.forEach(s => {
if (s.serviceType === this.formData.serviceType){
this.disabled = s.enabled === 1 ? true : false
}
})
if (!this.disabled){
this.formData.serviceType = ''
}
}
this.endLoading()
},
//
async getServiceTypeList () {
const url = "/heart/workdiaryService/serviceType/avaliableList"
// let url = 'http://yapi.elinkservice.cn/mock/245/heart/workdiaryService/serviceType/page'
let params = {
pageNo: 1,
pageSize: 10000
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.serviceTypeList = data.list
} else {
this.$message.error(msg)
}
},
async getDemandUserList (gridId) {
const { user } = await this.$store.state;
const params = {
agencyId: user.agencyId,
gridId: gridId,
name: "",
};
// addorupdate
await this.$http
.post("/epmetuser/icresiuser/demandusers", params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.demandUserList = res.data;
console.log(this.demandUserList)
}
})
.catch(() => {
return this.$message.error("网络错误");
});
},
//
async getGridList (type) {
const { user } = await this.$store.state;
const url = '/gov/org/customergrid/gridoption'
// const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/icPublicService/detail'
let params = {
agencyId: user.agencyId,
purpose: type,
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.optionsG = data;
} else {
this.$message.error(msg)
}
},
handleGridChange (val) {
this.getDemandUserList(this.formData.gridId);
},
async handleUserChange () {
let homeId
this.demandUserList.forEach(d => {
if (d.demandUserId === this.formData.applicantId){
homeId = d.houseId
this.formData.applicantMobile = d.demandUserMobile
}
})
let url = '/gov/org/ichouse/'+homeId
let params = {}
const { data, code, msg } = await requestGet(url)
if (code === 0) {
this.formData.applicantAddress = data.fullName
} else {
this.$message.error(msg)
}
},
async handleComfirm () {
this.btnDisable = true
setTimeout(() => {
this.btnDisable = false
}, 10000)
this.$refs['ref_form'].validate((valid, messageObj) => {
if (!valid) {
app.util.validateRule(messageObj)
this.btnDisable = false
} else {
this.addUnit()
}
})
},
async addUnit () {
let url = ''
if (this.formType === 'add') {
url = '/heart/workdiaryService/record/save'
// url = 'http://yapi.elinkservice.cn/mock/245/heart/workdiaryService/record/save'
} else {
url = '/heart/workdiaryService/record/update'
// url = 'http://yapi.elinkservice.cn/mock/245/heart/workdiaryService/record/update'
}
const { data, code, msg, internalMsg } = await requestPost(url, this.formData)
if (code === 0) {
this.$message({
type: 'success',
message: '操作成功'
})
this.resetData()
this.$emit('dialogOk')
this.btnDisable = false
} else {
this.btnDisable = false
this.$message.error(msg)
}
},
handleCancle () {
this.resetData()
this.$emit('dialogCancle')
},
resetData () {
this.demandUserList = []
this.optionsG = []
this.disabled = false
this.formData = {
serviceType: 0,
gridId: '',
applicantAddress: '',
applicantName: '',
applicantId: '',
serviceContent: '',
applicantMobile: '',
principalName: '',
serviceTime: '',
remark: ''
}
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
},
computed: {
dataRule () {
return {
gridId: [
{ required: true, message: '所属网格不能为空', trigger: 'blur' },
],
serviceType: [
{ required: true, message: '服务类型不能为空', trigger: 'blur' }
],
applicantAddress: [
{ required: true, message: '住址不能为空', trigger: 'blur' }
],
applicantId: [
{ required: true, message: '申请人不能为空', trigger: 'blur' }
],
serviceContent: [
{ required: true, message: '服务内容不能为空', trigger: 'blur' }
],
serviceTime: [
{ required: true, message: '服务时间不能为空', trigger: 'blur' }
],
applicantMobile: [
{ required: true, message: '联系电话不能为空', trigger: 'blur' }
]
}
},
},
props: {
typeList: {
type: Array,
default: []
},
}
}
</script>
<style scoped>
.div_map {
position: relative;
}
.div_searchmap {
z-index: 5000;
position: absolute;
top: 5px;
left: 5px;
}
</style>
<style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss";
</style>

4
src/views/modules/plugins/change/changedeath-add-or-update.vue

@ -7,8 +7,8 @@
<el-form-item label="姓名" prop="name">
<el-input v-model="dataForm.name" placeholder="姓名"></el-input>
</el-form-item>
<el-form-item label="身份证" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="身份证"></el-input>
<el-form-item label="证件号" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="证件号"></el-input>
</el-form-item>
<el-form-item label="手机号" prop="mobile">
<el-input v-model="dataForm.mobile" placeholder="手机号"></el-input>

8
src/views/modules/plugins/change/changedeath.vue

@ -1,5 +1,4 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-rent__rentDeath} resi-container">
<el-card ref="searchCard" class="search-card">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()" label-width="70px">
@ -12,13 +11,13 @@
placeholder="请输入姓名">
</el-input>
</el-form-item>
<el-form-item label="身份证"
<el-form-item label="证件号"
prop="idCard">
<el-input v-model="dataForm.idCard"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入身份证">
placeholder="请输入证件号">
</el-input>
</el-form-item>
<el-form-item label="手机"
@ -82,7 +81,7 @@
<el-button @click="handleLook(scope.row)" type="text" size="small" class="btn-color-look">{{scope.row.name}}</el-button>
</template>
</el-table-column>
<el-table-column prop="idCard" label="身份证" header-align="center" align="center"></el-table-column>
<el-table-column prop="idCard" label="证件号" header-align="center" align="center"></el-table-column>
<el-table-column prop="mobile" label="手机号" header-align="center" align="center"></el-table-column>
<el-table-column prop="gender" label="性别" header-align="center" align="center">
<template slot-scope="scope">
@ -135,7 +134,6 @@
:gridName="lookInfo.gridName"
@close="handleCancleLook" />
</div>
</el-card>
</template>
<script>

8
src/views/modules/plugins/change/changerelocation.vue

@ -1,5 +1,4 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-change__changeRelocation} resi-container">
<el-card ref="searchCard" class="search-card">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()" label-width="70px">
@ -109,13 +108,13 @@
placeholder="请输入姓名">
</el-input>
</el-form-item>
<el-form-item label="身份证"
<el-form-item label="证件号"
prop="idCard">
<el-input v-model="dataForm.idCard"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入身份证">
placeholder="请输入证件号">
</el-input>
</el-form-item>
<el-form-item label="手机"
@ -181,7 +180,7 @@
<el-table-column prop="oldAddress" label="所属房屋" header-align="center" align="center" min-width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="ownerName" label="户主姓名" header-align="center" align="center" min-width="100" show-overflow-tooltip></el-table-column>
<el-table-column prop="mobile" label="手机号" header-align="center" align="center" min-width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="idCard" label="身份证号" header-align="center" align="center" min-width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="idCard" label="证号" header-align="center" align="center" min-width="120" show-overflow-tooltip></el-table-column>
<el-table-column prop="gender" label="性别" header-align="center" align="center" min-width="70" show-overflow-tooltip>
<template slot-scope="scope">
{{
@ -213,7 +212,6 @@
:gridName="lookInfo.gridName"
@close="handleCancleLook" />
</div>
</el-card>
</template>
<script>

4
src/views/modules/plugins/change/changewelfare-add-or-update.vue

@ -10,8 +10,8 @@
<el-form-item label="姓名" prop="name">
<el-input v-model="dataForm.name" placeholder="姓名"></el-input>
</el-form-item>
<el-form-item label="身份证" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="身份证"></el-input>
<el-form-item label="证件号" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="证件号"></el-input>
</el-form-item>
<el-form-item label="手机号" prop="mobile">
<el-input v-model="dataForm.mobile" placeholder="手机号"></el-input>

8
src/views/modules/plugins/change/changewelfare.vue

@ -1,5 +1,4 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-rent__rentDeath} resi-container">
<el-card ref="searchCard" class="search-card">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
@ -12,13 +11,13 @@
placeholder="请输入姓名">
</el-input>
</el-form-item>
<el-form-item label="身份证"
<el-form-item label="证件号"
prop="idCard">
<el-input v-model="dataForm.idCard"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入身份证">
placeholder="请输入证件号">
</el-input>
</el-form-item>
<el-form-item label="手机"
@ -76,7 +75,7 @@
<el-button @click="handleLook(scope.row)" type="text" size="small" class="btn-color-look">{{scope.row.name}}</el-button>
</template>
</el-table-column>
<el-table-column prop="idCard" label="身份证" header-align="center" align="center"></el-table-column>
<el-table-column prop="idCard" label="证件号" header-align="center" align="center"></el-table-column>
<el-table-column prop="mobile" label="手机号" header-align="center" align="center"></el-table-column>
<el-table-column prop="gender" label="性别" header-align="center" align="center">
<template slot-scope="scope">
@ -132,7 +131,6 @@
</span>
</el-dialog>
</div>
</el-card>
</template>
<script>

14
src/views/modules/plugins/change/verify.vue

@ -134,7 +134,7 @@
</el-input>
</el-form-item>
<el-form-item label="身份证号" prop="idCard">
<el-form-item label="证号" prop="idCard">
<el-input
v-model="fmData.idCard"
class="resi-cell-input"
@ -236,7 +236,7 @@
prop="idCard"
align="center"
width="180"
label="身份证号"
label="证号"
>
</el-table-column>
@ -276,7 +276,7 @@
align="center"
width="100"
/>
<el-table-column fixed="right" label="操作" align="center" width="120">
<template slot-scope="scope">
@ -298,7 +298,7 @@
>审核</el-button
>
</template>
</template>
</el-table-column>
</el-table>
@ -408,9 +408,9 @@ export default {
const _h = this.clientHeight - this.searchH - 440
console.log('computed-searchH---_h', _h)
return this.$store.state.inIframe ? h : _h
},
changeVDisabled() {
return !this.fmData.villageId
},
@ -436,7 +436,7 @@ export default {
const h = this.clientHeight - this.searchH + this.iframeHeight
const _h = this.clientHeight - this.searchH
console.log('computed-searchH---_h', _h)
this.$nextTick(() => {
this.tableHeight = this.$store.state.inIframe ? h : _h
})

12
src/views/modules/plugins/change/verifyForm.vue

@ -15,7 +15,7 @@
<span>{{ detailInfo.mobile }}</span>
</el-form-item>
<el-form-item
label="身份证号:"
label="证号:"
label-width="150px"
>
<span>{{ detailInfo.idCard }}</span>
@ -140,7 +140,7 @@
</template> -->
</el-form>
<el-form v-if="btnType == 'detail' && isMoveOut == 1" :model="detailInfo">
<template>
<el-form-item
label="迁往区域:"
@ -155,14 +155,14 @@
<span>{{ detailInfo.newHomeName }}</span>
</el-form-item>
</template>
<el-form-item
label="迁出时间:"
label-width="150px"
>
<span>{{ detailInfo.moveOutDate }}</span>
</el-form-item>
</el-form>
@ -491,7 +491,7 @@ export default {
this.confirmResult = (row.confirmResult == '1' || row.confirmResult == '2') ? row.confirmResult : ''
} else this.confirmResult = '1'
if (row.newGridName) this.isMoveOut = 1
this.reason = row.reason
// await this.loadRootAgency()
@ -751,7 +751,7 @@ export default {
moveOutDate: this.dataForm.outOfTime
}
}
const { data, code, msg } = await requestPost('/epmetuser/myHome/moveOutConfirm', params)

4
src/views/modules/plugins/rent/hikerrorinfo-add-or-update.vue

@ -22,8 +22,8 @@
<el-form-item label="客户ID" prop="customerId">
<el-input v-model="dataForm.customerId" placeholder="客户ID"></el-input>
</el-form-item>
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="身份证号"></el-input>
<el-form-item label="证号" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="证号"></el-input>
</el-form-item>
<el-form-item label="错误类型 0:token,1:人员,2权限" prop="errorType">
<el-input v-model="dataForm.errorType" placeholder="错误类型 0:token,1:人员,2权限"></el-input>

2
src/views/modules/plugins/rent/hikerrorinfo.vue

@ -11,7 +11,7 @@
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="idCard" label="身份证号" header-align="center" align="center"></el-table-column>
<el-table-column prop="idCard" label="证号" header-align="center" align="center"></el-table-column>
<el-table-column prop="errorInfo" label="错误详情" header-align="center" align="center"></el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<template slot-scope="scope">

4
src/views/modules/plugins/rent/rentblacklist-add-or-update.vue

@ -7,8 +7,8 @@
<el-form-item label="姓名" prop="name">
<el-input v-model="dataForm.name" placeholder="姓名"></el-input>
</el-form-item>
<el-form-item label="身份证" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="身份证"></el-input>
<el-form-item label="证件号" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="证件号"></el-input>
</el-form-item>
<el-form-item label="手机号" prop="mobile">
<el-input v-model="dataForm.mobile" placeholder="手机号"></el-input>

14
src/views/modules/plugins/rent/rentblacklist.vue

@ -1,9 +1,8 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-rent__rentBlacklist} resi-container">
<el-card ref="searchCard" class="search-card">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item label="姓名"
<el-form-item label="姓名" label-width="100px"
prop="name">
<el-input v-model="dataForm.name"
size="small"
@ -12,16 +11,16 @@
placeholder="请输入姓名">
</el-input>
</el-form-item>
<el-form-item label="身份证"
<el-form-item label="证件号" label-width="100px"
prop="idCard">
<el-input v-model="dataForm.idCard"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入身份证">
placeholder="请输入证件号">
</el-input>
</el-form-item>
<el-form-item label="手机"
<el-form-item label="手机" label-width="100px"
prop="mobile">
<el-input v-model="dataForm.mobile"
size="small"
@ -30,7 +29,7 @@
placeholder="请输入手机">
</el-input>
</el-form-item>
<el-form-item label="入黑名单时间"
<el-form-item label="入黑名单时间" label-width="100px"
prop="startTime">
<el-date-picker v-model="timeRange"
type="daterange"
@ -54,7 +53,7 @@
<el-table class="resi-table" v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="name" label="姓名" header-align="center" align="center"></el-table-column>
<el-table-column prop="idCard" label="身份证号" header-align="center" align="center"></el-table-column>
<el-table-column prop="idCard" label="证号" header-align="center" align="center"></el-table-column>
<el-table-column prop="mobile" label="手机" header-align="center" align="center"></el-table-column>
<el-table-column prop="gender" label="性别" header-align="center" align="center"></el-table-column>
<el-table-column prop="joinDate" label="入黑名单时间" header-align="center" align="center"></el-table-column>
@ -95,7 +94,6 @@
:gridName="lookInfo.gridName"
@close="handleCancleLook" />
</div>
</el-card>
</template>
<script>

16
src/views/modules/plugins/rent/rentcontractinfo-add-or-update.vue

@ -133,7 +133,7 @@
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="idCard" label="身份证号" :render-header="renderHeader" header-align="center" align="center" width="180">
<el-table-column prop="idCard" label="证号" :render-header="renderHeader" header-align="center" align="center" width="180">
<template slot-scope="scope">
<el-form-item :prop="'tenantList['+scope.$index+'].idCard'" required :show-message="false">
<el-input v-model="dataForm.tenantList[scope.$index].idCard"></el-input>
@ -189,7 +189,7 @@
</el-form-item>
</template>
</el-table-column>
<el-table-column label="身份证照片" :render-header="renderHeader" header-align="center" align="center" width="245px">
<el-table-column label="证照片" :render-header="renderHeader" header-align="center" align="center" width="245px">
<template slot-scope="scope">
<upload-image :defaultFileList="dataForm.tenantList[scope.$index].idCardImgList" :limit="2" :rowIndex="scope.$index" @change="onChangeTenantListIdImgList"></upload-image>
</template>
@ -211,8 +211,8 @@
<el-form-item label="出租人姓名" prop="lessorName" label-width="140px">
<el-input v-model="dataForm.lessorName" placeholder="出租人姓名"></el-input>
</el-form-item>
<el-form-item label="出租人身份证" prop="lessorIdCard" label-width="140px">
<el-input v-model="dataForm.lessorIdCard" placeholder="出租人身份证"></el-input>
<el-form-item label="出租人证件号" prop="lessorIdCard" label-width="140px">
<el-input v-model="dataForm.lessorIdCard" placeholder="出租人证件号"></el-input>
</el-form-item>
<el-form-item label="出租人手机" prop="lessorMobile" label-width="140px">
<el-input v-model="dataForm.lessorMobile" placeholder="出租人手机"></el-input>
@ -239,8 +239,8 @@
<el-form-item label="承租人姓名" prop="lesseeName" label-width="140px">
<el-input v-model="dataForm.lesseeName" placeholder="承租人姓名" ></el-input>
</el-form-item>
<el-form-item label="承租人身份证" prop="lesseeIdCard" label-width="140px">
<el-input v-model="dataForm.lesseeIdCard" placeholder="承租人身份证" ></el-input>
<el-form-item label="承租人证件号" prop="lesseeIdCard" label-width="140px">
<el-input v-model="dataForm.lesseeIdCard" placeholder="承租人证件号" ></el-input>
</el-form-item>
<el-form-item label="承租人手机" prop="lesseeMobile" label-width="140px">
<el-input v-model="dataForm.lesseeMobile" placeholder="承租人手机" ></el-input>
@ -559,7 +559,7 @@ export default {
<span style="font-size:12px; color: #ff0000;">*</span>
<span>{label}</span>
</div>
)
)
},
onChangeTenantListIdImgList (e, rowIndex=0) {
console.log('onChangeTenantListIdImgList', e)
@ -876,7 +876,7 @@ export default {
return item.idCardImgList.length == 0
})
if (isUploadIdCardImgList) {
this.$message.error('请上传成员身份证照片')
this.$message.error('请上传成员证照片')
return
}
const isUploadImgList = this.dataForm.tenantList.some(item => {

12
src/views/modules/plugins/rent/rentcontractinfo-look-or-check.vue

@ -29,12 +29,12 @@
<el-table-column prop="name" label="姓名" header-align="center" align="center"></el-table-column>
<el-table-column prop="yfzgx" label="与户主关系" header-align="center" align="center" width="120"></el-table-column>
<el-table-column prop="mobile" label="手机" header-align="center" align="center" width="120"></el-table-column>
<el-table-column prop="idCard" label="身份证号" header-align="center" align="center" width="180"></el-table-column>
<el-table-column prop="idCard" label="证号" header-align="center" align="center" width="180"></el-table-column>
<el-table-column prop="unit" label="工作单位" header-align="center" align="center" width="180" show-overflow-tooltip></el-table-column>
<el-table-column prop="politicalStatus" label="政治面貌" header-align="center" align="center"></el-table-column>
<el-table-column prop="isMilitary" label="是否服过兵役" header-align="center" align="center" width="120"></el-table-column>
<el-table-column prop="nation" label="国籍" header-align="center" align="center"></el-table-column>
<el-table-column prop="idCardImgList" label="身份证照片" header-align="center" align="center">
<el-table-column prop="idCardImgList" label="证照片" header-align="center" align="center">
<template slot-scope="scope">
<div v-for="(item,index) in scope.row.idCardImgList" :key="index">
<img :src="item.fileUrl" @click="imgShow(item.fileUrl)" width="40" height="40" />
@ -55,8 +55,8 @@
<el-form-item label="出租人姓名" prop="lessorName">
<el-input v-model="dataForm.lessorName" placeholder="出租人姓名" disabled></el-input>
</el-form-item>
<el-form-item label="出租人身份证" prop="lessorIdCard">
<el-input v-model="dataForm.lessorIdCard" placeholder="出租人身份证" disabled></el-input>
<el-form-item label="出租人证件号" prop="lessorIdCard">
<el-input v-model="dataForm.lessorIdCard" placeholder="出租人证件号" disabled></el-input>
</el-form-item>
<br/>
<el-form-item label="出租人手机" prop="lessorMobile">
@ -87,8 +87,8 @@
<el-form-item label="承租人姓名" prop="lesseeName">
<el-input v-model="dataForm.lesseeName" placeholder="承租人姓名" disabled></el-input>
</el-form-item>
<el-form-item label="承租人身份证" prop="lesseeIdCard">
<el-input v-model="dataForm.lesseeIdCard" placeholder="承租人身份证" disabled></el-input>
<el-form-item label="承租人证件号" prop="lesseeIdCard">
<el-input v-model="dataForm.lesseeIdCard" placeholder="承租人证件号" disabled></el-input>
</el-form-item>
<br/>
<el-form-item label="承租人手机" prop="lesseeMobile">

34
src/views/modules/plugins/rent/rentcontractinfo.vue

@ -1,11 +1,10 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-rent__rentContractInfo} resi-container">
<el-card ref="searchCard" class="search-card">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item label="所属网格" label-width="100px"
prop="gridId">
<el-select
<el-select size="small"
v-model.trim="dataForm.gridId"
placeholder="请选择"
clearable
@ -24,7 +23,7 @@
<div class="resi-cell-value">
<div class="resi-cell-col">
<el-form-item prop="villageId">
<el-select
<el-select size="small"
v-model.trim="dataForm.villageId"
placeholder="请选择小区"
clearable
@ -41,7 +40,7 @@
</el-select>
</el-form-item>
<el-form-item prop="buildId">
<el-select
<el-select size="small"
v-model.trim="dataForm.buildId"
placeholder="楼号"
clearable
@ -60,7 +59,7 @@
</el-select>
</el-form-item>
<el-form-item prop="unitId">
<el-select
<el-select size="small"
v-model.trim="dataForm.unitId"
:disabled="changeBDisabled"
placeholder="单元"
@ -79,7 +78,7 @@
</el-select>
</el-form-item>
<el-form-item prop="homeId">
<el-select
<el-select size="small"
v-model.trim="dataForm.homeId"
:disabled="changeDDisabled"
placeholder="房号"
@ -100,34 +99,34 @@
</el-form-item>
<br/>
<el-form-item label="出租人" label-width="100px">
<el-input v-model="dataForm.lessorName" placeholder='出租人' clearable @keyup.native="btKeyUpLessorName"></el-input>
<el-input size="small" v-model="dataForm.lessorName" placeholder='出租人' clearable @keyup.native="btKeyUpLessorName"></el-input>
</el-form-item>
<el-form-item label="出租人身份证" label-width="100px">
<el-input v-model="dataForm.lessorIdCard" placeholder='出租人身份证' clearable @keyup.native="btKeyUpLessorIdCard"></el-input>
<el-form-item label="出租人证件号" label-width="100px">
<el-input size="small" v-model="dataForm.lessorIdCard" placeholder='出租人证件号' clearable @keyup.native="btKeyUpLessorIdCard"></el-input>
</el-form-item>
<el-form-item label="出租人手机号" label-width="100px">
<el-input v-model="dataForm.lessorMobile" placeholder='出租人手机号' clearable @keyup.native="btKeyUpLessorMobile"></el-input>
<el-input size="small" v-model="dataForm.lessorMobile" placeholder='出租人手机号' clearable @keyup.native="btKeyUpLessorMobile"></el-input>
</el-form-item>
<br/>
<el-form-item label="承租人" label-width="100px">
<el-input v-model="dataForm.lesseeName" placeholder='承租人' clearable @keyup.native="btKeyUpLesseeName"></el-input>
<el-input size="small" v-model="dataForm.lesseeName" placeholder='承租人' clearable @keyup.native="btKeyUpLesseeName"></el-input>
</el-form-item>
<el-form-item label="承租人身份证" label-width="100px">
<el-input v-model="dataForm.lesseeIdCard" placeholder='承租人身份证' clearable @keyup.native="btKeyUpLesseeIdCard"></el-input>
<el-form-item label="承租人证件号" label-width="100px">
<el-input size="small" v-model="dataForm.lesseeIdCard" placeholder='承租人证件号' clearable @keyup.native="btKeyUpLesseeIdCard"></el-input>
</el-form-item>
<el-form-item label="承租人手机号" label-width="100px">
<el-input v-model="dataForm.lesseeMobile" placeholder='承租人手机号' clearable @keyup.native="btKeyUpLesseeMobile"></el-input>
<el-input size="small" v-model="dataForm.lesseeMobile" placeholder='承租人手机号' clearable @keyup.native="btKeyUpLesseeMobile"></el-input>
</el-form-item>
<br/>
<el-form-item label="合同到期时间" prop="endDate" label-width="100px">
<el-select v-model="dataForm.endDate" placeholder="合同到期时间" clearable>
<el-select size="small" v-model="dataForm.endDate" placeholder="合同到期时间" clearable>
<el-option v-for="item in endDateArr" :key="item.dictValue" :label="item.dictName" :value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="合同签订时间" prop="startTime" label-width="100px">
<el-date-picker v-model="dataForm.startTime"
type="date"
type="date" size="small"
:picker-options="pickerBeginDateBefore"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
@ -137,7 +136,7 @@
</el-form-item>
<el-form-item label="至" prop="endTime">
<el-date-picker v-model="dataForm.endTime"
type="date"
type="date" size="small"
:picker-options="pickerBeginDateAfter"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
@ -194,7 +193,6 @@
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</el-card>
</template>
<script>

30
src/views/modules/plugins/rent/rentcontractreview.vue

@ -1,11 +1,10 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-rent__rentContractInfo} resi-container">
<el-card ref="searchCard" class="search-card">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item label="所属网格" label-width="100px"
prop="gridId">
<el-select
<el-select size="small"
v-model.trim="dataForm.gridId"
placeholder="请选择"
clearable
@ -24,7 +23,7 @@
<div class="resi-cell-value">
<div class="resi-cell-col">
<el-form-item prop="villageId">
<el-select
<el-select size="small"
v-model.trim="dataForm.villageId"
placeholder="请选择小区"
clearable
@ -41,7 +40,7 @@
</el-select>
</el-form-item>
<el-form-item prop="buildId">
<el-select
<el-select size="small"
v-model.trim="dataForm.buildId"
placeholder="楼号"
clearable
@ -60,7 +59,7 @@
</el-select>
</el-form-item>
<el-form-item prop="unitId">
<el-select
<el-select size="small"
v-model.trim="dataForm.unitId"
:disabled="changeBDisabled"
placeholder="单元"
@ -79,7 +78,7 @@
</el-select>
</el-form-item>
<el-form-item prop="homeId">
<el-select
<el-select size="small"
v-model.trim="dataForm.homeId"
:disabled="changeDDisabled"
placeholder="房号"
@ -100,24 +99,24 @@
</el-form-item>
<br/>
<el-form-item label="审核状态" prop="scanFlag" label-width="100px">
<el-select v-model="dataForm.state" placeholder="审核状态" clearable>
<el-select size="small" v-model="dataForm.state" placeholder="审核状态" clearable>
<el-option v-for="item in stateArr" :key="item.dictValue" :label="item.dictName" :value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="承租人身份证" label-width="100px">
<el-input v-model="dataForm.lesseeIdCard" placeholder='承租人身份证' clearable @keyup.native="btKeyUpLesseeIdCard"></el-input>
<el-form-item label="承租人证件号" label-width="100px">
<el-input size="small" v-model="dataForm.lesseeIdCard" placeholder='承租人证件号' clearable @keyup.native="btKeyUpLesseeIdCard"></el-input>
</el-form-item>
<el-form-item label="承租人手机号" label-width="100px">
<el-input v-model="dataForm.lesseeMobile" placeholder='承租人手机号' clearable @keyup.native="btKeyUpLesseeMobile"></el-input>
<el-input size="small" v-model="dataForm.lesseeMobile" placeholder='承租人手机号' clearable @keyup.native="btKeyUpLesseeMobile"></el-input>
</el-form-item>
<br/>
<el-form-item label="承租人" label-width="100px">
<el-input v-model="dataForm.lesseeName" placeholder='承租人' clearable @keyup.native="btKeyUpLesseeName"></el-input>
<el-input size="small" v-model="dataForm.lesseeName" placeholder='承租人' clearable @keyup.native="btKeyUpLesseeName"></el-input>
</el-form-item>
<el-form-item label="审核时间" prop="startTime" label-width="100px">
<el-date-picker v-model="dataForm.startTime"
type="date"
type="date" size="small"
:picker-options="pickerBeginDateBefore"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
@ -127,7 +126,7 @@
</el-form-item>
<el-form-item label="至" prop="endTime">
<el-date-picker v-model="dataForm.endTime"
type="date"
type="date" size="small"
:picker-options="pickerBeginDateAfter"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
@ -137,7 +136,7 @@
</el-form-item>
<el-form-item label="数据来源" label-width="100px"
prop="gridId">
<el-select
<el-select size="small"
v-model.trim="dataForm.isPcInput"
placeholder="请选择"
clearable
@ -184,7 +183,7 @@
<!-- <el-table-column prop="unitName" label="单元" header-align="center" align="center"></el-table-column>-->
<!-- <el-table-column prop="homeName" label="房屋" header-align="center" align="center"></el-table-column>-->
<el-table-column prop="lesseeName" label="承租人" header-align="center" align="center"></el-table-column>
<el-table-column prop="lesseeIdCard" label="身份证" header-align="center" align="center"></el-table-column>
<el-table-column prop="lesseeIdCard" label="证件号" header-align="center" align="center"></el-table-column>
<el-table-column prop="lesseeMobile" label="手机" header-align="center" align="center"></el-table-column>
<el-table-column prop="state" label="审核状态" header-align="center" align="center">
<template slot-scope="scope">
@ -217,7 +216,6 @@
<look-or-check v-if="lookOrCheckVisible" ref="LookOrCheck" @refreshDataList="getDataList"></look-or-check>
<add-or-update v-if="addOrUpdateVisible" ref="AddOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
</el-card>
</template>
<script>

4
src/views/modules/plugins/rent/renthouse-add-or-update.vue

@ -25,8 +25,8 @@
<el-form-item label="房主电话" prop="ownerPhone">
<el-input v-model="dataForm.ownerPhone" placeholder="房主电话"></el-input>
</el-form-item>
<el-form-item label="房主身份证号" prop="ownerIdCard">
<el-input v-model="dataForm.ownerIdCard" placeholder="房主身份证号"></el-input>
<el-form-item label="房主证号" prop="ownerIdCard">
<el-input v-model="dataForm.ownerIdCard" placeholder="房主证号"></el-input>
</el-form-item>
<el-form-item label="网格" prop="gridName">
<el-input v-model="dataForm.gridName" placeholder="网格"></el-input>

113
src/views/modules/plugins/rent/renthouse.vue

@ -1,8 +1,8 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-rent__rentHouse}">
<div class="mod-rent__rentHouse} resi-container">
<el-card ref="searchCard" class="search-card">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()" label-width="70px">
<el-form-item label="所属网格"
<el-form-item label="所属网格" size="small" label-width="100px"
prop="gridId">
<el-select
v-model.trim="dataForm.gridId"
@ -19,11 +19,11 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="所属房屋" >
<el-form-item label="所属房屋" label-width="100px">
<div class="resi-cell-value">
<div class="resi-cell-col">
<el-form-item prop="villageId">
<el-select
<el-select size="small"
v-model.trim="dataForm.villageId"
placeholder="请选择小区"
clearable
@ -40,7 +40,7 @@
</el-select>
</el-form-item>
<el-form-item prop="buildId">
<el-select
<el-select size="small"
v-model.trim="dataForm.buildId"
placeholder="楼号"
clearable
@ -59,7 +59,7 @@
</el-select>
</el-form-item>
<el-form-item prop="unitId">
<el-select
<el-select size="small"
v-model.trim="dataForm.unitId"
:disabled="changeBDisabled"
placeholder="单元"
@ -78,7 +78,7 @@
</el-select>
</el-form-item>
<el-form-item prop="homeId">
<el-select
<el-select size="small"
v-model.trim="dataForm.homeId"
:disabled="changeDDisabled"
placeholder="房号"
@ -99,7 +99,7 @@
</el-form-item>
<br/>
<el-form-item label="姓名"
<el-form-item label="姓名" label-width="100px"
prop="ownerName">
<el-input v-model="dataForm.ownerName"
size="small"
@ -108,16 +108,16 @@
placeholder="请输入姓名">
</el-input>
</el-form-item>
<el-form-item label="身份证"
<el-form-item label="证件号" label-width="100px"
prop="ownerIdCard">
<el-input v-model="dataForm.ownerIdCard"
size="small"
class="list_item_width_1"
clearable
placeholder="请输入身份证">
placeholder="请输入证件号">
</el-input>
</el-form-item>
<el-form-item label="手机"
<el-form-item label="手机" label-width="100px"
prop="ownerPhone">
<el-input v-model="dataForm.ownerPhone"
size="small"
@ -127,13 +127,13 @@
</el-input>
</el-form-item>
<br/>
<el-form-item label="房屋状态" prop="rentFlag">
<el-select v-model="dataForm.rentFlag" placeholder="房屋状态" clearable>
<el-form-item label="房屋状态" prop="rentFlag" label-width="100px">
<el-select size="small" v-model="dataForm.rentFlag" placeholder="房屋状态" clearable>
<el-option v-for="item in rentFlagArr" :key="item.dictValue" :label="item.dictName" :value="item.dictValue">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="购房时间"
<el-form-item label="购房时间" label-width="100px"
prop="startTime">
<el-date-picker v-model="timeRange"
type="daterange"
@ -151,17 +151,16 @@
<el-form-item>
<el-button class="diy-button--reset" size="small" @click="resetForm">重置</el-button>
</el-form-item>
<br/>
<el-form-item>
<el-button type="primary" size="small" @click="handleEdit()">{{ '购房登记' }}</el-button>
</el-form-item>
<el-form-item>
<el-button type="warning" size="small" @click="exportHandle()">{{ $t('export') }}</el-button>
</el-form-item>
<!--<el-form-item>-->
<!--<el-button type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>-->
<!--</el-form-item>-->
</el-form>
</el-card>
<el-card class="resi-card-table">
<div style="margin-bottom: 13px;">
<el-button type="primary" size="small" @click="handleEdit()">{{ '购房登记' }}</el-button>
<el-button type="warning" size="small" @click="exportHandle()">{{ $t('export') }}</el-button>
</div>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%">
<el-table-column label="序号"
type="index"
@ -222,7 +221,7 @@
</el-table-column>
<el-table-column prop="ownerName" label="房主姓名" header-align="center" align="center" min-width="70" show-overflow-tooltip></el-table-column>
<el-table-column prop="ownerPhone" label="房主电话" header-align="center" align="center"></el-table-column>
<el-table-column prop="ownerIdCard" label="房主身份证号" header-align="center" align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="ownerIdCard" label="房主证号" header-align="center" align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="purchaseDate" label="购房日期" header-align="center" align="center" min-width="100" show-overflow-tooltip></el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<template slot-scope="scope">
@ -240,6 +239,7 @@
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
</el-pagination>
</el-card>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
<!-- 购房登记弹出框 -->
@ -256,7 +256,6 @@
@dialogOk="addFormOk"></room-form>
</el-dialog>
</div>
</el-card>
</template>
<script>
@ -512,3 +511,69 @@ export default {
}
}
</script>
<style lang="scss" scoped>
.blacklist-reason {
width: 100%;
height: 80px;
border: 1px solid #e4e4e4;
border-radius: 4px;
resize: none;
padding: 8px;
box-sizing: border-box;
}
</style>
<style lang="scss" scoped>
@import "@/assets/scss/buttonstyle.scss";
.resi-container .resi-card-table {
::v-deep .el-table th {
color: #fff;
background-color: rgba(33, 149, 254, 1);
// border-right: 1px solid rgba(33, 149, 254, 1);
}
}
.resi-table {
::v-deep .el-button--text {
text-decoration: underline;
}
::v-deep .btn-color-del {
margin-left: 10px;
color: rgba(213, 16, 16, 1);
}
::v-deep .btn-color-edit {
color: rgba(0, 167, 169, 1);
}
}
.form-wr {
.input-width {
width: 260px;
}
.input-width-textarea {
width: 500px;
}
.imsg-list {
display: flex;
align-items: center;
.imgs-item {
position: relative;
margin-right: 10px;
.el-icon-delete {
position: absolute;
top: 0;
right: 0;
font-size: 18px;
color: red;
z-index: 3;
cursor: pointer;
}
}
}
}
.div-content {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
</style>

9
src/views/modules/plugins/rent/renthouseForm.vue

@ -144,12 +144,12 @@
v-model="dataForm.ownerPhone">
</el-input>
</el-form-item>
<el-form-item label="房主身份证"
<el-form-item label="房主证件号"
prop="ownerIdCard"
label-width="150px"
style="display: block">
<el-input class="item_width_1"
placeholder="请输入房主身份证"
placeholder="请输入房主证件号"
v-model="dataForm.ownerIdCard">
</el-input>
</el-form-item>
@ -520,11 +520,12 @@ export default {
async addRoom () {
const regCard = /(^\d{15}$)|(^\d{17}(\d|X)$)/; //1518151817X
if (this.dataForm.ownerIdCard && regCard.test(this.dataForm.ownerIdCard) === false) {
const regPassport = /^[a-zA-Z]{2}\d{7}$|^[a-zA-Z]{1}\d{8}$/; //1827
if (this.dataForm.ownerIdCard && regCard.test(this.dataForm.ownerIdCard) === false && regPassport.test(this.dataForm.ownerIdCard) === false) {
this.btnDisable = false
this.$message({
type: 'warning',
message: '请输入正确的身份证号'
message: '请输入正确的证号'
})
return false;
}

6
src/views/modules/plugins/rent/renttenantinfo-add-or-update.vue

@ -4,8 +4,8 @@
<el-form-item label="姓名" prop="name">
<el-input v-model="dataForm.name" placeholder="姓名" disabled></el-input>
</el-form-item>
<el-form-item label="身份证" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="身份证" disabled></el-input>
<el-form-item label="证件号" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="证件号" disabled></el-input>
</el-form-item>
<el-form-item label="手机号" prop="mobile">
<el-input v-model="dataForm.mobile" placeholder="手机号" disabled></el-input>
@ -13,7 +13,7 @@
<!--<el-form-item label="与房主关系" prop="yfzgx">-->
<!--<el-input v-model="dataForm.yfzgx" placeholder="与房主关系" disabled></el-input>-->
<!--</el-form-item>-->
<el-form-item label="身份证照片" prop="idCardImgList">
<el-form-item label="证照片" prop="idCardImgList">
<template>
<label v-for="(item,index) in dataForm.idCardImgList" :key="index">
<img :src="item.fileUrl" @click="imgShow(item.fileUrl)" width="100" height="100" />

16
src/views/modules/plugins/rent/renttenantinfo.vue

@ -1,16 +1,15 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-rent__rentTenantInfo} resi-container">
<el-card ref="searchCard" class="search-card">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item label="姓名" label-width="60px">
<el-input v-model="dataForm.name" placeholder='姓名' clearable @keyup.native="btKeyUpName"></el-input>
<el-form-item label="姓名" label-width="100px">
<el-input size="small" v-model="dataForm.name" placeholder='姓名' clearable @keyup.native="btKeyUpName"></el-input>
</el-form-item>
<el-form-item label="身份证" label-width="60px">
<el-input v-model="dataForm.idCard" placeholder='身份证' clearable @keyup.native="btKeyUpIdCard"></el-input>
<el-form-item label="证件号" label-width="100px">
<el-input size="small" v-model="dataForm.idCard" placeholder='证件号' clearable @keyup.native="btKeyUpIdCard"></el-input>
</el-form-item>
<el-form-item label="手机号" label-width="60px">
<el-input v-model="dataForm.mobile" placeholder='手机号' clearable @keyup.native="btKeyUpMobile"></el-input>
<el-form-item label="手机号" label-width="100px">
<el-input size="small" v-model="dataForm.mobile" placeholder='手机号' clearable @keyup.native="btKeyUpMobile"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" @click="getDataList()">{{ $t('query') }}</el-button>
@ -31,7 +30,7 @@
<!--<el-table-column prop="id" label="主键" header-align="center" align="center"></el-table-column>-->
<!--<el-table-column prop="contractId" label="合同ID" header-align="center" align="center"></el-table-column>-->
<el-table-column prop="name" label="姓名" header-align="center" align="center"></el-table-column>
<el-table-column prop="idCard" label="身份证" header-align="center" align="center"></el-table-column>
<el-table-column prop="idCard" label="证件号" header-align="center" align="center"></el-table-column>
<el-table-column prop="mobile" label="手机号" header-align="center" align="center"></el-table-column>
<!--<el-table-column prop="yfzgx" label="与房主关系" header-align="center" align="center"></el-table-column>-->
<el-table-column prop="state" label="审核状态" header-align="center" align="center">
@ -73,7 +72,6 @@
</span>
</el-dialog>
</div>
</el-card>
</template>
<script>

6
src/views/modules/plugins/stats/factagencyuserhousedaily.vue

@ -1,5 +1,4 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mode-block resi-container">
<el-card ref="searchCard" class="search-card">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
@ -18,7 +17,7 @@
>
</el-option>
</el-select> -->
<el-cascader ref="cascaderUnit" v-model.trim="dataForm.agencyId" :options="optionsA" :props="{ checkStrictly: true, expandTrigger: 'hover', emitPath: false,children:'children',label:'objectName',value:'objectId'}" popper-class="cascader-block">
<el-cascader size="small" ref="cascaderUnit" v-model.trim="dataForm.agencyId" :options="optionsA" :props="{ checkStrictly: true, expandTrigger: 'hover', emitPath: false,children:'children',label:'objectName',value:'objectId'}" popper-class="cascader-block">
<template slot-scope="{ node, data }">
<div @click="cascaderClick(data)">
<!-- <span class="block"></span> -->
@ -28,7 +27,7 @@
</template>
</el-cascader>
</el-form-item>
<el-form-item label="时间范围"
<el-form-item label="时间范围" label-width="100px"
prop="startTime">
<el-date-picker v-model="timeRange"
type="daterange"
@ -107,7 +106,6 @@
</template>
</el-dialog>
</div>
</el-card>
</template>
<script>

4
src/views/modules/plugins/visit/visitor-add-or-update.vue

@ -4,8 +4,8 @@
<el-form-item label="姓名" prop="name">
<el-input v-model="dataForm.name" placeholder="姓名"></el-input>
</el-form-item>
<el-form-item label="身份证" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="身份证"></el-input>
<el-form-item label="证件号" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="证件号"></el-input>
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-radio-group v-model="dataForm.gender">

4
src/views/modules/plugins/visit/visitvisitor-add-or-update.vue

@ -4,8 +4,8 @@
<el-form-item label="姓名" prop="name">
<el-input v-model="dataForm.name" placeholder="姓名"></el-input>
</el-form-item>
<el-form-item label="身份证" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="身份证"></el-input>
<el-form-item label="证件号" prop="idCard">
<el-input v-model="dataForm.idCard" placeholder="证件号"></el-input>
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-radio-group v-model="dataForm.gender">

6
src/views/modules/plugins/visit/visitvisitor.vue

@ -6,8 +6,8 @@
<el-form-item label="姓名" label-width="100px">
<el-input v-model="dataForm.name" placeholder='姓名' clearable></el-input>
</el-form-item>
<el-form-item label="身份证" label-width="100px">
<el-input v-model="dataForm.idCard" placeholder='身份证' clearable></el-input>
<el-form-item label="证件号" label-width="100px">
<el-input v-model="dataForm.idCard" placeholder='证件号' clearable></el-input>
</el-form-item>
<el-form-item label="联系方式" label-width="100px">
<el-input v-model="dataForm.mobile" placeholder='联系方式' clearable></el-input>
@ -114,7 +114,7 @@
<el-table class="resi-table" v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%">
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
<el-table-column prop="name" label="姓名" header-align="center" align="center"></el-table-column>
<el-table-column prop="idCard" label="身份证" header-align="center" align="center"></el-table-column>
<el-table-column prop="idCard" label="证件号" header-align="center" align="center"></el-table-column>
<el-table-column prop="gender" label="性别" header-align="center" align="center"></el-table-column>
<el-table-column prop="mobile" label="手机号" header-align="center" align="center"></el-table-column>
<el-table-column prop="type" label="人员类型" header-align="center" align="center">

14
src/views/modules/shequzhili/event/cpts/add.vue

@ -402,10 +402,20 @@ export default {
async mounted () {
const { user } = this.$store.state
this.agencyId = user.agencyId
let { latitude, longitude } = this.$store.state.user;
if (!latitude || latitude == "" || latitude == "0") {
latitude = 39.9088810666821;
longitude = 116.39743841556731;
}
this.formData.latitude = latitude
this.formData.longitude = longitude
this.initMap()
this.loadGrid();
this.getCategoryList()
this.initMap()
},
@ -597,7 +607,7 @@ export default {
// init
initMap () {
//
var center = new window.TMap.LatLng(36.0722275, 120.38945519)
var center = new window.TMap.LatLng(this.formData.latitude, this.formData.longitude)
// map TMap.Map()
map = new window.TMap.Map(document.getElementById('app'), {
center: center, //

37
src/views/modules/shequzhili/event/eventList.vue

@ -49,9 +49,9 @@
<el-form-item label="事件类型"
prop="firstIdList">
<el-cascader ref="cascaderEvent" v-model="eventTypeCheck" :options="cateOptions"
collapse-tags
collapse-tags
:show-all-levels="false"
:props="{
:props="{
multiple: true,
checkStrictly: false,
emitPath: false,
@ -254,7 +254,7 @@
label="满意度"
:show-overflow-tooltip="true">
<!-- <template slot-scope="scope">
<span v-if="scope.row.satisfactionName">--</span>
</template> -->
</el-table-column>
@ -317,6 +317,10 @@
@click="handleWatch(scope.row)"
type="text"
size="small">查看</el-button>
<el-button @click="handleDel(scope.row)"
type="text"
size="small"
class="div-table-button--delete">删除</el-button>
</template>
</el-table-column>
@ -400,7 +404,7 @@ export default {
}
return {
pageType: "list", // list add dispose info
pageType: "list", // list add dispose info
user: {},
agencyId: '',
gridList: [],//list--
@ -694,15 +698,22 @@ export default {
this.getTableData();
},
async handleDel (rowData, rowIndex) {
console.log(rowData, rowIndex);
const url =
"/heart/iccommunityselforganization/delcommunityselforganization";
const { tableData } = this;
async handleDel (rowData) {
let message = "确认删除?";
const { data, code, msg } = await requestPost(url, {
orgId: tableData[rowIndex].orgId,
});
this.$confirm(message, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
this.delEvent(rowData.icEventId);
}).catch((err) => { });
},
async delEvent (eventId){
const url = "/gov/project/icEvent/delete";
let idsArr = [eventId];
const { data, code, msg } =await requestPost(url, idsArr);
if (code === 0) {
this.$message.success("删除成功!");
@ -790,7 +801,7 @@ export default {
secondIdList: [],
}
this.eventTypeCheck = []
this.pageNo = 1
this.getTableData();

10
src/views/modules/shequzhili/xiangmu/cpts/edit.vue

@ -170,7 +170,7 @@
</el-form-item>
<el-form-item
label="身份证号"
label="证号"
prop="idCard"
label-width="150px"
style="display: block"
@ -178,7 +178,7 @@
<el-input
class="item_width_1"
maxlength="30"
placeholder="请输入身份证号"
placeholder="请输入身份证号或证件号"
v-model="fmData.idCard"
@blur="handleBlurId"
:disabled="formType === 'edit'"
@ -444,10 +444,10 @@ export default {
dataRule() {
let checkIdCard = (rule, value, callback) => {
if (value === "") {
callback(new Error("请输入身份证"));
callback(new Error("请输入证件号"));
} else {
if (!isCard(value)) {
callback(new Error("身份证号格式不正确"));
callback(new Error("证号格式不正确"));
}
callback();
}
@ -462,7 +462,7 @@ export default {
],
name: [{ required: true, message: "姓名不能为空", trigger: "blur" }],
idCard: [
{ required: true, message: "身份证号不能为空", trigger: "blur" },
{ required: true, message: "证号不能为空", trigger: "blur" },
{ required: true, validator: checkIdCard, trigger: "blur" },
],
birthplace: [

38
src/views/modules/visual/shundeju/controlCount.vue

@ -48,7 +48,7 @@
>
</el-date-picker>
</div>
</div>
</div>
</div>
<div class="warning-box-bottom">
<screen-table
@ -100,15 +100,15 @@ export default {
{
'min-width': '210px'
},
{
'min-width': '20px'
},
// {
// 'min-width': '20px'
// },
{
'min-width': '50px'
},
{
'min-width': '20px'
},
// {
// 'min-width': '20px'
// },
{
'min-width': '210px'
},
@ -133,15 +133,15 @@ export default {
{ title: "姓名", coulmn: 'name' },
{ title: "人脸", coulmn: 'faceImg' },
{ title: "身份证", coulmn: 'idCard' },
{ title: "性别", coulmn: 'gender' },
// { title: "", coulmn: 'gender' },
{ title: "手机号", coulmn: 'mobile' },
{ title: "类型", coulmn: 'type' },
// { title: "", coulmn: 'type' },
{ title: "出入时间", coulmn: 'createdTime' },
{ title: "进入原因", coulmn: 'visitReason' },
{ title: "小区", coulmn: 'residential' },
{ title: "楼号", coulmn: 'building' },
{ title: "单元", coulmn: 'unit' },
{ title: "房间", coulmn: 'room' },
{ title: "进入原因", coulmn: 'comeReason' },
{ title: "小区", coulmn: 'villageName' },
{ title: "楼号", coulmn: 'buildName' },
{ title: "单元", coulmn: 'unitName' },
{ title: "房间", coulmn: 'homeName' },
],
timeRange: '',
tableData: [],
@ -180,7 +180,7 @@ export default {
methods: {
//
async getChartTraffic () {
const url = "/pli/power/visitVisitor/chart/traffic";
const url = "/epmetuser/icResiCollectVisitor/chart/traffic";
let params = {
date: this.timeFormat(this.lineTime)
};
@ -200,7 +200,7 @@ export default {
}
},
async getVisitVisitorPage () {
const url = "/pli/power/visitVisitor/page";
const url = "/epmetuser/icResiCollectVisitor/page";
let params = {
page: this.pageNo,
limit: this.pageSize,
@ -231,7 +231,7 @@ export default {
}
})
this.total = data.total
} else {
}
this.visibleLoading = false;
@ -440,7 +440,7 @@ export default {
line-height: 24px;
}
}
}
}
@ -533,7 +533,7 @@ export default {
position: relative;
flex: 1;
display: flex;
}
}
.echart-wr {

176
src/views/modules/workSys/workLog/edit.vue

@ -0,0 +1,176 @@
<template>
<el-dialog :visible.sync="visible"
:title="title"
:width="diaWidth+'%'"
:close-on-click-modal="false"
:before-close="handleClose"
:close-on-press-escape="false">
<el-form :inline="false"
:model="dataForm"
:rules="dataRule"
ref="dataForm"
:label-width="'120px'">
<div style="margin-top:20px">
<el-form-item label="分类名称"
prop="serviceTypeName">
<el-tooltip class="item"
effect="dark"
content="请输入1-10个字"
placement="bottom-start">
<el-input class="item_width_1"
:maxlength="10"
:minlength="1"
v-model="dataForm.serviceTypeName"
placeholder="分类名称"></el-input>
</el-tooltip>
</el-form-item>
<!-- <el-form-item label="排序"
prop="sort">
<el-input-number v-model="dataForm.sort"
:min="1"
label="描述文字"></el-input-number>
</el-form-item> -->
</div>
</el-form>
<!-- <template slot="footer">
<el-button @click="visible = false;resetData()">{{ $t('cancel') }}</el-button>
<el-button type="primary"
@click="saveForm()">{{ $t('confirm') }}</el-button>
</template> -->
<div class="resi-btns">
<el-button size="small"
@click="visible = false;resetData()">取消</el-button>
<el-button type="primary"
size="small"
@click="saveForm">提交</el-button>
</div>
</el-dialog>
</template>
<script>
import { mapGetters } from 'vuex'
import { requestPost } from '@/js/dai/request'
export default {
data () {
return {
visible: false,
title: '分类信息',
customerId: '',
parentid: '', // Id
id: '', // Id
type: '', // (add: edit:)
dataForm: {
serviceTypeName: '', //
sort: 0,
type: '', // (add: edit:)
level: ''
},
url: ''
}
},
created () {
// this.queryFunctionList()
},
computed: {
dataRule () {
return {
serviceTypeName: [
{ required: true, message: '分类名称不能为空', trigger: 'blur' },
{ min: 2, max: 20, message: '分类名称长度在 2 到 20 个字符', trigger: 'blur' }
]
}
},
diaWidth () {
console.log(this.resolution)
return this.resolution === 'small' ? 70 : 50
},
...mapGetters(['clientHeight', 'resolution'])
},
methods: {
// customerId,parentid ,level,
initAdd (customerId, parentid, level, sort) {
this.visible = true
this.customerId = customerId
this.parentid = parentid
this.type = 'add'
this.dataForm.level = level
this.dataForm.sort = sort
this.url = '/heart/workdiaryService/serviceType/save'
},
// customerId,parentid,dateform,level
initEdit (customerId, parentid, dataForm) {
this.visible = true
this.customerId = customerId
this.parentid = parentid
this.type = 'edit'
this.dataForm = dataForm
this.url = '/heart/workdiaryService/serviceType/update'
},
async saveForm () {
await this.$refs['dataForm'].validate((valid, messageObj) => {
if (!valid) {
window.app.util.validateRule(messageObj)
return false
}
})
let params = {
customerId: this.customerId,
id: this.dataForm.id,
serviceTypeName: this.dataForm.serviceTypeName
}
const { data, code, msg } = await requestPost(this.url, params)
if (code === 0) {
this.$message({
type: 'success',
message: '保存成功'
})
this.resetData()
this.visible = false
this.$emit('editDiaOK')
} else {
// this.$message.error(msg)
}
},
handleClose () {
this.visible = false
},
resetData () {
this.dataForm = {
serviceTypeName: '', //
sort: 0,
type: ''// (add: edit:)
}
}
}
}
</script>
<style scoped>
.item_width_1 {
width: 400px;
}
.item_width_2 {
width: 700px;
}
.block {
display: block;
}
.btn_reset {
vertical-align: bottom;
margin-left: 10px;
}
</style>

290
src/views/modules/workSys/workLog/list.vue

@ -0,0 +1,290 @@
<template>
<div class="resi-container">
<el-card class="resi-card-table">
<div class="mod-sys__menu">
<div class="resi-row-btn">
<el-button class="diy-button--add"
size="small"
@click="addShow()">新增</el-button>
</div>
<el-table v-loading="dataListLoading"
:data="dataList"
:default-expand-all="false"
row-key="id"
:height="tableHeight"
border
style="width: 100%;" class="resi-table">
<el-table-column prop="serviceTypeName"
label="分类名称"
align="center"
header-align="center"
min-width="150"></el-table-column>
<el-table-column prop="stateShow"
label="状态"
align="center"
header-align="center"
min-width="150"></el-table-column>
<!-- <el-table-column prop="sort"
:label="$t('menu.sort')"
header-align="center"
align="center"></el-table-column> -->
<el-table-column label="操作"
fixed="right"
header-align="center"
align="center"
width="350">
<template slot-scope="scope">
<el-button type="text"
size="small"
class="div-table-button--detail"
@click="disableCategory(scope.row)">{{ scope.row.btnShow}}</el-button>
<el-button type="text"
size="small"
class="div-table-button--edit"
@click="editShow(scope.row)">修改</el-button>
<el-button type="text"
size="small"
class="div-table-button--delete"
@click="deleteCategory(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
<elegant-edit ref="ref_edit"
@editDiaOK="editDiaOK">
</elegant-edit>
</div>
</template>
<script>
import { requestPost } from '@/js/dai/request'
import elegantEdit from './edit.vue'
import { mapGetters } from 'vuex'
export default {
data () {
return {
customerId: '', // id
customerName: '', //
tableParams: {
customerId: '',
pageNo:1,
pageSize:10000
},
// tableHeight: 500,
search: '',
dataList: [],
dataListLoading: false
}
},
computed: {
tables () {
const search = this.search
if (search) {
console.log('this.dataList', this.dataList)
return this.dataList.filter(dataNews => {
return Object.keys(dataNews).some(key => {
return String(dataNews[key]).toLowerCase().indexOf(search) > -1
})
})
}
console.log('this.dataList', this.dataList)
return this.dataList
},
tableHeight () {
const h = this.clientHeight - 220 + this.iframeHeigh
const _h = this.clientHeight - 220
return this.$store.state.inIframe ? h : _h
},
...mapGetters(['clientHeight', 'iframeHeight'])
},
components: {
elegantEdit
},
created() {
const { user } = this.$store.state
console.log('user----', user)
this.initData(user.customerId, user.customerName)
},
mounted() {
// this.$nextTick(() => {
// this.tableHeight = document.documentElement.clientHeight - 220 + 'px'
// console.log('tableHeight', this.tableHeight)
// })
},
methods: {
cellStyle ({ row, column, rowIndex, columnIndex }) {
//
if (row.state === 'enable' && columnIndex === 1) {
return 'color: #EA1B29'
} else if (row.state === 'disable' && columnIndex === 1) {
return 'color: #0CB618'
} else {
return 'color: #1a1a1b'
}
},
initData (customerId, customerName) {
this.customerId = customerId
this.customerName = customerName
this.loadData()
},
//
async loadData () {
this.dataListLoading = true
// const url = 'https://nei.netease.com/api/apimock-v2/e3b1d0eb88e905f6c7ee559b2d6bb7ad/gov/issue/issueprojectcategorydict/customercategorylist'
const url = '/heart/workdiaryService/serviceType/page'
this.tableParams.customerId = this.customerId
const { data, code, msg } = await requestPost(url, this.tableParams)
this.dataListLoading = false
if (code === 0) {
this.dataList = data.list || []
this.dataList.forEach(element => {
element.state = element.enabled ? 'enable' : 'disable'
element.btnShow = element.enabled ? '禁用' : '启用'
element.stateShow = element.enabled ? '启用' : '禁用'
element.level = 'l1'
})
} else {
// this.$message.error(msg )
}
},
// /
disableCategory (row) {
this.$confirm('确认' + row.btnShow + '当前分类?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const url = '/heart/workdiaryService/serviceType/update'
// const url = 'https://nei.netease.com/api/apimock-v2/e3b1d0eb88e905f6c7ee559b2d6bb7ad/gov/issue/issueprojectcategorydict/isdisablecategory'
const param = {
customerId: this.customerId,
id: row.id,
enabled: row.state !== 'enable'? 1:0
}
window.app.ajax.post(url, param,
(data, rspMsg) => {
this.$message.success('操作成功')
this.loadData()
},
(rspMsg, data) => {
this.$message.error(rspMsg)
})
}).catch(() => {
})
},
//
deleteCategory (row) {
this.$confirm('确认删除当前分类?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const url = '/heart/workdiaryService/serviceType/delete'
window.app.ajax.post(url, [row.id],
(data, rspMsg) => {
this.$message.success('操作成功')
this.loadData()
},
(rspMsg, data) => {
this.$message.error(rspMsg)
})
}).catch(() => {
})
},
// customerId,parentid,id,type,level,num
addShow () {
const sort = this.dataList.length + 1
this.$refs['ref_edit'].initAdd(this.customerId, '', 'l1', sort)
},
// customerId,parentid,id,type,levelnum
showAddLevel2 (row) {
const sort = row.children.length + 1
this.$refs['ref_edit'].initAdd(this.customerId, row.id, 'l2', sort)
},
// customerId,parentid,dateform
editShow (row) {
this.$refs['ref_edit'].initEdit(this.customerId, row.id, row)
},
//
diaCancel () {
this.$emit('cancleBack')
},
editDiaOK () {
this.loadData()
}
}
}
</script>
<style lang="scss" scoped>
.resi-container .resi-card-table {
::v-deep .el-table {
th {
color: #fff;
background-color: rgba(33, 149, 254, 1);
}
.cell {
span:nth-of-type(3) {
display: inline-block;
width: 90%;
word-break: break-all;
}
}
}
}
.resi-row-btn {
display: flex;
margin-bottom: 13px;
::v-deep .el-button {
// margin-left: 10px;
border: 0;
}
::v-deep .el-select {
margin-right: 10px;
}
.el-button--success {
background: rgba(34, 193, 195, 1);
}
}
.resi-table {
::v-deep .el-button--text {
text-decoration: underline;
}
::v-deep .btn-color-del {
margin-left: 10px;
color: rgba(213, 16, 16, 1);
}
::v-deep .btn-color-edit {
color: rgba(0, 167, 169, 1);
}
}
</style>
Loading…
Cancel
Save