a1831b0f by 任超

feat:楼盘表

1 parent b5b2b3f7
Showing 57 changed files with 3362 additions and 90 deletions
export default {
SERVERAPI: '/service-bdcdj9',
SERVERCAI: 'service-cai'
SERVERAPI: '/service-bdcdj-Tian',
SERVERCAI: '/service-bdcdj-Tian'
}
\ No newline at end of file
......
{
"exprotTextAttr": "[属性描述]\n格式版本号=1.0\n数据产生单位=国土资源信息中心\n数据产生日期=2013-06-06\n坐标系=80国家大地坐标系\n几度分带=3\n投影类型=高斯克吕格\n计量单位=米\n带号=36\n精度=0.01\n转换参数=0,0,0,0,0,0,0\n"
}
\ No newline at end of file
{
"pointSymbol": {
"bufferSymbol": {
"type": "simple-marker",
"style": "circle",
"color": "black",
"size": "8px",
"outline": {
"color": [ 255, 255, 0 ],
"width": 1
}
}
},
"lineSymbol": {
},
"fillSymbol": {
"defaultSymbol": {
"type": "simple-fill",
"color": [ 0,233, 245, 0.4 ],
"style": "solid",
"outline": {
"color": "#00e9f5",
"width": 1
}
},
"highlightSymbol": {
"type": "simple-fill",
"color": [ 245,3, 37, 0.4 ],
"style": "solid",
"outline": {
"color": "#f50325",
"width": 1
}
},
"importSymbol": {
"type": "simple-fill",
"color": [ 245,3, 37, 0.4 ],
"style": "none",
"outline": {
"color": "#006cff",
"width": 2
}
},
"bufferSymbol": {
"type": "simple-fill",
"color": [ 86,81, 81, 0.5 ],
"style": "solid",
"outline": {
"color": [45,44,44,1],
"width": 2
}
},
"bufferGeoSymbol": {
"type": "simple-fill",
"color": [ 86,81, 81, 0.5 ],
"style": "solid",
"outline": {
"color": [45,44,44,1],
"width": 0
}
}
}
}
\ No newline at end of file
[{
"label":"专题树",
"id":"1",
"type":"layerGroup",
"alpha":100,
"children":[
{
"label":"西安市阎良区",
"id":"1-1",
"type":"layerGroup",
"alpha":100,
"children":[{
"label":"行政区划",
"id":"1-1-1",
"type":"layerGroup",
"alpha":100,
"children":[
{
"label":"行政区界限",
"id":"1-1-1-1",
"type":"layer",
"layerId":20,
"children":null
},
{
"label":"行政区",
"id":"1-1-1-2",
"type":"layer",
"layerId":19,
"children":null
}
]
},
{
"label":"地籍分区",
"id":"1-1-2",
"type":"layerGroup",
"alpha":100,
"children":[
{
"label":"地籍区",
"id":"1-1-2-1",
"type":"layer",
"layerId":13,
"children":null
},
{
"label":"地籍子区",
"id":"1-1-2-2",
"type":"layer",
"layerId":14,
"children":null
}
]
},
{
"label":"不动产单元",
"id":"1-1-3",
"type":"layerGroup",
"alpha":100,
"children":[
{
"label":"线状定着物",
"id":"1-1-3-1",
"type":"layer",
"layerId":7,
"children":null
},
{
"label":"宗海",
"id":"1-1-3-2",
"type":"layer",
"layerId":9,
"children":null
},
{
"label":"宗地",
"id":"1-1-3-3",
"type":"layer",
"layerId":8,
"children":null
},
{
"label":"林权",
"id":"1-1-3-4",
"type":"layer",
"layerId":5,
"children":null
},
{
"label":"构筑物",
"id":"1-1-3-5",
"type":"layer",
"layerId":2,
"children":null
},
{
"label":"面状定着物",
"id":"1-1-3-6",
"type":"layer",
"layerId":6,
"children":null
},
{
"label":"界址线",
"id":"1-1-3-7",
"type":"layer",
"layerId":4,
"children":null
},
{
"label":"点状定着物",
"id":"1-1-3-8",
"type":"layer",
"layerId":1,
"children":null
},
{
"label":"自然幢",
"id":"1-1-3-9",
"type":"layer",
"layerId":10,
"children":null
},
{
"label":"界址点",
"id":"1-1-3-10",
"type":"layer",
"layerId":4,
"children":null
}
]
},
{
"label":"自然地理",
"id":"1-1-4",
"type":"layerGroup",
"alpha":100,
"children":[
{
"label":"辅助面",
"id":"1-1-4-1",
"type":"layer",
"layerId":15,
"children":null
},
{
"label":"植被",
"id":"1-1-4-2",
"type":"layer",
"layerId":17,
"children":null
},
{
"label":"水系",
"id":"1-1-4-3",
"type":"layer",
"layerId":16,
"children":null
}
]
}
]
}]
}]
\ No newline at end of file
[{
"layerName": "ZDJBXX",
"layerLabel": "宗地",
"layerUrl": "https://192.168.2.146:6443/arcgis/rest/services/qj/backupService/MapServer",
"id":8,
"fieldAliases": {
"BSM": "标识码",
"YSDM": "要素代码",
"ZDDM": "宗地代码",
"BDCDYH": "不动产单元号",
"ZDTZM": "宗地特征码",
"ZL": "坐落",
"ZDMJ": "宗地面积",
"MJDW": "面积单位",
"YT": "用途",
"DJ": "等级",
"JG": "价格",
"QLLX": "权利类型",
"QLXZ": "权利性质",
"QLSDFS": "权利设定方式",
"RJL": "容积率",
"JZMD": "建筑密度",
"JZXG": "建筑限高",
"ZDSZD": "宗地四至-东",
"ZDSZN": "宗地四至-南",
"ZDSZX": "宗地四至-西",
"ZDSZB": "宗地四至-北",
"TFH": "图幅号",
"DJH": "地籍号",
"DAH": "档案号",
"BZ": "备注",
"ZT": "状态",
"YWZT": "业务状态",
"XMMC": "项目名称",
"BGRQ": "变更日期",
"TDZH": "土地证号"
}
},
{
"layerName": "ZRZ",
"layerLabel": "自然幢",
"layerUrl": "https://192.168.2.146:6443/arcgis/rest/services/qj/backupService/MapServer",
"id": 10,
"fieldAliases": {
"YSDM": "要素代码",
"BDCDYH": "不动产单元号",
"ZDDM": "宗地代码",
"ZRZH": "自然幢号",
"XMMC": "项目名称",
"JZWMC": "建筑物名称",
"JGRQ": "竣工日期",
"JZWGD": "建筑物高度",
"ZZDMJ": "幢占地面积",
"ZYDMJ": "幢用地面积",
"YCJZMJ": "预测建筑面积",
"SCJZMJ": "实测建筑面积",
"ZCS": "总层数",
"DSCS": "地上层数",
"DXCS": "地下层数",
"DXSD": "地下深度",
"GHYT": "规划用途",
"FWJG": "房屋结构",
"ZTS": "总套数",
"JZWJBYT": "建筑物基本用途",
"DAH": "档案号",
"BZ": "备注",
"ZT": "状态",
"YWZT": "业务状态",
"BSM": "标识码"
}
},
{
"layerName": "DJQ",
"layerLabel": "地籍区",
"layerUrl": "https://192.168.2.146:6443/arcgis/rest/services/qj/backupService/MapServer",
"id": 13,
"fieldAliases": {
"BSM": "标识码",
"YSDM": "要素代码",
"DJQDM": "地籍区代码",
"DJQMC": "地籍区名称"
}
},
{
"layerName": "DJZQ",
"layerLabel": "地籍子区",
"layerUrl": "https://192.168.2.146:6443/arcgis/rest/services/qj/backupService/MapServer",
"id": 14,
"fieldAliases": {
"BSM": "标识码",
"YSDM": "要素代码",
"DJZQDM": "地籍子区代码",
"DJZQMC": "地籍子区名称"
}
},
{
"layerName": "XJZQ",
"layerLabel": "行政区",
"layerUrl": "https://192.168.2.146:6443/arcgis/rest/services/qj/backupService/MapServer",
"id": 19,
"fieldAliases": {
"BSM": "标识码",
"YSDM": "要素代码",
"XZQDM": "行政区代码",
"XZQMC": "行政区名称",
"XZQMJ": "行政区面积"
}
},
{
"layerName":"JZD",
"layerLabel":"界址点",
"layerUrl":"https://192.168.2.146:6443/arcgis/rest/services/qj/backupService/MapServer",
"id":3
},
{
"layerName":"JZX",
"layerLabel":"界址线",
"layerUrl":"https://192.168.2.146:6443/arcgis/rest/services/qj/backupService/MapServer",
"id":4
}
]
\ No newline at end of file
......@@ -8,7 +8,7 @@ import SERVER from './config'
// }
export function getMenuInfo () {
return request({
url: SERVER.SERVERCAI + '/rest/user/getUserAuthorizationMenus',
url: SERVER.SERVERAPI + '/rest/user/getUserAuthorizationMenus',
method: 'get',
})
}
\ No newline at end of file
......
......@@ -3,10 +3,11 @@ import SERVER from './config'
/*
业务办理-获取收藏业务集合
*/
export function getCollectBiz () {
export function getCollectBiz (headers) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/BusinessApply/getCollectBiz',
method: 'post'
method: 'post',
headers
})
}
......@@ -16,16 +17,20 @@ export function getCollectBiz () {
export function getleftMenu () {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/BusinessApply/getleftMenu',
method: 'post'
method: 'post',
headers: {
showLoading: false
}
})
}
/*
业务办理-获取下个节点内容
*/
export function getNextNode (bsmSqyw) {
export function getNextNode (bsmSqyw, headers) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/BusinessApply/getNextNode?parentid=' + bsmSqyw,
method: 'post',
headers
})
}
......@@ -36,8 +41,7 @@ export function selectScBdcdy (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectScBdcdy',
method: 'post',
data,
showLoading: true
data
})
}
......@@ -54,12 +58,12 @@ export function selectScBdcdy (data) {
// }
// 待办箱列表查询接口
export function searchTaskToDo (data) {
export function searchTaskToDo (data, headers) {
return request({
url: SERVER.SERVERAPI + '/rest/workBox/search/searchTaskToDo',
method: 'post',
data,
showLoading: true
headers
})
}
// 待办箱/不动产单元删除接口
......@@ -95,12 +99,12 @@ export function searchTaskDone (data) {
/*
业务办理-选择权利信息-根据条件进行列表查询
*/
export function selectQlxx (data) {
export function selectQlxx (data, headers) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/ywsq/selectQlxx',
method: 'post',
data,
showLoading: true
headers
})
}
/*
......
<template>
<div class="temp">
<el-row class="qlxzModule" v-for="(items, index) in countList" :key="items.id">
<template v-for="(childItem, childIndex) in items.list">
<el-col :span="2" class="btnCol" :key="childIndex + '1'" :class="childIndex > 0 ? 'childYT noTopBorder' : ''">
<el-button v-show="childIndex < 1" type="primary" class="changeBtn addMinus outAdd"
@click="handleClick(index, 'add')">+</el-button>
<el-button v-show="childIndex < 1" type="primary" class="changeBtn addMinus outMinus"
@click="handleClick(index, 'minus')">-</el-button>
<div :class="items.hasNotBorder ? 'itemShow whiteItem' : 'whiteItem'" v-if="items.isInside"></div>
</el-col>
<el-col :span="2" class="btnCol" :key="childIndex + '8'" :class="childIndex > 0 ? 'childYT' : ''">
<!-- <template v-if="childIndex>0"> -->
<span class="qlxz" v-show="childIndex < 1">权利性质</span><br />
<el-button type="primary" class="changeBtn addMinus inAdd" @click="handleInClick(index, childIndex, 'add')">+
</el-button>
<el-button type="primary" class="changeBtn addMinus inMinus"
@click="handleInClick(index, childIndex, 'minus')">-</el-button>
<!-- </template> -->
</el-col>
<el-col :span="5" :key="childIndex + '7'" :class="childIndex > 0 ? 'childYT' : ''">
<ul>
<li>批准用途</li>
<li>实际用途</li>
<li>土地使用起始时间<i class="requisite">*</i></li>
</ul>
</el-col>
<el-col :span="5" :key="childIndex + '6'" :class="childIndex > 0 ? 'childYT' : ''">
<ul>
<li>
<el-select-tree v-if="show" :default-expand-all="defaultExpandAll" :multiple="multiple"
:placeholder="placeholder" :disabled="disabled" :data="$store.state.tdytList" :props="treeProps"
:check-strictly="checkStrictly" :clearable="clearable" v-model="childItem.pzytdm"></el-select-tree>
</li>
<li>
<el-select-tree v-if="show" :default-expand-all="defaultExpandAll" :multiple="multiple"
:placeholder="placeholder" :disabled="disabled" :data="$store.state.tdytList" :props="treeProps"
:check-strictly="checkStrictly" :clearable="clearable" v-model="childItem.sjytdm"></el-select-tree>
</li>
<li>
<el-date-picker v-model="childItem.tdsyqssj" :picker-options="childItem.pickerStart" type="date"
value-format="yyyy-MM-dd" placeholder="选择日期" @input="startTime(index, childIndex)">
</el-date-picker>
</li>
</ul>
</el-col>
<el-col :span="5" :key="childIndex + '5'" :class="childIndex > 0 ? 'childYT' : ''">
<ul>
<li>地类编码</li>
<li>地类编码</li>
<li>土地使用结束时间<i class="requisite">*</i></li>
</ul>
</el-col>
<el-col :span="5" :key="childIndex + '4'" :class="childIndex > 0 ? 'childYT' : ''">
<ul>
<li>
<input type="text" style="top: -1px;" v-model="childItem.pzytdm" class="formInput" />
</li>
<li>
<input type="text" v-model="childItem.sjytdm" class="formInput" />
</li>
<li>
<el-date-picker v-model="childItem.tdsyjssj" type="date" value-format="yyyy-MM-dd"
:picker-options="childItem.pickerEnd" placeholder="选择日期" @input="endTime(index, childIndex)">
</el-date-picker>
</li>
</ul>
</el-col>
</template>
<div class="title">
<el-select class="formSelect" v-model="items.qlxzdm">
<el-option v-for="item in $store.state.qlxzList" :key="item.dm" :label="item.mc" :value="item.dm">
</el-option>
</el-select>
</div>
</el-row>
</div>
</template>
<script>
// import { getDdicByMC } from "@api/common";
export default {
props: {
// widtd: {
// type: String,
default: "70%",
,
a () {
return {
//树型结构
how: true,
arable: true,
aultExpandAll: true,
tiple: false,
ceholder: "请选择",
abled: false,
ckStrictly: true,
eProps: {
lue: "dm",
ildren: "children",
bel: "mc",
ntList: [
id: Math.random(),
isInside: false,
hasNotBorder: false,
bsm: "", //权利性质标识码
lbsm: "", //宗地BSM、自然幢BSM、户BSM、多幢BSM、宗海BSM
lxzdm: "",
zhqlxzlx: "", //除宗海数据外,默认都是空;0:用海类型权利性质;2:海岛用途权利性质
list: [
{
pzdjbsm: "",
pzdjmc: "",
pzytdm: "",
pzytmc: "",
pzytmj: 0,
qlxzbsm: "",
sjdjbsm: "",
sjdjmc: "",
sjytdm: "",
sjytmc: "",
jytmj: 0,
syqx: "",
tdsyjssj: "",
tdsyqssj: "",
pickerStart: {},
pickerEnd: {},
tdzh: "",
},
Num: 0,
ed () { },
hods: {
外层操作
ndleClick (ind, type) {
outsideObj = {
Math.random(),
Inside: false,
sNotBorder: false,
"", //权利性质标识码
bsm: "", //宗地BSM、自然幢BSM、户BSM、多幢BSM、宗海BSM
xzdm: "",
zhqlxzlx: "", //除宗海数据外,默认都是空;0:用海类型权利性质;2:海岛用途权利性质
list: [
{
pzdjbsm: "",
pzdjmc: "",
pzytdm: "",
pzytmc: "",
pzytmj: 0,
qlxzbsm: "",
sjdjbsm: "",
sjdjmc: "",
sjytdm: "",
sjytmc: "",
sjytmj: 0,
syqx: "",
tdsyjssj: "",
tdsyqssj: "",
tdzh: "",
};
(type === "add") {
is.countList.push(outsideObj);
is.outNum++;
lse {
.countList.forEach((item, index) => {
f (index == ind && this.countList.length > 1) {
this.countList.splice(index, 1);
}
});
this.outNum--;
Click (index, childIndex, type) {
eObj = {
",
,
"",
"",
: 0,
m: "",
m: "",
"",
: "",
: "",
: 0,
"",
jssj: "",
sj: "",
: "",
e === "add") {
ountList[index].list.splice(childIndex + 1, 0, insideObj);
ountList[index].list.forEach((item, childInd) => {
(childIndex == childInd && this.countList[index].list.length > 1) {
this.countList[index].list.splice(childIndex, 1);
}
});
s.hasBorderOrNot();
是否显示边框
orderOrNot () {
s.countList.forEach((item, index) => {
(index == this.countList.length - 1) {
m.hasNotBorder = true;
{
sNotBorder =
sInside && !this.countList[index + 1].isInside ? true : false;
aList () {
this.countList;
时间判断
tTime (index, childIndex) {
tartTime = this.countList[index].list[childIndex].tdsyqssj;
endTime = this.countList[index].list[childIndex].tdsyjssj;
s.countList[index].list[childIndex].pickerEnd = {
bledDate: (time) => {
f (Object.keys(startTime).length > 0) {
return new Date(startTime).getTime() > time.getTime();
lse {
rn time.getTime() < Date.now();
t.keys(startTime).length > 0 && Object.keys(endTime).length > 0) {
ear = new Date(startTime).getFullYear();
ear = new Date(endTime).getFullYear();
ime (index, childIndex, e) {
onsole.log(e, 'eeeeee');
let startTime = this.countList[index].list[childIndex].tdsyqssj;
let endTime = this.countList[index].list[childIndex].tdsyjssj;
this.countList[index].list[childIndex].pickerStart = {
disabledDate: (time) => {
if (Object.keys(endTime).length > 0) {
return new Date(endTime).getTime() < time.getTime();
} else {
return time.getTime() > Date.now();
}
}
}
if (Object.keys(startTime).length > 0 && Object.keys(endTime).length > 0) {
let startYear = new Date(startTime).getFullYear();
let endYear = new Date(endTime).getFullYear();
}
},
},
};
</script>
<style lang="scss">
.temp {
width: 100%;
.qlxzModule {
height: auto;
position: relative;
border-bottom: 1px solid #e6e6e6;
.el-col {
// height: 100%;
border-right: 1px solid #E6E6E6;
position: relative;
text-align: right;
padding-right: 10px;
.qlxz {
line-height: 34px;
}
ul {
margin-top: 34px;
li {
height: 37px;
line-height: 37px;
text-decoration: none;
border-bottom: 1px solid #e6e6e6;
.el-select {
width: 100%;
}
.el-input {
width: 100%;
}
.el-input__inner {
height: 34px;
}
input {
position: relative;
top: -2px;
height: 35px;
width: calc(100% - 1px) !important;
}
}
li:last-child {
border-bottom: none;
}
}
.whiteItem {
background-color: #fff;
position: absolute;
width: 100%;
height: 2px;
bottom: -1px;
left: 0;
}
.itemShow {
bottom: 2px;
}
}
.childYT {
height: 114px;
border-top: 1px solid #E6E6E6;
ul {
margin-top: 0;
li {
.el-input__inner {
height: 29px;
}
}
}
.changeBtn {
margin-top: -48px;
}
.el-button+.el-button {
margin-top: 4px;
}
}
.noTopBorder {
border-top: 0;
}
.noRightBorder {
border-right: 0;
}
.el-col:nth-last-child(2) {
border-right: none;
}
.title {
width: 83.33333%;
height: 34px;
line-height: 34px;
background-color: #fff;
border-bottom: 1px solid #E6E6E6;
position: absolute;
right: 0;
top: 0;
.formSelect {
top: -1px;
width: 100%;
.el-input__inner {
height: 32px;
}
}
}
}
.btnCol {
position: relative;
height: 146px;
.changeBtn {
width: 46px;
height: 46px;
font-size: 30px;
padding: 4px 6px;
position: absolute;
top: 50%;
left: 50%;
margin-top: -38px;
margin-left: -23px;
}
.el-button+.el-button {
margin-left: -23px;
margin-top: 16px;
}
}
.el-row:nth-last-child(1) {
border-bottom: none;
}
/deep/.el-select-tree {
width: 100%;
.el-input__inner {
height: 30px !important;
}
}
}
</style>
<template>
<el-dialog v-dialogDrag :close-on-click-modal="false" title="户重新落宗" :visible.sync="isVisible" width="50%"
@close="close" :modal-append-to-body="false">
<div class="content">
<table>
<tr>
<td class="label">宗地:</td>
<td class="input">
<el-input placeholder="请选择宗地" v-model="zdxx" :disabled="true"></el-input>
</td>
<td>
<el-button type="primary" @click="xzzdVisible = true">选择宗地</el-button>
</td>
</tr>
<tr>
<td class="label">自然幢:</td>
<td class="input">
<el-select v-model="hcxlzData.zrzbsm" filterable placeholder="请选择" @change="zrzChange">
<el-option v-for="(item, index) in zrzList" :key="index" :label="item.label"
:value="item.bsm">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td class="label">逻辑幢:</td>
<td class="input">
<el-select v-model="hcxlzData.ljzbsm" filterable placeholder="请选择" @change="ljzChange">
<el-option v-for="(item, index) in ljzList" :key="index" :label="item.ljzmc"
:value="item.bsm">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td class="label">幢单元:</td>
<td class="input">
<el-select v-model="hcxlzData.zdybsm" filterable placeholder="请选择">
<el-option v-for="(item, index) in zdyList" :key="index" :label="item.zdymc"
:value="item.bsm">
</el-option>
</el-select>
</td>
</tr>
</table>
</div>
<div class="footer">
<el-button type="primary" @click="save">保存</el-button>
<el-button type="primary" @click="close">取消</el-button>
</div>
<!-- <zd-query-data :isCxlz=true :centerDialogVisible="xzzdVisible" @close="xzzdClose" @getData="getZdxx"
:isZdClose="true"></zd-query-data> -->
</el-dialog>
</template>
<script>
// import zdQueryData from '@/components/zdQueryData/zdQueryData'
// import { zdXlcd, hzl } from '@api/zd'
import { Message } from 'element-ui'
export default {
name: "hCxlz",
components: { zdQueryData },
data () {
return {
zd: {},
zrz: {},
ljz: {},
zdy: {},
xzzdVisible: false,
isVisible: false,
zdxx: '', // 宗地信息
hcxlzData: {
bsms: [],
zrzbsm: '',
ljzbsm: '',
zdybsm: ''
},
total: 1,
zrzList: [],
ljzList: [],
zdyList: []
}
},
props: {
hCxlzVisble: {
type: Boolean,
default: false
},
bsms: {
type: Array
}
},
mounted () {
this.hcxlzData.bsms = this.bsms;
},
methods: {
ljzChange: function () {
const item = this.ljzList.find(i => i.bsm == this.hcxlzData.ljzbsm)
this.hcxlzData.zdybsm = ''
this.zdyList = item.list;
this.zdyList.push({
zdymc: '空',
bsm: ''
})
},
zrzChange: function () {
const item = this.zrzList.find(i => i.bsm === this.hcxlzData.zrzbsm);
this.hcxlzData.ljzbsm = '';
this.hcxlzData.zdybsm = '';
this.ljzList = item.ljzList;
this.ljzList.push({
ljzmc: '空',
bsm: ''
})
this.zdyList = item.zdyList;
this.zdyList.push({
zdymc: '空',
bsm: ''
})
},
getZrz: function (bsm) {
zdXlcd(bsm).then(res => {
if (res.success) {
this.zrzList = res.result;
this.xzzdClose();
} else {
Message.error(res.message)
}
})
},
getZdxx: function (val) {
this.zd = val
this.zdxx = val.xmmc + "(" + val.zddm + ")";
},
xzzdClose: function () {
this.xzzdVisible = false;
},
result: function () {
this.hcxlzData = {
zrzbsm: '',
ljzbsm: '',
zdybsm: ''
};
this.hcxlzData.bsms = this.bsms;
},
save () {
if (this.hcxlzData.zrzbsm === '') {
Message.error("请选择自然幢");
return;
}
hzl(this.hcxlzData).then(res => {
if (res.success) {
this.$router.push({
path: '/zrz',
query: {
bsm: this.hcxlzData.zrzbsm,
source: 2,
auth: '0,1,2'
}
})
} else {
Message.error(res.message)
}
});
},
close () {
this.$emit('close', false);
this.result();
},
},
watch: {
hCxlzVisble: function (val) {
this.isVisible = val
},
zd: function (val) {
this.hcxlzData.zrzbsm = '';
this.hcxlzData.zdybsm = '';
this.hcxlzData.ljzbsm = '';
this.getZrz(val.zdbsm)
}
}
}
</script>
<style scoped lang="scss">
.input-suffix {
input {
width: 210px;
height: 30px;
border-radius: 3px;
border-color: #BBB;
}
}
.content {
text-align: center;
}
table {
border-collapse: separate;
border-spacing: 10px;
display: inline-block;
text-align: center;
.label {
width: 60px;
font-size: 15px;
text-align: justify;
text-align-last: justify
}
.input {
width: 300px;
.el-select {
width: 300px;
}
}
}
.footer {
margin-top: 20px;
text-align: center;
}
</style>

export default {
methods:{
downloadTxt(text, fileName){
let element = document.createElement('a')
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text))
element.setAttribute('download', fileName)
element.style.display = 'none'
element.click()
},
createTextContent(jzdInfo){
var textContent = "";
for(var i = 0;i < jzdInfo.length;i++){
textContent += jzdInfo[i].jzdh +","+jzdInfo[i].sxh+"," +
jzdInfo[i].x+","+jzdInfo[i].y+"\n"
}
return textContent;
},
}
}
\ No newline at end of file
import service from './src/index';
export default {
install (Vue) {
Vue.prototype.$loading = service;
},
service
};
import Vue from 'vue';
import loadingVue from './loading.vue';
import { addClass, removeClass, getStyle } from 'element-ui/src/utils/dom';
import { PopupManager } from 'element-ui/src/utils/popup';
import afterLeave from 'element-ui/src/utils/after-leave';
import merge from 'element-ui/src/utils/merge';
const LoadingConstructor = Vue.extend(loadingVue);
const defaults = {
text: null,
fullscreen: true,
body: false,
lock: false,
customClass: ''
};
let fullscreenLoading;
LoadingConstructor.prototype.originalPosition = '';
LoadingConstructor.prototype.originalOverflow = '';
LoadingConstructor.prototype.close = function() {
if (this.fullscreen) {
fullscreenLoading = undefined;
}
afterLeave(this, _ => {
const target = this.fullscreen || this.body
? document.body
: this.target;
removeClass(target, 'el-loading-parent--relative');
removeClass(target, 'el-loading-parent--hidden');
if (this.$el && this.$el.parentNode) {
this.$el.parentNode.removeChild(this.$el);
}
this.$destroy();
}, 300);
this.visible = false;
};
const addStyle = (options, parent, instance) => {
let maskStyle = {};
if (options.fullscreen) {
instance.originalPosition = getStyle(document.body, 'position');
instance.originalOverflow = getStyle(document.body, 'overflow');
maskStyle.zIndex = PopupManager.nextZIndex();
} else if (options.body) {
instance.originalPosition = getStyle(document.body, 'position');
['top', 'left'].forEach(property => {
let scroll = property === 'top' ? 'scrollTop' : 'scrollLeft';
maskStyle[property] = options.target.getBoundingClientRect()[property] +
document.body[scroll] +
document.documentElement[scroll] +
'px';
});
['height', 'width'].forEach(property => {
maskStyle[property] = options.target.getBoundingClientRect()[property] + 'px';
});
} else {
instance.originalPosition = getStyle(parent, 'position');
}
Object.keys(maskStyle).forEach(property => {
instance.$el.style[property] = maskStyle[property];
});
};
const Loading = (options = {}) => {
if (Vue.prototype.$isServer) return;
options = merge({}, defaults, options);
if (typeof options.target === 'string') {
options.target = document.querySelector(options.target);
}
options.target = options.target || document.body;
if (options.target !== document.body) {
options.fullscreen = false;
} else {
options.body = true;
}
if (options.fullscreen && fullscreenLoading) {
return fullscreenLoading;
}
let parent = options.body ? document.body : options.target;
let instance = new LoadingConstructor({
el: document.createElement('div'),
data: options
});
addStyle(options, parent, instance);
if (instance.originalPosition !== 'absolute' && instance.originalPosition !== 'fixed' && instance.originalPosition !== 'sticky') {
addClass(parent, 'el-loading-parent--relative');
}
if (options.fullscreen && options.lock) {
addClass(parent, 'el-loading-parent--hidden');
}
parent.appendChild(instance.$el);
Vue.nextTick(() => {
instance.visible = true;
});
if (options.fullscreen) {
fullscreenLoading = instance;
}
return instance;
};
export default Loading;
<template>
<transition name="el-loading-fade" @after-leave="handleAfterLeave">
<div v-show="visible" class="el-loading-mask" :style="{ backgroundColor: background || '' }"
:class="[customClass, { 'is-fullscreen': fullscreen }]">
<div class="el-loading-spinner">
<!-- <svg v-if="!spinner" class="circular" viewBox="25 25 50 50">
<circle class="path" cx="50" cy="50" r="20" fill="none" />
</svg>
<i v-else :class="spinner"></i> -->
<img class="img" src="../../../image/progress.gif" alt="">
<p v-if="text" class="el-loading-text">{{ text }}</p>
</div>
</div>
</transition>
</template>
<script>
export default {
data () {
return {
text: null,
spinner: null,
background: null,
fullscreen: true,
visible: false,
customClass: ''
};
},
methods: {
handleAfterLeave () {
this.$emit('after-leave');
},
setText (text) {
this.text = text;
}
}
};
</script>
<style scoped lang="scss">
.el-loading-spinner {
margin-top: -100px !important;
.img {
width: 80px;
height: 80px;
}
}
</style>
\ No newline at end of file
<template>
<div>
<el-dialog v-dialogDrag :close-on-click-modal="false" title="移动户" :visible.sync="isVisible" width="50%"
@close="close" :modal-append-to-body="false">
<div>
<div class="bottom-radio">
<el-radio-group v-model="moveHdata.sxzylx">
<el-radio label="up">向上</el-radio>
<el-radio label="down">向下</el-radio>
<el-radio label="left">向左</el-radio>
<el-radio label="right">向右</el-radio>
</el-radio-group>
</div>
<div class="bottom-buttom">
<el-button type="primary" @click="save">确认</el-button>
<el-button type="primary" @click="cacel">取消</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
// import { moveH } from '@api/lpb'
import { Message } from 'element-ui'
export default {
name: "moveH",
data () {
return {
isVisible: false,
moveHdata: {
hbsm: "",
sxzylx: "",
type: ""
}
}
},
props: {
moveHvisible: {
type: Boolean,
default: false
},
hbsm: {
type: String
},
type: {
type: String
}
},
methods: {
loading: function () {
this.$emit('loading')
},
save () {
this.moveHdata.hbsm = this.hbsm
this.moveHdata.type = this.type
// moveH(this.moveHdata).then(res => {
// console.log(res)
// if (res.success) {
// this.loading();
// this.close();
// Message.success("移动成功")
// } else {
// Message.error(res.message)
// }
// })
},
cacel () {
this.close()
},
close () {
this.$emit('close');
}
},
watch: {
moveHvisible (val) {
this.isVisible = val
}
}
}
</script>
<style scoped lang="scss">
.bottom-radio {
text-align: center;
}
.el-radio {
padding: 20px;
}
.bottom-buttom {
margin-top: 20px;
text-align: center;
}
</style>
<template>
<div>
<el-dialog v-dialogDrag :close-on-click-modal="false" title="批量层" :visible.sync="isVisible" width="50%"
@close="close" :modal-append-to-body="false">
<div>
<table border="1">
<tr>
<td class="tdright">层建筑面积(㎡)</td>
<td>
<el-input v-model="qlcData.cjzmj"
oninput="value = (value.match(/^\d*(\.?\d{0,3})/g)[0]) || null"></el-input>
</td>
<td class="tdright">
层套内建筑面积(㎡)
</td>
<td>
<el-input v-model="qlcData.ctnjzmj"
oninput="value = (value.match(/^\d*(\.?\d{0,3})/g)[0]) || null"></el-input>
</td>
</tr>
<tr>
<td class="tdright">层阳台面积(㎡)</td>
<td>
<el-input v-model="qlcData.cytmj" class=""
oninput="value = (value.match(/^\d*(\.?\d{0,3})/g)[0]) || null"></el-input>
</td>
<td class="tdright">
层半墙面积(㎡)
</td>
<td>
<el-input v-model="qlcData.cbqmj" class=""
oninput="value = (value.match(/^\d*(\.?\d{0,3})/g)[0]) || null"></el-input>
</td>
</tr>
<tr>
<td class="tdright">层共有建筑面积(㎡)</td>
<td>
<el-input v-model="qlcData.cgyjzmj" class=""
oninput="value = (value.match(/^\d*(\.?\d{0,3})/g)[0]) || null"></el-input>
</td>
<td class="tdright">
层分摊建筑面积(㎡)
</td>
<td>
<el-input v-model="qlcData.cftjzmj" class=""
oninput="value = (value.match(/^\d*(\.?\d{0,3})/g)[0]) || null"
placeholder="层分摊建筑面积(㎡)"></el-input>
</td>
</tr>
<tr>
<td class="tdright">层高(m)</td>
<td>
<el-input v-model="qlcData.cg" class=""
oninput="value = (value.match(/^\d*(\.?\d{0,3})/g)[0]) || null" placeholder="层高(m)">
</el-input>
</td>
<td class="tdright">
水平投影面积(㎡)
</td>
<td>
<el-input v-model="qlcData.sptymj" class=""
oninput="value = (value.match(/^\d*(\.?\d{0,3})/g)[0]) || null" placeholder="水平投影面积(㎡)">
</el-input>
</td>
</tr>
</table>
</div>
<div class="shop">
<el-button type="primary" @click="save">保存</el-button>
<el-button type="primary" @click="result" icon="el-icon-refresh">重置</el-button>
<el-button type="primary" @click="cancel">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
// import { updatePlc } from '@api/zrz'
export default {
name: "plC",
data () {
return {
isVisible: false,
qlcData: {
cbqmj: '', // 层半墙面积
cftjzmj: '', // 层分摊建筑面积
cg: '', // 层高
cgyjzmj: '', // 层共有建筑面积
cjzmj: '', // 层建筑面积
ctnjzmj: '', // 层套内建筑面积
cytmj: '', // 层阳台面积
sptymj: '' // 水平投影面积
}
}
},
props: {
bsms: {
type: Array,
},
plcVisible: {
type: Boolean,
default: function () {
return false
}
}
},
methods: {
lodding: function () {
this.$emit('lodding')
},
save: function () {
this.qlcData['bsms'] = this.bsms
// updatePlc(this.qlcData).then(res => {
// if (res.success) {
// Message.success("保存成功")
// this.lodding()
// this.close()
// } else {
// Message.error(res.message)
// }
// })
},
close: function () {
this.$emit('close')
this.isVisible = false
this.result()
},
cancel: function () {
this.$emit('close')
this.isVisible = false
},
result: function () {
this.qlcData = {
cbqmj: '', // 层半墙面积
cftjzmj: '', // 层分摊建筑面积
cg: '', // 层高
cgyjzmj: '', // 层共有建筑面积
cjzmj: '', // 层建筑面积
ctnjzmj: '', // 层套内建筑面积
cytmj: '', // 层阳台面积
sptymj: '' // 水平投影面积
}
}
},
watch: {
plcVisible (val) {
this.isVisible = val
}
}
}
</script>
<style scoped>
table {
margin-top: 10px;
background-color: #fff;
font-size: 14px;
width: 100%;
}
td {
text-align: center;
height: 36px;
min-width: 50px;
}
table:hover {
cursor: pointer;
}
.inputtitle {
line-height: 41px;
width: 95%;
border: none;
height: 98%;
outline: none;
}
.shop {
margin-top: 20px;
text-align: center;
}
</style>
<template>
<div class="">
<el-dialog v-dialogDrag :close-on-click-modal="false" title="批量室号" :visible.sync="isVisible" width="50%"
@close="close" :modal-append-to-body="false">
<div>
<table border="1">
<tr>
<th>室号前缀</th>
<th>幢单元号</th>
<th>分割符A</th>
<th>层号前自动补0</th>
<th>层号</th>
<th>分割符B</th>
<th>户号前自动补零</th>
<th>户号</th>
<th>室号后缀</th>
</tr>
<tr>
<td>
<el-input v-model="plshData.shqz"></el-input>
</td>
<td>
<el-checkbox v-model="plshData.selectDyh"></el-checkbox>
</td>
<td>
<el-input v-model="plshData.fgfA"></el-input>
</td>
<td>
<el-checkbox v-model="plshData.chqbl"></el-checkbox>
</td>
<td>
<el-select v-model="plshData.c">
<el-option v-for="i in cs" :key="i.key" :label="i.label" :value="i.value"></el-option>
</el-select>
</td>
<td>
<el-input v-model="plshData.fgfB"></el-input>
</td>
<td>
<el-checkbox v-model="plshData.hhqbl"></el-checkbox>
</td>
<td>
</td>
<td>
<el-input v-model="plshData.shhz"></el-input>
</td>
</tr>
</table>
<div class="gz">
<span>室号规则:{{ gz }}</span>
</div>
<div class="xlgz">
<span>
样例1:1011 <span>(1单元01层01室)</span>([单元号][层号],勾选“层号自动补0”)
<br />
样例2:1131室<span>(1单元13层01室)</span>([单元号][层号][后缀],后缀填写'室')
<br />
样例3:101<span>(1层01室)</span>([层号],勾选“户号自动补0”)
<br />
样例4:1-011<span>(1单元-01层01室)</span>([单元号][分隔符A][层号],勾选“层号自动补0”)
<br />
样例5:1-12-1<span>(1单元12层01室)</span>([单元号][分隔符A][层号][分隔符B])
<br />
样例6:1-12<span>(1层12室)</span>([层号][分隔符B])
</span>
</div>
</div>
<div class="shop">
<el-button type="primary" @click="save">保存</el-button>
<el-button type="primary" @click="result" icon="el-icon-refresh">重置</el-button>
<el-button type="primary" @click="cancel">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
// import { updateSh } from '@api/zrz'
import { Message } from 'element-ui'
export default {
name: "plSh",
props: {
plShVisible: {
type: Boolean,
default: false
},
bsms: {
type: Array
}
},
data () {
return {
isVisible: false,
plshData: {
shqz: '',
selectDyh: false,
fgfA: '',
chqbl: false,
c: '',
fgfB: '',
hhqbl: false,
shhz: ''
},
cs: [
{
key: '1',
label: '名义层',
value: '1'
}, {
key: '2',
label: '实际层',
value: '2'
}, {
key: '3',
label: '空',
value: '3'
}
]
}
},
methods: {
test: function () {
for (let key in this.plshData) {
if (key === 'chqbl') {
continue;
}
if (this.plshData[key] !== '' && this.plshData[key] !== '3' && this.plshData[key] !== false) {
return true;
}
}
return false;
},
lodding: function () {
this.$emit('lodding')
},
close: function () {
this.$emit("close")
this.isVisible = false
this.result();
},
result: function () {
this.plshData = {
shqz: '',
selectDyh: false,
fgfA: '',
chqbl: false,
hhqbl: false,
c: '',
fgfB: '',
shhz: ''
}
},
save: function () {
if (!this.test()) {
this.$message.info("请选择")
return;
}
this.plshData['bsms'] = this.bsms
// updateSh(this.plshData).then(res => {
// if (res.success) {
// this.lodding();
// this.close();
// } else {
// Message.error(res.message)
// }
// })
},
cancel: function () {
this.close()
}
},
computed: {
gz: function () {
let gz = "";
if (this.plshData.shqz !== "") {
gz += this.plshData.shqz
}
if (this.plshData.selectDyh) {
gz += "[单元号]"
}
if (this.plshData.fgfA !== "") {
gz += this.plshData.fgfA
}
if (+this.plshData.c === 1) {
gz += "[名义层]"
} else if (+this.plshData.c === 2) {
gz += "[实际层]"
}
if (this.plshData.fgfB !== "") {
gz += this.plshData.fgfB
}
gz += "[户号]";
if (this.plshData.shhz !== "") {
gz += this.plshData.shhz
}
return gz;
}
},
watch: {
plShVisible: function (val) {
this.isVisible = val
}
}
}
</script>
<style scoped lang="scss">
table {
margin-top: 10px;
background-color: #fff;
font-size: 14px;
width: 100%;
:hover {
cursor: pointer;
}
}
th {
height: 36px;
}
td {
text-align: center;
height: 36px;
min-width: 60px;
}
.xl {
color: blue;
float: right;
}
.xl:hover {
cursor: pointer;
}
.inputtitle {
line-height: 38px;
width: 90%;
border: none;
outline: none;
}
.shop {
text-align: center;
margin-top: 20px;
}
.gz {
color: #b2b2b2;
font-size: 14px;
margin-top: 40px;
}
.xlgz {
span {
font-size: 16px;
line-height: 22px;
span {
color: red;
}
}
}
</style>
<template>
<div>
<el-dialog v-dialogDrag :close-on-click-modal="false" title="批量坐落" :visible.sync="isVisible" width="60%"
@close="close" :modal-append-to-body="false">
<div>
<table border="1">
<tr>
<th>前缀</th>
<th>宗地</th>
<th>自然幢</th>
<th>逻辑幢</th>
<th>幢单元</th>
<th></th>
<th></th>
<th>后缀</th>
</tr>
<tr>
<td>
<el-input v-model="plzlData.qz"></el-input>
</td>
<td>
<el-select v-model="plzlData.zd">
<el-option v-for="i in zdgz" :key="i.label" :label="i.label" :value="i.value"
:disabled="i.disabled">
</el-option>
</el-select>
</td>
<td>
<el-select v-model="plzlData.zrz">
<el-option v-for="i in zrzgz" :key="i.label" :label="i.label" :value="i.value"
:disabled="i.disabled">
</el-option>
</el-select>
</td>
<td>
<el-select v-model="plzlData.ljz">
<el-option v-for="i in ljzgz" :key="i.label" :label="i.label" :value="i.value">
</el-option>
</el-select>
</td>
<td>
<el-select v-model="plzlData.zdy">
<el-option v-for="i in zdygz" :key="i.label" :label="i.label" :value="i.value">
</el-option>
</el-select>
</td>
<td>
<el-select v-model="plzlData.c">
<el-option v-for="i in cgz" :key="i.label" :label="i.label" :value="i.value">
</el-option>
</el-select>
</td>
<td>
<el-select v-model="plzlData.h">
<el-option v-for="i in hgz" :key="i.label" :label="i.label" :value="i.value">
</el-option>
</el-select>
</td>
<td>
<el-input v-model="plzlData.hz"></el-input>
</td>
</tr>
</table>
<div class="gz">
<span>户坐落规则:{{ gz }}</span>
</div>
</div>
<div class="shop">
<el-button type="primary" @click="save">保存</el-button>
<el-button type="primary" @click="result" icon="el-icon-refresh">重置</el-button>
<el-button type="primary" @click="close">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
// import { updateZl } from '@api/zrz'
import { Message } from 'element-ui'
export default {
name: "plZl",
props: {
plZlVisible: {
type: Boolean,
default: false
},
bsms: {
type: Array
}
},
data () {
return {
isVisible: false,
plzlData: {
qz: '',
zd: '3',
zrz: '3',
ljz: '3',
zdy: '3',
c: '3',
h: '3',
hz: ''
},
zdgz: [
{
label: '宗地坐落',
value: '1',
disabled: false
}, {
label: "宗地名称",
value: '2',
disabled: false
}, {
label: "空",
value: '3',
disabled: false
}
],
zrzgz: [
{
label: '自然幢坐落',
value: '1',
disabled: false
}, {
label: "自然幢名称",
value: '2',
disabled: false
}, {
label: "空",
value: '3'
}
],
ljzgz: [
{
label: '逻辑幢名称',
value: '1'
}, {
label: "逻辑幢号",
value: '2'
}, {
label: "空",
value: '3'
}
],
zdygz: [
{
label: '幢单元名称',
value: '1'
}, {
label: "幢单元号",
value: '2'
}, {
label: "空",
value: '3'
}
],
cgz: [
{
key: '1',
label: '名义层',
value: '1'
}, {
key: '2',
label: '实际层',
value: '2'
}, {
label: "空",
value: '3'
}
],
hgz: [
{
key: '1',
label: '室号',
value: '1'
}, {
key: '2',
label: '户号',
value: '2'
}, {
label: "空",
value: '3'
}
]
}
},
methods: {
lodding: function () {
this.$emit('lodding')
},
save: function () {
if (!this.test()) {
this.$message.info("请选择")
return;
}
this.plzlData['bsms'] = this.bsms;
// updateZl(this.plzlData).then(res => {
// if (res.success) {
// this.lodding()
// this.close();
// } else {
// Message.error(res.message)
// }
// })
},
test: function () {
for (let key in this.plzlData) {
if (this.plzlData[key] !== '' && this.plzlData[key] !== '3') {
return true;
}
}
return false;
},
cancel: function () {
this.close();
},
close: function () {
this.$emit("close")
this.isVisible = false
this.result();
},
result: function () {
this.plzlData = {
qz: '',
zd: '',
zrz: '',
ljz: '',
zdy: '',
c: '',
h: '',
hz: ''
}
}
},
computed: {
gz: function () {
// [前缀][宗地][自然幢][单元][室号][室号][后缀]
let gz = "";
if (this.plzlData.qz !== '') {
gz += this.plzlData.qz
}
if (+this.plzlData.zd === 1) {
gz += "[宗地坐落]";
} else if (+this.plzlData.zd === 2) {
gz += "[宗地名称]";
}
if (+this.plzlData.zrz === 1) {
gz += "[自然幢坐落]"
} else if (+this.plzlData.zrz === 2) {
gz += "[自然幢名称]";
}
if (+this.plzlData.ljz === 1) {
gz += "[逻辑幢名称]"
} else if (+this.plzlData.ljz === 2) {
gz += "[逻辑幢号]"
}
if (+this.plzlData.zdy === 1) {
gz += "[幢单元名称]";
} else if (+this.plzlData.zdy === 2) {
gz += "[幢单元号]"
}
if (+this.plzlData.c === 1) {
gz += "[名义层]"
} else if (+this.plzlData.c === 2) {
gz += "[实际层]"
}
if (+this.plzlData.h === 1) {
gz += "[室号]"
} else if (+this.plzlData.h === 2) {
gz += "[户号]"
}
if (this.plzlData.hz !== "") {
gz += this.plzlData.hz
}
if (gz === "") {
gz += "无"
}
return gz;
}
},
watch: {
plZlVisible: function (val) {
this.isVisible = val
},
plzlData: {
handler (val) {
this.zrzgz[0].disabled = +val.zd === 1;
this.zdgz[0].disabled = +val.zrz === 1;
},
deep: true
}
}
}
</script>
<style scoped lang="scss">
table {
margin-top: 10px;
background-color: #fff;
font-size: 14px;
width: 100%;
:hover {
cursor: pointer;
}
}
th {
height: 36px;
}
td {
text-align: center;
height: 36px;
min-width: 60px;
}
.xl {
color: blue;
float: right;
}
.xl:hover {
cursor: pointer;
}
.inputtitle {
line-height: 38px;
width: 90%;
border: none;
outline: none;
}
.shop {
text-align: center;
margin-top: 20px;
}
.gz {
color: #b2b2b2;
font-size: 12px;
margin-top: 40px;
}
.xlgz {
span {
font-size: 16px;
line-height: 22px;
span {
color: red;
}
}
}
</style>
......@@ -2,13 +2,13 @@ import Vue from 'vue'
import Popup from './index.vue'
const PopupBox = Vue.extend(Popup)
Popup.install = function (data) {
Popup.install = function (title, editItem, data) {
data.title = title
data.editItem = editItem
let instance = new PopupBox({
data
}).$mount()
document.body.appendChild(instance.$el)
Vue.nextTick(() => {
instance.isShow = true
})
......
<template>
<transition name="fade" mode="out-in" v-if="isShow">
<transition name="dialog-fade" mode="out-in" v-if="isShow">
<div class="ls-mask" v-loading="loading">
<div class="ls-mask-window" :style="{ 'width': width, 'height': height }">
<div class="ls-head">
......@@ -25,19 +25,19 @@ export default {
name: 'index',
data () {
return {
btnShow: false,
title: '标题',
editItem: "",
formData: undefined,//父组件传递的参数 负责传给子组件
btnShow: false,
cancel: function () { },
confirm: function () { },
cancelText: '取消',
confirmText: '确认',
isSync: false,
isShow: false,
cancel: function () { },
confirm: function () { },
editItem: "",
titleStyle: 'center',
width: "75%",
height: "auto",
formData: undefined,//父组件传递的参数 负责传给子组件
contentHeight: "",
iconClass: "",
key: 0
......@@ -95,6 +95,12 @@ export default {
r(require(`@/views/${view}.vue`))
);
}
},
destroyed () {
// if appendToBody is true, remove DOM node after destroy
if (this.appendToBody && this.$el && this.$el.parentNode) {
this.$el.parentNode.removeChild(this.$el);
}
}
}
</script>
......
......@@ -2,10 +2,7 @@
1.在main.js中引入 import Popup from './components/tanchuang/index'
Vue.prototype.$popup = Popup.install
2.用法以及参数:
this.$popup({
title: '提示', // 弹窗标题
titleStyle:"", //标题存在的位置 center left
editItem: 'ywbl/dbx/aa', // 子组件的路径 相当于你平时img取的路径
this.$popup('提示','ywbl/dbx/aa',{
formData:this.formData, //父组件传给子组件的参数
cancel: function () {}, //取消事件的回调
confirm: function () {}, //确认事件的回调
......
import {loadModules} from 'esri-loader'
export default {
methods: {
identify(url,layerIds,geometry,callBackFunction,returnGeometry,layerOption,tolerance,mapExtent){
var self = this;
loadModules([
"esri/tasks/IdentifyTask",
"esri/tasks/support/IdentifyParameters"
]).then(([
IdentifyTask,
IdentifyParameters
]) => {
var identifyTask = new IdentifyTask({
url:url
}),
identifyParameters = new IdentifyParameters();
identifyParameters.geometry = geometry;
if(layerIds){
identifyParameters.layerIds = layerIds;
}
identifyParameters.layerOption = layerOption ? layerOption : "all";
identifyParameters.tolerance = tolerance ? tolerance : 3;
identifyParameters.mapExtent = mapExtent ? mapExtent : geometry.extent;
identifyParameters.returnGeometry = returnGeometry ? returnGeometry : false;
//identifyParameters.returnFieldName = true;
identifyParameters.spatialReference = geometry.spatialReference;
identifyTask.execute(identifyParameters).then(result => {
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(result);
}
});
}).catch(err => {
throw(err);
});
}
}
}
\ No newline at end of file
import {maps} from '@/libs/map/mapUtils'
import {loadModules} from 'esri-loader'
export default {
data() {
return {
drawAction:null,
graphicLayer:null,
creatEvent:null,
}
},
methods: {
initDraw(type,viewId,creationMode,callBackFunction){
var self = this;
loadModules([
"esri/widgets/Sketch",
"esri/layers/GraphicsLayer"
]).then(([
Sketch,
GraphicsLayer
]) => {
var view = maps[viewId];
if(!self.drawAction){
self.graphicLayer = new GraphicsLayer({
id:"_drawLayer"
})
self.drawAction = new Sketch({
view: view,
layer:self.graphicLayer,
creationMode: "single"
});
}else {
// this.drawAction.cancel();
if(creationMode){
self.drawAction.creationMode = creationMode;
}
// graphicLayer = view.map.findLayerById("_drawLayer");
}
self.drawAction.create(type);
if(self.creatEvent){
self.creatEvent.remove();
}
self.creatEvent = self.drawAction.on("create", function(event) {
if (event.state === "complete") {
self.graphicLayer.remove(event.graphic);
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(event.graphic.geometry);
}
}
})
}).catch(err=>{
throw(err);
});
},
destroyeDraw() {
if(this.drawAction){
this.drawAction.cancel();
}
}
}
}
\ No newline at end of file
/*
* 空间图层数据添加、修改、删除
* */
import {loadModules} from "esri-loader"
export default {
methods:{
addGraphic(url,graphic,callBackFunction){
loadModules([
"esri/layers/FeatureLayer",
"esri/Graphic",
"esri/geometry/Point",
"esri/geometry/Polygon",
"esri/geometry/Polyline"
]).then(([
FeatureLayer,
Graphic,
Point,
Polygon,
Polyline
])=>{
var featureLayer = new FeatureLayer({
url:url
})
var saveGraphics = [];
if(!Array.isArray(graphic)){
graphic = [graphic];
}
for(var i = 0;i < graphic.length;i++){
var geo = null;
if(!graphic[i].geometry){
geo = null;
}else if(graphic[i].geometry.type == 'point'){
geo = new Point(graphic[i].geometry);
}else if(graphic[i].geometry.type == 'polyline'){
geo = new Polyline(graphic[i].geometry);
}else if(graphic[i].geometry.type == 'polygon'){
geo = new Polygon(graphic[i].geometry);
}
var saveGraphic = new Graphic({
attributes:graphic[i].attributes,
geometry:geo
});
saveGraphics.push(saveGraphic);
}
console.log(saveGraphic)
featureLayer.applyEdits({
addFeatures:saveGraphics,
// updateFeatures
}).then(function (res){
if(callBackFunction && typeof callBackFunction == 'function'){
console.log(res);
callBackFunction(res);
}
})
}).catch( err => {
throw (err);
})
},
updateGraphic(url,graphic,callBackFunction){
loadModules([
"esri/layers/FeatureLayer",
"esri/Graphic",
"esri/geometry/Point",
"esri/geometry/Polygon",
"esri/geometry/Polyline"
]).then(([
FeatureLayer,
Graphic,
Point,
Polygon,
Polyline
])=>{
var featureLayer = new FeatureLayer({
url:url
})
var updGraphics = [];
if(!Array.isArray(graphic)){
graphic = [graphic];
}
for(var i = 0;i < graphic.length;i++){
var geo = null;
if(!graphic[i].geometry){
geo = new Polygon();
}else if(graphic[i].geometry.type == 'point'){
geo = new Point(graphic[i].geometry);
}else if(graphic[i].geometry.type == 'polyline'){
geo = new Polyline(graphic[i].geometry);
}else if(graphic[i].geometry.type == 'polygon'){
geo = new Polygon(graphic[i].geometry);
}
var updGraphic = new Graphic({
attributes:graphic[i].attributes,
geometry:geo
});
updGraphics.push(updGraphic);
}
featureLayer.applyEdits({
updateFeatures:updGraphics
}).then(function (res){
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(res);
}
})
}).catch( err => {
throw (err);
})
},
delGraphic(url,graphic,callBackFunction){
loadModules([
"esri/layers/FeatureLayer",
"esri/Graphic",
"esri/geometry/Point",
"esri/geometry/Polygon",
"esri/geometry/Polyline"
]).then(([
FeatureLayer,
Graphic,
Point,
Polygon,
Polyline
])=>{
var featureLayer = new FeatureLayer({
url:url
})
var delGraphics = [];
if(!Array.isArray(graphic)){
graphic = [graphic];
}
for(var i = 0;i < graphic.length;i++){
var geo = null;
if(!graphic[i].geometry){
geo = null;
}else if(graphic[i].geometry.type == 'point'){
geo = new Point(graphic[i].geometry);
}else if(graphic[i].geometry.type == 'polyline'){
geo = new Polyline(graphic[i].geometry);
}else if(graphic[i].geometry.type == 'polygon'){
geo = new Polygon(graphic[i].geometry);
}
var delGraphic = new Graphic({
attributes:graphic[i].attributes,
geometry:geo
});
delGraphics.push(delGraphic);
}
featureLayer.applyEdits({
deleteFeatures:delGraphics
}).then(function (res){
console.log(res);
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(res);
}
})
}).catch( err => {
throw (err);
})
}
}
}
\ No newline at end of file
import {loadModules} from 'esri-loader'
export default {
methods:{
findByPro(url,layerIds,searchFields,searchText,returnGeometry,callBackFunction){
loadModules([
"esri/tasks/FindTask",
"esri/tasks/support/FindParameters"
]).then(([
FindTask,
FindParameters
]) => {
var findTask = new FindTask({
url:url
}),
findParameters = new FindParameters();
findParameters.returnGeometry = returnGeometry ? returnGeometry : false;
findParameters.layerIds = layerIds;
findParameters.searchFields = searchFields;
findParameters.searchText = searchText;
findParameters.outSpatialReference = {wkid:3857};
findTask.execute(findParameters).then(function (result) {
if(callBackFunction){
callBackFunction(result);
}
});
}).catch(err => {
throw (err);
})
}
}
}
\ No newline at end of file
import {loadCss,loadScript} from "esri-loader"
export function init(){
// loadScript({url:"http://192.168.2.38/4.16/init.js"});
// loadCss("http://192.168.2.38/4.16/esri/themes/light/main.css");
loadScript({ url:"http://192.168.2.146/arcgis_js_api/library/4.17/init.js"});
loadCss("http://192.168.2.146/arcgis_js_api/library/esri/css/main.css");
}
init();
\ No newline at end of file
var maps = {}
export {maps};
\ No newline at end of file
import {loadModules} from 'esri-loader'
import {maps} from '@/libs/map/mapUtils'
export default{
data(){
return{
//activeWidget:null,
areaActive:null,
distanceActive:null
}
},
methods: {
measure(viewId,type){
var view = maps[viewId];
var self = this;
loadModules([
"esri/widgets/DistanceMeasurement2D",
"esri/widgets/AreaMeasurement2D"
]).then(([
DistanceMeasurement2D,
AreaMeasurement2D
]) => {
switch (type) {
case "distance":
if(!self.distanceActive){
self.distanceActive = new DistanceMeasurement2D({
view: view
});
}
// skip the initial 'new measurement' button
self.distanceActive.viewModel.start();
break;
case "area":
if(!self.areaActive){
self.areaActive = new AreaMeasurement2D({
view: view
});
}
// skip the initial 'new measurement' button
self.areaActive.viewModel.start();
break;
case null:
if (self.distanceActive) {
self.distanceActive.viewModel.clear();
// self.distanceActive = null;
}
if (self.areaActive) {
self.areaActive.viewModel.clear();
// self.areaActive = null;
}
break;
}
}).catch(err => {
throw(err);
});
}
}
}
\ No newline at end of file
import {loadModules} from 'esri-loader'
export default{
methods: {
queryByWhere(url,queryWhere,geometry,returnGeometry,outFields ,outSpatialReference ,callBackFunction){
var self = this;
loadModules([
"esri/tasks/QueryTask",
"esri/tasks/support/Query"
]).then(([
QueryTask,
Query
]) => {
var queryTask = new QueryTask({
url: url
}),
query = new Query(),
where = "";
if (queryWhere){
var parames = self.parseObj2Arr(queryWhere);
//var isFrist = false;
for(var i = 0;i < parames.length; i++ ){
if(i == 0){
}else {
where += " and ";
}
if(Array.isArray(parames[i].value)){
where += parames[i].name + " in (" + parames[i].value.toString() + ")";
}else if(typeof parames[i].value == 'number'){
where += parames[i].name + " =" + parames[i].value ;
}else{
where += parames[i].name + " like " + "'%" + parames[i].value +"%'";
}
}
} else {
where = "1=1";
}
query.where = where;
if(geometry){
query.geometry = geometry;
}
query.outSpatialReference = outSpatialReference ? outSpatialReference : {wkid:3857}
query.returnGeometry = returnGeometry ? true : false;
query.outFields = outFields ? outFields : ["*"];
queryTask.execute(query).then(function(results){
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(results);
}
});
}).catch( err => {
throw(err);
})
},
parseObj2Arr(object){
var arr = [];
for(var key in object){
var obj = {};
obj.name = key;
obj.value = object[key];
arr.push(obj);
}
return arr;
}
},
}
import {open,openShp} from "shapefile"
export default{
methods: {
readShpByFile(file,callBackFunction){
var reader = new FileReader();
reader.readAsBinaryString(file);
reader.οnlοad=function(){
var fileData = this.result ; //fileData就是读取到的文件的二进制数据
openShp(fileData).then(source => source.read()
.then(function log(result) {
if (result.done) return;
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(result.value);
}
return source.read().then(log);
}))
.catch(error => console.error(error.stack));
}
},
readShpByUrl(url,callBackFunction){
open(url).then(source => source.read()
.then(function log(result) {
if (result.done) return;
if(callBackFunction && typeof callBackFunction == 'function'){
callBackFunction(result.value);
}
return source.read().then(log);
}))
.catch(error => console.error(error.stack));
}
},
readShpByZip(zipUrl,callBackFunction){
}
}
\ No newline at end of file
......@@ -24,18 +24,19 @@ const service = axios.create({
// request interceptor
service.interceptors.request.use(
config => {
if (config.showLoading) {
startLoadingAddCount(config.loadingTarget);
if (config.headers.showLoading !== false) {
startLoadingAddCount(config.headers.loadingTarget ? config.headers.loadingTarget : '正在加载中...',
config.headers.target ? config.headers.target : 'body');
}
config.headers.Authorization =
// 'bearer AT-231-XqviE9StKRPLMwmnSoVBLP-YzTupyBI5'
'bearer AT-4-MxSrO29Coe7VTazx8uuixtqqgO-hvCB6'
config.headers.Accept = 'application/json'
return config
},
error => {
if (error.showLoading) {
endLoadingSubCount(config.loadingTarget);
if (error.headers.showLoading !== false) {
endLoadingSubCount(config.headers.loadingTarget ? config.headers.loadingTarget : '正在加载中...',
config.headers.target ? config.headers.target : 'body');
}
Message.error('请求超时!');
return Promise.reject(error)
......@@ -45,7 +46,7 @@ service.interceptors.request.use(
// response interceptor
service.interceptors.response.use(
response => {
if (response.config.showLoading) {
if (response.config.headers.showLoading !== false) {
endLoadingSubCount();
}
/**
......@@ -67,7 +68,7 @@ service.interceptors.response.use(
type: 'error',
duration: 5 * 1000
})
if (error.config.showLoading) {
if (error.config.headers.showLoading !== false) {
endLoadingSubCount();
}
return Promise.reject(error);
......@@ -103,6 +104,6 @@ function handleErrorData (errMes) {
}
}
}
export default service
......
import { Loading } from 'element-ui'
// import { Loading } from 'element-ui'
import Loading from '@/components/loading/index.js';
// 定义 loading
let loading
// loading开始 方法
function startLoading (LoadingText = '拼命加载中...') {
// element-ui loading 服务调用方式
function startLoading (LoadingText = '正在加载中...', target = "body") {
loading = Loading.service({
text: LoadingText,
spinner: 'el-icon-loading', // 自定义图标
background: 'rgba(0, 0, 0, 0.8)'
spinner: 'el-icon-loading',
background: 'rgba(255, 255, 255, 0.5)',
target: target
})
}
......@@ -23,9 +24,9 @@ let loadingCount = 0
* 调用一次startLoadingAddCount() 方法 开启Loading 并 loadingCount + 1
* 调用一次endLoadingSubCount() 方法 loadingCount - 1 直到为0 关闭loading
*/
export function startLoadingAddCount (LoadingText) {
export function startLoadingAddCount (LoadingText, target) {
if (loadingCount === 0) {
startLoading(LoadingText)
startLoading(LoadingText, target)
}
loadingCount++
}
......
<template>
<div class="h content-form">
<el-form ref="form" :model="form" label-width="160px">
<table border="1" width="100%" cellspacing="0" cellpadding="0" class="hTable">
<tbody>
<tr height="30">
<td colspan="12" align="center">
<font size="4">层基本信息</font>
</td>
</tr>
<tr height="30">
<td colspan="2" align="center" class="tdright">层号</td>
<td colspan="4">
<el-input v-model="form.ch"></el-input>
</td>
<td colspan="2" align="center" class="tdright">自然幢号</td>
<td colspan="4">
<el-input v-model="form.zrzh"></el-input>
</td>
</tr>
<tr height="30">
<td colspan="2" align="center" class="tdright">实际层</td>
<td colspan="4">
<el-input v-model="form.sjc"></el-input>
</td>
<td colspan="2" align="center" class="tdright">名义层</td>
<td colspan="4">
<el-input v-model="form.myc"></el-input>
</td>
</tr>
<tr height="30">
<td colspan="2" align="center" class="tdright">层建筑面积(㎡)</td>
<td colspan="4">
<el-input v-model="form.cjzmj"></el-input>
</td>
<td colspan="2" align="center" class="tdright">层套内建筑面积(㎡)</td>
<td colspan="4">
<el-input v-model="form.ctnjzmj"></el-input>
</td>
</tr>
<tr height="30">
<td colspan="2" align="center" class="tdright">层阳台面积(㎡)</td>
<td colspan="4">
<el-input v-model="form.cytmj"></el-input>
</td>
<td colspan="2" align="center" class="tdright">层半墙面积(㎡)</td>
<td colspan="4">
<el-input v-model="form.cbqmj"></el-input>
</td>
</tr>
<tr height="30">
<td colspan="2" align="center" class="tdright">层共有建筑面积(㎡)</td>
<td colspan="4">
<el-input v-model="form.cgyjzmj"></el-input>
</td>
<td colspan="2" align="center" class="tdright">层分摊建筑面积(㎡)</td>
<td colspan="4">
<el-input v-model="form.cftjzmj"></el-input>
</td>
</tr>
<tr height="30">
<td colspan="2" align="center" class="tdright">层高</td>
<td colspan="4">
<el-input v-model="form.cg"></el-input>
</td>
<td colspan="2" align="center" class="tdright">水平投影面积</td>
<td colspan="4">
<el-input v-model="form.sptymj"></el-input>
</td>
</tr>
<tr height="30">
</tr>
</tbody>
</table>
</el-form>
</div>
</template>
<script>
// import { getQjCDetailById, updateQjC } from "@api/c";
export default {
name: 'c',
components: {},
props: {
cbsm: {
type: String,
default: '',
}
},
data () {
return {
form: {
zrzbsm: '',
ch: '', //层号
zrzh: '', //自然幢号
sjc: '', //实际层
myc: '', //名义层
cjzmj: '', //层建筑面积
ctnjzmj: '', //层套内建筑面积
cytmj: '', //层阳台面积
cbqmj: '', //层半墙面积
cgyjzmj: '', //层共有建筑面积
cftjzmj: '', //层分摊建筑面积
cg: '', //层高
sptymj: '', //水平投影面积
},
value: '',
}
},
methods: {
onSave () {
this.form.zrzbsm = this.$route.query.bsm;
//编辑层信息接口调用 TODO
// updateQjC(this.form).then((res) => {
// if (res.code === 200) {
// this.$message.success("保存成功")
// }
// })
},
getCinfo (bsm) {
this.reset();
//获取层信息接口调用 TODO
// getQjCDetailById(bsm).then((res) => {
// if (res.code === 200) {
// this.form = res.result;
// this.form.zrzh = this.$store.state.zrzh;
// }
// })
},
reset () {
this.form = {
zrzbsm: '',
ch: '', //层号
zrzh: '', //自然幢号
sjc: '', //实际层
myc: '', //名义层
cjzmj: '', //层建筑面积
ctnjzmj: '', //层套内建筑面积
cytmj: '', //层阳台面积
cbqmj: '', //层半墙面积
cgyjzmj: '', //层共有建筑面积
cftjzmj: '', //层分摊建筑面积
cg: '', //层高
sptymj: '', //水平投影面积
}
}
},
mounted () {
this.getCinfo(this.cbsm);
},
watch: {
cbsm: {
handler: function (item) {
console.log(item, "item")
console.log(this.$parent.$parent.menuType, "this.$parent.$parent.menuType")
if (item != '' && this.$parent.$parent.menuType == 'c') {
this.getCinfo(item)
}
},
immediate: true
},
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.h {
min-height: 200px;
width: 100%;
margin: 0 auto;
/deep/.el-input__inner {
width: 100%;
border: 0;
}
/deep/textarea {
width: 100%;
border: 0;
}
.el-form-item {
font-weight: bold;
font-size: xx-large
}
table {
background: #fff;
table-layout: fixed;
}
td {
//bgcolor:#F1F4FC;
bgcolor: #fff;
width: 8.33%
}
.el-select {
display: block;
}
}
table {
font-size: 14px;
}
.hTable {
margin-top: 10px;
}
</style>
\ No newline at end of file
<template>
<div class="addCh">
<el-table class="addChTable" :data="tableData" style="width: 100%" border>
<el-table-column prop="cz" width="60" align="center">
<template slot-scope="scope">
<span class="cp" @click="handleRowClick(scope.row, scope.$index)">
<i class="iconfont iconicon-test1" style="color:#FA6400;font-size:30px" @click="deleteYtInfo(index)"
v-if="scope.row.cz == '+'"></i>
<i class="iconfont iconicon-test" style="color:#FA6400;font-size:30px" @click="deleteYtInfo(index)"
v-if="scope.row.cz == '-'"></i>
</span>
</template>
</el-table-column>
<el-table-column prop="zrzmc" label="自然幢" align="center">
</el-table-column>
<el-table-column prop="ljzmc" label="逻辑幢" align="center">
</el-table-column>
<el-table-column prop="zdymc" label="幢单元" align="center">
</el-table-column>
<el-table-column prop="qsc" label="起始层" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.qsc" type="number"></el-input>
</template>
</el-table-column>
<el-table-column prop="jsc" label="结束层" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.jsc" type="number"></el-input>
</template>
</el-table-column>
<el-table-column prop="hs" label="每层户数" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.hs" type="number"></el-input>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
// import { insertChInfo } from "@api/lpb";
export default {
name: "",
components: {},
props: {
treeData: {},
dialogVisible: {
type: Boolean,
default: false,
},
scyclx: {
type: String,
default: "1",
},
},
data () {
return {
ljzBsm: null,
zdyBsm: null,
zrzBsm: null,
tableData: [],
formData: {
cz: "+",
ljzbsm: "",
ljzmc: "",
zdymc: "",
zdybsm: "",
zrzbsm: "",
scyclx: "1",
qsc: "",
jsc: "",
hs: "",
},
};
},
created () { },
mounted () {
console.log(this.treeData, "treeData");
},
methods: {
//行操作
handleRowClick (row, index) {
if (row.cz == "+") {
let temp = JSON.parse(JSON.stringify(this.formData));
temp.qsc = '';
temp.jsc = '';
temp.hs = '';
temp.cz = "-";
this.tableData.push(temp);
} else {
this.tableData.splice(index, 1);
}
},
onSave (bsm) {
console.log(this.tableData)
let totalHs = 0;
for (let k = 0; k < this.tableData.length; k++) {
if (this.tableData[k].qsc === "" || this.tableData[k].jsc === "" || this.tableData[k].hs === "") {
this.$message.warning("表单不完整,请填写完整")
return false
}
if (this.tableData[k].qsc - this.tableData[k].jsc > 0) {
this.$message.warning("存在结束层大于起始层,请重写填写")
return false
}
totalHs = totalHs + (this.tableData[k].jsc - this.tableData[k].qsc + 1) * this.tableData[k].hs;
}
if (totalHs >= 5000) {
this.$message.warning("单次添加户数累积超过5000户,请分次添加!")
return false
}
// insertChInfo(this.tableData).then((res) => {
// if (res.code === 200) {
// this.$message.success("保存成功");
// //更新树结构数据
// console.log(this);
// this.$parent.$parent.getLpbMenuTree(bsm);
// this.$parent.$parent.getlpbData();
// //关闭弹框
// this.$parent.$parent.closeDaialog();
// } else {
// this.$message({
// message: res.message,
// type: "warning",
// })
// }
// });
},
//重置数据
reset () {
this.tableData[0].qsc = "";
this.tableData[0].jsc = "";
this.tableData[0].hs = "";
},
},
computed: {},
watch: {
treeData: {
handler (n) {
this.formData = {
cz: "+",
ljzbsm: "",
zdybsm: "",
zrzbsm: "",
scyclx: this.scyclx,
qsc: "",
jsc: "",
hs: "",
};
//给自然幢,逻辑幢,幢单元的bsm和mc赋值
switch (n.type) {
case "zrz":
this.formData.zrzbsm = n.bsm;
this.formData.zrzmc = n.mc;
break;
case "ljz":
this.formData.zrzbsm = n.zrzbsm;
this.formData.ljzbsm = n.bsm;
this.formData.zrzmc = n.zrzmc;
this.formData.ljzmc = n.mc;
break;
case "zdy":
this.formData.zrzbsm = n.zrzbsm;
this.formData.ljzbsm = n.ljzbsm;
this.formData.zdybsm = n.bsm;
this.formData.zrzmc = n.zrzmc;
this.formData.ljzmc = n.ljzmc;
this.formData.zdymc = n.mc;
break;
default:
break;
}
this.tableData = [];
this.tableData.push(this.formData);
},
//深度监听,第一次接收到父组件传值就触发事件
immediate: true,
deep: true,
},
scyclx: {
handler (n) {
this.$nextTick(() => {
this.formData.scyclx = this.scyclx;
})
}
}
},
};
</script>
<style lang="scss">
.addCh {
.addChTable {
.el-input__inner {
height: 20px;
margin: 0;
line-height: 20px;
outline: none;
border: none;
color: #606764;
overflow: visible;
cursor: text;
text-align: center;
}
}
.cp {
cursor: pointer;
position: relative;
top: 4px;
}
.el-table .cell {
line-height: 34px;
}
.el-table .cell,
.el-table--border td:first-child .cell,
.el-table--border th:first-child .cell {
padding-left: 5px;
}
.el-table td,
.el-table th {
padding: 4px 0;
}
}
</style>
<template>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="户基本信息表" name="hjbxx">
<hbj ref="hbj" :bsm="hbsm"></hbj>
</el-tab-pane>
<el-tab-pane label="登记簿" name="djb">
<!-- <djb v-if="djbVisible" :style="{ 'height': formHeight + 'px' }"></djb> -->
</el-tab-pane>
<el-tab-pane label="附件材料" name="fjcl">
<!-- <fjcl v-if="fjclVisible" ref="fjcl" :lpbParent="true" :style="{ 'height': formHeight + 'px' }"
:is-disabled="isDisabled"></fjcl> -->
</el-tab-pane>
</el-tabs>
</template>
<script>
import hbj from "../index"
// import djb from "../../../../../zd/djb/index";
// import fjcl from "../../../../../zd/fjcl/fjcl"
// import { queryStatus } from "@api/search"
export default {
name: "index",
components: {
hbj, djb, fjcl
},
props: {
bsm: String, //户标识码
},
data () {
return {
isDisabled: false,
hbsm: this.$store.state.hbsm,
activeName: "hjbxx",
djbVisible: false,
fjclVisible: false,
formHeight: 0,
}
},
mounted () {
this.formHeight = (document.documentElement.clientHeight || document.body.clientHeight) - 260
},
methods: {
loadingStatus () {
let bsm = this.$store.state.hbsm;
// queryStatus(bsm).then(res => {
// if (res.success) {
// let qszt = res.result.qszt;
// this.isDisabled = +qszt !== 0;
// }
// })
},
handleClick (tab, event) {
this.loadingStatus()
// console.log(tab, event);
switch (tab.name) {
case 'djb':
this.djbVisible = true;
break;
case 'fjcl':
this.fjclVisible = true;
break;
default:
break;
}
},
},
watch: {}
}
</script>
<style scoped lang="scss">
.el-tabs {
/deep/.el-tabs__nav-scroll {
margin-left: -35px;
}
}
</style>
<template>
<div class="zdy-content">
<el-form :model="form" :rules="rules" ref="form" label-width="110px" size="small">
<table border="1" width="100%" cellspacing="0" cellpadding="0" class="hTable">
<tbody>
<tr height="30">
<td colspan="12" align="center">
<font size="4">幢单元基本信息</font>
</td>
</tr>
<tr height="30">
<td colspan="2" align="center" class="tdright">幢单元号</td>
<td colspan="4">
<el-input v-model="form.zdyh"></el-input>
</td>
<td colspan="2" align="center" class="tdright"><i class="requisite">*</i>幢单元名称</td>
<td colspan="4">
<el-input v-model="form.zdymc" ref="zdymc"></el-input>
</td>
</tr>
<tr height="30">
<td colspan="2" align="center" class="tdright">地上层数</td>
<td colspan="4">
<el-input v-model="form.dscs"></el-input>
</td>
<td colspan="2" align="center" class="tdright">地下层数</td>
<td colspan="4">
<el-input v-model="form.dxcs"></el-input>
</td>
</tr>
<tr height="30">
<td colspan="2" align="center" class="tdright">总层数</td>
<td colspan="4">
<el-input v-model="form.zcs"></el-input>
</td>
<td colspan="2" align="center" class="tdright">备注</td>
<td colspan="4">
<el-input v-model="form.bz"></el-input>
</td>
</tr>
</tbody>
</table>
</el-form>
</div>
</template>
<script>
// import { insertZdyInfo } from "@api/lpb"
// import { getQjZdyDetailById, updateQjZdy } from "@api/zdy"
export default {
name: "index",
components: {},
props: {
zdybsm: {
type: String,
default: '',
}
},
data () {
return {
form: {
zdyh: '',
zdymc: '',
dscs: '',
dxcs: '',
zcs: '',
bz: '',
},
rules: {
zdyh: [
{ required: true, message: '幢单元号不能为空', trigger: 'blur' },
{ min: 5, max: 50, message: '长度最少 5 个字符', trigger: 'blur' }
],
zdymc: [
{ required: true, message: '名称不能为空', trigger: 'change' }
],
dscs: [
{ required: true, message: '地上层数不能为空', trigger: 'blur' },
{ type: 'number', message: '必须是数字', trigger: 'blur' }
],
dxcs: [
{ required: true, message: '地下层数不能为空', trigger: 'blur' },
{ type: 'number', message: '必须是数字' }
],
zcs: [
{ required: true, message: '名称不能为空', trigger: 'change' }
]
}
}
},
methods: {
//在自然幢节点上添加幢单元只需传zrzbsm,ljzbsm为'';在逻辑幢上添加幢单元时需要同时传入zrzbsm和ljzbsm
submitForm (formName, zrzbsm, ljzbsm) {
this.form.zrzbsm = zrzbsm;
this.form.ljzbsm = zrzbsm == ljzbsm ? '' : ljzbsm;
if (this.form.zdymc == '') {
this.$message.warning("请完善表单后再继续操作");
this.$refs.zdymc.$el.style.border = '1px solid red';
} else {
//判断zdybsm是否为空,不为空的时候是编辑,为空的时候是新增
if (this.zdybsm == '') {
this.$refs[formName].validate((valid) => {
if (valid) {
// insertZdyInfo(this.form).then((res) => {
// if (res.code === 200) {
// this.$message.success("保存成功!")
// //更新树结构数据
// this.$parent.$parent.getLpbMenuTree(zrzbsm);
// //关闭弹框
// this.$parent.$parent.closeDaialog()
// }
// return true;
// })
} else {
console.log('error submit!!');
return false;
}
});
} else {
//编辑幢单元接口
updateQjZdy(this.form).then((res) => {
if (res.code === 200) {
this.$message.success("保存成功")
}
})
}
}
},
getZdyInfo (bsm) {
//查询幢单元信息接口
getQjZdyDetailById(bsm).then((res) => {
if (res.code === 200) {
this.form = res.result;
}
})
},
reset () {
this.form = {
zdyh: '',
zdymc: '',
dscs: '',
dxcs: '',
zcs: '',
bz: '',
}
}
},
watch: {
zdybsm: {
handler: function (item) {
if (item != '' && this.$parent.$parent.menuType == 'zdy') {
this.getZdyInfo(item)
}
},
immediate: true
},
"form.zdymc": {
handler: function (item) {
if (item != '') {
this.$refs.zdymc.$el.style.border = '';
}
},
immediate: true
},
}
}
</script>
<style scoped lang="scss">
/deep/.el-input__inner {
width: 100%;
border: 0;
}
table {
background: #fff;
table-layout: fixed;
}
</style>
\ No newline at end of file
......@@ -116,7 +116,7 @@ export default {
processZoomOut (zoomStep = 0.1) {
const newZoom = Math.floor(this.defaultZoom * 100 - zoomStep * 100) / 100
if (newZoom < 0.2) {
throw new Error('[Process Designer Warn ]: The zoom ratio cannot be less than 0.2')
throw new Error('[Process Designer Warn ]: The zoom ratio cannot be scss than 0.2')
}
this.defaultZoom = newZoom
this.bpmnViewer.get('canvas').zoom(this.defaultZoom)
......
......@@ -21,7 +21,7 @@
<div class="containerFrame">
<!-- 左侧菜单栏 -->
<div class="leftmenu" :class="{ 'animation-map-drawer': isShowdrawer }">
<div class="title" @click="unitClick(-1)" v-if="showBatch">{{batchButtonName}}</div>
<div class="title" @click="unitClick(-1)" v-if="showBatch">{{ batchButtonName }}</div>
<div v-if="this.isShowdrawer">
<div class="title">
申请单元列表({{ unitData.length }})
......@@ -162,7 +162,7 @@ export default {
.then(() => {
var formdata = new FormData();
formdata.append("bsmSldyList", item.bsmSldy.split(","));
formdata.append("bsmSlsq",this.bsmSlsq);
formdata.append("bsmSlsq", this.bsmSlsq);
deleteFlow(formdata).then((res) => {
if (res.code == 200) {
this.$message.success("删除成功");
......@@ -226,7 +226,7 @@ export default {
operation (index, item) {
//按钮 B0:选择不动产单元 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书 B7:证书领取 B8:楼盘表 B9:登簿
//操作按钮 登簿:record 转件:transfer 退回:back 退出:signout
let that = this;
let that = this;
switch (item.value) {
case "B0":
// let type = queueDjywmc(this.$route.query.sqywbm)
......@@ -235,10 +235,7 @@ export default {
case "B1":
getWorkFlowImage(this.bsmSlsq, this.$route.query.bestepid).then(res => {
let { result } = res
this.$popup({
title: "流程图",
height: '500px',
editItem: "workflow/components/processViewer",
this.$popup("流程图", "workflow/components/processViewer", {
formData: {
xml: result.xml,
finishedInfo: {
......@@ -383,16 +380,16 @@ export default {
type: "warning", //提示类型 success/info/warning/error
}).then(function () {
record(formdata).then((res) => {
if (res.code === 200) {
if(res.result.length===1){
res.result[0].state? that.$alert("登簿成功!"): that.$alert(res.result[0].msg);;
if (res.code === 200) {
if (res.result.length === 1) {
res.result[0].state ? that.$alert("登簿成功!") : that.$alert(res.result[0].msg);;
}
else{
that.$alert('<div>'+res.result[0].ywh+','+res.result[0].msg+'</div>', '登簿明细', {
dangerouslyUseHTMLString: true
});
}
}else{
else {
that.$alert('<div>' + res.result[0].ywh + ',' + res.result[0].msg + '</div>', '登簿明细', {
dangerouslyUseHTMLString: true
});
}
} else {
that.$alert(res.message);
}
});
......@@ -407,14 +404,14 @@ export default {
formdata.append("bestepid", this.bestepid);
leftMenu(formdata).then((res) => {
if (res.code === 200) {
if(res.result){
if (res.result) {
this.unitData = res.result;
this.currentSelectProps = res.result[0];
this.judgeBatchShow();
if(this.showBatch){
if (this.showBatch) {
//满足批量查封/批量抵押按钮出现 即先展示批量表单
this.unitClick(-1);
}else{
} else {
//默认选择单元列表第一个
this.unitClick(0);
}
......@@ -424,16 +421,16 @@ export default {
},
//申请单元点击事件
unitClick (index) {
if(index >= 0){
if (index >= 0) {
this.currentSelectProps = this.unitData[index];
this.currentSelectProps.batchOperation = false;
}else{
} else {
this.currentSelectProps.batchOperation = true;
}
getStepFormInfo(this.currentSelectProps).then((res) => {
if (res.code === 200) {
this.fresh += 1;
if (res.code === 200) {
this.fresh += 1;
//获取单元对应的所有表单信息
this.tabList = res.result;
//默认加载第一个表单信息
......@@ -455,11 +452,11 @@ export default {
// }
},
//批量按钮判断
judgeBatchShow() {
judgeBatchShow () {
this.showBatch = false;
let qllx = this.$route.query.sqywbm.substring(0,3);
if(this.unitData.length > 1){
switch(qllx){
let qllx = this.$route.query.sqywbm.substring(0, 3);
if (this.unitData.length > 1) {
switch (qllx) {
case 'B39':
this.showBatch = true;
this.batchButtonName = '批量查封';
......@@ -467,7 +464,7 @@ export default {
case 'A37':
this.showBatch = true;
this.batchButtonName = '批量抵押';
break;
break;
}
}
},
......@@ -516,7 +513,7 @@ export default {
window.close();
this.$emit("input", false);
}, 1000);
}else{
} else {
instance.confirmButtonLoading = false;
instance.confirmButtonText = "确定";
this.$message.error(res.message);
......
......@@ -6,8 +6,7 @@
<el-row>
<el-col :span="5">
<el-form-item label="业务来源">
<el-select v-model="queryForm.ywly" class="width100" @change="queryClick()" filterable clearable
placeholder="请选择业务来源">
<el-select v-model="queryForm.ywly" class="width100" filterable clearable placeholder="请选择业务来源">
<el-option v-for="item in dictData['ywly']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
......@@ -15,8 +14,7 @@
</el-col>
<el-col :span="5">
<el-form-item label="权利类型">
<el-select v-model="queryForm.qllx" class="width100" @change="queryClick()" filterable clearable
placeholder="请选择权利类型">
<el-select v-model="queryForm.qllx" class="width100" filterable clearable placeholder="请选择权利类型">
<el-option v-for="item in dictData['A8']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
......@@ -24,8 +22,7 @@
</el-col>
<el-col :span="5">
<el-form-item label="登记类型">
<el-select v-model="queryForm.djlx" class="width100" @change="queryClick()" filterable clearable
placeholder="请选择登记类型">
<el-select v-model="queryForm.djlx" class="width100" filterable clearable placeholder="请选择登记类型">
<el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode">
</el-option>
</el-select>
......@@ -33,15 +30,15 @@
</el-col>
<el-col :span="5">
<el-form-item label="业务号">
<el-input placeholder="请输入业务号" v-model="queryForm.ywh" @clear="queryClick()" clearable class="width100">
<el-input placeholder="请输入业务号" v-model="queryForm.ywh" @clear="queryClick" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="4" class="btnColRight">
<el-form-item>
<el-button type="primary" native-type="submit" @click="queryClick()">查询</el-button>
<el-button @click="moreQueryClick()">高级查询</el-button>
<el-button type="primary" native-type="submit" @click="queryClick">查询</el-button>
<el-button @click="moreQueryClick">高级查询</el-button>
</el-form-item>
</el-col>
</el-row>
......@@ -58,7 +55,7 @@
</el-row>
</el-form>
</div>
<div class="from-clues-content">
<div class="from-clues-content" id="dbx">
<lb-table :page-size="pageData.size" border @sort-change="handleSort" :current-page.sync="pageData.currentPage"
:heightNum="300" :total="tableData.total" @size-change="handleSizeChange"
@p-current-change="handleCurrentChange" :column="tableData.columns" :data="tableData.data">
......@@ -117,7 +114,7 @@ export default {
},
// 列表渲染接口
fetchData () {
searchTaskToDo({ ...this.queryForm, ...this.pageData }).then(res => {
searchTaskToDo({ ...this.queryForm, ...this.pageData }, { 'target': '#dbx' }).then(res => {
if (res.code === 200) {
let { total, records } = res.result
records.forEach(item => {
......@@ -136,7 +133,6 @@ export default {
queryClick () {
this.fetchData()
},
handelItem (index) {
console.log(index);
this.searchList.splice(index, 1)
......
<template>
<div class="from-clues">
<div class="from-clues" id="bdcql">
<!-- 表单部分 -->
<div class="from-clues-header">
<el-form :model="queryForm" ref="queryForm" label-width="100px">
......@@ -87,7 +87,7 @@ export default {
},
fetchData () {
this.queryForm.sqywbm = this.djywbm;
selectQlxx({ ...this.queryForm, ...this.pageData })
selectQlxx({ ...this.queryForm, ...this.pageData }, { 'target': '#bdcql' })
.then((res) => {
if (res.code === 200) {
let { total, records } = res.result;
......
<template>
<div class="ywsq">
<div class="ywsq" id="ywsq">
<div class="ywsq-left">
<p v-for="(item, index) in leftList" @click="handleleftTitle(index)" :key="index"
:class="{ 'active': n == index }">{{ item }}</p>
......@@ -98,7 +98,7 @@ export default {
},
methods: {
getDataList () {
getCollectBiz().then(res => {
getCollectBiz({ 'target': '#ywsq' }).then(res => {
let { result } = res
this.ywList = result
this.ywList.forEach(item => {
......@@ -145,7 +145,7 @@ export default {
},
// 获取下个节点类型
getNextNode (bsmSqyw, type) {
getNextNode(bsmSqyw).then(res => {
getNextNode(bsmSqyw, { 'target': '#ywsq' }).then(res => {
if (res.result.djqx) this.djqxList = res.result.djqx
if (res.result.djlx) this.djlxList = res.result.djlx
if (type) {
......
......@@ -82,7 +82,7 @@ module.exports = {
}
])
// when there are many pages, it will cause too many meaningless requests
// when there are many pages, it will cause too many meaningscss requests
config.plugins.delete('prefetch')
config.module
.rule('svg')
......