24 changed files with 3060 additions and 555 deletions
@ -0,0 +1,149 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page |
||||
|
:searchParams="searchParams" |
||||
|
:tableParams="tableParams" |
||||
|
:tableUrl="tableUrl" |
||||
|
:addUrl="addUrl" |
||||
|
:editUrl="editUrl" |
||||
|
:delUrl="delUrl" |
||||
|
:infoUrl="infoUrl" |
||||
|
:exportUrl="exportUrl" |
||||
|
:importUrl="importUrl" |
||||
|
:mubanUrl="mubanUrl" |
||||
|
:editParams="editParams" |
||||
|
idName="icDangerousChemicalsId" |
||||
|
></base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/cpts/base/index"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
searchParams: [ |
||||
|
{ field: "企业名称", keyName: "name", type: "input" }, |
||||
|
{ |
||||
|
field: "企业类型", |
||||
|
keyName: "category", |
||||
|
type: "select", |
||||
|
optionUrl: "/gov/org/coverage/dict-select-list/dangerous_chemicals", |
||||
|
optionUrlParams: {}, |
||||
|
optionList: [], |
||||
|
}, |
||||
|
{ |
||||
|
field: "危化品种类", |
||||
|
keyName: "dangerType", |
||||
|
type: "select", |
||||
|
optionUrl: "/sys/dict/data/dictlist", |
||||
|
optionUrlParams: { |
||||
|
dictType: "ic_danger_type", |
||||
|
}, |
||||
|
optionList: [], |
||||
|
}, |
||||
|
], |
||||
|
|
||||
|
tableParams: [ |
||||
|
{ field: "序号", keyName: "", type: "no" }, |
||||
|
{ field: "企业名称", keyName: "name", type: "text" }, |
||||
|
{ field: "企业类别", keyName: "categoryName", type: "text" }, |
||||
|
{ field: "周边安全间距", keyName: "safeDistanceName", type: "text" }, |
||||
|
{ field: "危化品种类", keyName: "dangerTypeName", type: "text" }, |
||||
|
{ field: "经营地址", keyName: "address", type: "text" }, |
||||
|
{ field: "负责人", keyName: "principalName", type: "text" }, |
||||
|
{ field: "联系电话", keyName: "principalMobile", type: "text" }, |
||||
|
{ field: "备注", keyName: "remark", type: "text" }, |
||||
|
], |
||||
|
tableUrl: "/gov/org/icDangerousChemicals/list", |
||||
|
mubanUrl: "/gov/org/icDangerousChemicals/download", |
||||
|
importUrl: "/gov/org/icDangerousChemicals/import", |
||||
|
exportUrl: "/gov/org/icDangerousChemicals/export", |
||||
|
|
||||
|
addUrl: "/gov/org/icDangerousChemicals/add", |
||||
|
editUrl: "/gov/org/icDangerousChemicals/edit", |
||||
|
infoUrl: "/gov/org/icDangerousChemicals/detail", |
||||
|
delUrl: "/gov/org/icDangerousChemicals/del", |
||||
|
|
||||
|
editParams: [ |
||||
|
{ |
||||
|
field: "企业名称", |
||||
|
keyName: "name", |
||||
|
type: "input", |
||||
|
maxlength: 100, |
||||
|
editDisabled: true, |
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: "企业名称不能为空", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "企业分类", |
||||
|
keyName: "category", |
||||
|
type: "select", |
||||
|
optionUrl: "/gov/org/coverage/dict-select-list/dangerous_chemicals", |
||||
|
optionUrlParams: { |
||||
|
// dictType: "ic_service_type", |
||||
|
}, |
||||
|
optionList: [], |
||||
|
editDisabled: true, |
||||
|
rules: [ |
||||
|
{ required: true, message: "企业分类不能为空", trigger: "blur" }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "周边安全间距", |
||||
|
keyName: "safeDistance", |
||||
|
type: "number", |
||||
|
min: 0, |
||||
|
max: 1000000000, |
||||
|
unitName: "公里", |
||||
|
}, |
||||
|
{ |
||||
|
field: "危化品种类", |
||||
|
keyName: "dangerType", |
||||
|
type: "select", |
||||
|
optionUrl: "/sys/dict/data/dictlist", |
||||
|
optionUrlParams: { |
||||
|
dictType: "ic_danger_type", |
||||
|
}, |
||||
|
optionList: [], |
||||
|
editDisabled: true, |
||||
|
}, |
||||
|
{ field: "负责人", keyName: "principalName", type: "input" }, |
||||
|
{ field: "联系电话", keyName: "principalMobile", type: "input" }, |
||||
|
{ |
||||
|
field: "经营地址", |
||||
|
keyName: "address", |
||||
|
type: "address", |
||||
|
supKeys: ["longitude", "latitude"], |
||||
|
supValues: ["", ""], |
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: "经营地址坐标不能为空", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{ field: "备注", keyName: "remark", type: "textarea" }, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,536 @@ |
|||||
|
<template> |
||||
|
<div class="m-record" style="padding: 0 20px"> |
||||
|
<h3>巡查记录</h3> |
||||
|
<div class="mt10" v-if="formType == 'edit'"> |
||||
|
<el-button |
||||
|
size="small" |
||||
|
class="diy-button--add" |
||||
|
:disabled="btnDisabled || disabled" |
||||
|
@click="handleAdd" |
||||
|
>新增</el-button |
||||
|
> |
||||
|
</div> |
||||
|
<el-table |
||||
|
:data="tableData" |
||||
|
row-key="id" |
||||
|
border |
||||
|
style="width: 100%" |
||||
|
class="resi-table" |
||||
|
height="400px" |
||||
|
:header-cell-style="getRowClass" |
||||
|
> |
||||
|
<el-table-column label="序号" type="index" align="center" width="50"> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="patrolTime" |
||||
|
label="巡查时间" |
||||
|
align="center" |
||||
|
width="200px" |
||||
|
> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-date-picker |
||||
|
v-if="scope.row.isEdit" |
||||
|
v-model="scope.row.patrolTime" |
||||
|
type="date" |
||||
|
class="input-width" |
||||
|
value-format="yyyy-MM-dd" |
||||
|
placeholder="选择日期" |
||||
|
> |
||||
|
</el-date-picker> |
||||
|
<div v-else class="div-content">{{ scope.row.patrolTime }}</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="staffId" |
||||
|
label="巡查人员" |
||||
|
align="center" |
||||
|
width="200px" |
||||
|
> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-select |
||||
|
v-if="scope.row.isEdit" |
||||
|
v-model="scope.row.staffId" |
||||
|
placeholder="请选择" |
||||
|
class="input-width" |
||||
|
@change="handleChangeStaff(scope.row)" |
||||
|
clearable |
||||
|
> |
||||
|
<el-option |
||||
|
v-for="subItem in optionStaff" |
||||
|
:key="subItem.value" |
||||
|
:label="subItem.label" |
||||
|
:value="subItem.value" |
||||
|
> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
<div v-else class="div-content">{{ scope.row.staffName }}</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="mobile" |
||||
|
label="联系电话" |
||||
|
align="center" |
||||
|
width="200px" |
||||
|
> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input |
||||
|
v-if="scope.row.isEdit" |
||||
|
type="number" |
||||
|
v-model="scope.row.mobile" |
||||
|
placeholder="请输入" |
||||
|
class="input-width" |
||||
|
clearable |
||||
|
disabled |
||||
|
></el-input> |
||||
|
<div v-else class="div-content">{{ scope.row.mobile }}</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="result" |
||||
|
label="巡查结果" |
||||
|
align="center" |
||||
|
width="200px" |
||||
|
> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-select |
||||
|
v-if="scope.row.isEdit" |
||||
|
v-model="scope.row.result" |
||||
|
placeholder="请选择" |
||||
|
class="input-width" |
||||
|
size="small" |
||||
|
clearable |
||||
|
> |
||||
|
<el-option |
||||
|
v-for="subItem in optionResult" |
||||
|
:key="subItem.value" |
||||
|
:label="subItem.label" |
||||
|
:value="subItem.value" |
||||
|
> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
<div v-else class="div-content">{{ scope.row.resultName }}</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="detailed" |
||||
|
label="隐患明细" |
||||
|
align="center" |
||||
|
width="200px" |
||||
|
> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-input |
||||
|
v-if="scope.row.isEdit" |
||||
|
type="number" |
||||
|
v-model="scope.row.detailed" |
||||
|
placeholder="请输入" |
||||
|
class="input-width" |
||||
|
maxlength="500" |
||||
|
clearable |
||||
|
></el-input> |
||||
|
<div v-else class="div-content">{{ scope.row.detailed }}</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="imgList" |
||||
|
label="图片列表" |
||||
|
align="center" |
||||
|
width="150px" |
||||
|
> |
||||
|
<template slot-scope="scope"> |
||||
|
<div v-if="scope.row.isEdit"> |
||||
|
<el-upload |
||||
|
class="avatar-uploader" |
||||
|
:action="uploadUrl" |
||||
|
:data="{ customerId: customerId }" |
||||
|
:show-file-list="true" |
||||
|
:limit="3" |
||||
|
:file-list="scope.row.imgShowList" |
||||
|
:on-success="(res) => handleImgSuccess(res, scope.row)" |
||||
|
:on-remove="(res) => handleImgRemove(res, scope.row)" |
||||
|
list-type="picture" |
||||
|
:before-upload="beforeImgUpload" |
||||
|
> |
||||
|
<i class="el-icon-plus avatar-uploader-icon"></i> 最多三张图片 |
||||
|
</el-upload> |
||||
|
</div> |
||||
|
|
||||
|
<div v-else class="div-content"> |
||||
|
<el-image |
||||
|
v-if="scope.row.imgList.length > 0" |
||||
|
style="width: 100px; height: 50px" |
||||
|
:src="scope.row.imgList[0]" |
||||
|
fit="cover" |
||||
|
:preview-src-list="scope.row.imgList" |
||||
|
></el-image> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="reviewTime" |
||||
|
label="拟复查时间" |
||||
|
align="center" |
||||
|
width="200px" |
||||
|
> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-date-picker |
||||
|
v-if="scope.row.isEdit" |
||||
|
v-model="scope.row.reviewTime" |
||||
|
type="date" |
||||
|
class="input-width" |
||||
|
value-format="yyyy-MM-dd" |
||||
|
placeholder="选择日期" |
||||
|
> |
||||
|
</el-date-picker> |
||||
|
<div v-else class="div-content">{{ scope.row.patrolTime }}</div> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column v-if="!disabled" label="操作" align="center" width="120"> |
||||
|
<template slot-scope="scope"> |
||||
|
<template v-if="scope.row.isEdit"> |
||||
|
<el-button |
||||
|
@click="handleEdit(scope.row)" |
||||
|
type="text" |
||||
|
size="small" |
||||
|
class="btn-color-edit" |
||||
|
>保存</el-button |
||||
|
> |
||||
|
<el-button |
||||
|
@click="handleChange(scope.row, 'cancle')" |
||||
|
type="text" |
||||
|
size="small" |
||||
|
class="btn-color-edit" |
||||
|
>取消</el-button |
||||
|
> |
||||
|
</template> |
||||
|
<template v-else> |
||||
|
<el-button |
||||
|
v-if="formType == 'edit'" |
||||
|
@click="handleChange(scope.row, 'edit')" |
||||
|
type="text" |
||||
|
size="small" |
||||
|
:disabled="disabled" |
||||
|
class="btn-color-edit" |
||||
|
>修改</el-button |
||||
|
> |
||||
|
<el-popconfirm |
||||
|
v-if="formType == 'edit'" |
||||
|
title="删除之后无法恢复,确认删除?" |
||||
|
@onConfirm="del(scope.row)" |
||||
|
> |
||||
|
<el-button |
||||
|
slot="reference" |
||||
|
type="text" |
||||
|
size="small" |
||||
|
class="btn-color-del" |
||||
|
style="margin-left: 10px" |
||||
|
>删除</el-button |
||||
|
> |
||||
|
</el-popconfirm> |
||||
|
</template> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { requestPost } from "@/js/dai/request"; |
||||
|
|
||||
|
export default { |
||||
|
props: { |
||||
|
enterpriseId: { |
||||
|
type: String, |
||||
|
default: "", |
||||
|
}, |
||||
|
enterpriseInfo: { |
||||
|
type: Object, |
||||
|
default: () => ({}), |
||||
|
}, |
||||
|
disabled: { |
||||
|
type: Boolean, |
||||
|
default: false, |
||||
|
}, |
||||
|
formType: { |
||||
|
type: String, |
||||
|
default: "", |
||||
|
}, |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
uploadUrl: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2", |
||||
|
customerId: localStorage.getItem("customerId"), |
||||
|
|
||||
|
btnDisabled: false, |
||||
|
btnType: "cancle", |
||||
|
isEdit: false, |
||||
|
tableData: [], |
||||
|
tempRow: {}, |
||||
|
|
||||
|
optionResult: [ |
||||
|
{ |
||||
|
label: "合格", |
||||
|
value: "0", |
||||
|
}, |
||||
|
{ |
||||
|
label: "不合格", |
||||
|
value: "1", |
||||
|
}, |
||||
|
], |
||||
|
optionStaff: [ |
||||
|
// { |
||||
|
// label: "人名", |
||||
|
// value: "staffId", |
||||
|
// }, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
computed: { |
||||
|
allowOperate() { |
||||
|
const { |
||||
|
enterpriseInfo: { agencyId }, |
||||
|
} = this; |
||||
|
return agencyId && agencyId == this.$store.state.user.agencyId; |
||||
|
}, |
||||
|
}, |
||||
|
watch: { |
||||
|
enterpriseId: { |
||||
|
handler(val) { |
||||
|
console.log("val------points", val); |
||||
|
if (val.length > 0) { |
||||
|
this.btnDisabled = false; |
||||
|
this.getList(); |
||||
|
} else this.btnDisabled = true; |
||||
|
}, |
||||
|
immediate: true, |
||||
|
}, |
||||
|
}, |
||||
|
|
||||
|
created() { |
||||
|
this.getOptionStaff(); |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
beforeImgUpload(file) { |
||||
|
console.log(file); |
||||
|
const isLt1M = file.size / 1024 / 1024 < 10; |
||||
|
const srcType = file.type; |
||||
|
const format = file.name.split(".").pop(); |
||||
|
|
||||
|
if (!isLt1M) { |
||||
|
this.$message.error("上传文件大小不能超过 10MB!"); |
||||
|
return false; |
||||
|
} |
||||
|
if (srcType.indexOf("image") == -1) { |
||||
|
this.$message.error("仅限图片格式"); |
||||
|
return false; |
||||
|
} |
||||
|
return true; |
||||
|
}, |
||||
|
|
||||
|
handleImgSuccess(res, row) { |
||||
|
console.log("handleImgSuccess", res); |
||||
|
if (res.code === 0 && res.msg === "success") { |
||||
|
row.imgList.push(res.data.url); |
||||
|
this.computeImgShowList(row); |
||||
|
} else { |
||||
|
this.$message.error(res.msg); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
computeImgShowList(row) { |
||||
|
row.imgShowList = row.imgList.map((url) => { |
||||
|
return { name: "", url }; |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
handleImgRemove(file, row) { |
||||
|
console.log("handleImgRemove", file); |
||||
|
if (file.response) { |
||||
|
row.imgList = row.imgList.map( |
||||
|
(item) => item !== file.response.data.url |
||||
|
); |
||||
|
this.computeImgShowList(row); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
getRowClass({ rowIndex, columnIndex }) { |
||||
|
if (rowIndex === 0) { |
||||
|
return "background: #2195fe; color: #fff;"; |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
handleChange(row, type) { |
||||
|
console.log("type----", type); |
||||
|
if (type == "cancle") { |
||||
|
row = { ...this.tempRow }; |
||||
|
row.isEdit = false; |
||||
|
if (this.btnType == "add") this.tableData.pop(); |
||||
|
this.getList(); |
||||
|
console.log("row----", row); |
||||
|
} else { |
||||
|
this.tempRow = { ...row }; |
||||
|
row.isEdit = true; |
||||
|
} |
||||
|
this.btnType = type; |
||||
|
this.isEdit = !this.isEdit; |
||||
|
}, |
||||
|
|
||||
|
handleChangeStaff(row) { |
||||
|
const { staffId } = row; |
||||
|
const { optionStaff } = this; |
||||
|
let item = optionStaff.find((item) => item.value == staffId); |
||||
|
if (item) { |
||||
|
row.staffName = item.name; |
||||
|
row.mobile = item.mobile; |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
async getOptionStaff() { |
||||
|
let url = `/data/aggregator/org/staff-select-list/${this.$store.state.user.agencyId}`; |
||||
|
const { data, code, msg } = await requestPost(url, {}); |
||||
|
|
||||
|
if (code === 0) { |
||||
|
this.optionStaff = data || []; |
||||
|
} else { |
||||
|
this.$message.error("请求工作人员数据失败!"); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
async handleEdit(row) { |
||||
|
if (this.btnType == "add") this.save(row); |
||||
|
else this.edit(row); |
||||
|
}, |
||||
|
|
||||
|
handleAdd() { |
||||
|
this.btnType = "add"; |
||||
|
this.isEdit = true; |
||||
|
|
||||
|
const item = { |
||||
|
isEdit: true, |
||||
|
enterpriseId: this.enterpriseId, |
||||
|
patrolTime: "", |
||||
|
staffId: "", |
||||
|
staffName: "", |
||||
|
mobile: "", |
||||
|
result: "", |
||||
|
imgList: [], |
||||
|
reviewTime: "", |
||||
|
}; |
||||
|
this.computeImgShowList(item); |
||||
|
this.tableData.push(item); |
||||
|
}, |
||||
|
|
||||
|
async save(row) { |
||||
|
const params = { |
||||
|
partyMemberId: this.enterpriseId, |
||||
|
...row, |
||||
|
}; |
||||
|
await this.$http |
||||
|
.post("/gov/org/enterprise/addorupdate-patrol", params) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg); |
||||
|
} else { |
||||
|
this.$message.success("保存成功"); |
||||
|
row.isEdit = false; |
||||
|
this.isEdit = false; |
||||
|
this.btnType = "cancle"; |
||||
|
this.getList(); |
||||
|
} |
||||
|
}) |
||||
|
.catch((err) => { |
||||
|
console.log("err", err); |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
async edit(row) { |
||||
|
const params = { |
||||
|
...row, |
||||
|
}; |
||||
|
|
||||
|
await this.$http |
||||
|
.post("/gov/org/enterprise/addorupdate-patrol", params) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg); |
||||
|
} else { |
||||
|
this.$message.success("保存成功"); |
||||
|
row.isEdit = false; |
||||
|
this.isEdit = false; |
||||
|
this.getList(); |
||||
|
} |
||||
|
}) |
||||
|
.catch((err) => { |
||||
|
console.log("err", err); |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
async del(row) { |
||||
|
await this.$http |
||||
|
.post(`/gov/org/enterprise/del-patrol/${row.patrolId}`) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg); |
||||
|
} else { |
||||
|
this.$message.success("删除成功"); |
||||
|
this.getList(); |
||||
|
} |
||||
|
}) |
||||
|
.catch((err) => { |
||||
|
console.log("err", err); |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
async getList() { |
||||
|
const { enterpriseId } = this; |
||||
|
|
||||
|
const params = {}; |
||||
|
|
||||
|
await this.$http |
||||
|
.post(`/gov/org/enterprise/patrollist/${enterpriseId}`, { |
||||
|
params, |
||||
|
}) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg); |
||||
|
} else { |
||||
|
this.tableData = res.data.list.map((item) => { |
||||
|
this.computeImgShowList(item); |
||||
|
return { |
||||
|
...item, |
||||
|
isEdit: false, |
||||
|
}; |
||||
|
}); |
||||
|
} |
||||
|
}) |
||||
|
.catch((err) => { |
||||
|
console.log("err", err); |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
.m-record { |
||||
|
.mt10 { |
||||
|
margin-bottom: 10px; |
||||
|
} |
||||
|
.input-width { |
||||
|
width: 170px; |
||||
|
} |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,234 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page |
||||
|
:searchParams="searchParams" |
||||
|
:tableParams="tableParams" |
||||
|
:tableUrl="tableUrl" |
||||
|
:addUrl="addUrl" |
||||
|
:editUrl="editUrl" |
||||
|
:delUrl="delUrl" |
||||
|
:infoUrl="infoUrl" |
||||
|
:editAuth="editAuth" |
||||
|
:delAuth="delAuth" |
||||
|
:exportUrl="exportUrl" |
||||
|
:importUrl="importUrl" |
||||
|
:mubanUrl="mubanUrl" |
||||
|
:editParams="editParams" |
||||
|
:editFixedParams="editFixedParams" |
||||
|
:editParamsDiv="5" |
||||
|
:editBtnName="(item) => (item.sourceType == 'import' ? '待完善' : '修改')" |
||||
|
idName="enterpriseId" |
||||
|
> |
||||
|
<template v-slot:editElse="{ id, formType, info }"> |
||||
|
<record v-if="formType != 'add' && id" :formType="formType" :enterpriseId="id" :enterpriseInfo="info"></record> |
||||
|
</template> |
||||
|
</base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/cpts/base/index"; |
||||
|
import record from "./cpts/record"; |
||||
|
|
||||
|
export default { |
||||
|
components: { basePage, record }, |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
searchParams: [ |
||||
|
{ field: "场所名称", keyName: "placeOrgName", type: "input" }, |
||||
|
{ field: "联系电话", keyName: "mobile", type: "input" }, |
||||
|
{ |
||||
|
field: "场所区域", |
||||
|
keyName: "gridId", |
||||
|
type: "select", |
||||
|
optionUrl: "/gov/org/customergrid/gridoption", |
||||
|
optionUrlParams: { |
||||
|
agencyId: this.$store.state.user.agencyId, |
||||
|
purpose: "query", |
||||
|
}, |
||||
|
optionList: [], |
||||
|
}, |
||||
|
{ |
||||
|
field: "场所类型", |
||||
|
keyName: "placeType", |
||||
|
type: "select", |
||||
|
optionUrl: "/gov/org/coverage/dict-select-list/enterprise_patrol", |
||||
|
optionUrlParams: {}, |
||||
|
optionList: [], |
||||
|
}, |
||||
|
{ |
||||
|
field: "规模", |
||||
|
keyName: "scale", |
||||
|
type: "select", |
||||
|
optionUrl: "/sys/dict/data/dictlist", |
||||
|
optionUrlParams: { |
||||
|
dictType: "scale", |
||||
|
}, |
||||
|
optionList: [], |
||||
|
}, |
||||
|
{ |
||||
|
field: "巡查结果", |
||||
|
keyName: "result", |
||||
|
type: "select", |
||||
|
optionUrl: "", |
||||
|
optionUrlParams: {}, |
||||
|
optionList: [ |
||||
|
{ |
||||
|
value: "0", |
||||
|
label: "合格", |
||||
|
}, |
||||
|
{ |
||||
|
value: "1", |
||||
|
label: "不合格", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{ field: "隐患明细", keyName: "detailed", type: "input" }, |
||||
|
], |
||||
|
|
||||
|
tableParams: [ |
||||
|
{ field: "序号", keyName: "", type: "no" }, |
||||
|
{ field: "场所名称", keyName: "placeOrgName", type: "text" }, |
||||
|
{ field: "场所地址", keyName: "address", type: "text" }, |
||||
|
{ field: "场所类型", keyName: "placeTypeName", type: "text" }, |
||||
|
{ field: "规模", keyName: "scale", type: "text" }, |
||||
|
{ field: "负责人", keyName: "personInCharge", type: "text" }, |
||||
|
{ field: "联系电话", keyName: "mobile", type: "text" }, |
||||
|
{ field: "最新检查时间", keyName: "latestPatrolTime", type: "text" }, |
||||
|
{ field: "最新结果", keyName: "latestResultName", type: "text" }, |
||||
|
], |
||||
|
tableUrl: "/gov/org/enterprise/list", |
||||
|
mubanUrl: "/gov/org/enterprise/download-tem", |
||||
|
importUrl: "/gov/org/enterprise/import", |
||||
|
exportUrl: "/gov/org/enterprise/export", |
||||
|
|
||||
|
addUrl: "/gov/org/enterprise/addOrUpdate", |
||||
|
editUrl: "/gov/org/enterprise/addOrUpdate", |
||||
|
infoUrl: "/gov/org/enterprise/detail/", |
||||
|
delUrl: "/gov/org/enterprise/delete/", |
||||
|
editAuth(item) { |
||||
|
return item.agencyId == this.$store.state.user.agencyId; |
||||
|
}, |
||||
|
delAuth(item) { |
||||
|
return item.agencyId == this.$store.state.user.agencyId; |
||||
|
}, |
||||
|
|
||||
|
editParams: [ |
||||
|
{ |
||||
|
field: "场所类型", |
||||
|
keyName: "placeType", |
||||
|
type: "select", |
||||
|
optionUrl: "/gov/org/coverage/dict-select-list/enterprise_patrol", |
||||
|
optionUrlParams: { |
||||
|
// dictType: "ic_service_type", |
||||
|
}, |
||||
|
optionList: [], |
||||
|
editDisabled: true, |
||||
|
rules: [ |
||||
|
{ required: true, message: "场所类型不能为空", trigger: "blur" }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "场所区域", |
||||
|
keyName: "gridId", |
||||
|
type: "select", |
||||
|
optionUrl: "/gov/org/customergrid/gridoption", |
||||
|
optionUrlParams: { |
||||
|
agencyId: this.$store.state.user.agencyId, |
||||
|
purpose: "addorupdate", |
||||
|
}, |
||||
|
optionList: [], |
||||
|
editDisabled: true, |
||||
|
rules: [ |
||||
|
{ required: true, message: "场所区域不能为空", trigger: "blur" }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "场所名称", |
||||
|
keyName: "placeOrgName", |
||||
|
type: "input", |
||||
|
maxlength: 100, |
||||
|
editDisabled: true, |
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: "场所名称不能为空", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "规模", |
||||
|
keyName: "scale", |
||||
|
type: "select", |
||||
|
optionUrl: "/sys/dict/data/dictlist", |
||||
|
optionUrlParams: { |
||||
|
dictType: "scale", |
||||
|
}, |
||||
|
optionList: [], |
||||
|
editDisabled: false, |
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: "规模不能为空", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "负责人", |
||||
|
keyName: "personInCharge", |
||||
|
type: "input", |
||||
|
|
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: "负责人不能为空", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "联系电话", |
||||
|
keyName: "mobile", |
||||
|
type: "input", |
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: "联系电话不能为空", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "场所地址", |
||||
|
keyName: "address", |
||||
|
type: "address", |
||||
|
supKeys: ["longitude", "latitude"], |
||||
|
supValues: ["", ""], |
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: "场所地址坐标不能为空", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
], |
||||
|
editFixedParams: { |
||||
|
agencyId: this.$store.state.user.agencyId, |
||||
|
}, |
||||
|
}; |
||||
|
}, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,130 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page |
||||
|
:searchParams="searchParams" |
||||
|
:tableParams="tableParams" |
||||
|
:tableUrl="tableUrl" |
||||
|
:addUrl="addUrl" |
||||
|
:editUrl="editUrl" |
||||
|
:delUrl="delUrl" |
||||
|
:infoUrl="infoUrl" |
||||
|
:exportUrl="exportUrl" |
||||
|
:importUrl="importUrl" |
||||
|
:mubanUrl="mubanUrl" |
||||
|
:editParams="editParams" |
||||
|
idName="icSuperiorResourceId" |
||||
|
></base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/cpts/base/index"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
searchParams: [ |
||||
|
{ field: "场所名称", keyName: "name", type: "input" }, |
||||
|
{ |
||||
|
field: "场所分类", |
||||
|
keyName: "category", |
||||
|
type: "select", |
||||
|
optionUrl: "/gov/org/coverage/dict-select-list/superior_resource", |
||||
|
optionUrlParams: {}, |
||||
|
optionList: [], |
||||
|
}, |
||||
|
], |
||||
|
|
||||
|
tableParams: [ |
||||
|
{ field: "序号", keyName: "", type: "no" }, |
||||
|
{ field: "场所名称", keyName: "name", type: "text" }, |
||||
|
{ field: "场所类别", keyName: "categoryName", type: "text" }, |
||||
|
{ field: "占地面积", keyName: "areaCoveredName", type: "text" }, |
||||
|
{ field: "容纳人数", keyName: "capacityName", type: "text" }, |
||||
|
{ field: "地址", keyName: "address", type: "text" }, |
||||
|
], |
||||
|
tableUrl: "/gov/org/icSuperiorResource/list", |
||||
|
mubanUrl: "/gov/org/icSuperiorResource/download", |
||||
|
importUrl: "/gov/org/icSuperiorResource/import", |
||||
|
exportUrl: "/gov/org/icSuperiorResource/export", |
||||
|
|
||||
|
addUrl: "/gov/org/icSuperiorResource/add", |
||||
|
editUrl: "/gov/org/icSuperiorResource/edit", |
||||
|
infoUrl: "/gov/org/icSuperiorResource/detail", |
||||
|
delUrl: "/gov/org/icSuperiorResource/del", |
||||
|
|
||||
|
editParams: [ |
||||
|
{ |
||||
|
field: "场所名称", |
||||
|
keyName: "name", |
||||
|
type: "input", |
||||
|
maxlength: 100, |
||||
|
editDisabled: true, |
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: "场所名称不能为空", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "场所分类", |
||||
|
keyName: "category", |
||||
|
type: "select", |
||||
|
optionUrl: "/gov/org/coverage/dict-select-list/superior_resource", |
||||
|
optionUrlParams: { |
||||
|
// dictType: "ic_service_type", |
||||
|
}, |
||||
|
optionList: [], |
||||
|
editDisabled: true, |
||||
|
rules: [ |
||||
|
{ required: true, message: "场所分类不能为空", trigger: "blur" }, |
||||
|
], |
||||
|
}, |
||||
|
{ |
||||
|
field: "占地面积", |
||||
|
keyName: "areaCovered", |
||||
|
type: "number", |
||||
|
min: 0, |
||||
|
max: 1000000000, |
||||
|
unitName: "平方公里", |
||||
|
}, |
||||
|
{ |
||||
|
field: "容纳人数", |
||||
|
keyName: "capacity", |
||||
|
type: "number", |
||||
|
min: 0, |
||||
|
max: 1000000000, |
||||
|
// unitName: "个", |
||||
|
}, |
||||
|
{ |
||||
|
field: "位置坐标", |
||||
|
keyName: "address", |
||||
|
type: "address", |
||||
|
supKeys: ["longitude", "latitude"], |
||||
|
supValues: ["", ""], |
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: "地址坐标不能为空", |
||||
|
trigger: "blur", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,35 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page :elseParams="elseParams"></base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/shequzhili/tuceng/zhonghe/base"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
elseParams: [ |
||||
|
{ |
||||
|
queryType: "list_equal", |
||||
|
tableName: "ic_special", |
||||
|
columnName: "SPECIAL_RQLB", |
||||
|
columnValue: ["anzhibangjiao"], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,777 @@ |
|||||
|
<template> |
||||
|
<div class="resi-container"> |
||||
|
<el-card ref="searchCard" class="search-card"> |
||||
|
<el-form |
||||
|
ref="searchForm" |
||||
|
:inline="true" |
||||
|
:model="fmData" |
||||
|
:label-width="'100px'" |
||||
|
class="demo-form-inline" |
||||
|
> |
||||
|
<div> |
||||
|
<el-form-item prop="gridId" label="所属网格"> |
||||
|
<div class="resi-cell-value"> |
||||
|
<el-select |
||||
|
v-model.trim="fmData.gridId" |
||||
|
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> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="所属房屋"> |
||||
|
<div class="resi-cell-value"> |
||||
|
<div class="resi-cell-col"> |
||||
|
<el-form-item prop="villageId"> |
||||
|
<el-select |
||||
|
v-model.trim="fmData.villageId" |
||||
|
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="buildId"> |
||||
|
<el-select |
||||
|
v-model.trim="fmData.buildId" |
||||
|
placeholder="楼号" |
||||
|
size="small" |
||||
|
clearable |
||||
|
:disabled="changeVDisabled" |
||||
|
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="unitId"> |
||||
|
<el-select |
||||
|
v-model.trim="fmData.unitId" |
||||
|
placeholder="单元" |
||||
|
size="small" |
||||
|
clearable |
||||
|
:disabled="changeBDisabled" |
||||
|
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="homeId"> |
||||
|
<el-select |
||||
|
v-model.trim="fmData.homeId" |
||||
|
placeholder="房号" |
||||
|
size="small" |
||||
|
clearable |
||||
|
:disabled="changeDDisabled" |
||||
|
class="resi-cell-select resi-cell-select-middle" |
||||
|
> |
||||
|
<el-option |
||||
|
v-for="item in optionsH" |
||||
|
:key="item.value" |
||||
|
:label="item.label" |
||||
|
:value="item.value" |
||||
|
> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</div> |
||||
|
</div> |
||||
|
</el-form-item> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<el-form-item label="姓名" prop="name"> |
||||
|
<el-input |
||||
|
v-model="fmData.name" |
||||
|
class="resi-cell-input" |
||||
|
size="small" |
||||
|
clearable |
||||
|
placeholder="请输入" |
||||
|
> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item label="手机号" prop="mobile"> |
||||
|
<el-input |
||||
|
v-model="fmData.mobile" |
||||
|
class="resi-cell-input" |
||||
|
size="small" |
||||
|
clearable |
||||
|
placeholder="请输入" |
||||
|
> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
|
||||
|
<el-form-item label="身份证号" prop="idCard"> |
||||
|
<el-input |
||||
|
v-model="fmData.idCard" |
||||
|
class="resi-cell-input" |
||||
|
size="small" |
||||
|
clearable |
||||
|
placeholder="请输入" |
||||
|
> |
||||
|
</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('searchForm')" |
||||
|
>重置</el-button |
||||
|
> |
||||
|
</el-form-item> |
||||
|
</div> |
||||
|
</el-form> |
||||
|
</el-card> |
||||
|
<el-card class="resi-card-table"> |
||||
|
<div class="resi-row-btn"> |
||||
|
<el-button @click="handleChu" class="diy-button--reset" size="small" |
||||
|
>导出</el-button |
||||
|
> |
||||
|
</div> |
||||
|
<el-table |
||||
|
:data="tableData" |
||||
|
border |
||||
|
style="width: 100%" |
||||
|
class="resi-table" |
||||
|
:height="tableHeight" |
||||
|
> |
||||
|
<el-table-column |
||||
|
label="序号" |
||||
|
fixed="left" |
||||
|
type="index" |
||||
|
align="center" |
||||
|
width="50" |
||||
|
/> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="GRID_ID" |
||||
|
align="center" |
||||
|
label="所属网格" |
||||
|
min-width="160" |
||||
|
:show-overflow-tooltip="true" |
||||
|
> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="HOME_ID" |
||||
|
label="所属家庭" |
||||
|
align="center" |
||||
|
min-width="160" |
||||
|
:show-overflow-tooltip="true" |
||||
|
/> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="NAME" |
||||
|
align="center" |
||||
|
label="姓名" |
||||
|
:show-overflow-tooltip="true" |
||||
|
> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="MOBILE" |
||||
|
width="140" |
||||
|
align="center" |
||||
|
label="手机号" |
||||
|
:show-overflow-tooltip="true" |
||||
|
> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column prop="GENDER" align="center" width="60" label="性别"> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="ID_CARD" |
||||
|
align="center" |
||||
|
min-width="160" |
||||
|
label="身份证号" |
||||
|
:show-overflow-tooltip="true" |
||||
|
> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="BIRTHDAY" |
||||
|
align="center" |
||||
|
label="出生日期" |
||||
|
:show-overflow-tooltip="true" |
||||
|
> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="REMARKS" |
||||
|
align="center" |
||||
|
label="备注" |
||||
|
:show-overflow-tooltip="true" |
||||
|
> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column fixed="right" label="操作" align="center" width="120"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-button |
||||
|
@click="handleWatch(scope.$index)" |
||||
|
type="text" |
||||
|
size="small" |
||||
|
>查看</el-button |
||||
|
> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
|
||||
|
<div> |
||||
|
<el-pagination |
||||
|
@size-change="handleSizeChange" |
||||
|
@current-change="handleCurrentChange" |
||||
|
:current-page.sync="pageNo" |
||||
|
:page-sizes="[20, 50, 100, 200]" |
||||
|
:page-size="parseInt(pageSize)" |
||||
|
layout="sizes, prev, pager, next, total" |
||||
|
:total="total" |
||||
|
> |
||||
|
</el-pagination> |
||||
|
</div> |
||||
|
</el-card> |
||||
|
|
||||
|
<people-more |
||||
|
v-if="showedPeopleMoreInfo && currentPepeleId" |
||||
|
:userId="currentPepeleId" |
||||
|
:gridName="currentPepeleGridName" |
||||
|
@close="showedPeopleMoreInfo = false" |
||||
|
/> |
||||
|
|
||||
|
<el-dialog |
||||
|
:visible.sync="diyDialog" |
||||
|
:close-on-click-modal="false" |
||||
|
:close-on-press-escape="false" |
||||
|
width="1150px" |
||||
|
top="5vh" |
||||
|
class="dialog-h" |
||||
|
> |
||||
|
<diy-info |
||||
|
v-if="diyDialog" |
||||
|
ref="ref_diy" |
||||
|
:list="exportList" |
||||
|
:search="computeQueryParams()" |
||||
|
@close="diyDialog = false" |
||||
|
></diy-info> |
||||
|
</el-dialog> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { requestPost } from "@/js/dai/request"; |
||||
|
import nextTick from "dai-js/tools/nextTick"; |
||||
|
import { mapGetters } from "vuex"; |
||||
|
import peopleMore from "@/views/modules/shequ/cpts/people-more"; |
||||
|
import diyInfo from "@/views/modules/base/diyInfo.vue"; |
||||
|
|
||||
|
export default { |
||||
|
props: { |
||||
|
elseParams: { |
||||
|
type: Array, |
||||
|
default: () => [], |
||||
|
}, |
||||
|
}, |
||||
|
|
||||
|
components: { peopleMore, diyInfo }, |
||||
|
data() { |
||||
|
return { |
||||
|
openSearch: false, |
||||
|
|
||||
|
formShow: false, |
||||
|
formTitle: "", |
||||
|
|
||||
|
pageNo: 1, |
||||
|
pageSize: window.localStorage.getItem("pageSize") || 20, |
||||
|
total: 1, |
||||
|
|
||||
|
tableData: [], |
||||
|
|
||||
|
optionsV: [], |
||||
|
optionsB: [], |
||||
|
optionsH: [], |
||||
|
optionsD: [], |
||||
|
optionsG: [], |
||||
|
|
||||
|
optionsWelfare: [ |
||||
|
{ |
||||
|
value: "1", |
||||
|
label: "是", |
||||
|
}, |
||||
|
{ |
||||
|
value: "0", |
||||
|
label: "否", |
||||
|
}, |
||||
|
], |
||||
|
|
||||
|
fmData: { |
||||
|
gridId: "", |
||||
|
villageId: "", |
||||
|
buildId: "", |
||||
|
unitId: "", |
||||
|
homeId: "", |
||||
|
name: "", |
||||
|
mobile: "", |
||||
|
idCard: "", |
||||
|
}, |
||||
|
rangeTime: [], |
||||
|
|
||||
|
searchH: 0, |
||||
|
tableHeight: 0, |
||||
|
|
||||
|
// 显示人员详情 |
||||
|
showedPeopleMoreInfo: false, |
||||
|
|
||||
|
currentPepeleId: "", |
||||
|
currentPepeleGridName: "", |
||||
|
|
||||
|
diyDialog: false, |
||||
|
exportList: [], |
||||
|
}; |
||||
|
}, |
||||
|
computed: { |
||||
|
...mapGetters(["clientHeight", "iframeHeight"]), |
||||
|
maxTableHeight() { |
||||
|
console.log("computed-searchH---", this.searchH); |
||||
|
const h = this.clientHeight - this.searchH + this.iframeHeight; |
||||
|
const _h = this.clientHeight - this.searchH; |
||||
|
console.log("computed-searchH---_h", _h); |
||||
|
return this.$store.state.inIframe ? h : _h; |
||||
|
}, |
||||
|
|
||||
|
changeVDisabled() { |
||||
|
return !this.fmData.villageId; |
||||
|
}, |
||||
|
changeBDisabled() { |
||||
|
return !this.fmData.buildId; |
||||
|
}, |
||||
|
changeDDisabled() { |
||||
|
return !this.fmData.unitId; |
||||
|
}, |
||||
|
}, |
||||
|
watch: { |
||||
|
rangeTime: function (val) { |
||||
|
console.log("val----", val); |
||||
|
if (Array.isArray(val) && val.length == 2) { |
||||
|
this.fmData.startTime = val[0]; |
||||
|
this.fmData.endTime = val[1]; |
||||
|
} else { |
||||
|
this.fmData.startTime = ""; |
||||
|
this.fmData.endTime = ""; |
||||
|
} |
||||
|
}, |
||||
|
searchH() { |
||||
|
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; |
||||
|
}); |
||||
|
}, |
||||
|
}, |
||||
|
mounted() { |
||||
|
this.getGridList(); |
||||
|
this.getValiheList(); |
||||
|
this.getTableData(); |
||||
|
this.searchH = this.$refs.searchCard.$el.offsetHeight + 270; |
||||
|
console.log("searchH----", this.$refs.searchCard.$el.offsetHeight); |
||||
|
}, |
||||
|
methods: { |
||||
|
async handleWatch(rowIndex) { |
||||
|
let item = this.tableData[rowIndex]; |
||||
|
this.currentPepeleId = item.icResiUserId; |
||||
|
this.currentPepeleGridName = item.GRID_ID; |
||||
|
await nextTick(); |
||||
|
this.showedPeopleMoreInfo = true; |
||||
|
}, |
||||
|
|
||||
|
handleClearVillage() { |
||||
|
this.fmData.buildId = ""; |
||||
|
this.fmData.homeId = ""; |
||||
|
}, |
||||
|
handleClearBuild() { |
||||
|
this.fmData.buildId = ""; |
||||
|
this.fmData.unitId = ""; |
||||
|
this.fmData.homeId = ""; |
||||
|
}, |
||||
|
handleClearDan() { |
||||
|
this.fmData.unitId = ""; |
||||
|
this.fmData.homeId = ""; |
||||
|
}, |
||||
|
handleChangeGrid(val) { |
||||
|
console.log("val", val); |
||||
|
this.fmData.villageId = ""; |
||||
|
this.fmData.buildId = ""; |
||||
|
this.fmData.unitId = ""; |
||||
|
this.fmData.homeId = ""; |
||||
|
this.getValiheList(); |
||||
|
}, |
||||
|
handleChangeV(val) { |
||||
|
console.log("val", val); |
||||
|
this.fmData.buildId = ""; |
||||
|
this.fmData.unitId = ""; |
||||
|
this.fmData.homeId = ""; |
||||
|
this.getBuildList(); |
||||
|
}, |
||||
|
handleChangeB(val) { |
||||
|
console.log("val", val); |
||||
|
this.fmData.unitId = ""; |
||||
|
this.fmData.homeId = ""; |
||||
|
this.getUniList(); |
||||
|
}, |
||||
|
handleChangeD(val) { |
||||
|
console.log("val", val); |
||||
|
this.fmData.homeId = ""; |
||||
|
this.getHouseList(); |
||||
|
}, |
||||
|
|
||||
|
getGridList() { |
||||
|
const { user } = this.$store.state; |
||||
|
this.$http |
||||
|
.post("/gov/org/customergrid/gridoption", { |
||||
|
agencyId: user.agencyId, |
||||
|
purpose: "query", |
||||
|
}) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg); |
||||
|
} else { |
||||
|
console.log("获取查询详情成功", res.data); |
||||
|
this.optionsG = res.data; |
||||
|
} |
||||
|
}) |
||||
|
.catch(() => { |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
getValiheList() { |
||||
|
const { user } = this.$store.state; |
||||
|
this.$http |
||||
|
.post("/gov/org/icneighborhood/neighborhoodoption", { |
||||
|
gridId: this.fmData.gridId, |
||||
|
agencyId: "", |
||||
|
// agencyId: user.agencyId |
||||
|
}) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg); |
||||
|
} else { |
||||
|
console.log("获取查询详情成功", res.data); |
||||
|
this.optionsV = res.data; |
||||
|
} |
||||
|
}) |
||||
|
.catch(() => { |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
getBuildList() { |
||||
|
this.$http |
||||
|
.post("/gov/org/icbuilding/buildingoption", { |
||||
|
neighborHoodId: this.fmData.villageId, |
||||
|
}) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg); |
||||
|
} else { |
||||
|
console.log("获取查询详情成功", res.data); |
||||
|
this.optionsB = res.data; |
||||
|
} |
||||
|
}) |
||||
|
.catch(() => { |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
getUniList() { |
||||
|
this.$http |
||||
|
.post("/gov/org/icbuildingunit/unitoption", { |
||||
|
buildingId: this.fmData.buildId, |
||||
|
}) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg); |
||||
|
} else { |
||||
|
console.log("获取查询详情成功", res.data); |
||||
|
this.optionsD = res.data; |
||||
|
} |
||||
|
}) |
||||
|
.catch(() => { |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
getHouseList() { |
||||
|
this.$http |
||||
|
.post("/gov/org/ichouse/houseoption", { unitId: this.fmData.unitId }) |
||||
|
.then(({ data: res }) => { |
||||
|
if (res.code !== 0) { |
||||
|
return this.$message.error(res.msg); |
||||
|
} else { |
||||
|
console.log("获取查询详情成功", res.data); |
||||
|
this.optionsH = res.data; |
||||
|
} |
||||
|
}) |
||||
|
.catch(() => { |
||||
|
return this.$message.error("网络错误"); |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
handleSizeChange(val) { |
||||
|
console.log(`每页 ${val} 条`); |
||||
|
this.pageSize = val; |
||||
|
window.localStorage.setItem("pageSize", val); |
||||
|
this.getTableData(); |
||||
|
}, |
||||
|
handleCurrentChange(val) { |
||||
|
console.log(`当前页: ${val}`); |
||||
|
this.pageNo = val; |
||||
|
this.getTableData(); |
||||
|
}, |
||||
|
|
||||
|
handleClose() { |
||||
|
this.formShow = false; |
||||
|
}, |
||||
|
handleSearch(val) { |
||||
|
console.log(this.fmData); |
||||
|
this.pageNo = 1; |
||||
|
this.getTableData(); |
||||
|
}, |
||||
|
resetForm(formName) { |
||||
|
this.$refs[formName].resetFields(); |
||||
|
this.handleSearch(); |
||||
|
}, |
||||
|
|
||||
|
computeQueryParams() { |
||||
|
const { elseParams, fmData } = this; |
||||
|
|
||||
|
return { |
||||
|
formCode: "resi_base_info", |
||||
|
pageNo: 1, |
||||
|
pageSize: 20, |
||||
|
conditions: [ |
||||
|
{ |
||||
|
queryType: "equal", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "GRID_ID", |
||||
|
columnValue: [fmData.gridId], |
||||
|
}, |
||||
|
{ |
||||
|
queryType: "equal", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "VILLAGE_ID", |
||||
|
columnValue: [fmData.villageId], |
||||
|
}, |
||||
|
{ |
||||
|
queryType: "equal", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "BUILD_ID", |
||||
|
columnValue: [fmData.buildId], |
||||
|
}, |
||||
|
{ |
||||
|
queryType: "equal", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "UNIT_ID", |
||||
|
columnValue: [fmData.unitId], |
||||
|
}, |
||||
|
{ |
||||
|
queryType: "equal", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "HOME_ID", |
||||
|
columnValue: [fmData.homeId], |
||||
|
}, |
||||
|
{ |
||||
|
queryType: "like", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "NAME", |
||||
|
columnValue: [fmData.name], |
||||
|
}, |
||||
|
{ |
||||
|
queryType: "like", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "MOBILE", |
||||
|
columnValue: [fmData.mobile], |
||||
|
}, |
||||
|
{ |
||||
|
queryType: "like", |
||||
|
tableName: "ic_resi_user", |
||||
|
columnName: "ID_CARD", |
||||
|
columnValue: [fmData.idCard], |
||||
|
}, |
||||
|
...elseParams, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
async handleChu() { |
||||
|
this.getExportList(); |
||||
|
}, |
||||
|
|
||||
|
async getExportList() { |
||||
|
const url = "/oper/customize//icformitemgroup/list"; |
||||
|
let params = { |
||||
|
formCode: "resi_base_info", |
||||
|
}; |
||||
|
|
||||
|
const { data, code, msg } = await requestPost(url, params); |
||||
|
|
||||
|
if (code === 0) { |
||||
|
data.forEach((item) => { |
||||
|
(async (id) => { |
||||
|
// item.queryItemList = await this.getExportChildList(id) |
||||
|
item.queryItemList = []; |
||||
|
})(item.id); |
||||
|
}); |
||||
|
this.exportList = [...data]; |
||||
|
this.$nextTick(() => { |
||||
|
this.diyDialog = true; |
||||
|
}); |
||||
|
console.log("获取详情成功getExportList----", this.exportList); |
||||
|
} else { |
||||
|
this.$message.error(msg); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
async getTableData() { |
||||
|
const url = "/epmetuser/icresiuser/listresi"; |
||||
|
const { pageSize, pageNo, fmData } = this; |
||||
|
const { data, code, msg } = await requestPost(url, { |
||||
|
pageSize, |
||||
|
pageNo, |
||||
|
...this.computeQueryParams(), |
||||
|
}); |
||||
|
if (code === 0) { |
||||
|
console.log("列表请求成功!!!!!!!!!!!!!!"); |
||||
|
this.total = data.total || 0; |
||||
|
this.tableData = data.list |
||||
|
? data.list.map((item) => { |
||||
|
return item; |
||||
|
}) |
||||
|
: []; |
||||
|
} else { |
||||
|
} |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<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; |
||||
|
} |
||||
|
} |
||||
|
.resi-card-table { |
||||
|
margin-top: 20px; |
||||
|
} |
||||
|
.resi-row-btn { |
||||
|
margin-bottom: 13px; |
||||
|
.upload-btn { |
||||
|
display: inline-block; |
||||
|
margin: 0 10px; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.resi-btns { |
||||
|
margin-top: 20px; |
||||
|
text-align: center; |
||||
|
} |
||||
|
|
||||
|
.resi-container .resi-card { |
||||
|
position: relative; |
||||
|
overflow: visible; |
||||
|
} |
||||
|
|
||||
|
.demo-form-inline { |
||||
|
// display: flex; |
||||
|
// align-items: center; |
||||
|
// margin-bottom: 20px; |
||||
|
|
||||
|
.resi-cell-label { |
||||
|
flex-shrink: 0; |
||||
|
min-width: 0; |
||||
|
box-sizing: border-box; |
||||
|
margin-right: 15px; |
||||
|
// text-align: right; |
||||
|
// line-height: 32; |
||||
|
} |
||||
|
.resi-cell-label1 { |
||||
|
width: max-content; |
||||
|
} |
||||
|
.resi-cell-value-radio { |
||||
|
display: flex; |
||||
|
align-items: center; |
||||
|
min-height: 32px; |
||||
|
} |
||||
|
.resi-cell-input { |
||||
|
width: 200px; |
||||
|
} |
||||
|
.resi-cell--daterange { |
||||
|
max-width: 260px; |
||||
|
} |
||||
|
.resi-cell-select { |
||||
|
width: 200px; |
||||
|
box-sizing: border-box; |
||||
|
margin-right: 10px; |
||||
|
&-middle { |
||||
|
width: 120px; |
||||
|
} |
||||
|
&-small { |
||||
|
width: 88px; |
||||
|
} |
||||
|
} |
||||
|
.resi-cell-select:last-child { |
||||
|
margin-right: 0; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.mt10 { |
||||
|
margin-top: 10px; |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,35 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page :elseParams="elseParams"></base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/shequzhili/tuceng/zhonghe/base"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
elseParams: [ |
||||
|
{ |
||||
|
queryType: "list_equal", |
||||
|
tableName: "ic_special", |
||||
|
columnName: "SPECIAL_RQLB", |
||||
|
columnValue: ["buliangqingshaonian"], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,35 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page :elseParams="elseParams"></base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/shequzhili/tuceng/zhonghe/base"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
elseParams: [ |
||||
|
{ |
||||
|
queryType: "list_equal", |
||||
|
tableName: "ic_special", |
||||
|
columnName: "SPECIAL_RQLB", |
||||
|
columnValue: ["shequjiaozheng"], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,35 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page :elseParams="elseParams"></base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/shequzhili/tuceng/zhonghe/base"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
elseParams: [ |
||||
|
{ |
||||
|
queryType: "list_equal", |
||||
|
tableName: "ic_special", |
||||
|
columnName: "SPECIAL_RQLB", |
||||
|
columnValue: ["xidurenyuan"], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,35 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page :elseParams="elseParams"></base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/shequzhili/tuceng/zhonghe/base"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
elseParams: [ |
||||
|
{ |
||||
|
queryType: "list_equal", |
||||
|
tableName: "ic_special", |
||||
|
columnName: "SPECIAL_RQLB", |
||||
|
columnValue: ["xiejiaorenyuan"], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,35 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<base-page :elseParams="elseParams"></base-page> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import basePage from "@/views/modules/shequzhili/tuceng/zhonghe/base"; |
||||
|
|
||||
|
export default { |
||||
|
props: {}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
elseParams: [ |
||||
|
{ |
||||
|
queryType: "list_equal", |
||||
|
tableName: "ic_special", |
||||
|
columnName: "SPECIAL_RQLB", |
||||
|
columnValue: ["zhaoshizhaohuojingshenbing"], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
components: { basePage }, |
||||
|
computed: {}, |
||||
|
watch: {}, |
||||
|
|
||||
|
async mounted() {}, |
||||
|
|
||||
|
methods: {}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped></style> |
||||
Loading…
Reference in new issue