c3242e2d by 蔡俊立

功能完善

1 parent de3d2764
1 import request from '@/utils/request' 1 import request from '@/utils/request'
2 import SERVER from './config' 2 import SERVER from './config'
3 // 根据条件进行列表查询 3 // 获取家庭房产列表
4 export function getJtfcPage (data) { 4 export function getJtfcPage (data) {
5 return request({ 5 return request({
6 url: SERVER.SERVERAPI + '/rest/sqcx/jtfc/getJtfcPage', 6 url: SERVER.SERVERAPI + '/rest/sqcx/jtfc/getJtfcPage',
...@@ -8,6 +8,16 @@ export function getJtfcPage (data) { ...@@ -8,6 +8,16 @@ export function getJtfcPage (data) {
8 data 8 data
9 }) 9 })
10 } 10 }
11
12 // 获取房屋明细列表
13 export function getFwmxPage (data) {
14 return request({
15 url: SERVER.SERVERAPI + '/rest/sqcx/jtfc/getFwmxPage',
16 method: 'post',
17 data
18 })
19 }
20
11 // 新增申请查询家庭房产信息 21 // 新增申请查询家庭房产信息
12 export function addJtfcCxjgXx (data) { 22 export function addJtfcCxjgXx (data) {
13 return request({ 23 return request({
...@@ -16,6 +26,16 @@ export function addJtfcCxjgXx (data) { ...@@ -16,6 +26,16 @@ export function addJtfcCxjgXx (data) {
16 data 26 data
17 }) 27 })
18 } 28 }
29
30 // 新增申请查询房屋明细信息
31 export function addFwmxCxjgXx (data) {
32 return request({
33 url: SERVER.SERVERAPI + '/rest/sqcx/jtfc/addFwmxCxjgXx',
34 method: 'post',
35 data
36 })
37 }
38
19 // 获取申请查询记录详细信息 39 // 获取申请查询记录详细信息
20 export function getJtfcInfo (params) { 40 export function getJtfcInfo (params) {
21 return request({ 41 return request({
......
1 <template>
2 <dialogBox title="房屋明细查询" @closeDialog="closeDialog" width="70%" :isButton="false" v-model="myValue">
3 <el-steps :active="activeStep" finish-status="success">
4 <el-step title="条件录入"></el-step>
5 <el-step title="结果查询"></el-step>
6 <el-step title="结果展示"></el-step>
7 </el-steps>
8 <div class="jtfccx-edit" v-show="!isSearch">
9 <div class="jtfccx-edit-con">
10 <b class="title"></b>
11 <el-form :model="form" label-width="120px">
12 <el-row>
13 <el-col :span="6">
14 <el-form-item label="查询用途" label-width="90px">
15 <el-input v-model="form.djSqcxDO.cxyt" class="width200px"></el-input>
16 </el-form-item>
17 </el-col>
18 <el-col :span="6">
19 <el-form-item label="不动产权证号" label-width="120px">
20 <el-input v-model="form.djSqcxDO.bdcqzh" class="width200px"></el-input>
21 </el-form-item>
22 </el-col>
23 <el-col :span="12">
24 <el-form-item label="与产权人的关系">
25 <el-radio-group v-model="form.djSqcxDO.ycqrgx">
26 <el-radio label="1">房屋权利人</el-radio>
27 <el-radio label="2">产权利害关系人</el-radio>
28 <el-radio label="3">委托人</el-radio>
29 </el-radio-group>
30 </el-form-item>
31 </el-col>
32 </el-row>
33 </el-form>
34 <lb-table :column="sqrColumns" key="sqr1" :data="form.sqrList" :maxHeight="200" heightNumSetting
35 :pagination="false">
36 </lb-table>
37 <b class="title">权利人</b>
38 <lb-table :column="qlrColumns" key="ql2r" :data="form.qlrList" :maxHeight="200" heightNumSetting
39 :pagination="false">
40 </lb-table>
41 <div class="submit-button" style="padding-bottom:50px">
42 <el-button @click="resetClick" v-show="!isSearch">重置</el-button>
43 <el-button type="primary" @click="queryChick" v-show="!isSearch">查询</el-button>
44 <el-button @click="closeDialog">关闭</el-button>
45 </div>
46 </div>
47 </div>
48 <div>
49 <dydjbInfo v-show="isSearch"/>
50 </div>
51 </dialogBox>
52 </template>
53
54 <script>
55 import { addFwmxCxjgXx, getJtfcInfo,printJtcfInfo } from "@/api/sqcx";
56 import { getPrintTemplateByCode } from "@/api/system";
57 import { datas, sendThis } from "./dydjbdata";
58 import { getLodop } from "@/utils/LodopFuncs"
59 import dydjbInfo from "./dydjbInfo.vue";
60 import { mapGetters } from "vuex";
61 export default {
62 computed: {
63 ...mapGetters(["dictData"]),
64 },
65 components: { dydjbInfo },
66 props: {
67 value: { type: Boolean, default: false },
68 sqcxBsm: { type: String, default: "" },
69 },
70 mounted () {
71
72 },
73 data () {
74 return {
75 activeStep: 0,
76 myValue: this.value,
77 //是否查询
78 isSearch: false,
79 //查询结果列表字段
80 cxjgColumns: datas.columns(),
81 //申请人列表字段
82 sqrColumns: datas.sqrCol(),
83 //权利人列表字段
84 qlrColumns: datas.qlrCol(),
85 newData: {
86 sqrxm: "",
87 sqrzjlxbm: "",
88 sqrzjhm: "",
89 lxdh: "",
90 inputErr: false,
91 },
92 form: {
93 djSqcxDO: { ycqrgx: "1", cxyt: "",bdcqzh: "" },
94 sqrList: [],
95 qlrList: [],
96 cxjgList: [],
97 dyjlList: [],
98 },
99 };
100 },
101 watch: {
102 value (val) {
103 this.myValue = val;
104 let that = this
105 if (val) {
106 this.form.sqrList = []
107 this.form.qlrList = []
108 this.isSearch = false
109 if (this.sqcxBsm == "") {
110 that.add("sqr");
111 that.add("qlr");
112 } else {
113 that.loadData();
114 }
115 }
116 },
117 "form.djSqcxDO.ycqrgx" (val) {
118 if (val == "1") {
119 this.form.qlrList = _.cloneDeep(this.form.sqrList);
120 } else {
121 this.form.qlrList = [];
122 this.add("qlr");
123 }
124 },
125 "form.sqrList" (val) {
126 if (this.form.djSqcxDO.ycqrgx == '1') {
127 this.form.qlrList = _.cloneDeep(this.form.sqrList)
128 }
129 }
130 },
131 methods: {
132 closeDialog () {
133 this.$emit("input", false);
134 this.activeStep = 0;
135 this.form = {
136 djSqcxDO: { ycqrgx: "1", cxyt: "" ,bdcqzh: ""},
137 sqrList: [],
138 qlrList: [],
139 cxjgList: [],
140 dyjlList: [],
141 }
142 },
143 //加载详细信息
144 loadData () {
145 this.$startLoading();
146 getJtfcInfo({ sqcxBsm: this.sqcxBsm }).then((res) => {
147 this.$endLoading();
148 if (res.code == 200) {
149 this.form = res.result;
150 this.isSearch = true;
151 }
152 });
153 },
154 //查询结果
155 queryChick () {
156 this.$startLoading();
157 this.activeStep = 1;
158 addFwmxCxjgXx(this.form).then((res) => {
159 this.$endLoading();
160 if (res.code == 200) {
161 this.form = res.result;
162 this.activeStep = 2;
163 this.isSearch = true;
164 this.$parent.queryClick();
165 }
166 });
167 },
168 //重置
169 resetClick () {
170 this.form.djSqcxDO = { ycqrgx: "1", cxyt: "",bdcqzh: "" };
171 this.form.sqrList = _.cloneDeep([this.newData]);
172 this.form.qlrList = _.cloneDeep([this.newData]);
173 this.form.cxjgList = [];
174 this.form.dyjlList = [];
175 this.isSearch = false;
176 },
177 handleRead (scope) { },
178 //添加申请人或权利人
179 add (type) {
180 if (type == "sqr") {
181 this.form.sqrList.push(_.cloneDeep(this.newData));
182 } else {
183 this.form.qlrList.push(_.cloneDeep(this.newData));
184 }
185 },
186 //移除申请人或权利人
187 remove (index, row, type) {
188 if (type == "sqr") {
189 this.form.sqrList.splice(index, 1);
190 } else {
191 this.form.qlrList.splice(index, 1);
192 }
193 },
194 //电话号码校验
195 teltest (row) {
196 const reg = /^1([38]\d|5[0-35-9]|7[3678])\d{8}$/;
197 if (row.lxdh == "" || row.lxdh.length <= 10 || !reg.test(row.lxdh)) {
198 row.inputErr = true;
199 return false;
200 } else {
201 row.inputErr = false;
202 return true;
203 }
204 },
205 },
206 };
207 </script>
208 <style scoped lang="scss">
209 @import "~@/styles/mixin.scss";
210 @import "~@/styles/public.scss";
211
212 .title {
213 padding-bottom: 10px;
214 margin-bottom: 10px;
215 display: block;
216 border-bottom: 1px solid $borderColor;
217 }
218
219 .jtfccx-edit {
220 @include flex;
221 flex-direction: column;
222 overflow-y: hidden;
223 max-height: 87vh;
224 padding: 0 2px;
225
226 .jtfccx-edit-con {
227 flex: 1;
228 height: 100%;
229 overflow-y: scroll;
230 }
231
232 .submit-button {
233 text-align: center;
234 height: 52px;
235 padding-top: 10px;
236 background-color: #fff;
237 }
238 }
239 </style>
1 import filter from '@/utils/filter.js'
2 let vm = null
3
4 const sendThis = (_this) => {
5 vm = _this
6 }
7 class data extends filter {
8 constructor() {
9 super()
10 }
11 columns () {
12 return [
13 {
14 prop: 'qszt',
15 label: '权属状态',
16 },
17 {
18 prop: 'bdcqzh',
19 label: '不动产权证号',
20 },
21 {
22 prop: 'djsj',
23 label: '登记时间',
24 },
25 {
26 prop: 'wqhth',
27 label: '合同号',
28 },
29 {
30 prop: 'wqsj',
31 label: '网签时间',
32 },
33 {
34 prop: 'bdcdyh',
35 label: '不动产单元号',
36 },
37 {
38 prop: 'gyfs',
39 label: '共有方式',
40 },
41 {
42 prop: 'qlrmc',
43 label: '权利人',
44 },
45 {
46 prop: 'zjhm',
47 label: '证件号',
48 },
49 {
50 prop: 'fdzl',
51 label: '房地坐落',
52 },
53 {
54 prop: 'fwmj',
55 label: '建筑面积(㎡)',
56 },
57 {
58 prop: 'fwyt',
59 label: '房屋用途',
60 },
61 {
62
63 label: '登记状态',
64 align: 'center',
65 fixed: 'right',
66 render: (h, scope) => {
67 if(scope.row.dyzt != '0' && scope.row.cfzt != '0'){
68 return <div>抵押、查封</div>
69 }
70 if(scope.row.dyzt != '0'){
71 return <div>抵押</div>
72 }
73 if(scope.row.cfzt != '0'){
74 return <div>查封</div>
75 }
76 }
77 }
78 ]
79 }
80 sqrCol () {
81 return [
82 {
83 width: "60",
84 renderHeader: (h, scope) => {
85 return (
86 <i
87 class="el-icon-plus pointer"
88 onClick={() => {
89 vm.add("sqr");
90 }}
91 style="color:#409EFF"
92 ></i>
93 );
94 },
95 render: (h, scope) => {
96 return (
97 <i
98 class="el-icon-minus pointer"
99 onClick={() => {
100 vm.remove(scope.$index, scope.row, "sqr");
101 }}
102 ></i>
103 );
104 },
105 },
106 {
107 width: "150",
108 label: "身份证读卡器",
109 render: (h, scope) => {
110 return (
111 <div>
112 <el-button
113 type="text"
114 icon="el-icon-edit-outline"
115 onClick={() => {
116 vm.handleRead(scope);
117 }}
118 >
119 读取
120 </el-button>
121 </div>
122 );
123 },
124 },
125 {
126 width: "150",
127 prop: "sqrxm",
128 label: "姓名/名称",
129 render: (h, scope) => {
130 return (
131 <el-input
132 placeholder="姓名/名称"
133 value={scope.row[scope.column.property]}
134 onInput={(val) => {
135 scope.row[scope.column.property] = val;
136 }}
137 ></el-input>
138 );
139 },
140 },
141 {
142 prop: "sqrzjlxbm",
143 label: "证件种类",
144 render: (h, scope) => {
145 return (
146 <el-select
147 class="width100"
148 clearable
149 value={scope.row[scope.column.property]}
150 onChange={(val) => {
151 scope.row[scope.column.property] = val;
152 }}
153 >
154 {vm.dictData["A30"].map((option) => {
155 return (
156 <el-option
157 label={option.dname}
158 value={option.dcode}
159 ></el-option>
160 );
161 })}
162 </el-select>
163 );
164 },
165 },
166 {
167 prop: "sqrzjhm",
168 label: "证件号",
169 render: (h, scope) => {
170 return (
171 <el-input
172 placeholder="证件号"
173 value={scope.row[scope.column.property]}
174 onInput={(val) => {
175 scope.row[scope.column.property] = val;
176 }}
177 maxlength="21"
178 ></el-input>
179 );
180 },
181 },
182 {
183 prop: "lxdh",
184 label: "联系电话",
185 render: (h, scope) => {
186 return (
187 <div class="typePhone">
188 <el-input
189 placeholder="联系电话"
190 value={scope.row[scope.column.property]}
191 onInput={(val) => {
192 scope.row[scope.column.property] = val;
193 }}
194 onBlur={(val) => {
195 vm.teltest(scope.row);
196 }}
197 type="tel"
198 maxlength="11"
199 ></el-input>
200 <span
201 v-show={scope.row.inputErr}
202 style={{
203 fontSize: "12px",
204 color: "red",
205 position: "absolute",
206 bottom: "-2px",
207 left: "0",
208 }}
209 >
210 请输入正确手机号
211 </span>
212 </div>
213 );
214 },
215 },
216 ]
217 }
218 qlrCol () {
219 return [
220 {
221 width: "60",
222 renderHeader: (h, scope) => {
223 return (
224 <i
225 class="el-icon-plus pointer"
226 onClick={() => {
227 vm.add("qlr");
228 }}
229 style="color:#409EFF"
230 ></i>
231 );
232 },
233 render: (h, scope) => {
234 return (
235 <i
236 class="el-icon-minus pointer"
237 onClick={() => {
238 vm.remove(scope.$index, scope.row, "qlr");
239 }}
240 ></i>
241 );
242 },
243 },
244 {
245 width: "150",
246 label: "身份证读卡器",
247 render: (h, scope) => {
248 return (
249 <div>
250 <el-button
251 type="text"
252 icon="el-icon-edit-outline"
253 onClick={() => {
254 vm.handleRead(scope);
255 }}
256 >
257 读取
258 </el-button>
259 </div>
260 );
261 },
262 },
263 {
264 width: "150",
265 prop: "sqrxm",
266 label: "姓名/名称",
267 render: (h, scope) => {
268 return (
269 <el-input
270 placeholder="姓名/名称"
271 value={scope.row[scope.column.property]}
272 onInput={(val) => {
273 scope.row[scope.column.property] = val;
274 }}
275 ></el-input>
276 );
277 },
278 },
279 {
280 prop: "sqrzjlxbm",
281 label: "证件种类",
282 render: (h, scope) => {
283 return (
284 <el-select
285 class="width100"
286 value={scope.row[scope.column.property]}
287 onChange={(val) => {
288 scope.row[scope.column.property] = val;
289 }}
290 >
291 {vm.dictData["A30"].map((option) => {
292 return (
293 <el-option
294 label={option.dname}
295 value={option.dcode}
296 ></el-option>
297 );
298 })}
299 </el-select>
300 );
301 },
302 },
303 {
304 prop: "sqrzjhm",
305 label: "证件号",
306 render: (h, scope) => {
307 return (
308 <el-input
309 placeholder="证件号"
310 value={scope.row[scope.column.property]}
311 onInput={(val) => {
312 scope.row[scope.column.property] = val;
313 }}
314 maxlength="21"
315 ></el-input>
316 );
317 },
318 },
319 {
320 prop: "lxdh",
321 label: "联系电话",
322 render: (h, scope) => {
323 return (
324 <div class="typePhone">
325 <el-input
326 placeholder="联系电话"
327 value={scope.row[scope.column.property]}
328 onInput={(val) => {
329 scope.row[scope.column.property] = val;
330 }}
331 onBlur={(val) => {
332 vm.teltest(scope.row);
333 }}
334 type="tel"
335 maxlength="11"
336 ></el-input>
337 <span
338 v-show={scope.row.inputErr}
339 style={{
340 fontSize: "12px",
341 color: "red",
342 position: "absolute",
343 bottom: "-2px",
344 left: "0",
345 }}
346 >
347 请输入正确手机号
348 </span>
349 </div>
350 );
351 },
352 },
353 ]
354 }
355 }
356 let datas = new data()
357 export {
358 datas,
359 sendThis
360 }
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
29 <el-col :span="3" class="btnColRight"> 29 <el-col :span="3" class="btnColRight">
30 <el-form-item> 30 <el-form-item>
31 <el-button type="primary" native-type="submit" @click="queryClick">查询</el-button> 31 <el-button type="primary" native-type="submit" @click="queryClick">查询</el-button>
32 <!-- <el-button @click="moreQueryClick()">高级查询</el-button> --> 32 <el-button type="primary" @click="openAddDialog">新增</el-button>
33 </el-form-item> 33 </el-form-item>
34 </el-col> 34 </el-col>
35 </el-row> 35 </el-row>
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
42 @p-current-change="handleCurrentChange" :column="tableData.columns" :data="tableData.data"> 42 @p-current-change="handleCurrentChange" :column="tableData.columns" :data="tableData.data">
43 </lb-table> 43 </lb-table>
44 </div> 44 </div>
45 <addDydjb v-model="isDialog" :sqcxBsm="sqcxBsm" />
45 </div> 46 </div>
46 </template> 47 </template>
47 <script> 48 <script>
...@@ -49,9 +50,11 @@ import { mapGetters } from "vuex"; ...@@ -49,9 +50,11 @@ import { mapGetters } from "vuex";
49 import table from "@/utils/mixin/table"; 50 import table from "@/utils/mixin/table";
50 import { popupDialog } from "@/utils/popup.js"; 51 import { popupDialog } from "@/utils/popup.js";
51 import { datas, sendThis } from "./dydjbdata"; 52 import { datas, sendThis } from "./dydjbdata";
52 import { getJtfcPage } from "@/api/sqcx"; 53 import addDydjb from "./components/addDydjb.vue";
54 import { getFwmxPage } from "@/api/sqcx";
53 export default { 55 export default {
54 name: "dydjb", 56 name: "dydjb",
57 components: { addDydjb },
55 mixins: [table], 58 mixins: [table],
56 mounted () { 59 mounted () {
57 sendThis(this); 60 sendThis(this);
...@@ -62,6 +65,8 @@ export default { ...@@ -62,6 +65,8 @@ export default {
62 }, 65 },
63 data () { 66 data () {
64 return { 67 return {
68 isDialog: false,
69 sqcxBsm: "",
65 queryForm: { 70 queryForm: {
66 cxbh: "", 71 cxbh: "",
67 sqr: "", 72 sqr: "",
...@@ -77,7 +82,7 @@ export default { ...@@ -77,7 +82,7 @@ export default {
77 // 初始化数据 82 // 初始化数据
78 queryClick () { 83 queryClick () {
79 this.$startLoading(); 84 this.$startLoading();
80 getJtfcPage({ ...this.queryForm, ...this.pageData }).then((res) => { 85 getFwmxPage({ ...this.queryForm, ...this.pageData }).then((res) => {
81 this.$endLoading(); 86 this.$endLoading();
82 if (res.code === 200) { 87 if (res.code === 200) {
83 let { records, total } = res.result; 88 let { records, total } = res.result;
...@@ -94,6 +99,9 @@ export default { ...@@ -94,6 +99,9 @@ export default {
94 handleSort (name, sort) { 99 handleSort (name, sort) {
95 console.log(name, sort); 100 console.log(name, sort);
96 }, 101 },
102 openAddDialog(){
103 this.isDialog = true
104 }
97 }, 105 },
98 }; 106 };
99 </script> 107 </script>
......
...@@ -22,7 +22,7 @@ class data extends filter { ...@@ -22,7 +22,7 @@ class data extends filter {
22 case '1': 22 case '1':
23 return <div>家庭房产</div> 23 return <div>家庭房产</div>
24 case '2': 24 case '2':
25 return <div>登记簿</div> 25 return <div>房屋明细</div>
26 } 26 }
27 } 27 }
28 }, 28 },
......
...@@ -41,10 +41,10 @@ ...@@ -41,10 +41,10 @@
41 <el-button v-show="isSearch == false" @click="resetClick">重置</el-button> 41 <el-button v-show="isSearch == false" @click="resetClick">重置</el-button>
42 <el-button type="primary" v-show="isSearch == false" @click="queryChick">查询</el-button> 42 <el-button type="primary" v-show="isSearch == false" @click="queryChick">查询</el-button>
43 <el-button type="primary" v-show="isSearch && form.cxjgList.length > 0" @click="printResult"> 43 <el-button type="primary" v-show="isSearch && form.cxjgList.length > 0" @click="printResult">
44 房产结果打印({{ form.dyjlList.length }} 44 房产结果打印({{ form.djSqcxDO.dycs }}
45 </el-button> 45 </el-button>
46 <el-button type="primary" v-show="isSearch && form.cxjgList.length == 0" @click="printResult"> 46 <el-button type="primary" v-show="isSearch && form.cxjgList.length == 0" @click="printResult">
47 无房证明打印({{ form.dyjlList.length }} 47 无房证明打印({{ form.djSqcxDO.dycs }}
48 </el-button> 48 </el-button>
49 <el-button @click="closeDialog">关闭</el-button> 49 <el-button @click="closeDialog">关闭</el-button>
50 </div> 50 </div>
...@@ -207,8 +207,15 @@ export default { ...@@ -207,8 +207,15 @@ export default {
207 var formdata = new FormData(); 207 var formdata = new FormData();
208 formdata.append("sqcxBsm", this.form.djSqcxDO.bsmSqcx); 208 formdata.append("sqcxBsm", this.form.djSqcxDO.bsmSqcx);
209 formdata.append("dylx", '1'); 209 formdata.append("dylx", '1');
210 printJtcfInfo(formdata); 210 printJtcfInfo(formdata).then(res => {
211 this.closeDialog(); 211 if(res.code == 200){
212 this.form.djSqcxDO.dycs = this.form.djSqcxDO.dycs + 1
213 }
214 });
215
216
217
218 //this.closeDialog();
212 }, 219 },
213 //打开打印预览 220 //打开打印预览
214 openPrintPrew(){ 221 openPrintPrew(){
......
...@@ -29,7 +29,7 @@ class data extends filter { ...@@ -29,7 +29,7 @@ class data extends filter {
29 case '1': 29 case '1':
30 return <div>家庭房产</div> 30 return <div>家庭房产</div>
31 case '2': 31 case '2':
32 return <div>登记簿</div> 32 return <div>房屋明细</div>
33 } 33 }
34 } 34 }
35 }, 35 },
......