32435f18 by xiaomiao

Merge branch 'dev' of http://yun.pashanhoo.com:9090/bdc/bdcdj-web into dev

2 parents f49cf06c 95689d6f
/*
* @Description: 材料信息
* @Autor: renchao
* @LastEditTime: 2023-05-16 14:04:42
* @LastEditTime: 2023-07-28 14:31:00
*/
import request from '@/utils/request'
let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl'))
......@@ -75,6 +75,22 @@ export function uploadSjClmx (data) {
}
/**
* @description: 上传duo个文件
* @param {*} data
* @author: renchao
*/
export function uploadBatch (data) {
return request({
url: SERVER.SERVERAPI + '/rest/ywbl/clxx/uploadBatch',
method: 'post',
headers: {
'Content-Type': 'multipart/form-data'
},
data
})
}
/**
* @description: 删除上传文件
* @param {*} bsmClmx
* @author: renchao
......
/*
* @Description: 房地产权多幢接口
* @Autor: ssq
* @LastEditTime: 2023年07月27日 19:40:34
*/
import request from '@/utils/request'
let SERVER = window.config ? window.config : JSON.parse(localStorage.getItem('ApiUrl'))
/**
* @description: 初始化内容
* @param {*} data
* @author: 单帅旗
*/
export function Init (data) {
let apiUrl = "";
switch (data.get("djlx")) {
case "100":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/fdcq1lr/firstInit";
break;
case "200":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/fdcq1lr/transferInit";
break;
case "300":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/fdcq1lr/changeInit";
break;
case "400":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/fdcq1lr/logoutInit";
break;
case "500":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/fdcq1lr/riviseInit";
break;
case "901":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/fdcq1lr/renewalInit";
break;
case "902":
apiUrl = SERVER.SERVERAPI + "/rest/ywbl/fdcq1lr/replaceInit";
break;
}
return request({
url: apiUrl,
method: 'post',
data
})
}
/**
* @description: 首次登记提交
* @param {*} data
* @author: ssq
*/
export function saveBatchData (data) {
return request({
url: SERVER.SERVERAPI + "/rest/ywbl/fdcq1lr/saveBatchData",
method: 'post',
data
})
}
/**
* @description: 保存
* @param {*} data
* @author: ssq
*/
export function saveData (data) {
return request({
url: SERVER.SERVERAPI + "/rest/ywbl/fdcq1lr/saveData",
method: 'post',
data
})
}
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-04 11:14:25
* @LastEditTime: 2023-07-28 15:49:38
*/
const getters = {
sidebar: state => state.app.sidebar,
......@@ -20,6 +20,7 @@ const getters = {
djbxx: state => state.djbxx.djbxx,
// workflow
isRefresh: state => state.user.isRefresh,
workFresh: state => state.user.workFresh,
yjsqOptions: state => state.workflow.yjsqOptions
}
export default getters
......
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-04-12 10:47:33
* @LastEditTime: 2023-07-28 15:45:21
*/
import { getUserInfo } from '@/api/user'
const state = {
name: '',
avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
isRefresh: false,
// 业务流程刷新
workFresh: false
}
const mutations = {
SET_NAME: (state, data) => {
......@@ -15,6 +17,9 @@ const mutations = {
},
REFRESH: (state, data) => {
state.isRefresh = data
},
SETWORKFRESH: (state, data) => {
state.workFresh = data
}
}
......@@ -29,6 +34,9 @@ const actions = {
refreshPage ({ commit }, data) {
commit('REFRESH', data)
},
reWorkFresh ({ commit }, data) {
commit('SETWORKFRESH', data)
}
}
export default {
namespaced: true,
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-04 16:07:37
* @LastEditTime: 2023-07-28 14:59:55
-->
<template>
<div class="rlPopup">
......@@ -50,7 +50,7 @@
<script>
import PhotoZoom from '@/components/PhotoZoom'
import { getAltimeterInfo, getUuid } from '@/utils/operation.js'
import { uploadSjClmx, deleteClmx } from "@/api/clxx.js";
import { uploadBatch, deleteClmx } from "@/api/clxx.js";
import publicPicture from '@/components/publicPicture/index.vue'
export default {
name: 'PreviewImage',
......@@ -77,7 +77,7 @@
scale: 1,
degree: 0
},
maxLength: 0,
maxFileLength: 0,
// 缩略图
thumbnailImages: [],
showViewer: false,
......@@ -252,26 +252,29 @@
* @param {*} files
* @author: renchao
*/
async handleChange (file, files) {
// 清空 fileList 数组
let length = files.length;
this.maxLength = Math.max(length, this.maxLength)
this.$refs.upload.clearFiles();
async handleChange (file, fileList) {
let length = fileList.length;
this.maxFileLength = Math.max(length, this.maxFileLength)
console.log(fileList, this.maxFileLength, 'this.maxFileLength');
var formData = new FormData();
setTimeout(() => {
if (length !== this.maxLength) return
var formData = new FormData();
files.forEach(file => {
formData.append('file', file.raw)
if (this.maxFileLength !== length) {
return
}
fileList.forEach(item => {
formData.append('file', item.raw)
})
formData.append("bsmSj", this.previewImg.bsmSj);
formData.append("bsmSlsq", this.previewImg.bsmSlsq);
uploadSjClmx(formData).then((res) => {
uploadBatch(formData).then((res) => {
if (res.code == 200) {
this.$emit('updateList', res.result)
this.$message({
message: '上传成功!',
type: 'success'
})
this.$refs.upload.clearFiles();
this.maxFileLength = 0
}
})
}, 0)
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-28 09:35:38
* @LastEditTime: 2023-07-28 11:37:31
-->
<template>
<div class="clxx">
......@@ -38,8 +38,7 @@
import clxxAddDialog from "../dialog/clxxAddDialog.vue";
import clxxDetailDialog from "../dialog/clxxDetailDialog.vue";
import imagePreview from '@/views/components/imagePreview.vue'
import { InitClml, saveClml, deleteSjClml, moveClml } from "@/api/clxx.js";
import { popupDialog } from "@/utils/popup.js";
import { InitClml, saveClml } from "@/api/clxx.js";
export default {
components: { clxxAddDialog, imagePreview, clxxDetailDialog },
data () {
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-06-25 11:13:07
* @LastEditTime: 2023-07-28 15:47:25
-->
<template>
<div>
......@@ -179,7 +179,7 @@
this.$popupCacel()
this.$message.success("提交成功")
//刷新列表
store.dispatch('user/refreshPage', true)
store.dispatch('user/reWorkFresh', true)
} else {
this.$message.error(res.message)
}
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-24 10:22:41
* @LastEditTime: 2023-07-28 15:45:56
-->
<template>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
......@@ -123,9 +123,6 @@
getUnclaimedBdcqz({ bsmSlsq: Vue.prototype.$currentRoute.query.bsmSlsq }).then(res => {
if (res.code === 200) {
this.tableData.data = res.result.list;
if(this.tableData.data.length>0) {
this.ruleForm.lzrxm = this.tableData.data[0].qlr
}
this.ruleForm.fzrmc = res.result.fzrmc
this.ruleForm.fzsj = res.result.fzsj
this.ruleForm.fzsl = res.result.fzsl
......@@ -160,7 +157,7 @@
if (res.code == 200) {
this.$message.success('保存成功');
//刷新列表
store.dispatch('user/refreshPage', true)
store.dispatch('user/reWorkFresh', true)
this.$popupCacel()
} else {
this.$message.error(res.message)
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-07-25 09:26:10
* @LastEditTime: 2023-07-28 16:28:43
-->
<template>
<div class="from-clues">
......@@ -40,9 +40,11 @@
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import store from '@/store/index.js'
import table from "@/utils/mixin/table";
import { getCertificateList } from "@/api/bdcqz.js";
import { datas } from "../javascript/fzxxdata";
import { getCertificateList } from "@/api/bdcqz.js";
export default {
mixins: [table],
data () {
......@@ -66,6 +68,16 @@
created () {
this.ableOperation = this.$parent.currentSelectTab.ableOperation
},
computed: {
...mapGetters(['workFresh'])
},
watch: {
workFresh: {
handler (newVal, oldVal) {
if (newVal) this.queryClick()
}
}
},
methods: {
/**
* @description: queryClick
......@@ -84,6 +96,7 @@
* @author: renchao
*/
zslqClick () {
store.dispatch('user/reWorkFresh', false)
this.$popupDialog("不动产权证领取", "workflow/components/dialog/zslq", {}, '80%', true)
}
}
......
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-06-25 11:15:01
* @LastEditTime: 2023-07-28 15:46:24
-->
<template>
<div class="szxx">
......@@ -74,6 +74,7 @@
</template>
<script>
import { mapGetters } from 'vuex'
import store from '@/store/index.js'
import { getSlsqBdcqzList, invalidCertificate } from "@/api/bdcqz.js";
export default {
props: {},
......@@ -92,10 +93,10 @@
};
},
computed: {
...mapGetters(['isRefresh'])
...mapGetters(['workFresh'])
},
watch: {
isRefresh: {
workFresh: {
handler (newVal, oldVal) {
if (newVal) this.list()
}
......@@ -130,6 +131,7 @@
* @author: renchao
*/
openZsylDialog (item, type) {
store.dispatch('user/reWorkFresh', false)
if (type == 1) {
//证书预览
this.$popupDialog("证书预览", "workflow/components/dialog/zsyl", { bdcqz: item, bsmSlsq: this.$route.query.bsmSlsq }, "70%", true);
......
......@@ -23,6 +23,9 @@ export function getForm(tabName, djywbm) {
form = require("@/views/ywbl/slsqxx/jsydsyq/slxx300.vue");
break;
//国有建设用地使用权/房屋所有权
case "fwsyqdzslxx":
form = require("@/views/ywbl/slsqxx/fdcq1/slxx.vue");
break;
case "fwsyqslxx100":
case "fwsyqslxx200":
case "fwsyqslxx400":
......
<!--
* @Description: 房屋多幢受理信息
* @Autor: ssq
* @LastEditTime: 2023年07月27日 19:38:26
-->
<template>
<div class="slxx">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" :label-position="flag ? 'top' : ''" :inline="flag"
label-width="120px">
<div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
<div class="slxx_title title-block">
受理信息
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="业务号:">
<el-input disabled v-model="ruleForm.flow.ywh"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理人员:">
<el-input disabled v-model="ruleForm.slsq.slry"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="受理时间:">
<el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.slsq">
<el-col :span="8">
<el-form-item label="权利类型:">
<el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记类型:">
<el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="登记情形:">
<el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
不动产单元情况
<div class="triangle"></div>
</div>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
<el-form-item label="不动产单元号:">
<el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="坐落:">
<el-input disabled v-model="ruleForm.qlxx.zl"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.fdcq2">
<el-col :span="8">
<el-form-item label="土地使用期限:">
<el-input disabled v-model="ruleForm.fdcq2.tdsyqx"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="规划用途名称:">
<el-input disabled v-model="ruleForm.zdjbxx.ghytmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="房屋性质:">
<el-input disabled v-model="ruleForm.fdcq2.fwxzmc"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.qlxx">
<el-col :span="8">
<el-form-item label="房屋结构:">
<el-input disabled v-model="ruleForm.fdcq2.fwjgmc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所在层:">
<el-input disabled v-model="ruleForm.fdcq2.szc"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="总层数:">
<el-input disabled v-model="ruleForm.fdcq2.zcs"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10" v-if="ruleForm.fdcq2">
<el-col :span="8">
<el-form-item label="竣工时间:">
<el-input disabled v-model="ruleForm.fdcq2.jgsj"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建筑面积:">
<el-input disabled v-model="ruleForm.qlxx.mj"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="专有建筑面积:">
<el-input disabled v-model="ruleForm.fdcq2.zyjzmj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="8">
<el-form-item label="分摊建筑面积:">
<el-input disabled v-model="ruleForm.fdcq2.ftjzmj"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="slxx_title title-block">
土地用途
<div class="triangle"></div>
</div>
<tdytTable
:ableOperation="ableOperation"
:tableData="ruleForm.tdytqxList"
@upDateTdytxxList="upDateTdytxxList" />
<div class="slxx_title title-block">
权利人信息
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col :span="14" v-if="ruleForm.qlxx">
<el-form-item label="共有方式:">
<el-radio-group :disabled="!ableOperation" @change="showCZInfo"
v-model="ruleForm.sldy.gyfs">
<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>
<el-col :span="5">
<el-form-item label="发证方式:">
<el-radio-group v-model="ruleForm.slsq.fzfs" :disabled="!ableOperation">
<el-radio label="1">小证</el-radio>
<el-radio label="2">大证</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="5" v-show="ruleForm.sldy.gyfs == '2'">
<el-form-item label="是否分别持证:">
<el-radio-group v-model="ruleForm.sldy.sqfbcz" :disabled="!ableOperation">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="5" v-show="ruleForm.sldy.gyfs == '2'">
<el-form-item label="持证人:">
<el-select v-model="ruleForm.slsq.czr" placeholder="持证人" :disabled="!ableOperation">
<el-option v-for="item in czrOptions" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<qlrCommonTable @upDateQlrxxList="upDateQlrxxList" :tableData="ruleForm.qlrList" :disabled="!ableOperation"
:gyfs="ruleForm.slsq.gyfs" />
<div v-if="ruleForm.ywrList && ruleForm.slsq.djlx == '200'">
<div class="slxx_title title-block">
义务人信息
<div class="triangle"></div>
</div>
<qlrCommonTable v-if="ruleForm.qlxx" @upDateQlrxxList="upDateYwrxxList" :tableData="ruleForm.ywrList"
:gyfs="ruleForm.qlxx.gyfs" />
</div>
<div class="slxx_title title-block">
登记原因
<div class="triangle"></div>
</div>
<el-row :gutter="10">
<el-col>
<el-form-item v-if="ruleForm.sldy" label="登记原因:" prop="djyy">
<el-input class="textArea" type="textarea" :disabled="!ableOperation"
v-model="ruleForm.fdcq2.djyy">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row class="btn" v-if="ableOperation">
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script>
import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
import tdytTable from "@/views/workflow/components/tdytTable";
import { Init, saveData } from "@/api/workflow/fwsyq1Flow.js";
import { mapGetters } from "vuex";
export default {
mounted () {
this.ableOperation = this.$parent.currentSelectTab.ableOperation
this.propsParam = this.$attrs;
var formdata = new FormData();
formdata.append("bsmSldy", this.propsParam.bsmSldy);
formdata.append("djlx", this.propsParam.djlx);
formdata.append("isEdit", this.ableOperation);
Init(formdata).then((res) => {
if (res.code === 200 && res.result) {
this.ruleForm = {
...res.result,
...res.result.qlxxdatas,
}
//初始化发证方式,1:小证,2:大正
this.ruleForm.slsq.fzfs == null ? this.ruleForm.slsq.fzfs = '1' : this.ruleForm.slsq.fzfs;
}
});
},
components: { qlrCommonTable, tdytTable },
computed: {
...mapGetters(["dictData", "flag"]),
},
data () {
return {
disabled: true,
tdytOption: [],
czrOptions: [],
ruleForm: {
flow: {
ywh: ''
},
qlxx: {
mj: ''
},
sldy: {
gyfs: ''
},
slsq: {
},
fdcq2: {
zyjzmj: '',
ftjzmj: ''
},
zdjbxx: {
ghytmc: ''
}
},
//传递参数
propsParam: this.$attrs,
//表单是否可操作
ableOperation: true,
rules: {}
}
},
methods: {
// 更新土地用途信息
/**
* @description: 更新土地用途信息
* @param {*} val
* @author: renchao
*/
upDateTdytxxList (val) {
this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
this.key++;
},
// 更新权利人信息
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateQlrxxList (val) {
this.ruleForm.qlrList = _.cloneDeep(val);
},
/**
* @description: showCZInfo
* @author: renchao
*/
showCZInfo () {
console.log(this.ruleForm.slsq.gyfs);
},
// 更新权利人信息
/**
* @description: 更新权利人信息
* @param {*} val
* @author: renchao
*/
upDateYwrxxList (val) {
this.ruleForm.ywrList = _.cloneDeep(val);
},
/**
* @description: onSubmit
* @author: renchao
*/
onSubmit () {
saveData(this.ruleForm).then((res) => {
if (res.code === 200) {
this.$message({
showClose: true,
message: "保存成功!",
type: "success",
});
this.$store.dispatch('user/refreshPage', true);
} else {
this.$message({
showClose: true,
message: res.message,
type: "error"
})
}
})
}
}
}
</script>
<style scoped lang='scss'>
@import "~@/styles/public.scss";
/deep/.el-form {
display: flex;
flex-direction: column;
height: calc(100vh - 130px);
}
/deep/.el-form-item__label {
padding: 0;
}
/deep/.el-radio {
margin-right: 10px;
}
/deep/.el-select {
width: 100%;
}
/deep/.el-form-item {
margin-bottom: 8px;
}
.marginBot0 {
margin-bottom: 0 !important;
}
.slxx {
box-sizing: border-box;
}
.slxx_con {
flex: 1;
height: 100%;
background-color: #ffffff;
overflow-y: auto;
padding-right: 3px;
overflow-x: hidden;
}
.submit_btn {
height: 50px;
}
.slxx_title {
border-bottom: 1px solid $borderColor;
padding-left: 10px;
padding-bottom: 5px;
margin-bottom: 10px;
margin-top: 5px;
font-size: 16px;
font-weight: 500;
color: #4a4a4a;
}
.btn {
text-align: center;
padding-top: 10px;
height: 36px;
background-color: #ffffff;
padding: 5px 0;
}
.textArea {
/deep/.el-textarea__inner {
min-height: 90px !important;
}
}
/deep/.el-form-item__label {
padding-bottom: 0px;
}
</style>