7963b2d5 by 田浩浩
2 parents ec9c9217 79dfe818
Showing 55 changed files with 1025 additions and 2544 deletions
......@@ -2,4 +2,4 @@
<div id="app">
<router-view />
</div>
</template>
</template>
\ No newline at end of file
......
import request from '@/utils/request'
import SERVER from './config'
// 新增系统通知
export function addSysNotice (data) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/addSysNotice',
method: 'post',
data
})
}
//编辑系统通知
export function updateSysNotice (data) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/updateSysNotice',
method: 'post',
data
})
}
// 获取通知列表
export function getSysNoticeList (data) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/getSysNoticeList',
method: 'post',
data
})
}
//获取法律法规列表
export function getSysPolicyList (data) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/getSysPolicyList',
method: 'post',
data
})
}
//删除系统通知
export function deleteSysNotice (params) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/deleteSysNotice',
method: 'get',
params: params
})
}
//发布通知
export function publishNotice (params) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/publishNotice',
method: 'get',
params: params
})
}
//取消发布通知
export function unPublishNotice (params) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/unPublishNotice',
method: 'get',
params: params
})
}
//设置已读状态
export function setReadStatus (params) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/setReadStatus',
method: 'get',
params: params
})
}
//一键设置已读
export function setAllRead () {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/setAllRead',
method: 'get'
})
}
......@@ -4,9 +4,9 @@ import SERVER from './config'
// 上传单个文件
export function upload (data) {
return request({
url: SERVER.SERVERAPI + '/rest/file/upload',
method: 'post',
data
url: SERVER.SERVERAPI + '/rest/file/upload',
method: 'post',
data
})
}
......@@ -89,4 +89,86 @@ export function updateSysSqywmbsz (data) {
method: 'put',
data
})
}
\ No newline at end of file
}
// 通知
// 新增系统通知
export function addSysNotice (data) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/addSysNotice',
method: 'post',
data
})
}
//编辑系统通知
export function updateSysNotice (data) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/updateSysNotice',
method: 'post',
data
})
}
// 获取通知列表
export function getSysNoticeList (data) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/getSysNoticeList',
method: 'post',
data
})
}
//获取法律法规列表
export function getSysPolicyList (data) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/getSysPolicyList',
method: 'post',
data
})
}
//删除系统通知
export function deleteSysNotice (params) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/deleteSysNotice',
method: 'get',
params: params
})
}
//发布通知
export function publishNotice (params) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/publishNotice',
method: 'get',
params: params
})
}
//取消发布通知
export function unPublishNotice (params) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/unPublishNotice',
method: 'get',
params: params
})
}
//设置已读状态
export function setReadStatus (params) {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/setReadStatus',
method: 'get',
params: params
})
}
//一键设置已读
export function setAllRead () {
return request({
url: SERVER.SERVERAPI + '/rest/system/sysNotice/setAllRead',
method: 'get'
})
}
......
<template>
<el-dialog :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>
<template>
<div>
<el-dialog :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 :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>
<el-dialog :close-on-click-modal="false" title="批量户" :visible.sync="isVisible" width="72%" @close="close"
:modal-append-to-body="false">
<div>
<table border="1">
<tr>
<td colspan="2" class="tdright">建筑面积(㎡)</td>
<td colspan="4"><input type="text" v-model="form.jzmj" class="inputtitle" /></td>
<td colspan="2" class="tdright">套内建筑面积(㎡)</td>
<td colspan="4"><input type="text" v-model="form.tnjzmj" class="inputtitle" /></td>
</tr>
<tr>
<td colspan="2" class="tdright">分摊建筑面积(㎡)</td>
<td colspan="4"><input type="text" v-model="form.ftjzmj" class="inputtitle" /></td>
<td colspan="2" class="tdright">地下部分建筑面积(㎡)</td>
<td colspan="4"><input type="text" v-model="form.dxbfjzmj" class="inputtitle" /></td>
</tr>
<tr>
<td colspan="2" class="tdright">其他建筑面积(㎡)</td>
<td colspan="4"><input type="text" v-model="form.qtjzmj" class="inputtitle" /></td>
<td colspan="2" class="tdright">分摊系数</td>
<td colspan="4"><input type="number" @blur="inputBlur($event)" ref="ftxs" v-model="form.ftxs"
class="inputtitle" /></td>
</tr>
<tr>
<td colspan="2" class="tdright">户型</td>
<td colspan="4">
<el-select class="selectTitle" v-model="form.hxbsm">
<el-option v-for="i in $store.state.hxList" :key="i.bsm" :label="i.mc" :value="i.bsm">
</el-option>
</el-select>
</td>
<td colspan="2" class="tdright">户型结构</td>
<td colspan="4">
<el-select class="selectTitle" v-model="form.hxjgbsm">
<el-option v-for="i in $store.state.hxjgList" :key="i.bsm" :label="i.mc" :value="i.bsm">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td colspan="2" class="tdright">共有土地面积(㎡)</td>
<td colspan="4"><input type="text" class="inputtitle" v-model="form.gytdmj" /></td>
<td colspan="2" class="tdright">分摊土地面积(㎡)</td>
<td colspan="4"><input type="text" class="inputtitle" v-model="form.fttdmj" /></td>
</tr>
<tr>
<td colspan="2" class="tdright">独有土地面积(㎡)</td>
<td colspan="4"><input type="text" class="inputtitle" v-model="form.dytdmj" /></td>
<td colspan="2" class="tdright">房屋类型</td>
<td colspan="4">
<el-select class="selectTitle" v-model="form.fwlxbsm">
<el-option v-for="i in $store.state.fwlxList" :key="i.bsm" :label="i.mc" :value="i.bsm">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td colspan="2" class="tdright">产别</td>
<td colspan="4">
<el-select class="selectTitle" v-model="form.fwcbbsm">
<el-option v-for="i in $store.state.cbOptions" :key="i.bsm" :label="i.mc"
:value="i.bsm"></el-option>
</el-select>
</td>
<td colspan="2" class="tdright">产权来源</td>
<td colspan="4">
<el-select class="selectTitle" v-model="form.fwcqlybsm">
<el-option v-for="i in $store.state.cqlyOptions" :key="i.bsm" :label="i.mc"
:value="i.bsm"></el-option>
</el-select>
</td>
</tr>
<tr>
<td colspan="2" class="tdright">房屋性质</td>
<td colspan="4">
<el-select class="selectTitle" v-model="form.fwxzbsm">
<el-option v-for="i in $store.state.fwxzOptions" :key="i.bsm" :label="i.mc"
:value="i.bsm"></el-option>
</el-select>
</td>
<td colspan="2"></td>
<td colspan="4"></td>
</tr>
<tr>
<td colspan="2" class="tdright">东墙体归属</td>
<td colspan="4"><input type="text" class="inputtitle" v-model="form.dqtgs" /></td>
<td colspan="2" class="tdright">南墙体归属</td>
<td colspan="4"><input type="text" class="inputtitle" v-model="form.nqtgs" /></td>
</tr>
<tr>
<td colspan="2" class="tdright">西墙体归属</td>
<td colspan="4"><input type="text" class="inputtitle" v-model="form.xqtgs" /></td>
<td colspan="2" class="tdright">北墙体归属</td>
<td colspan="4"><input type="text" class="inputtitle" v-model="form.bqtgs" /></td>
</tr>
<tr height="30" v-for="(item1, index) in form.fwytList" :key="index">
<td v-if="index === 0" colspan="2" :rowspan="ytTitleRowspan" align="center" id="ytTitle"
class="tdright">
<i class="iconfont iconicon-test2" style="margin-right: 8px;color:#66b1ff;font-size:30px"
@click="addYtInfo"></i>
<span>房屋用途</span>
</td>
<td width="30" colspan="1" align="center" class="tdright">
<i class="iconfont iconicon-test" style="color:#FA6400;font-size:30px"
@click="deleteYtInfo(index)"></i>
规划用途
</td>
<td width="30" colspan="3" align="center">
<el-select-tree style="width:100%" v-if="show" :default-expand-all="defaultExpandAll"
:multiple="multiple" :placeholder="placeholder" :disabled="disabled"
:data="$store.state.fwytList" :props="treeProps" :check-strictly="checkStrictly"
:clearable="clearable" v-model="item1.fwytzdbsm"></el-select-tree>
</td>
<td width="30" colspan="2" align="center" class="tdright">用途</td>
<td width="30" colspan="4" align="center">
<el-select-tree style="width:100%" v-if="show" :default-expand-all="defaultExpandAll"
:multiple="multiple" :placeholder="placeholder" :disabled="disabled"
:data="$store.state.fwytList" :props="treeProps" :check-strictly="checkStrictly"
:clearable="clearable" v-model="item1.fwsjytbsm"></el-select-tree>
</td>
</tr>
<tr height="30" v-for="(item1, index) in form.fwjgList" :key="'jg' + index">
<td colspan="2" v-if="index === 0" :rowspan="fwjgTitleRowspan" align="center" class="tdright">
<i class="iconfont iconicon-test2" style="margin-right: 8px;color:#66b1ff;font-size:30px"
@click="addFwjgInfo"></i>
<span>房屋结构</span>
</td>
<td colspan="1" align="center">
<i class="iconfont iconicon-test" style="margin-right: 8px;color:#FA6400;font-size:30px"
@click="deleteFwjgInfo(index)"></i>
<span>房屋结构</span>
</td>
<td colspan="9">
<el-select style="width:100%" v-model="item1.fwjgzdbsm" placeholder="请选择">
<el-option v-for="item in $store.state.jgOptions" :key="item.bsm" :label="item.mc"
:value="item.bsm">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td colspan="12" align="center">
<Qlxz ref="qlxzModule" :hasSyqx='false' :formData="form"></Qlxz>
</td>
</tr>
</table>
</div>
<div class="shop">
<el-button type="primary" @click="save">保存</el-button>
<el-button type="primary" @click="reset" icon="el-icon-refresh">重置</el-button>
<el-button type="primary" @click="cancel">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Qlxz from "@/components/formMenu/qlxz";
// import { batchUpdateQjH } from "@api/h";
export default {
name: "plH",
components: {
Qlxz
},
props: {
bsms: {
type: Array
},
plhVisible: {
type: Boolean,
default: false
}
},
data () {
return {
//树型结构
show: true,
clearable: true,
defaultExpandAll: true,
multiple: false,
placeholder: '请选择',
disabled: false,
checkStrictly: true,
treeProps: {
value: 'bsm',
children: 'children',
label: 'mc'
},
form: {
qszt: '0',
jzmj: '',
tnjzmj: '',
ftjzmj: '',
dxbfjzmj: '',
qtjzmj: '',
ftxs: '',
hxbsm: '',
hxjgbsm: '',
gytdmj: '',
fttdmj: '',
dytdmj: '',
fwlxbsm: '',
fwcbbsm: '',
fwcqlybsm: '',
fwxzbsm: '',
dqtgs: '',
nqtgs: '',
xqtgs: '',
bqtgs: '',
fwjgbsm: '',
fwytList: [{
glbsm: '', //关联标识码
fwytzdbsm: '', //房屋用途字典标识码
sx: '', //顺序
fwsjytbsm: '', //房屋实际用途字典标识码
}],
fwjgList: [{
fwjgzdbsm: '', //房屋结构字典标识码
glbsm: '', //关联标识码
sx: '', //顺序
}],
qlxzList: [{
qlxzdm: '', //权利性质代码
glbsm: '', //宗地BSM、自然幢BSM、户BSM、多幢BSM、宗海BSM
qlxzzdbsm: '', //权利性质字典表标识码
qlxzmc: '', //权利名称名称
zhqlxzlx: '', //除宗海数据外,默认都是空;0:用海类型权利性质;2:海岛用途权利性质
addQjTdytRequestList: [{
}], //土地用途新增实体列表
}]
},
isVisible: false,
hx: [{
label: '一居室',
key: '1',
value: '一居室'
}, {
label: '二居室',
key: '2',
value: '二居室'
}, {
label: '三居室',
key: '3',
value: '三居室'
}
],
ytTitleRowspan: 1, //用途的单元格垂直合并数量
fwjgTitleRowspan: 1, //房屋结构的单元格垂直合并数量
}
},
methods: {
inputBlur (e) {
if (e.target.value !== '' && +e.target.value > 0 && +e.target.value < 10) {
e.target.style.border = ""
} else {
e.target.style.border = "1px solid red";
e.target.style.boxSizing = 'border-box';
}
},
lodding: function () {
this.$emit('lodding')
},
addYtInfo () {
this.form.fwytList.push({
glbsm: '',
fwytzdbsm: '',
fwsjytbsm: '',
sx: '',
});
this.ytTitleRowspan = this.form.fwytList.length;
},
deleteYtInfo (index) {
if (this.form.fwytList.length <= 1) {
this.$message({
message: '不能删除,最少含有一条用途信息',
type: 'warning'
});
} else {
this.form.fwytList.splice(index, 1);
this.ytTitleRowspan = this.form.fwytList.length;
}
},
addFwjgInfo () {
this.form.fwjgList.push({
fwjgzdbsm: '', //房屋结构字典标识码
glbsm: '', //关联标识码
sx: '', //顺序
});
this.fwjgTitleRowspan = this.form.fwjgList.length;
},
deleteFwjgInfo (index) {
if (this.form.fwjgList.length <= 1) {
this.$message({
message: '不能删除,最少含有一条房屋结构信息',
type: 'warning'
});
} else {
this.form.fwjgList.splice(index, 1);
this.fwjgTitleRowspan = this.form.fwjgList.length;
}
},
close: function () {
this.$emit('close')
this.isVisible = false
this.reset()
},
reset: function () {
this.form = {
qszt: '0',
jzmj: '',
tnjzmj: '',
ftjzmj: '',
dxbfjzmj: '',
qtjzmj: '',
ftxs: '',
hxbsm: '',
hxjgbsm: '',
gytdmj: '',
fttdmj: '',
dytdmj: '',
fwlxbsm: '',
fwcbbsm: '',
fwcqlybsm: '',
fwxzbsm: '',
dqtgs: '',
nqtgs: '',
xqtgs: '',
bqtgs: '',
fwjgbsm: '',
fwytList: [{
glbsm: '', //关联标识码
fwytzdbsm: '', //房屋用途字典标识码
sx: '', //顺序
fwsjytbsm: '', //房屋实际用途字典标识码
}],
fwjgList: [{
fwjgzdbsm: '', //房屋结构字典标识码
glbsm: '', //关联标识码
sx: '', //顺序
}],
qlxzList: [{
qlxzdm: '', //权利性质代码
glbsm: '', //宗地BSM、自然幢BSM、户BSM、多幢BSM、宗海BSM
qlxzzdbsm: '', //权利性质字典表标识码
qlxzmc: '', //权利名称名称
zhqlxzlx: '', //除宗海数据外,默认都是空;0:用海类型权利性质;2:海岛用途权利性质
addQjTdytRequestList: [{
}], //土地用途新增实体列表
}]
};
this.$refs.qlxzModule.reset();
this.ytTitleRowspan = 1; //用途的单元格垂直合并数量
this.fwjgTitleRowspan = 1; //房屋结构的单元格垂直合并数量
},
save: function () {
this.rules = [
{
data: this.form.ftxs,
name: '分摊系数',
dom: this.$refs.ftxs,
rule: /^(?!0(\.0{1,2})?$)(\d(\.\d{1,2})?)$/, //大于0小于10的所有保留两位的数字
},
];
let flag = true;
this.rules.forEach(item => {
if (item.data !== "") {
if (!item.rule.test(+item.data) || item.data == null) {
if (item.dom.$el) {
item.dom.$el.style.border = '1px solid red';
item.dom.$el.style.boxSizing = 'border-box';
} else {
item.dom.style.border = '1px solid red';
item.dom.style.boxSizing = 'border-box';
}
flag = false;
return false
}
}
})
this.form['hbsms'] = this.bsms
this.form.qlxzList = this.$refs.qlxzModule.getQlxzDataList();
this.$nextTick(() => {
if (flag) {
for (let i = 0; i < this.form.fwjgList.length; i++) {
if (this.form.fwjgList[i].fwjgzdbsm === '') {
this.form.fwjgList.splice(i, 1);
}
}
for (let i = 0; i < this.form.fwytList.length; i++) {
if (this.form.fwytList[i].fwsjytbsm === '') {
this.form.fwytList.splice(i, 1);
}
}
for (let i = 0; i < this.form.qlxzList.length; i++) {
if (this.form.qlxzList[i].qlxzdm === '') {
this.form.qlxzList.splice(i, 1);
}
}
console.log("批量户信息")
// batchUpdateQjH(this.form).then((res) => {
// if (res.code === 200) {
// this.lodding()
// this.$message.success("保存成功!")
// this.$nextTick(() => {
// this.reset();
// })
// this.close();
// } else {
// this.$message.error(res.message)
// }
// })
} else {
this.$message({
// message: item.name+'不能为空',
message: '表单数据有误',
type: "warning",
});
}
})
},
cancel: function () {
this.close()
}
},
mounted () {
},
watch: {
plhVisible (val) {
this.isVisible = val
}
}
}
</script>
<style scoped>
table {
margin-top: 10px;
background-color: #fff;
font-size: 14px;
width: 100%;
table-layout: fixed;
}
td {
text-align: center;
height: 36px;
min-width: 60px;
}
table:hover {
cursor: pointer;
}
.inputtitle {
line-height: 40px;
width: 95%;
border: none;
outline: none;
height: 95%;
}
.selectTitle {
width: 100%;
border-radius: 0;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
border: none;
position: relative;
display: block;
}
.shop {
text-align: center;
margin-top: 20px;
}
/deep/.el-input__inner {
width: 100%;
border: 0;
}
</style>
<template>
<div class="">
<el-dialog :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 :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>
......@@ -25,7 +25,6 @@ router.beforeEach(async (to, from, next) => {
await store.dispatch('user/getUserInfo')
router.addRoutes([...accessRoutes, { path: '*', redirect: '/404', hidden: true }])
const routeTo = Cookies.get('routerTo')
console.log(routeTo)
if (routeTo && routeTo !== '/') {
next({ ...to, replace: true })
} else {
......
......@@ -31,6 +31,22 @@ export const constantRoutes = [
hidden: true,
meta: { title: '发起申请' }
},
// 业务流程框架
{
path: '/workFramecs',
component: () => import('@/views/workflow/workFrame1.vue'),
name: 'workFramecs',
hidden: true,
meta: { title: '发起申请1' }
},
// 业务流程只读框架
{
path: '/workFrameViewcs',
component: () => import('@/views/workflow/workFrameView1.vue'),
name: 'workFrameViewcs',
hidden: true,
meta: { title: '发起申请2' }
},
// 业务流程只读框架
{
path: '/workFrameView',
......
......@@ -12,8 +12,5 @@ const getters = {
addDict: state => state.dict.addDict,
dictData: state => state.dict.dictData,
djbxx: state => state.djbxx.djbxx,
// 受理信息
oldDetail: state => state.slxx.oldDetail,
newDetail: state => state.slxx.newDetail
}
export default getters
......
......@@ -5,7 +5,6 @@ import getters from './getters'
Vue.use(Vuex)
// https://webpack.js.org/guides/dependency-management/#requirecontext
const modulesFiles = require.context('./modules', true, /\.js$/)
// you do not need `import app from './modules/app'`
// it will auto require all vuex module from modules file
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
......
......@@ -3,7 +3,7 @@ import Cookies from 'js-cookie'
const state = {
size: 'small',
theme: '#409EFF',
splitScreen: false
splitScreen: false,
}
const mutations = {
......@@ -16,7 +16,7 @@ const mutations = {
},
SET_SCREEN (state, val) {
state.splitScreen = val;
}
},
}
const actions = {
......@@ -28,7 +28,7 @@ const actions = {
},
settScreen ({ commit }, val) {
commit('SET_SCREEN', val)
}
},
}
export default {
......
const state = {
oldDetail: {},
newDetail: {}
}
const mutations = {
SET_OLDDETAIL: (state, data) => {
state.oldDetail = data
},
SET_NEWDETAIL: (state, data) => {
state.newDetail = data
}
}
const actions = {
setQlrxxOld ({ commit }, data) {
commit('SET_OLDDETAIL', data)
},
setQlrxxNew ({ commit }, data) {
commit('SET_NEWDETAIL', data)
}
}
export default {
namespaced: true,
state,
mutations,
actions
}
const state = {
transfer: false
}
const mutations = {
SET_TRANSFER: (state, data) => {
state.transfer = data
},
}
const actions = {
setTransfere ({ commit }, data) {
commit('SET_TRANSFER', data)
}
}
export default {
namespaced: true,
state,
mutations,
actions
}
......@@ -39,13 +39,13 @@ service.interceptors.response.use(
* 如果请求不成功,就在拦截器这里统一处理(组件的代码就不用关注错误的情况了)
*/
if (response.status == 200) {
if (response.data.code == 500) {
Message({
message: response.data.message,
type: 'error',
duration: 5 * 1000
})
}
// if (response.data.code == 500) {
// Message({
// message: response.data.message,
// type: 'error',
// duration: 5 * 1000
// })
// }
return response.data;
} else {
handleErrorData(response.data);
......
<template>
<dialogBox title="配置常办项目" @submitForm="submitForm" saveButton="保存" :isFullscreen="false" width="50%"
@closeDialog="closeDialog" v-model="value">
<el-form ref="ruleForm" :model="ruleForm" label-width="100px">
<el-tree :data="projectList" show-checkbox node-key="id" ref="tree" default-expand-all :props="defaultProps"
@check-change="handleClick"></el-tree>
</el-form>
@closeDialog="closeDialog" v-model="myValue">
<el-tree :data="projectList" show-checkbox node-key="id" :default-checked-keys="defaultCheckeds" ref="tree"
default-expand-all :props="defaultProps" @check-change="handleClick"></el-tree>
</dialogBox>
</template>
<script>
import { getMenuInfo } from "@/api/user.js";
import { saveFrequentProjectsList } from "@/api/home.js";
import { saveFrequentProjectsList, getHomeFrequentProjects } from "@/api/home.js";
export default {
props: {
value: { type: Boolean, default: false },
......@@ -17,10 +15,9 @@ export default {
},
data () {
return {
myValue: false,
defaultCheckeds: [],
projectList: [],
ruleForm: {
},
checkedItem: [],
defaultProps: {
children: "children",
......@@ -36,8 +33,15 @@ export default {
uniqueValue: ''//最后拿到的唯一选择的moduldCode值,相当于id
}
},
watch: {
value (val) {
this.myValue = val
if (val) {
this.queryClick()
}
}
},
mounted () {
this.queryClick()
this.dealCheckedItem();
},
methods: {
......@@ -58,9 +62,19 @@ export default {
})
},
queryClick () {
let that = this
getMenuInfo().then(res => {
this.projectList = res.result
this.projectList = res.result.slice(0, -2)
})
function lookForAllId (arr = []) {
for (let item of that.bindItem) {
arr.push(item.id)
if (item.children && item.children.length) lookForAllId(item.children, arr)
}
return arr
}
that.defaultCheckeds = lookForAllId()
console.log(that.defaultCheckeds);
},
dealCheckedItem () {
},
......
......@@ -9,7 +9,7 @@
<el-button type="primary" @click="setFrequencyProject()">配置常办</el-button>
</div>
<ul class="workbench flexst">
<li v-for="(item, index) in projectList" class="pointer" :key="index"
<li v-for="(item, index) in projectList" @click="handleProject(item)" class="pointer" :key="index"
:style="{ backgroundColor: newsListColor[index] }">
<i class="el-icon-s-claim"></i>
{{ item.name }}
......@@ -107,7 +107,6 @@
import * as G2 from '@antv/g2'
import vueSeamlessScroll from "vue-seamless-scroll"
import { getHomeNoticeList, getHomeTodoList, getHomeDoneList, getHomeFrequentProjects } from "@/api/home.js";
import { setReadStatus } from "@/api/notice.js";
import addDialog from "./components/addProject.vue";
export default {
name: 'home',
......@@ -188,6 +187,10 @@ export default {
this.queryProjectList();//获取常办项目列表
},
methods: {
handleProject (item) {
let url = item.uri.split('/').slice(0, 3).join('/')
this.$router.push(url)
},
handleView (pdfUrl) {
const href = pdfUrl
window.open(href, '_blank');
......
......@@ -12,49 +12,8 @@
</el-input>
</el-col>
</el-row>
<el-row class="searchContent">
<el-col :span="24">
<div class="fl">
<el-button class="radioBtn" label="1" border @click="create"><i
class="iconfont iconchuangjianloupan"></i>创建楼盘</el-button>
<el-button class="radioBtn" v-show='this.scyclx == "0"' label="2" border @click="plScYcChange"><i
class="iconfont iconshiyucezhuanhuan"></i>预测转实测</el-button>
<el-button class="radioBtn" v-show='this.scyclx == "1"' label="2" border @click="plScYcChange"><i
class="iconfont iconshiyucezhuanhuan"></i>实测转预测</el-button>
<el-button class="radioBtn" label="3" border @click="openPl('h')"><i class="iconfont iconpilianghu"></i> 批量户
</el-button>
<el-button class="radioBtn" label="4" border @click="openPlC"><i class="iconfont iconpiliangceng"></i>批量层
</el-button>
<el-button class="radioBtn" label="5" border @click="openPl('sh')"><i
class="iconfont iconpiliangshihao"></i>批量室号</el-button>
<el-button class="radioBtn" label="6" border @click="openPl('zl')"><i
class="iconfont iconpiliangzuola"></i>批量坐落</el-button>
<el-button class="radioBtn" label="7" border @click="addBdcdyh"><i
class="iconfont iconpiliangdanyuanhao"></i>批量单元号</el-button>
<el-button class="radioBtn" label="7" border @click="batchCommit"><i
class="iconfont iconhuzhongxinlazong"></i>批量提交</el-button>
<el-button class="radioBtn" label="7" border @click="batchDelete"><i class="iconfont iconshanchu"></i>批量删除
</el-button>
<el-button class="radioBtn" label="7" border @click="batchUpload"><i
class="iconfont iconshangchuan"></i>批量上传</el-button>
<el-button class="radioBtn" label="7" border @click="batchCancelChoosed"><i
class="iconfont iconquxiaoxuanze"></i>取消选中</el-button>
</div>
</el-col>
</el-row>
<div class="change">
<i class="iconfont iconloupanbiaoxinxi" v-show="bjztFlag" @click="bjztChange" title="详细信息"></i>
<i class="iconfont iconloupanbiaobianji" v-show="!bjztFlag" @click="bjztChange" title="编辑楼盘"></i>
</div>
</div> -->
<div class="tab-content" ref="tabContent" :style="{ height: lpbContentHight + 'px' }" v-show="bjztFlag">
<!-- 左侧树结构 -->
<!-- <div class="lp-tree" :class="createFlag ? 'w260' : 'w0'">
<LineTree :pd="pd" class="treeData" :islpb="islpb" @loading="loading"></LineTree>
<p @click="createFlag = false" style="width:20px;float:left;margin-top: 12px;margin-left:10px;cursor:pointer;">
X
</p>
</div> -->
<!-- 楼盘表主体 -->
<div class="lp-overview" :style="{ width: lpbContentwidth + 'px' }">
<lpbContent ref="lpbContent" :zrzbsm="formData.bsm" :key="time"></lpbContent>
......@@ -154,69 +113,19 @@
</div>
</div>
</div>
<!-- 详细信息 -->
<!-- <xxxx v-show="!bjztFlag"></xxxx> -->
<!-- 右键菜单弹出框 根据菜单类型(menuType)和右键点击的楼盘类型(treeData.type)来区分弹框内容 -->
<!-- <el-dialog :close-on-click-modal="false" :title="taskTitle" :visible.sync="dialogVisible" width="50%">
<div class="addCh" v-if="menuType == 'ljz'">
<addLjz ref="ljz" :ljzbsm="curBsm"></addLjz>
</div>
<div class="addCh" v-if="menuType == 'zdy'">
<addZdy ref="zdy" :zdybsm="curBsm"></addZdy>
</div>
<div class="addCh" v-if="menuType == 'c'">
<editCinfo ref="c" :cbsm="curBsm"></editCinfo>
</div>
<div class="addCh" v-if="menuType == 'ch'">
<addCh ref="ch" :scyclx="scyclx" :dialogVisible="dialogVisible" :treeData="treeData"></addCh>
</div>
<div class="btnGroup">
<el-button type="primary" @click="saveInfo">保存</el-button>
<el-button type="primary" @click="resetInfo" icon="el-icon-refresh">重置</el-button>
<el-button type="primary" @click="dialogVisible = false">取消</el-button>
</div>
</el-dialog>
批量操作弹出框
<pl-h :plh-visible="plhVisible" :bsms="bsms" @close="plhClose" @lodding="lodding"></pl-h>
<pl-zl :pl-zl-visible="plzlVisible" :bsms="bsms" @close="plZlClose" @lodding="lodding"></pl-zl>
<pl-c :plc-visible="plcVisible" :bsms="cbsmList" @close="plcClose" @lodding="lodding"></pl-c>
<pl-sh :plShVisible="plShVisible" :bsms="bsms" @close="plshClose" @lodding="lodding"></pl-sh>
<el-dialog :close-on-click-modal="false" title="批量上传" :visible.sync="uploadVisible" width="30%">
<div class="wrap">
<div class="main-button">
<el-upload class="upload-demo" action="/api/file/uploadListByGlbsm" :data="fileData"
:on-preview="handlePreview" :on-remove="handleRemove" :before-remove="beforeRemove"
:before-upload="uploadProgress" :on-success="uploadSuccess" :on-error="uploadError" :show-file-list="false"
multiple :limit="1" :on-exceed="handleExceed">
<el-button type="primary" icon="iconfont iconshangchuan">上传附件</el-button>
</el-upload>
</div>
<el-button type="primary" class="download" @click="uploadVisible = false">取消</el-button>
</div>
<span slot="footer" class="dialog-footer">
</span>
</el-dialog> -->
</div>
</template>
<script>
import { Message } from "element-ui"
import PlC from "@/components/plc/plC";
import PlSh from "@/components/plsh/plSh";
import PlH from "@/components/plh/plH";
import PlZl from "@/components/plzl/plZl";
// import LineTree from "@/components/lineTree/lineTree";
import addLjz from "./ljz/index";
import addZdy from "./zdy/index";
import addCh from "./ch/index";
import editCinfo from "./c/index";
import lpbContent from "./lpbContent/index";
// import { getLpbMenuTree, batchScYcChange, getLpbTj, batchGeneratorBdcdyh, getLpbFwytAndQlxz, batchCommit, batchDelete, getLpbQsxtj } from "@api/lpb";
// import xxxx from '../xxxx/index'
export default {
name: "bjlp",
name: "lpb",
props: {
formData: {
type: Object,
......@@ -224,30 +133,17 @@ export default {
}
},
components: {
// LineTree,
addLjz,
addZdy,
addCh,
lpbContent,
PlC,
PlSh,
PlH,
PlZl,
// xxxx,
editCinfo
},
data () {
return {
bsms: [],
dialogVisible: false,
plcVisible: false,
plhVisible: false,
plShVisible: false,
plzlVisible: false,
scyclx: "0", //1是实测 0是预测
radio1: "",
radio2: "",
createFlag: false,
bdcdyh: "",
islpb: true,
pd: [], //创建楼盘的树结构数据
......@@ -319,7 +215,6 @@ export default {
lpbContentwidth: "",
time: "",
dyztBsmList: {}, //单元状态bsmList
cbsmList: [], // 层bsmlist
bjztFlag: true,
taskTitle: '添加',
curBsm: '',
......@@ -336,8 +231,6 @@ export default {
this.getHeight();
},
mounted () {
//获取楼盘表树结构
// this.getLpbMenuTree(formData.zrzbsm);
//获取各项单元状态的户bsm
// this.getDyztBsmList();
//获取房屋用途统计数据
......@@ -348,62 +241,11 @@ export default {
}, 100);
},
methods: {
//批量提交
batchCommit () {
if (this.bsms.length <= 0) {
Message.warning("请选择操作户")
return
} else {
if (this.qsztList.indexOf('1') > -1) {
Message.warning("已提交的户无法继续操作")
} else {
batchCommit(this.bsms).then(res => {
if (res.code === 200) {
Message.success("提交成功");
this.getlpbData();
} else {
this.$message.error(res.message);
}
})
}
}
},
//批量删除
batchDelete () {
if (this.bsms.length <= 0) {
Message.warning("请选择操作户")
return
} else {
if (this.qsztList.indexOf('1') > -1) {
Message.warning("已提交的户无法继续操作")
} else {
batchDelete(this.bsms).then(res => {
if (res.code === 200) {
Message.success("删除成功");
this.getlpbData();
} else {
this.$message.error(res.message);
}
})
}
}
},
//批量上传 start
batchUpload () {
if (this.bsms.length < 1) {
Message.warning("请选择操作户")
return
} else {
this.uploadVisible = true
}
},
//取消选中
batchCancelChoosed () {
this.cbsmList = [];
this.bsms = [];
this.qsztList = [];
this.$refs.lpbContent.hbsmList = [];
this.$refs.lpbContent.cbsmList = [];
this.$refs.lpbContent.choosedList = [];
this.$refs.lpbContent.$refs.hBsm.forEach((item) => {
item.style.border = '';
......@@ -414,144 +256,19 @@ export default {
item.className = "";
});
},
uploadError (err, file, fileList) {
Message.error("上传文件失败")
console.log("上传文件失败", err)
},
uploadProgress () {
vm.loadingShow('正在上传中')
},
uploadSuccess (res, file, fileList) {
vm.loadingHide();
Message.success("上传成功")
this.uploadVisible = false;
},
handleRemove (file, fileList) {
console.log(file, fileList);
},
handlePreview (file) {
console.log(file);
},
handleExceed (files, fileList) {
// this.$message.warning(`当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
this.$message.warning("上传失败")
},
beforeRemove (file, fileList) {
return this.$confirm(`确定移除 ${file.name}?`);
},
//批量上传 end
loading () {
this.getLpbMenuTree(this.$store.state.zrzbsm);
},
openPlC () {
if (this.cbsmList.length <= 0) {
Message.warning("请选择层")
return
}
this.plcVisible = true
},
openPl (val) {
if (this.bsms.length <= 0) {
Message.warning("请选择操作户")
return
} else {
if (this.qsztList.indexOf('1') > -1) {
Message.warning("已提交的户无法继续操作")
} else {
switch (val) {
case 'h':
this.plhVisible = true;
break;
case 'zl':
this.plzlVisible = true;
break;
case 'sh':
this.plShVisible = true;
break;
default:
break;
}
}
}
},
lodding () {
this.getlpbData();
},
plZlClose () {
this.plzlVisible = false;
},
plcClose () {
this.plcVisible = false;
},
plhClose () {
this.plhVisible = false;
},
plshClose () {
this.plShVisible = false;
},
//改变编辑或详细信息状态
bjztChange () {
this.bjztFlag = !this.bjztFlag;
},
//改变实预测数据类型
scyclxChange (val) {
//清空已选中层户
this.cbsmList = [];
this.bsms = [];
this.qsztList = [];
this.$refs.lpbContent.hbsmList = [];
this.$nextTick(() => {
//户
if (this.$refs.lpbContent.$refs.hBsm) {
this.$refs.lpbContent.$refs.hBsm.forEach(item => {
item.style.borderColor = 'rgb(230, 230, 230)';
if (item.className == "tdSelect") {
item.className = "";
}
});
}
//层
if (this.$refs.lpbContent.$refs.cBsm) {
this.$refs.lpbContent.$refs.cBsm.forEach(item => {
console.log(item.className, 'item.className');
item.className = "floor";
});
}
})
//获取图例数据
this.getDyztBsmList();
this.getLpbFwytAndQlxz();
//重新渲染楼盘表
this.$refs.lpbContent.dataChange();
},
//获取高度计算lpb内容区高度
getHeight () {
this.lpbContentHight = window.innerHeight - 190;
},
//创建楼盘
create () {
this.createFlag = true;
},
//获取自然幢树结构数据
getLpbMenuTree (zrzbsm) {
getLpbMenuTree(zrzbsm)
.then((res) => {
this.pd = res.result;
})
.catch((error) => { });
},
//打开新建楼盘树结构右键菜单唤起的弹框
openLpbDialog (data, type) {
this.treeData = data;
this.menuType = type;
this.$nextTick(() => {
this.resetInfo();
});
this.dialogVisible = true;
this.taskTitle = '添加';
this.curBsm = '';
},
//弹框中的保存按钮,根据不同菜单点击类型调用不同子组件的保存方法
saveInfo () {
switch (this.menuType) {
......@@ -609,20 +326,6 @@ export default {
this.bsms = data;
}
},
//获取选中户信息
getQsztList (data, type) {
if (type) {
// 双击
} else {
//单击 TO DO
this.qsztList = data;
}
},
//获取选中层bsmlist
getCbsm (data) {
this.cbsmList = data;
},
inputChange () {
console.log(this.bdcdyh, 'this.bdcdyh');
if (this.bdcdyh != "") {
......@@ -643,22 +346,6 @@ export default {
//改变楼盘表子组件的key值,重新渲染
// this.time = new Date().getTime();
},
//实预测装换
plScYcChange () {
let data = {
zrzbsm: this.$store.state.zrzbsm,
scyclx: this.scyclx,
};
batchScYcChange(data).then((res) => {
if (res.code === 200) {
this.$message.success("实预测转换成功");
this.$refs.lpbContent.loadingData(this.$store.state.zrzbsm, '1');
this.$refs.lpbContent.loadingData(this.$store.state.zrzbsm, '0');
} else if (res.code === 500) {
this.$message.warning(res.message);
}
});
},
//切换房屋状态
handleChoosedH (bsms, color) {
//每次切换房屋状态,将之前高亮的户边框颜色重置为默认
......@@ -676,30 +363,6 @@ export default {
this.$refs.lpbContent.borderColor = color;
})
},
//批量添加不动产单元号
addBdcdyh () {
if (this.qsztList.indexOf('1') > -1) {
Message.warning("已提交的户无法继续操作")
} else {
batchGeneratorBdcdyh(this.$store.state.zrzh, this.pd[0].bsm, 0).then(
(res) => {
if (res.code === 200) {
this.$message.success("生成完成!");
} else if (res.code === 206) {
let hasGenerateCount = res.result.hasGenerateCount;
let unGenerateCount = res.result.unGenerateCount;
if (+unGenerateCount === 0) {
this.$message.warning("不存在未生成不动产单元号的户,无需生成不动产单元号!")
return
}
this.open(hasGenerateCount, unGenerateCount);
} else {
this.$message.warning(res.message)
}
}
);
}
},
open (hasGenerateCount, unGenerateCount) {
......@@ -850,13 +513,6 @@ export default {
this.lpbContentwidth += 204;
}
},
createFlag (n) {
if (n) {
this.lpbContentwidth -= 260;
} else {
this.lpbContentwidth += 260;
}
},
selectedZt (n) {
this.legendToggleFlag = true;
},
......@@ -871,7 +527,6 @@ export default {
.edit {
height: 100%;
background-color: #F4F9FF;
.tab-header {
border: 1px solid #dedede;
box-sizing: border-box;
......@@ -879,19 +534,16 @@ export default {
background-color: #ffffff;
margin-bottom: 10px;
position: relative;
.searchContent {
margin-left: 62px;
box-sizing: border-box;
padding: 0 20px;
.searchInput {
transition: 0.5s;
margin-left: 20px;
display: inline-block;
}
}
.change {
position: absolute;
left: 0;
......@@ -899,7 +551,6 @@ export default {
height: 100%;
width: 80px;
border-right: 1px solid #dedede;
i {
cursor: pointer;
color: #0090FF;
......@@ -914,12 +565,10 @@ export default {
margin-left: 10px;
padding: 12px 10px;
border: 0;
i {
font-size: 13px;
padding-right: 4px;
}
/deep/.el-radio-button__inner {
border: 1px solid #dcdfe6;
border-radius: 4px;
......@@ -932,12 +581,10 @@ export default {
border: 1px solid #dedede;
background-color: #ffffff;
display: flex;
.lp-tree {
height: 100%;
overflow: hidden;
transition: 0.5s;
.treeData {
margin-top: 20px;
margin-left: 26px;
......
......@@ -182,81 +182,19 @@
<el-checkbox v-model="zrzChecked" @change='lpbSelectAll'>{{ lpbData.xmmc }}</el-checkbox>
</div>
</div>
<ul v-show="lpbChVisible" :style="{ left: lpbChLeft + 'px', top: lpbChTop + 'px' }" class="contextmenu">
<li v-show="rightClickFlag == 'h'" @click="handleAddH">添加</li>
<li v-show="rightClickFlag == 'h'" @click="handleMoveH">移动</li>
<li v-show="rightClickFlag == 'h'" @click="handleSyczh">实预测转换</li>
<li v-show="rightClickFlag == 'c'" @click="handleAddC('up')">
向上添加层
</li>
<li v-show="rightClickFlag == 'c'" @click="handleAddC('down')">
向下添加层
</li>
<li v-show="rightClickFlag == 'c'" @click="handleDeleteC">删除层</li>
<!-- 合并 -->
<li v-show="rightClickFlag == 'hb'" :class="canHb != 'zyhb' ? 'cantHb' : ''" @click="handleHb('zyhb')">左右合并</li>
<li v-show="rightClickFlag == 'hb'" :class="canHb != 'sxhb' ? 'cantHb' : ''" @click="handleHb('sxhb')">上下合并</li>
<!-- 分割 -->
<li v-show="rightClickFlag == 'fg'" @click="handleFg">户分割</li>
<!-- 范围属性变更 -->
<li v-show="rightClickFlag == 'fwsxbg'" @click="handleFwsxbg">变更信息</li>
<!-- 重新落宗 -->
<li v-show="rightClickFlag == 'cxlz'" @click="handleCxlz">重新落宗</li>
</ul>
<!-- 层操作弹框 -->
<el-dialog :close-on-click-modal="false" :title="addCData.title" :visible.sync="addCVisible" width="50%">
<el-form :model="addCData">
<el-form-item label="层号" :label-width="formLabelWidth">
<el-input disabled v-model="addCData.sjc" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="实际层" :label-width="formLabelWidth">
<el-input disabled v-model="addCData.sjc" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="添加的户数" :label-width="formLabelWidth">
<el-input v-model="addCData.hcount" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div class="btnGroup">
<el-button type="primary" @click="saveAddC">保存</el-button>
<el-button type="primary" @click="addCVisible = false">取消</el-button>
</div>
</el-dialog>
<!-- 户分割弹框 -->
<el-dialog :close-on-click-modal="false" title="户分割" :visible.sync="hfgDialogVisible" width="800px">
<el-form :model="fgData">
<el-form-item label="分割户数" required="" :label-width="formLabelWidth">
<el-input :disabled="fgData.fgfx != 0" v-model="fgData.fghs" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div class="btnGroup">
<el-button type="primary" @click="savefgData">保存</el-button>
<el-button type="primary" @click="hfgDialogVisible = false">取消</el-button>
</div>
</el-dialog>
<move-h :hbsm="chData.bsm" @close="moveHClose" :move-hvisible="moveHvisible" :type="scyclx"
@loading="loadingData($store.state.zrzbsm, $parent.scyclx)"></move-h>
<!-- 双击户的弹出框 -->
<el-dialog :close-on-click-modal="false" title="户编辑" class="hbjDialog" :visible.sync="hbjVisible" width="80%">
<hbj ref="hbj" :bsm="hbsm" :scyclx="scyclx" :lpbParent="lpbParent"></hbj>
</el-dialog>
<!-- 户重新落宗 -->
<h-cxlz :h-cxlz-visble="hcxlzVisible" :bsms="hbsmList" @close="hcxlzVisible = false"></h-cxlz>
</div>
</template>
<script>
import moveH from "@/components/moveH/moveH";
import HCxlz from "@/components/hCxlz/hCxlz";
import { getLpb } from '@/api/lpb'
// import { getLpb, insertUpDownC, deleteCByBsm } from "@api/lpb";
// import { hhb, hfg } from "@api/h";
import { Message } from 'element-ui';
// import { fwsxbgbl } from "@api/common";
import hbj from "../hbj/lpb-hbj/index";
export default {
name: "",
components: { moveH, hbj, HCxlz, },
components: { hbj },
props: {
zrzbsm: {
type: String,
......@@ -273,14 +211,12 @@ export default {
},
data () {
return {
moveHvisible: false,
lpbData: {
ljzs: [],
cs: [],
zdys: [],
},
hbjVisible: false,
hcxlzVisible: false,
lpbContentWidth: 0,
ljzWidth: 10000,
zdyWidth: 1000,
......@@ -391,10 +327,6 @@ export default {
}
// console.log("查询searchNum" + searchNum);
},
//接收范围属性变更传入的hbsm
getFwsxbgHbsm (bsm) {
this.hbsmList.push(bsm);
},
//自然幢下元素高度宽度计算
dataChange () {
//计算逻辑幢宽度 20为marginRight值
......@@ -674,184 +606,7 @@ export default {
closeMenu () {
this.lpbChVisible = false;
},
//户右键菜单 start
handleAddH () { },
handleMoveH () {
// 移动户
console.log(this.$parent.scyclx, "实预测类型");
this.moveHvisible = true;
},
moveHClose () {
this.moveHvisible = false;
},
handleDeleteH () { },
handleSyczh () { },
//end
// 层右键菜单 start
//添加
handleAddC (type) {
this.addCData.title = type == "up" ? "向上添加层" : "向下添加层";
this.addCVisible = true;
this.addCData.sjc =
type == "up"
? Number(this.chData.sjc) + 1
: Number(this.chData.sjc) - 1;
this.addCData.cbsm = this.chData.bsm;
this.addCData.scyclx = this.$parent.scyclx;
},
//删除
handleDeleteC () {
let params = {
cbsm: this.chData.bsm,
scyclx: this.$parent.scyclx,
};
this.$confirm("是否确认删除该层?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deleteCByBsm(params).then((res) => {
if (res.code == 200) {
this.$message({
message: "删除成功",
type: "success",
});
this.getLpb(this.$store.state.zrzbsm, this.$parent.scyclx);
} else {
this.$message({
message: res.message,
type: "warning",
});
}
})
})
.catch(() => { });
},
//确认添加
saveAddC () {
insertUpDownC(this.addCData).then((res) => {
if (res.code == 200) {
this.$message({
message: "添加成功",
type: "success",
});
this.getLpb(this.$store.state.zrzbsm, this.$parent.scyclx);
this.addCVisible = false;
} else {
this.$message({
message: res.message,
type: "warning"
})
}
})
},
//户合并
handleHb (type) {
let olbBsms = '';
this.hbsmList.forEach((item, index) => {
olbBsms += index < this.hbsmList.length - 1 ? item + ',' : item
})
if (type == this.canHb) {
this.$confirm("是否确认合并选中户?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
//确定合并 调用合并接口 this.hbsmList为选中户bsm数组 TO DO
let params = {
"newuserbsm": "",
"oldBsms": olbBsms,
"scyclx": this.$parent.scyclx,
"ljzbsm": this.fghbChoosedList[0].ljzbsm,
"zdybsm": this.fghbChoosedList[0].zdybsm,
"zrzbsm": this.fghbChoosedList[0].zrzbsm
}
// hhb(params).then((res) => {
// vm.loadingHide();
// if (res.code == 200) {
// Message.success('合并成功');
// // 清除选中户
// this.clearChoosedH();
// this.fghbChoosedList = [];
// // 更新楼盘表
// this.getLpb(this.zrzbsm, this.$parent.scyclx);
// } else {
// Message.error(res.message);
// }
// })
// .catch((error) => {
// vm.loadingHide();
// console.log(error);
// });
})
.catch(() => { });
} else {
}
},
//户分割
handleFg () {
this.hfgDialogVisible = true;
},
//户分割保存
savefgData () {
// hfg(this.fgData).then((res) => {
// vm.loadingHide();
// if (res.code == 200) {
// Message.success('分割成功');
// // 清除选中户
// this.hfgDialogVisible = false
// this.clearChoosedH();
// this.fghbChoosedList = [];
// // 更新楼盘表
// this.getLpb(this.zrzbsm, this.$parent.scyclx);
// } else {
// Message.error(res.message);
// }
// })
// .catch((error) => {
// vm.loadingHide();
// console.log(error);
// });
},
//范围属性变更
handleFwsxbg () {
let params = { bsm: this.chData.bsm, type: 'h' };
this.$confirm('是否确定范围属性变更?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// fwsxbgbl(params)
// .then((res) => {
// if (res.code == 200) {
// this.$message({
// message: '变更成功',
// type: "success",
// });
// this.getLpb(this.zrzbsm, this.scyclx);
// } else {
// this.$message({
// message: res.message,
// type: "warning",
// })
// }
// }).catch((error) => {
// });
}).catch(() => {
});
},
//户重新落宗
handleCxlz () {
if (this.hbsmList.indexOf(this.chData.bsm) == -1) {
this.hbsmList.push(this.chData.bsm);
}
this.hcxlzVisible = true
},
//楼盘表户全选
lpbSelectAll (val) {
if (val) {
......
<template>
<div class="content">
<div class="left">
<el-tree
ref="tree"
:data="treedata"
:props="defaultProps"
@node-click="handleNodeClick"
:default-expand-all="true"
:expand-on-click-node="false"
node-key="id"
:default-checked-keys="[showTab]"
>
<el-tree ref="tree" :data="treedata" :props="defaultProps" @node-click="handleNodeClick"
:default-expand-all="true" :expand-on-click-node="false" node-key="id" :default-checked-keys="[showTab]">
</el-tree>
</div>
<div class="right">
......@@ -22,7 +14,7 @@
import { getBdcqljqtsx } from "@/api/registerBook.js";
import { loadTreeData, getNode } from "./djbFrameData.js";
export default {
data() {
data () {
return {
//接收参数
// propsParam: this.$attrs,
......@@ -44,11 +36,11 @@ export default {
};
},
props: ["formData"],
mounted() {
mounted () {
this.loadData();
},
methods: {
loadData() {
loadData () {
getBdcqljqtsx({
bdcdyid: this.formData.bdcdyid,
bdcdyh: this.formData.bdcdyh,
......@@ -56,7 +48,7 @@ export default {
if (res.code === 200) {
this.treedata = loadTreeData(res.result, this.formData.bdcdyh);
this.$nextTick(function () {
this.defaultNode = getNode(this.formData.qllx, {linShi:0,xianShi:0,liShi:0}, "");
this.defaultNode = getNode(this.formData.qllx, { linShi: 0, xianShi: 0, liShi: 0 }, "");
this.$refs.tree.setCurrentKey(this.defaultNode.id); //data[0].id为默认选中的节点
this.loadComponent(this.defaultNode.form);
});
......@@ -69,10 +61,10 @@ export default {
bsmQlxx: this.formData.bsmQlxx,
};
},
handleNodeClick(data, node, elem) {
handleNodeClick (data, node, elem) {
this.loadComponent(data.form);
},
loadComponent(form) {
loadComponent (form) {
this.componentTag = (r) =>
require.ensure([], () => r(require("@/views/registerBook/" + form)));
},
......@@ -80,6 +72,10 @@ export default {
};
</script>
<style scoped lang="scss">
/deep/.rollTable {
height: calc(100vh - 240px) !important;
}
.content {
width: 100%;
height: 100%;
......@@ -113,7 +109,7 @@ export default {
height: 45px;
}
/deep/ .el-tree-node:focus > .el-tree-node__content {
/deep/ .el-tree-node:focus>.el-tree-node__content {
background-color: #f5f5f5;
color: #0079fe;
border-right: 4px solid #0079fe;
......@@ -123,7 +119,7 @@ export default {
white-space: pre-wrap;
}
/deep/ .is-current > .el-tree-node__content {
/deep/ .is-current>.el-tree-node__content {
background-color: #f5f5f5;
color: #0079fe;
border-right: 4px solid #0079fe;
......
......@@ -21,42 +21,37 @@
</div>
</template>
<script>
import { getJtfcInfo } from "@/api/sqcxjl";
import imgPath from "./打印登记薄.png" //先导入
<script>
import imgPath from "./djbyb.png"
export default {
components: {},
props: ["formData"],
created() {
created () {
var sqcxdata = this.formData.sqcxdata;
this.ruleForm = sqcxdata;
},
data() {
data () {
return {
ruleForm: {
cxsj: "",
bdcdyh: "",
},
imgUrl:imgPath,
imgUrl: imgPath,
};
},
mounted() {},
mounted () { },
methods: {},
};
</script>
<style scoped lang="scss">
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
.table1 {
border-spacing: 0;
border-spacing: 0;
border-collapse: collapse;
width: 100%;
}
.table1 td {
......
......@@ -39,7 +39,7 @@
import { mapGetters } from "vuex";
import table from "@/utils/mixin/table";
import { datas, sendThis } from "./dydjbdata";
import { getJtfcPage } from "@/api/jtfc";
import { getJtfcPage } from "@/api/sqcx";
export default {
name: "dydjb",
......
......@@ -46,7 +46,7 @@
<script>
import personInfoTable from '@/views/components/personInfoTable'
import { addJtfcCxjgXx } from '@/api/jtfc'
import { addJtfcCxjgXx } from '@/api/sqcx'
import { datas, sendThis } from "./addjtfcdata";
export default {
......
......@@ -36,7 +36,7 @@
<script>
import table from "@/utils/mixin/table";
import { datas, sendThis } from "./jtfcdata";
import { getJtfcPage } from "@/api/jtfc";
import { getJtfcPage } from "@/api/sqcx";
import addjtfc from "./components/addjtfc.vue";
export default {
name: "jtfc",
......
......@@ -37,7 +37,7 @@
<script>
import table from "@/utils/mixin/table";
import { datas, sendThis } from "./sqcxjldata";
import { getJtfcPage } from "@/api/jtfc";
import { getJtfcPage } from "@/api/sqcx";
export default {
name: "sqcxjl",
mixins: [table],
......
......@@ -25,7 +25,7 @@
</template>
<script>
import { addSysNotice } from "@/api/notice.js"
import { addSysNotice } from "@/api/system.js"
import { upload } from "@/api/system.js"
export default {
props: {
......
......@@ -31,7 +31,7 @@
<script>
import table from "@/utils/mixin/table";
import { datas, sendThis } from "./flfgdata";
import { getSysPolicyList, deleteSysNotice } from "@/api/notice.js"
import { getSysPolicyList, deleteSysNotice } from "@/api/system.js"
import addDialog from "./components/addDialog.vue";
export default {
name: "flfg",
......
......@@ -45,16 +45,15 @@
</el-form>
</dialogBox>
</template>
<script>
import { addSysNotice,updateSysNotice } from "@/api/notice.js";
import { addSysNotice, updateSysNotice } from "@/api/system.js";
import { upload } from "@/api/system.js";
import { quillEditor } from "vue-quill-editor";
export default {
props: {
value: { type: Boolean, default: false },
isButtonFlag: { type: Boolean, default: true },
title: {type:String, default: '新增系统通知'}
title: { type: String, default: '新增系统通知' }
},
components: { quillEditor },
data () {
......@@ -145,15 +144,15 @@ export default {
}
}
},
mounted () {},
mounted () { },
methods: {
submitForm () {
let that = this;
that.$refs.ruleForm.validate(valid => {
if (valid) {
if(that.ruleForm.bsmNotice){
if (that.ruleForm.bsmNotice) {
that.editNotice();
}else{
} else {
that.addNotice();
}
} else {
......@@ -168,7 +167,7 @@ export default {
this.resetRuleForm();
},
//新增通知
addNotice(){
addNotice () {
addSysNotice(this.ruleForm).then(res => {
if (res.code == 200) {
this.$message.success("保存成功");
......@@ -181,7 +180,7 @@ export default {
});
},
//编辑通知
editNotice(){
editNotice () {
updateSysNotice(this.ruleForm).then(res => {
if (res.code == 200) {
this.$message.success("编辑成功");
......@@ -223,7 +222,7 @@ export default {
clipboardPictureChange (file) {
this.uploadPicture(file)
},
getDetailInfo(item){
getDetailInfo (item) {
this.ruleForm = item
},
uploadPicture (file) {
......
......@@ -33,13 +33,13 @@
:data="tableData.data">
</lb-table>
</div>
<addDialog ref="addDialog" v-model="isDialog" :isButtonFlag="isButtonFlag" :title="dialogTitle"/>
<addDialog ref="addDialog" v-model="isDialog" :isButtonFlag="isButtonFlag" :title="dialogTitle" />
</div>
</template>
<script>
import table from "@/utils/mixin/table";
import { datas, sendThis } from "./xttzdata";
import { getSysNoticeList, deleteSysNotice, publishNotice, unPublishNotice } from "@/api/notice.js"
import { getSysNoticeList, deleteSysNotice, publishNotice, unPublishNotice } from "@/api/system.js"
import addDialog from "./components/addDialog.vue";
export default {
name: "xttz",
......@@ -91,7 +91,7 @@ export default {
this.$refs.addDialog.getDetailInfo(item);
this.dialogTitle = '系统通知详情'
})
}else{
} else {
this.isButtonFlag = true;
this.dialogTitle = '新增系统通知'
}
......@@ -164,7 +164,7 @@ export default {
});
},
//编辑通知
editNotice(item) {
editNotice (item) {
this.$nextTick(() => {
this.isButtonFlag = true;
this.$refs.addDialog.getDetailInfo(item);
......
......@@ -25,13 +25,13 @@
:data="tableData.data">
</lb-table>
</div>
<addDialog ref="addDialog" v-model="isDialog" :isButtonFlag="isButtonFlag" :title="dialogTitle"/>
<addDialog ref="addDialog" v-model="isDialog" :isButtonFlag="isButtonFlag" :title="dialogTitle" />
</div>
</template>
<script>
import table from "@/utils/mixin/table";
import { datas, sendThis } from "./xttzviewdata";
import { getSysNoticeList,setReadStatus,setAllRead} from "@/api/notice.js"
import { getSysNoticeList, setReadStatus, setAllRead } from "@/api/system.js"
import addDialog from "./components/addDialog.vue";
export default {
name: "xttzview",
......@@ -73,33 +73,33 @@ export default {
},
//打开新增弹窗
openDialog (item) {
this.$nextTick(() => {
this.isButtonFlag = false;
this.$refs.addDialog.getDetailInfo(item);
this.dialogTitle = '系统通知详情'
this.isDialog = true;
})
let that = this;
if(item.isRead == 1){
setReadStatus({bsmNotice: item.bsmNotice}).then(res => {
if(res.code == 200){
that.$nextTick(()=> {
item.isRead = 2
})
}
this.$nextTick(() => {
this.isButtonFlag = false;
this.$refs.addDialog.getDetailInfo(item);
this.dialogTitle = '系统通知详情'
this.isDialog = true;
})
let that = this;
if (item.isRead == 1) {
setReadStatus({ bsmNotice: item.bsmNotice }).then(res => {
if (res.code == 200) {
that.$nextTick(() => {
item.isRead = 2
})
}
}
})
}
},
//一键已读
toReadAll(){
setAllRead().then(res => {
if(res.code == 200){
this.$message.success('设置成功')
this.queryClick();
}else{
this.$message.error("设置失败")
}
})
toReadAll () {
setAllRead().then(res => {
if (res.code == 200) {
this.$message.success('设置成功')
this.queryClick();
} else {
this.$message.error("设置失败")
}
})
},
downloadFile (item) {
const href = item.noticeFileUrl
......
//流程环节操作按钮
export function getForm(tabName, djywbm) {
console.log("88888888" + tabName);
export function getForm (tabName, djywbm) {
let form;
switch (tabName) {
case "jsydsyqslxx100":
......
......@@ -8,7 +8,7 @@ class data extends filter {
constructor() {
super()
}
columns() {
columns () {
return {
//发证列表
fzgrid: [
......@@ -20,13 +20,6 @@ class data extends filter {
{
prop: "bdcqzlx",
label: "不动产权证类型",
// render: (h, scope) => {
// if (scope.row.bdcqzlx == "1") {
// return (<div>不动产权证书</div>)
// } else {
// return (<div>不动产登记证明</div>)
// }
// }
},
{
prop: "qllx",
......@@ -82,13 +75,6 @@ class data extends filter {
prop: "bdcqzlx",
label: "不动产权证类型",
width: '120',
// render: (h, scope) => {
// if (scope.row.bdcqzlx == "1") {
// return (<div>不动产权证书</div>)
// } else {
// return (<div>不动产登记证明</div>)
// }
// }
},
{
prop: "qllx",
......
import { getWorkFlowImage } from "@/api/jsydsyqFlow.js";
import {
leftMenu,
stepExpandInfo,
record,
completeTask,
getNextLinkInfo,
} from "@/api/fqsq.js";
export default {
data () {
return {
//是否开启材料分屏
splitScreen: false,
//设置表单组件是否刷选值
fresh: 10,
//左侧菜单数据集合
unitData: [],
//顶部左侧按钮集合
leftButtonList: [],
//顶部右侧按钮集合
rightButtonList: [],
//批量按钮名称
batchButtonName: '',
}
},
mounted () {
this.flowInitParam();
this.loadBdcdylist();
},
methods: {
//读取申请单元信息
loadBdcdylist () {
var formdata = new FormData();
formdata.append("bsmSlsq", this.bsmSlsq);
formdata.append("bestepid", this.bestepid);
leftMenu(formdata).then((res) => {
if (res.code === 200) {
if (res.result) {
this.unitData = res.result;
this.currentSelectProps = res.result[0];
this.judgeBatchShow();
if (this.showBatch) {
//满足批量查封/批量抵押按钮出现 即先展示批量表单
this.unitClick(-1);
} else {
//默认选择单元列表第一个
this.unitClick(0);
}
}
}
});
},
//批量按钮判断
judgeBatchShow () {
this.showBatch = false;
let qllx = this.$route.query.sqywbm.substring(0, 3);
if (this.unitData.length > 1) {
switch (qllx) {
case 'B39':
this.showBatch = true;
this.batchButtonName = '批量查封';
break;
case 'A37':
this.showBatch = true;
this.batchButtonName = '批量抵押';
break;
}
}
},
//加载流程初始参数
flowInitParam () {
var formdata = new FormData();
formdata.append("bsmSlsq", this.bsmSlsq);
formdata.append("bestepid", this.bestepid);
stepExpandInfo(formdata).then((res) => {
if (res.code === 200) {
this.leftButtonList = res.result.button;
this.rightButtonList = res.result.operation;
}
});
},
//流程环节操作按钮
operation (item) {
//按钮 B0:选择不动产单元 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书 B7:证书领取 B8:楼盘表 B9:登簿
//操作按钮 登簿:record 转件:transfer 退回:back 退出:signout
let that = this;
switch (item.value) {
case "B0":
// let type = queueDjywmc(this.$route.query.sqywbm)
this.isDialog = true;
break;
case "B1":
getWorkFlowImage(this.bsmSlsq, this.$route.query.bestepid).then(res => {
let { result } = res
this.$popup("流程图", "workflow/components/processViewer", {
formData: {
xml: result.xml,
finishedInfo: {
finishedTaskSet: result.finishedTaskSet,
unfinishedTaskSet: result.unfinishedTaskSet,
rejectedTaskSet: result.rejectedTaskSet,
finishedSequenceFlowSet: result.finishedSequenceFlowSet
},
allCommentList: result.historyTaskList
}
})
})
break;
case "B2": //材料分屏按钮
this.splitScreen = this.splitScreen ? false : true;
this.$store.dispatch("app/settScreen", this.splitScreen);
if (this.splitScreen) {
//如果当前选项卡为材料信息内容,递减到上一个选项卡内容
if (this.tabName == this.clxxTab.value) {
this.tabName = this.tabList[this.clxxIndex - 1].value;
this.getFromRouter(this.tabList[this.clxxIndex - 1].value);
}
//删除材料信息选项卡数据
this.tabList.splice(this.clxxIndex, 1);
} else {
//新增材料信息选项卡数据
this.tabList.splice(this.clxxIndex, 0, this.clxxTab);
}
break;
case "B4":
this.$popup("登记簿详情", "registerBook/djbFrame", {
formData: this.currentSelectProps,
width: "1220px",
height: "790px",
cancel: () => {
console.log("取消回调");
},
confirm: () => {
console.log("确认回调");
},
});
break;
case "B5":
this.$popup("证书预览", "workflow/components/zsyl", {
height: "600px",
width: "800px",
formData: {
bsmSlsq: this.bsmSlsq,
entryType: '1'
},
})
break;
case "B7":
this.$popup("证书领取", "workflow/components/zslq", {
width: '900px',
formData: { bsmSlsq: this.$route.query.bsmSlsq },
})
break;
case "back": //退回按钮
this.$popup("退回", "workflow/components/th", {
height: "200px",
width: '30%',
formData: {
bsmSlsq: this.bsmSlsq,
bestepid: this.bestepid
},
btnShow: true,
cancel: () => {
console.log("取消回调");
},
confirm: () => {
console.log("确认回调");
},
})
break;
case "transfer": //转件按钮
getNextLinkInfo({
bsmSlsq: this.bsmSlsq,
bestepid: this.bestepid,
}).then((res) => {
if (res.code === 200) {
if (res.result) {
this.sendToNext(res.result);
} else {
this.sendToEnd();
}
}
});
break;
case "stop": //终止按钮
this.$popup("终止", "workflow/components/stop", {
height: "330px",
width: '30%',
formData: {
bsmSlsq: this.bsmSlsq,
bestepid: this.bestepid,
},
btnShow: true,
cancel: () => {
console.log("取消回调");
},
confirm: () => {
console.log("确认回调");
},
})
break;
case "signout":
window.close();
//取消认领
unClaimTask(this.bsmSlsq, this.bestepid)
break;
case "B9":
var formdata = new FormData();
formdata.append("bsmSlsq", this.bsmSlsq);
formdata.append("bestepid", this.bestepid);
this.$confirm("请确认是否登簿", "提示", {
iconClass: "el-icon-question", //自定义图标样式
confirmButtonText: "确认", //确认按钮文字更换
cancelButtonText: "取消", //取消按钮文字更换
showClose: true, //是否显示右上角关闭按钮
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);;
}
else {
that.$alert('<div>' + res.result[0].ywh + ',' + res.result[0].msg + '</div>', '登簿明细', {
dangerouslyUseHTMLString: true
});
}
} else {
that.$alert(res.message);
}
});
});
break;
}
},
//发送下一个环节
sendToNext (obj) {
const h = this.$createElement;
this.$msgbox({
title: "您确定转出吗?1",
message: h("div", { style: "margin: auto" }, [
h("span", null, "下个环节名称:"),
h("i", { style: "color: teal" }, obj.taskName),
h("div", null, ""),
h("span", null, "下个环节经办人: "),
h("i", { style: "color: teal" }, obj.usernames.join(",")),
]),
showCancelButton: true,
beforeClose: (action, instance, done) => {
if (action === "confirm") {
instance.confirmButtonLoading = true;
instance.confirmButtonText = "执行中...";
completeTask({
bsmSlsq: this.bsmSlsq,
shyj: "this.bestepid",
stepform: JSON.stringify(this.tabList),
}).then((res) => {
if (res.code === 200) {
instance.confirmButtonLoading = false;
this.$message.success("转件成功");
window.opener.location.reload(); //刷新父窗口
window.close();
this.$emit("input", false);
} else {
instance.confirmButtonLoading = false;
instance.confirmButtonText = "确定";
this.$message.error(res.message);
}
});
} else {
done();
}
},
}).then((action) => {
this.$message({
type: "info",
message: "action: " + action,
});
});
},
sendToEnd () {
let that = this
const h = this.$createElement;
this.$msgbox({
title: "您确定转出吗?2",
message: "此环节为流程结束环节,转出后流程将结束",
showCancelButton: true,
beforeClose: (action, instance, done) => {
console.log(action, 'actionaction');
if (action === "confirm") {
instance.confirmButtonLoading = true;
instance.confirmButtonText = "执行中...";
completeTask({
bsmSlsq: this.bsmSlsq,
shyj: "this.bestepid",
stepform: JSON.stringify(this.tabList),
}).then((res) => {
if (res.code === 200) {
instance.confirmButtonLoading = false;
that.$message.success("转件成功");
localStorage.setItem('transfer', true)
window.opener.location.reload(); //刷新父窗口
window.close();
that.$emit("input", false);
} else {
instance.confirmButtonLoading = false;
instance.confirmButtonText = "确定";
this.$message.error(res.message);
}
})
} else {
done();
}
},
}).then((action) => {
this.$message({
type: "info",
message: "action: " + action,
});
});
}
}
}
import { getForm } from "../flowform";
import { getHomeNoticeList } from "@/api/home.js"
export default {
data () {
return {
noticeList: [],
}
},
created () {
getHomeNoticeList().then(res => {
if (res.result) {
this.noticeList = res.result.noticeList
}
})
},
methods: {
//右侧表单选项卡事件
beforeLeave (activeName, oldActiveName) {
if (activeName && activeName != 0) this.getFromRouter(activeName)
},
//切换选项卡内容组件
getFromRouter (tabname) {
this.componentTag = getForm(tabname, this.$route.query.sqywbm);
}
}
}
......@@ -4,14 +4,14 @@
<div class="topButton">
<!-- 左侧业务功能按钮 -->
<ul>
<li @click="operation(index, item)" v-for="(item, index) in leftButtonList" :key="index">
<li @click="operation(item)" v-for="(item, index) in leftButtonList" :key="index">
<svg-icon class="icon" :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</li>
</ul>
<!-- 右侧流程按钮 -->
<ul>
<li @click="operation(index, item)" v-for="(item, index) in rightButtonList" :key="index">
<li @click="operation(item)" v-for="(item, index) in rightButtonList" :key="index">
<svg-icon class="icon" :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</li>
......@@ -151,9 +151,6 @@ export default {
window.removeEventListener('beforeunload', e => this.beforeunloadHandler(e))
window.removeEventListener('unload', e => this.unloadHandler(e))
},
computed: {
...mapGetters(["oldDetail", "newDetail"])
},
methods: {
beforeunloadHandler () {
this._beforeUnload_time = new Date().getTime()
......@@ -231,24 +228,11 @@ export default {
if (res.code === 200) {
this.leftButtonList = res.result.button;
this.rightButtonList = res.result.operation;
//this.tabList = res.result.form;
//默认选择第一个选项卡内容
// this.tabName = res.result.form[0].value;
// let that = this;
// this.tabList.forEach(function (item, index) {
// if (item.value == "clxx") {
// that.clxxIndex = index;
// that.clxxForm = getForm(item.value, that.$route.query.sqywbm);
// that.clxxTab = item;
// }
// });
// //默认加载第一个选项卡的组件内容
// this.getFromRouter(res.result.form[0].value);
}
});
},
//流程环节操作按钮
operation (index, item) {
operation (item) {
//按钮 B0:选择不动产单元 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书 B7:证书领取 B8:楼盘表 B9:登簿
//操作按钮 登簿:record 转件:transfer 退回:back 退出:signout
let that = this;
......@@ -350,18 +334,16 @@ export default {
bestepid: this.bestepid,
}).then((res) => {
if (res.code === 200) {
if(res.result){
if (res.result) {
this.sendToNext(res.result);
}else{
} else {
this.sendToEnd();
}
}
});
break;
case "stop": //终止按钮
this.$popup({
title: "终止",
editItem: "workflow/components/stop",
this.$popup("终止", "workflow/components/stop", {
height: "330px",
width: '30%',
formData: {
......@@ -435,7 +417,6 @@ export default {
},
//申请单元点击事件
unitClick (index) {
if (index >= 0) {
this.currentSelectProps = this.unitData[index];
this.currentSelectProps.batchOperation = false;
......@@ -460,10 +441,6 @@ export default {
});
}
});
// if (this.currentSelectProps.bsmSldy != this.unitData[index].bsmSldy) {
// this.currentSelectProps = this.unitData[index];
// this.fresh += 1;
// }
},
//批量按钮判断
judgeBatchShow () {
......@@ -484,12 +461,6 @@ export default {
},
//表单选项卡事件
beforeLeave (activeName, oldActiveName) {
// if (!_.isEqual(this.oldDetail, this.newDetail)) {
// this.$message.error('界面内容有所变化,请先保存')
// return false
// } else {
// if (activeName && activeName != 0) this.getFromRouter(activeName)
// }
if (activeName && activeName != 0) this.getFromRouter(activeName)
},
//切换选项卡内容组件
......@@ -545,7 +516,7 @@ export default {
});
});
},
sendToEnd() {
sendToEnd () {
const h = this.$createElement;
this.$msgbox({
title: "您确定转出吗?",
......
<template>
<div class="container">
<!-- 顶部内容框 -->
<div class="topButton">
<!-- 左侧业务功能按钮 -->
<ul>
<li @click="operation(item)" v-for="(item, index) in leftButtonList" :key="index">
<svg-icon class="icon" :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</li>
</ul>
<!-- 右侧流程按钮 -->
<ul>
<li @click="operation(item)" v-for="(item, index) in rightButtonList" :key="index">
<svg-icon class="icon" :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</li>
</ul>
<NoticeBar class="NoticeBar" :noticeList="noticeList" />
</div>
<!-- 内容框架 -->
<div class="containerFrame">
<!-- 左侧菜单栏 -->
<div class="leftmenu" :class="{ 'animation-map-drawer': isShowdrawer }">
<div class="title" @click="unitClick(-1)">{{ batchButtonName }}</div>
<div v-if="this.isShowdrawer">
<div class="title">
申请单元列表({{ unitData.length }})
<el-button type="text" class="batchDel" @click="handleBatchDel" v-if="unitData.length > 1">批量删除</el-button>
</div>
<el-menu :default-active="activeIndex" @select="unitClick">
<el-menu-item v-for="(item, index) in unitData" :index="index.toString()" :key="index">
<div>
<p>{{ item.bdcdyh }}</p>
<p class="title-detail">{{ item.zl }}</p>
</div>
<i class="el-icon-delete" v-if="unitData.length > 1" @click.stop="handleDel(item)"></i>
</el-menu-item>
</el-menu>
</div>
<div class="map-drawer-click map-drawer" v-if="!isShowdrawer" @click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"></div>
<div class="map-drawer-expand map-drawer" v-else @click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"></div>
</div>
<div class="leftCon">
<!-- 分屏左侧预览 -->
<div v-if="splitScreen" class="splitScreen-con">
<component :is="clxxForm" v-bind="currentSelectProps" :key="fresh" />
</div>
<!-- 表单内容区域 -->
<div class="rightContainer">
<el-tabs v-model="tabName" :before-leave="beforeLeave">
<el-tab-pane :label="item.name" :name="item.value" v-for="item in tabList" :key="item.value">
</el-tab-pane>
</el-tabs>
<component :key="fresh" :is="componentTag" v-bind="currentSelectProps" />
</div>
</div>
</div>
<fqsqDialog v-model="isDialog" :djywbm="$route.query.sqywbm" :isJump="true" @updateDialog="updateDialog" />
</div>
</template>
<style scoped lang='scss'>
@import "~@/styles/mixin.scss";
@import "./workFrame.scss";
</style>
<script>
import { mapGetters } from "vuex"
import WorkFlow from "./mixin/index"
import publicFlow from "./mixin/public.js"
import { getStepFormInfo } from "@/api/fqsq.js";
import { getForm } from './flowform'
import NoticeBar from '@/components/NoticeBar/index'
import { deleteFlow, unClaimTask } from "@/api/ywbl.js";
import ProcessViewer from './components/processViewer.vue'
import fqsqDialog from "@/views/ywbl/ywsq/slectBdc.vue";
export default {
components: {
fqsqDialog,
NoticeBar,
ProcessViewer
},
mixins: [WorkFlow, publicFlow],
data () {
return {
isDialog: false,
// 流程图
// 折叠
isShowdrawer: true,
// 默认选中
activeIndex: "0",
//受理申请标识码
bsmSlsq: this.$route.query.bsmSlsq,
//当前流程所在环节
bestepid: this.$route.query.bestepid,
//设置那个表单选中
tabName: "",
//表单集合
tabList: [],
//选择加载哪一个组件
componentTag: "",
//设置表单传递数据
currentSelectProps: {},
//材料分屏表单
clxxForm: "",
//材料信息选择卡索引
clxxIndex: "",
//材料信息选项卡对象
clxxTab: {},
//页面监听时间
_beforeUnload_time: ""
}
},
mounted () {
//添加页面监听事件
window.addEventListener('beforeunload', e => this.beforeunloadHandler(e))
window.addEventListener('unload', e => this.unloadHandler(e))
},
destroyed () {
window.removeEventListener('beforeunload', e => this.beforeunloadHandler(e))
window.removeEventListener('unload', e => this.unloadHandler(e))
},
methods: {
beforeunloadHandler () {
this._beforeUnload_time = new Date().getTime()
},
unloadHandler (e) {
this._gap_time = new Date().getTime() - this._beforeUnload_time
//判断是窗口关闭还是刷新
if (this._gap_time <= 10) {
//取消认领
unClaimTask(this.bsmSlsq, this.bestepid)
}
},
changeLoadIndex () {
this.loadIndex++
},
closeDialog () {
this.myValue = false
},
// 更新列表
updateDialog () {
this.loadBdcdylist();
},
// 删除左侧列表
handleDel (item) {
this.$confirm("确定要删除吗, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
var formdata = new FormData();
formdata.append("bsmSldyList", item.bsmSldy.split(","));
formdata.append("bsmSlsq", this.bsmSlsq);
deleteFlow(formdata).then((res) => {
if (res.code == 200) {
this.$message.success("删除成功");
this.loadBdcdylist();
} else {
this.$message.error(res.message);
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
handleBatchDel () {
let that = this;
this.$popup({
title: "批量删除",
width: "50%",
btnShow: true,
editItem: "workflow/components/batchDel",
height: "600px",
formData: {
bsmSlsq: this.bsmSlsq,
dataList: this.unitData,
},
confirm: function () {
that.loadBdcdylist();
}
})
},
//申请单元点击事件
unitClick (index) {
if (index >= 0) {
this.currentSelectProps = this.unitData[index];
this.currentSelectProps.batchOperation = false;
} else {
this.currentSelectProps.batchOperation = true;
}
getStepFormInfo(this.currentSelectProps).then((res) => {
if (res.code === 200) {
this.fresh++;
//获取单元对应的所有表单信息
this.tabList = res.result;
//默认加载第一个表单信息
this.tabName = res.result[0].value;
//处理分屏材料信息
let that = this;
this.tabList.forEach(function (item, index) {
if (item.value == "clxx") {
that.clxxIndex = index;
that.clxxForm = getForm(item.value, that.$route.query.sqywbm);
that.clxxTab = item;
}
})
}
})
}
}
}
</script>
<template>
<div class="container">
<!-- 顶部内容框 -->
<div class="topButton">
<!-- 左侧业务功能按钮 -->
<ul>
<li @click="operation(item)" v-for="(item, index) in leftButtonList" :key="index">
<svg-icon :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</li>
</ul>
<!-- 右侧流程按钮 -->
<ul>
<li @click="operation(item)" v-for="(item, index) in rightButtonList" :key="index">
<svg-icon class="icon" :icon-class="item.icon" />
<span class="iconName">{{ item.name }}</span>
</li>
</ul>
<NoticeBar class="NoticeBar" :noticeList="noticeList" />
</div>
<!-- 内容框架 -->
<div class="containerFrame">
<!-- 左侧菜单栏 -->
<div class="leftmenu" :class="{ 'animation-map-drawer': isShowdrawer }">
<div v-if="this.isShowdrawer">
<div class="title">申请单元列表({{ unitData.length }})</div>
<el-menu :default-active="activeIndex" @select="unitClick">
<el-menu-item v-for="(item, index) in unitData" :index="index.toString()" :key="index">
<div>
<p>{{ item.bdcdyh }}</p>
<p class="title-detail">{{ item.zl }}</p>
</div>
</el-menu-item>
</el-menu>
</div>
<div class="map-drawer-click map-drawer" v-if="!isShowdrawer" @click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"></div>
<div class="map-drawer-expand map-drawer" v-else @click="
() => {
this.isShowdrawer = !this.isShowdrawer;
}
"></div>
</div>
<div class="leftCon">
<!-- 分屏左侧预览 -->
<div v-if="splitScreen" class="splitScreen-con">
<component :is="clxxForm" v-bind="currentSelectProps" :key="fresh" />
</div>
<!-- 表单内容区域 -->
<div class="rightContainer">
<el-tabs v-model="tabName" :before-leave="beforeLeave">
<el-tab-pane :label="item.name" :name="item.value" v-for="(item, index) in tabList" :key="index">
</el-tab-pane>
</el-tabs>
<component :key="fresh" :is="componentTag" v-bind="currentSelectProps" />
</div>
</div>
</div>
</div>
</template>
<style scoped lang='scss'>
@import "~@/styles/mixin.scss";
@import "./workFrame.scss";
</style>
<script>
import {
leftMenu,
stepExpandInfo,
getStepFormInfo
} from "@/api/fqsq.js"
import publicFlow from "./mixin/public.js"
import NoticeBar from '@/components/NoticeBar/index'
import { getWorkFlowImage } from "@/api/jsydsyqFlow.js"
export default {
mixins: [publicFlow],
components: {
NoticeBar
},
data () {
return {
// 流程图
imgSrc: '',
// 折叠
isShowdrawer: true,
// 默认选中
activeIndex: '0',
//受理申请标识码
bsmSlsq: this.$route.query.bsmSlsq,
//当前流程所在环节
bestepid: this.$route.query.bestepid,
//顶部左侧按钮集合
leftButtonList: [],
//顶部右侧按钮集合
rightButtonList: [],
//左侧菜单数据集合
unitData: [],
//设置那个表单选中
tabName: "",
//表单集合
tabList: [],
//选择加载哪一个组件
componentTag: "",
//设置表单组件是否刷选值
fresh: 10,
//设置表单传递数据
currentSelectProps: {},
//是否开启材料分屏
splitScreen: false,
//材料分屏表单
clxxForm: "",
//材料信息选择卡索引
clxxIndex: "",
//材料信息选项卡对象
clxxTab: {},
}
},
mounted () {
this.loadBdcdylist();
this.flowInitParam();
},
methods: {
//加载流程初始参数
flowInitParam () {
var formdata = new FormData();
formdata.append("bsmSlsq", this.bsmSlsq);
formdata.append("bestepid", this.bestepid);
formdata.append("type", "READ_ONLY");
stepExpandInfo(formdata).then((res) => {
if (res.code === 200) {
this.leftButtonList = res.result.button;
this.rightButtonList = res.result.operation;
}
})
},
//流程环节操作按钮
operation (item) {
//按钮 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书
//操作按钮 登簿:record 转件:transfer 退回:back 退出:signout
let that = this;
switch (item.value) {
case "B1":
getWorkFlowImage(this.bsmSlsq).then(res => {
this.imgSrc = URL.createObjectURL(res)
this.$popup({
title: '流程图',
editItem: 'workflow/components/flowChart',
formData: this.imgSrc
})
})
break;
case "B5":
this.zsylFlag = true;
break;
case "B2": //材料分屏按钮
this.splitScreen = this.splitScreen ? false : true;
this.$store.dispatch('app/settScreen', this.splitScreen)
if (this.splitScreen) {
//如果当前选项卡为材料信息内容,递减到上一个选项卡内容
if (this.tabName == this.clxxTab.value) {
this.tabName = this.tabList[this.clxxIndex - 1].value;
this.getFromRouter(this.tabList[this.clxxIndex - 1].value);
}
this.tabList.splice(this.clxxIndex, 1);
} else {
this.tabList.splice(this.clxxIndex, 1, this.clxxTab);
}
break;
case "signout":
window.close();
break;
}
},
//读取申请单元信息
loadBdcdylist () {
var formdata = new FormData();
formdata.append("bsmSlsq", this.bsmSlsq);
formdata.append("bestepid", this.bestepid);
leftMenu(formdata).then((res) => {
if (res.code === 200) {
this.unitData = res.result;
this.currentSelectProps = res.result[0];
this.unitClick(0);
}
})
},
//申请单元点击事件
unitClick (index) {
this.currentSelectProps = this.unitData[index];
this.currentSelectProps.type = 'ONLY_READ';
getStepFormInfo(this.currentSelectProps).then((res) => {
if (res.code === 200) {
this.fresh++;
//获取单元对应的所有表单信息
this.tabList = res.result;
//默认加载第一个表单信息
this.tabName = res.result[0].value;
}
});
}
}
}
</script>
\ No newline at end of file
......@@ -79,7 +79,7 @@ export default {
components: { searchBox },
mixins: [table, searchMin],
computed: {
...mapGetters(['dictData']),
...mapGetters(['dictData', 'transfer'])
},
data () {
return {
......@@ -102,6 +102,9 @@ export default {
}
}
},
created () {
this.queryClick()
},
mounted () {
sendThis(this);
this.queryClick()
......@@ -169,7 +172,8 @@ export default {
})
},
ywhClick (item) {
const { href } = this.$router.resolve('/workFrame?bsmSlsq=' + item.bsmSlsq + '&bestepid=' + item.bestepid + '&bsmBusiness=' + '&sqywbm=' + item.djywbm);
// const { href } = this.$router.resolve('/workFrame?bsmSlsq=' + item.bsmSlsq + '&bestepid=' + item.bestepid + '&bsmBusiness=' + '&sqywbm=' + item.djywbm);
const { href } = this.$router.resolve('/workFramecs?bsmSlsq=' + item.bsmSlsq + '&bestepid=' + item.bestepid + '&bsmBusiness=' + '&sqywbm=' + item.djywbm);
window.open(href, '_blank');
//从待办箱进入的调取任务领取接口
claimTask(item.bsmSlsq, item.bestepid)
......
......@@ -47,7 +47,7 @@
<div class="triangle"></div>
</div>
<el-button type="primary" style="float: right;margin-right: 20px; " @click="onClick">数据查看</el-button>
<el-button type="primary" style="float: right;margin-right: 20px; " @click="dataSelectClick">数据查看</el-button>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
......@@ -137,9 +137,10 @@
<el-col :span="14" v-if="ruleForm.qlxx">
<el-form-item :class="flag ? 'marginBot0' : ''" label="共有方式:">
<el-radio-group :disabled="$route.query.viewtype==1" v-model="ruleForm.slywxx.gyfs">
<el-radio label="1">单独所有</el-radio>
<el-radio label="2">共同共有</el-radio>
<el-radio label="3">按份所有</el-radio>
<el-radio label="0">单独所有</el-radio>
<el-radio label="1">共同共有</el-radio>
<el-radio label="2">按份所有</el-radio>
<el-radio label="3">其它共有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
......@@ -188,6 +189,7 @@
import InformationTable from "@/views/workflow/components/InformationTable";
import {Init, saveBatchData} from "@/api/fwsyqFlow.js";
import { mapGetters } from "vuex";
import SERVER from "@/api/config";
export default {
async created () {
this.propsParam = this.$attrs;
......@@ -252,8 +254,8 @@ export default {
};
},
methods: {
onClick(){
this.$popup("房屋信息比对","ywbl/fdcq2/slxxCompareDetai",
dataSelectClick(){
this.$popup("房屋信息比对",SERVER.SERVERAPI + "/rest/ywbl/fdcq2/slxxCompareDetai",
{
formData: {
bsmSldy: this.propsParam.bsmSldy,
......
......@@ -135,7 +135,8 @@ export default {
this.queryClick()
},
ywhClick (item) {
const { href } = this.$router.resolve('/workFrameView?bsmSlsq=' + item.bsmSlsq + '&bestepid=' + item.bestepid + '&bsmBusiness=' + '&viewtype=1');
// const { href } = this.$router.resolve('/workFrameView?bsmSlsq=' + item.bsmSlsq + '&bestepid=' + item.bestepid + '&bsmBusiness=' + '&viewtype=1');
const { href } = this.$router.resolve('/workFrameViewcs?bsmSlsq=' + item.bsmSlsq + '&bestepid=' + item.bestepid + '&bsmBusiness=' + '&viewtype=1');
window.open(href, '_blank');
}
}
......
......@@ -198,7 +198,7 @@ export default {
this.bdcdysz = val
},
handleLpbClick (item) {
this.$popup('楼盘表', 'components/bjlp/index', {
this.$popup('楼盘表', 'lpb/index', {
width: '85%',
formData: {
bsm: item.bsm
......
<template>
<dialogBox :title="title" width="85%" :isButton="false" :isMain="true" @closeDialog="closeDialog" v-model="myValue">
<component :is="editItem" @closeDialog="closeDialog" v-bind="$attrs" :isJump="isJump" id="slectBdc"
@updateDialog="updateDialog" :djywbm="djywbm" :key="key" :djqxObj="djqxObj"/>
@updateDialog="updateDialog" :djywbm="djywbm" :key="key" :djqxObj="djqxObj" />
</dialogBox>
</template>
<script>
......@@ -11,11 +11,11 @@ export default {
isJump: { type: Boolean, default: false },
value: { type: Boolean, default: true },
djywbm: { type: String, default: '' },
djqxObj: { type: Object, default: {} }
djqxObj: { type: Object, default: () => { } }
},
data () {
return {
title:"",
title: "",
key: 0,
editItem: '',
myValue: this.value
......@@ -37,7 +37,7 @@ export default {
},
methods: {
loadView (view) {
this.title ="申请业务:"+this.djqxObj.djywmc;
this.title = "申请业务:" + this.djqxObj.djywmc;
return r => require.ensure([], () => r(require(`./components/${view}.vue`)))
},
closeDialog () {
......
......@@ -114,7 +114,7 @@ export default {
});
},
handleLpbClick (item) {
this.$popup('楼盘表', 'components/bjlp/index', {
this.$popup('楼盘表', 'lpb/index', {
width: '90%',
height: "92%",
formData: {
......
......@@ -96,11 +96,11 @@ export default {
//打开楼盘表
openlpbClick (scope) {
// var zrzbsm = scope.row.bsm;
this.$popup('楼盘表', 'components/bjlp/index', {
this.$popup('楼盘表', 'lpb/index', {
width: '90%',
height: "92%",
formData: {
bsm: ''
bsm: scope.row.bsm
}
})
// getLpb({ zrzbsm: zrzbsm })
......