5338a151 by renchao@pashanhoo.com

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

2 parents 77053652 10f9374a
Showing 71 changed files with 367 additions and 19895 deletions
1 <!--
2 * @Description: 功能:流程图
3 * @Autor: renchao
4 * @LastEditTime: 2023-05-17 10:40:57
5 -->
6 <template>
7 <div class='flowChart'>
8 <img :src="formData" alt="">
9 </div>
10 </template>
11 <script>
12
13 export default {
14 props: {
15 formData: {
16 type: String,
17 default: ''
18 }
19 }
20 }
21 </script>
22 <style scoped lang="scss">
23 @import "~@/styles/mixin.scss";
24
25 .flowChart {
26 margin: 20px 0;
27 }
28 </style>
...\ No newline at end of file ...\ No newline at end of file
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-07-17 13:51:29
5 -->
6 <template>
7 <lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :pagination="false" :key="key" :data="tableData">
8 </lb-table>
9 </template>
10 <script>
11 import addQlr from './dialog/addQlr.vue'
12 import { mapGetters } from 'vuex'
13 export default {
14 components: {
15 addQlr
16 },
17 computed: {
18 ...mapGetters(["dictData"]),
19 },
20 props: {
21 tableData: {
22 type: Array,
23 default: function () {
24 return []
25 }
26 },
27 gyfs: {
28 type: String,
29 default: '1'
30 }
31 },
32 data () {
33 return {
34 key: 0,
35 dataIndex: 0,
36 dialog: false,
37 details: {},
38 tableDataList: [],
39 qlrCommonTable: [
40 {
41 label: '序号',
42 type: 'index',
43 width: '50',
44 render: (h, scope) => {
45 return (
46 <div>
47 {scope.$index + 1}
48 </div>
49 )
50 }
51 },
52 {
53 prop: "qllxmc",
54 label: "权利类型"
55 },
56 {
57 prop: "bdcqzh",
58 label: "不动产权证号"
59 },
60 {
61 prop: "qlrmc",
62 label: "权利人"
63 },
64 {
65 prop: "qlrzjhm",
66 label: "证件号码"
67 },
68 {
69 prop: "bdcdyh",
70 label: "不动产单元号"
71 },
72 {
73 prop: "qlxzmc",
74 label: "权利性质"
75 },
76 {
77 prop: "qlytmc",
78 label: "用途"
79 },
80 {
81 prop: "qlmjmc",
82 label: "面积"
83 },
84 {
85 prop: "zl",
86 label: "坐落"
87 },
88 ],
89 column: this.qlrCommonTable
90 }
91 },
92 watch: {
93 tableData: {
94 handler: function (val, oldVal) {
95 let that = this
96 if (val.length == 0 || !val) {
97 that.tableDataList = _.cloneDeep([{
98 sqrmc: '',
99 dlrzjlx: '',
100 dlrzjh: '',
101 fr: ''
102 }])
103 } else {
104 that.tableDataList = _.cloneDeep(val)
105 }
106 },
107 immediate: true,
108 deep: true
109 },
110 gyfs: {
111 handler (newVal, oldValue) {
112 let dataList = _.cloneDeep(this.qlrCommonTable)
113 if (newVal == '1') {
114 this.column = _.cloneDeep(dataList).slice(1, dataList.length)
115 } else if ((newVal == '2')) {
116 this.column = dataList
117 } else {
118 this.column = _.cloneDeep(dataList)
119 this.column.splice(
120 2, 0, {
121 prop: "qlbl",
122 label: "份数"
123 })
124 }
125 },
126 immediate: true
127 }
128 },
129 methods: {
130 }
131 }
132 </script>
133 <style scoped lang='scss'>
134 /deep/.el-table th {
135 height: 30px !important;
136 }
137 /deep/.el-table--small .el-table__cell {
138 padding: 5px;
139 }
140 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-07-17 13:51:29
5 -->
6 <template>
7 <lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :pagination="false" :key="key" :data="tableData">
8 </lb-table>
9 </template>
10 <script>
11 import addQlr from './dialog/addQlr.vue'
12 import { mapGetters } from 'vuex'
13 export default {
14 components: {
15 addQlr
16 },
17 computed: {
18 ...mapGetters(["dictData"]),
19 },
20 props: {
21 tableData: {
22 type: Array,
23 default: function () {
24 return []
25 }
26 },
27 gyfs: {
28 type: String,
29 default: '1'
30 }
31 },
32 data () {
33 return {
34 key: 0,
35 dataIndex: 0,
36 dialog: false,
37 details: {},
38 tableDataList: [],
39 qlrCommonTable: [
40 {
41 label: '序号',
42 type: 'index',
43 width: '50',
44 render: (h, scope) => {
45 return (
46 <div>
47 {scope.$index + 1}
48 </div>
49 )
50 }
51 },
52 {
53 prop: "yg",
54 label: "原告"
55 },
56 {
57 prop: "cfjg",
58 label: "查封机关"
59 },
60 {
61 prop: "cfwh",
62 label: "查封文号"
63 },
64 {
65 prop: "cfqssj",
66 label: "查封开始时间"
67 },
68 {
69 prop: "cfjssj",
70 label: "查封结束时间"
71 },
72 {
73 prop: "cflxmc",
74 label: "查封类型"
75 },
76 {
77 prop: "ywrmc",
78 label: "被执行人"
79 },
80 {
81 prop: "bcfzh",
82 label: "被查封证号"
83 },
84 {
85 prop: "bdcdyh",
86 label: "不动产单元号"
87 },
88 {
89 prop: "zl",
90 label: "坐落"
91 },
92
93
94 ],
95 column: this.qlrCommonTable
96 }
97 },
98 watch: {
99 tableData: {
100 handler: function (val, oldVal) {
101 let that = this
102 if (val.length == 0 || !val) {
103 that.tableDataList = _.cloneDeep([{
104 sqrmc: '',
105 dlrzjlx: '',
106 dlrzjh: '',
107 fr: ''
108 }])
109 } else {
110 that.tableDataList = _.cloneDeep(val)
111 }
112 },
113 immediate: true,
114 deep: true
115 },
116 gyfs: {
117 handler (newVal, oldValue) {
118 let dataList = _.cloneDeep(this.qlrCommonTable)
119 if (newVal == '1') {
120 this.column = _.cloneDeep(dataList).slice(1, dataList.length)
121 } else if ((newVal == '2')) {
122 this.column = dataList
123 } else {
124 this.column = _.cloneDeep(dataList)
125 this.column.splice(
126 2, 0, {
127 prop: "qlbl",
128 label: "份数"
129 })
130 }
131 },
132 immediate: true
133 }
134 },
135 methods: {
136 }
137 }
138 </script>
139 <style scoped lang='scss'>
140 /deep/.el-table th {
141 height: 30px !important;
142 }
143 /deep/.el-table--small .el-table__cell {
144 padding: 5px;
145 }
146 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-10-24 16:08:44
5 -->
6 <template>
7 <div class="clxx">
8 <!-- 材料预览 -->
9 <div class="clyl-box">
10 <div class="menu-tree">
11 <el-button
12 type="primary"
13 native-type="submit"
14 @click="viewDetail"
15 style="width: 100%; margin-top: 10px">申请材料目录</el-button>
16 <div class="item">
17 材料目录({{ tableData.length }})
18 <div class="tableList">
19 <div
20 style="
21 text-align: center;
22 line-height: 20px;
23 color: black;
24 font-size: 14px;
25 "
26 v-if="tableData.length == 0">
27 暂无数据
28 </div>
29 <div
30 v-for="(item, index) in tableData"
31 :key="item.bsmSj"
32 :class="['child', treeCheckId == item.bsmSj ? 'checked' : '']"
33 @click="treeClick(item, index)">
34 <span v-if="item.isrequired == 1" class="required">必选</span>
35 <span class="item_name">{{ item.sjmc }}</span>
36 <span class="cl_number" :key="key">({{ item.ys ? item.ys : 0 }})</span>
37 </div>
38 </div>
39 </div>
40 <el-button
41 type="primary"
42 native-type="submit"
43 style="width: 100%"
44 @click="handleAdd()"
45 v-if="ableOperation">新增</el-button>
46 </div>
47 <image-preview
48 ref="imageRef"
49 :key="imgKey"
50 v-if="tableData.length > 0"
51 :previewImg="previewImg"
52 :ableOperation="ableOperation"
53 @updateList="updateList"
54 @nextPriview="nextPriview"
55 @prevPriview="prevPriview" />
56 </div>
57 <clxxAddDialog v-model="isDialog" />
58 </div>
59 </template>
60 <script>
61 import { mapGetters } from "vuex";
62 import clxxAddDialog from "../dialog/clxxAddDialog.vue";
63 import clxxDetailDialog from "../dialog/clxxDetailDialog.vue";
64 import imagePreview from "@/views/components/imagePreview.vue";
65 import { InitClml, saveClml, getClmxList } from "@/api/clxx.js";
66 export default {
67 components: { clxxAddDialog, imagePreview, clxxDetailDialog },
68 data () {
69 return {
70 imgKey: 0,
71 //表单是否可操作
72 ableOperation: true,
73 isDialog: false,
74 iclass: "",
75 // 材料目录选中
76 treeCheckIndex: 0,
77 treeCheckId: "",
78 key: 0,
79 tableData: [],
80 previewImg: {
81 // 收件标识码
82 bsmSj: "",
83 bsmSlsq: this.$parent.bsmSlsq,
84 index: 0,
85 selectedIndex: 0,
86 imgList: [],
87 },
88 };
89 },
90 computed: {
91 ...mapGetters(["dictData"]),
92 },
93 created () {
94 this.clmlInitList(1);
95 },
96 computed: {
97 ...mapGetters(["workFresh"]),
98 },
99 watch: {
100 workFresh: {
101 handler (newVal, oldVal) {
102 if (newVal) this.clmlInitList(1);
103 },
104 },
105 },
106 mounted () {
107 this.ableOperation = this.$parent.ableOperation;
108 },
109 methods: {
110 /**
111 * @description: 自动预览
112 * @author: renchao
113 */
114 nextPriview () {
115 if (this.treeCheckIndex < this.tableData.length) {
116 this.treeCheckIndex++;
117 if (this.tableData[this.treeCheckIndex]) {
118 this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj;
119 // 判断页数
120 let ys = this.tableData[this.treeCheckIndex].ys
121 this.previewImg.index = 0;
122 // 获取材料明细
123 if (ys > 0) {
124 getClmxList(this.treeCheckId).then(res => {
125 this.previewImg.imgList = res.result ? res.result : [];
126 })
127 } else {
128 this.previewImg.imgList = []
129 }
130 this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj;
131 } else {
132 this.$message.error('没有最后一张了');
133 }
134 }
135 },
136 /**
137 * @description: prevPriview
138 * @author: renchao
139 */
140 prevPriview () {
141 if (this.treeCheckIndex >= 1) {
142 this.treeCheckIndex--;
143 this.treeCheckId = this.tableData[this.treeCheckIndex].bsmSj;
144 // 判断页数
145 let ys = this.tableData[this.treeCheckIndex].ys
146 if (ys > 0) {
147 // 获取材料明细
148 getClmxList(this.treeCheckId).then(res => {
149 this.previewImg.imgList = res.result ? res.result : [];
150 this.previewImg.index = this.previewImg.imgList.length - 1;
151 })
152 } else {
153 this.previewImg.imgList = [];
154 this.previewImg.index = 0
155 }
156 this.previewImg.bsmSj = this.tableData[this.treeCheckIndex].bsmSj;
157 } else {
158 this.$message.error('没有第一张了');
159 }
160 },
161 /**
162 * @description: 材料目录明细初始化
163 * @param {*} type
164 * @author: renchao
165 */
166 clmlInitList (type) {
167 //type 1:列表初始化 2:新增材料
168 return new Promise((resolve) => {
169 this.unitData = this.$parent.unitData;
170 var formdata = new FormData();
171 formdata.append("bsmSlsq", this.$parent.bsmSlsq);
172 formdata.append("bsmSldy", this.$parent.currentSelectProps.bsmSldy);
173
174 InitClml(formdata).then((res) => {
175 if (res.code == 200) {
176 resolve(res.code);
177 if (res.result && res.result.length > 0) {
178 this.tableData = res.result;
179 if (type == 1) {
180 this.treeClick(this.tableData[0], 0);
181 } else if (type == 2) {
182 //新增材料后刷新列表焦点置于新增的对象上
183 this.treeClick(
184 this.tableData[this.tableData.length - 1],
185 this.tableData.length - 1
186 );
187 }
188 }
189 } else {
190 this.$message.error(res.message);
191 }
192 });
193 });
194 },
195 /**
196 * @description: setChecked
197 * @param {*} item
198 * @author: renchao
199 */
200 setChecked (item) {
201 this.treeCheckId = item.bsmSj;
202 this.title = item.sjmc;
203 this.titleYs = 1;
204 this.titleNum = item.children.length;
205 this.previewImg.imgList = item.children;
206 this.previewImg.bsmSj = item.bsmSj;
207 },
208 /**
209 * @description: updateList
210 * @param {*} val
211 * @author: renchao
212 */
213 updateList (val) {
214 let that = this;
215 if (val.children.length != 0) {
216 //删除最后一张图片时 val=null
217 this.tableData.forEach((item) => {
218 if (item.bsmSj === val.bsmSj) {
219 item.ys = val.children.length;
220 }
221 });
222 this.previewImg.imgList = _.cloneDeep(val.children);
223 if (this.previewImg.index == this.previewImg.imgList.length) {
224 this.previewImg.index = this.previewImg.index - 1;
225 }
226 this.key++
227 } else {
228 this.previewImg.imgList = [];
229 this.tableData.forEach((item, index) => {
230 if (this.treeCheckId == item.bsmSj) {
231 item.ys = 0;
232 that.treeCheckIndex = index;
233 }
234 });
235 }
236 },
237 /**
238 * @description: 添加材料目录
239 * @author: renchao
240 */
241 handleAdd () {
242 this.isDialog = true;
243 },
244 /**
245 * @description: 新增弹窗保存
246 * @param {*} data
247 * @author: renchao
248 */
249 addSave (data) {
250 let obj = {
251 bsmSlsq: this.$parent.bsmSlsq,
252 isrequired: "1",
253 sjmc: data.clmc,
254 sjsl: 0,
255 smzt: "",
256 ys: 0,
257 sjlx: data.cllx,
258 sfxjcl: "1", // 是否必选
259 sfggcl: data.sfggcl,
260 };
261 //是否公共材料
262 if (data.sfggcl == "0") {
263 obj["bsmSldy"] = this.$parent.currentSelectProps.bsmSldy;
264 }
265 if (this.$route.query?.djywbm == "DJBBL") {
266 obj.bsmSldy = this.$parent.bsmRepair
267 }
268 saveClml(obj).then(async (res) => {
269 if (res.code == 200) {
270 let res = await this.clmlInitList(2);
271 if (res == 200)
272 this.$message({
273 message: "新增成功",
274 type: "success",
275 });
276 }
277 });
278 },
279 /**
280 * @description: 材料目录点击选中
281 * @param {*} item
282 * @param {*} index
283 * @author: renchao
284 */
285 treeClick (item, index) {
286 this.previewImg.index = 0;
287 this.treeCheckId = item?.bsmSj;
288 this.treeCheckIndex = index;
289 // 获取材料明细
290 getClmxList(item.bsmSj).then(res => {
291 this.previewImg.imgList = res.result ? res.result : [];
292 })
293 this.previewImg.bsmSj = item?.bsmSj;
294 if (this.$refs.imageRef) {
295 this.$refs.imageRef.initialIndex = 0
296 }
297 this.imgKey++
298 },
299 /**
300 * @description: 小图片点击
301 * @param {*} item
302 * @param {*} index
303 * @author: renchao
304 */
305 imgClick (item, index) {
306 this.showImg = item;
307 this.titleYs = index + 1;
308 },
309 //查看明细
310 async viewDetail () {
311 await this.clmlInitList();
312 this.$store.dispatch("user/reWorkFresh", false);
313 this.$popupDialog(
314 "申请材料目录",
315 "workflow/components/dialog/clxxDetailDialog",
316 {
317 data: this.tableData,
318 bsmSldy: this.$parent.currentSelectProps.bsmSldy,
319 unitData: this.$parent.unitData,
320 ableOperation: this.$parent.ableOperation,
321 bsmRepair: this.$parent.bsmRepair
322 },
323 "60%",
324 true
325 )
326 },
327 //设置tableData
328 setTableData (tableData) {
329 this.$nextTick((res) => {
330 this.tableData = tableData;
331 })
332 }
333 }
334 }
335 </script>
336 <style scoped lang="scss">
337 @import "~@/styles/mixin.scss";
338
339 .active {
340 background: $light-blue !important;
341 color: #fff;
342 }
343
344 .required {
345 font-size: 12px;
346 color: $pink;
347 float: left;
348 }
349
350 .cl_number {
351 width: 30px;
352 }
353
354 .clxx {
355 width: 100%;
356 display: flex;
357 padding-left: 5px;
358 height: calc(100vh - 125px);
359
360 .left {
361 display: flex;
362 flex-direction: column;
363 justify-content: space-between;
364
365 .item {
366 width: 28px;
367 height: 49%;
368 @include flex-center;
369 background-color: #e4e7ed;
370 border-bottom-right-radius: 10px;
371 padding: 5px;
372 cursor: pointer;
373 transition: all 0.3s;
374
375 &:hover {
376 @extend .active;
377 }
378 }
379 }
380
381 .clmlmx-box {
382 margin: 0 auto;
383
384 .title {
385 text-align: center;
386 height: 60px;
387 line-height: 60px;
388 border: 1px solid #dfe6ec;
389 font-size: 20px;
390 background: #81d3f81a;
391 margin-bottom: -1px;
392 }
393 }
394
395 .clyl-box {
396 width: 100%;
397 height: 100%;
398 display: flex;
399 .tableList {
400 margin-top: 10px;
401 }
402 .menu-tree {
403 width: 20%;
404 min-width: 160px;
405 height: 100%;
406 font-size: 14px;
407 border-right: 1px dotted #d9d9d9;
408 padding: 0 10px;
409
410 .item {
411 line-height: 30px;
412 padding-top: 5px;
413 border-bottom: 1px solid #e8e8e8;
414 font-size: 16px;
415 text-align: center;
416 color: $light-blue;
417
418 .itemIcon {
419 float: right;
420 line-height: 60px;
421 cursor: pointer;
422 }
423
424 .child {
425 line-height: 32px;
426 border-bottom: 1px solid #e8e8e8;
427 padding-left: 10px;
428 color: #6b6b6b;
429 cursor: pointer;
430 box-sizing: border-box;
431 border-radius: 6px;
432 line-height: 20px;
433 transition: all 0.3s;
434 padding: 8px 0;
435 overflow: hidden;
436 display: flex;
437 justify-content: space-between;
438 }
439 .item_name {
440 flex: 1;
441 font-size: 14px;
442 display: flex;
443 justify-content: center;
444 }
445 .child:hover {
446 color: $light-blue;
447 transform: scale(1.1);
448 }
449
450 .checked {
451 border: 1px solid $light-blue;
452 color: $light-blue;
453 box-sizing: border-box;
454 }
455 }
456 }
457
458 .clyl-img {
459 width: 75%;
460 height: 100%;
461 background: #f3f4f7;
462 margin: 0 auto;
463 position: relative;
464 }
465 }
466 }
467 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-09-19 10:15:07
5 -->
6 <template>
7 <dialogBox title="新建材料信息" width="25%" isMain v-model="myValue" @closeDialog="closeDialog" @submitForm="handleSubmit"
8 :isFullscreen="false">
9 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
10 <el-row>
11 <el-col :span="24">
12 <el-form-item label="材料类型" prop="cllx">
13 <el-select v-model="ruleForm.cllx" class="width100" placeholder="请选择">
14 <el-option v-for="item in dictData['A40']" :key="item.dcode" :label="item.dname" :value="item.dcode">
15 </el-option>
16 </el-select>
17 </el-form-item>
18 </el-col>
19 </el-row>
20 <el-row :gutter="20">
21 <el-col :span="24">
22 <el-form-item label="材料名称" prop="clmc">
23 <el-input v-model="ruleForm.clmc"></el-input>
24 </el-form-item>
25 </el-col>
26 </el-row>
27 <el-row :gutter="20">
28 <el-col :span="24">
29 <el-form-item
30 label="是否公共材料">
31 <el-radio-group
32 v-model="ruleForm.sfggcl">
33 <el-radio label="1"></el-radio>
34 <el-radio label="0"></el-radio>
35 </el-radio-group>
36 </el-form-item>
37 </el-col>
38 </el-row>
39 </el-form>
40 </dialogBox>
41 </template>
42
43 <script>
44 import { mapGetters } from "vuex";
45 export default {
46 props: {
47 value: { type: Boolean, default: false },
48 },
49 data () {
50 return {
51 myValue: this.value,
52 ruleForm: {
53 cllx: "",
54 clmc: "",
55 sfggcl: "0"
56 },
57 rules: {
58 cllx: [
59 { required: true, message: '请选择材料类型', trigger: 'change' }
60 ],
61 clmc: [
62 { required: true, message: '请输入材料名称', trigger: 'blur' }
63 ],
64 clbm: [
65 { required: true, message: '请输入材料编码', trigger: 'blur' }
66 ]
67 }
68 }
69 },
70 computed: {
71 ...mapGetters(["dictData"]),
72 },
73 watch: {
74 value (val) {
75 this.myValue = val;
76 },
77 },
78 methods: {
79 /**
80 * @description: closeDialog
81 * @author: renchao
82 */
83 closeDialog () {
84 this.$emit("input", false);
85 this.ruleForm = {
86 cllx: "",
87 clmc: "",
88 sfggcl: "0"
89 }
90 },
91 /**
92 * @description: handleSubmit
93 * @author: renchao
94 */
95 handleSubmit () {
96 this.$refs['ruleForm'].validate((valid) => {
97 if (valid) {
98 this.$parent.addSave(this.ruleForm);
99 this.ruleForm = {
100 cllx: "",
101 clmc: "",
102 sfggcl: "0"
103 }
104 this.$emit("input", false);
105 } else {
106 return false;
107 }
108 })
109 }
110 }
111 };
112 </script>
113 <style scoped lang="scss">
114 .submit-button {
115 text-align: center;
116 height: 52px;
117 padding-top: 10px;
118 background-color: #fff;
119 }
120 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-10-24 17:16:18
5 -->
6 <template>
7 <div class="clmlmx-box">
8 <lb-table :column="column" :key="key" row-key="bsmSj" ref="listTable" :heightNumSetting="true" :calcHeight="600"
9 :pagination="false" :data="tableData">
10 </lb-table>
11 <div class="text-center">
12 <el-button @click="$popupCacel">取消</el-button>
13 <el-button type="primary" @click="handleSubmit" :loading="loading" v-if="formData.ableOperation && tableData.length>0">保存</el-button>
14 </div>
15 </div>
16 </template>
17 <script>
18 import Vue from 'vue'
19 import Sortable from 'sortablejs'
20 import store from '@/store/index.js'
21 import { updateClml } from "@/api/clxx.js";
22 export default {
23 props: {
24 formData: {
25 type: Object,
26 default: () => {
27 return {}
28 }
29 }
30 },
31 data () {
32 return {
33 loading: false,
34 sortable: null,
35 column: [
36 {
37 prop: "isrequired",
38 label: "是否必选",
39 width: "80",
40 render: (h, scope) => {
41 if (scope.row.isrequired === "1") {
42 return (
43 <div>
44 <span>必选</span>
45 </div>
46 );
47 }
48 else {
49 return (
50 <div>
51 <span>可选</span>
52 </div>
53 )
54 }
55 }
56 },
57 {
58 label: "材料名称",
59 render: (h, scope) => {
60 return (
61 (this.formData.ableOperation && scope.row.sfxjcl == '1') ?
62 <el-input value={scope.row.sjmc} onInput={(val) => { scope.row.sjmc = val }}></el-input> : <span>{scope.row.sjmc}</span>
63 )
64 }
65 },
66 {
67 label: "材料类型",
68 width: "110",
69 render: (h, scope) => {
70 return (
71 this.formData.ableOperation ?
72 <el-select value={scope.row.sjlx}
73 onChange={(val) => { scope.row.sjlx = val }}>
74 {
75 store.getters.dictData['A40'].map(option => {
76 return (
77 <el-option label={option.dname} value={option.dcode}></el-option>
78 )
79 })
80 }
81 </el-select> : <span>{this.dicStatus(scope.row.sjlx, "A40")}</span>
82 )
83 }
84 },
85 {
86 prop: "sjsl",
87 label: "收件数量",
88 width: "80",
89 render: (h, scope) => {
90 return (
91 (this.formData.ableOperation) ?
92 <el-input value={scope.row.sjsl} onInput={(val) => { scope.row.sjsl = val }}></el-input> : <span>{
93 scope.row.sjsl
94 }</span>
95 )
96 }
97 },
98 {
99 label: "扫描时间",
100 width: "140",
101 render: (h, scope) => {
102 return (
103 <span>{scope.row.sjsj}</span>
104 )
105 }
106 },
107 {
108 label: "页数",
109 width: "60",
110 render: (h, scope) => {
111 if (scope.row.ys && scope.row.ys > 0) {
112 return (
113 <div>
114 <span>{scope.row.ys}</span>
115 </div>
116 );
117 } else {
118 return (
119 <div>
120 <span>0</span>
121 </div>
122 );
123 }
124 },
125 },
126 {
127 label: "是否新建材料",
128 width: "80",
129 render: (h, scope) => {
130 if (scope.row.sfxjcl && scope.row.sfxjcl == '1') {
131 return (
132 <span></span>
133 );
134 } else {
135 return (
136 <span></span>
137 );
138 }
139 },
140 },
141 {
142 label: "操作",
143 width: "100",
144 render: (h, scope) => {
145 return (
146 <el-button
147 type="text"
148 icon="el-icon-delete"
149 disabled={!(scope.row.ys == 0 && scope.row.sfxjcl == '1') || !this.formData.ableOperation}
150 onClick={() => {
151 this.handleDelete(scope.$index, scope.row);
152 }}
153 >
154 删除
155 </el-button>
156 )
157 }
158 }
159 ],
160 key: 0,
161 tableData: []
162 }
163 },
164 watch: {
165 'formData.data': {
166 handler: function (val, oldVal) {
167 this.tableData = _.cloneDeep(val)
168 },
169 immediate: true,
170 deep: true
171 }
172 },
173 mounted () {
174 this.initSort()
175 },
176 beforeDestroy () {
177 if (this.sortable) {
178 this.sortable.destroy();
179 }
180 },
181 methods: {
182 handleSubmit () {
183 this.loading = true
184 store.dispatch('user/reWorkFresh', false)
185 updateClml(this.tableData, this.formData.bsmSldy, Vue.prototype.$currentRoute.query.bsmSlsq).then(res => {
186 this.loading = false
187 if (res.code == 200) {
188 this.$message({
189 message: '保存成功',
190 type: 'success'
191 })
192 this.$popupCacel()
193 store.dispatch('user/reWorkFresh', true)
194 }
195 }).catch(() => {
196 this.loading = false
197 })
198 },
199 /**
200 * @description: 材料目录删除
201 * @param {*} index
202 * @param {*} row
203 */
204 handleDelete (index, row) {
205 this.$confirm('此操作将永久删除该 是否继续?', '提示', {
206 confirmButtonText: '确定',
207 cancelButtonText: '取消',
208 type: 'warning'
209 }).then(() => {
210 this.tableData.splice(index, 1);
211 }).catch(() => {
212 this.$message({
213 type: 'info',
214 message: '已取消删除'
215 })
216 })
217 },
218 initSort () {
219 const el = this.$refs.listTable.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0]
220 this.sortable = Sortable.create(el, {
221 ghostClass: 'sortable-ghost',
222 setData: function (dataTransfer) {
223 dataTransfer.setData('Text', '')
224 },
225 onEnd: evt => {
226 const targetRow = this.tableData.splice(evt.oldIndex, 1)[0];
227 this.tableData.splice(evt.newIndex, 0, targetRow);
228 }
229 })
230 },
231 dicStatus (val, code) {
232 let data = store.getters.dictData[code],
233 name = '暂无'
234 if (data) {
235 data.map((item) => {
236 if (item.dcode == val) {
237 name = item.dname
238 }
239 })
240 return name
241 }
242 }
243 }
244 }
245 </script>
246 <style scoped lang='scss'>
247 @import "~@/styles/mixin.scss";
248 .clmlmx-box {
249 margin: 0 auto;
250 .title {
251 text-align: center;
252 height: 60px;
253 line-height: 60px;
254 border: 1px solid #dfe6ec;
255 font-size: 20px;
256 background: #81d3f81a;
257 margin-bottom: -1px;
258 }
259 }
260 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-05-04 14:13:28
5 -->
6 <template>
7 <lb-table :column="tableData.columns" heightNumSetting :pagination="false" :key="key" :data="tableData.data">
8 </lb-table>
9 </template>
10 <script>
11 import { mapGetters } from 'vuex'
12 import { getSzRecordList } from "@/api/bdcqz.js";
13 import table from "@/utils/mixin/table";
14 import { szxxdatas } from "../../javascript/szxxdata";
15 export default {
16 components: {
17
18 },
19 mixins: [table],
20 computed: {
21 ...mapGetters(["dictData"]),
22 },
23 props: {
24 formData: {
25 type: Object,
26 default: {}
27 }
28 },
29 data () {
30 return {
31 key: 0,
32 dataIndex: 0,
33 dialog: false,
34 details: {},
35 tableData: {
36 total: 0,
37 columns: szxxdatas.columns(),
38 data: [],
39 },
40 }
41 },
42 mounted () {
43 this.query()
44 },
45 methods: {
46 /**
47 * @description: query
48 * @author: renchao
49 */
50 query () {
51 getSzRecordList({ bsmBdcqz: this.formData.bsmBdcqz }).then(res => {
52 if (res.code == 200) {
53 this.tableData.data = res.result;
54 this.key++
55 }
56 })
57 }
58 }
59 }
60 </script>
61 <style scoped lang='scss'>
62 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-11-23 17:20:01
5 -->
6 <template>
7 <iframe :src="ip +'/txdw/#/' + formData.bsmZd" frameborder="0" style="width: 100%; height:710px;"></iframe>
8 </template>
9 <script>
10 export default {
11 props: {
12 formData: {
13 type: Object,
14 default: () => {
15 return {}
16 }
17 }
18 },
19 data () {
20 return {
21 ip: window._config.services.management
22 }
23 }
24 }
25 </script>
...\ No newline at end of file ...\ No newline at end of file
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-02-06 13:23:36
5 -->
6 <template>
7 <div>
8 <div class="zsdy-content" v-Loading="loading">
9 <el-form
10 :model="ruleForm"
11 ref="ruleForm"
12 label-width="120px">
13 <el-form-item label="印刷序列号:" prop="ysxlh">
14 <el-row>
15 <el-col :span="18">
16 <el-select v-model="ruleForm.ysxlh" @change="handleSelect" :disabled="disabled" placeholder="请选择">
17 <el-option
18 v-for="item in ysxlh"
19 :key="item.ysxlh"
20 :label="item.ysxlh"
21 :value="item.ysxlh">
22 </el-option>
23 </el-select>
24 </el-col>
25 <el-col :span="4" v-if="this.formData.bdcqzlx==1">
26 <el-tabs v-model="activeTitle">
27 <el-tab-pane label="第一页" name="title1"></el-tab-pane>
28 <el-tab-pane label="第二页" name="title2"></el-tab-pane>
29 </el-tabs>
30 </el-col>
31 <el-col :span="2" v-if="this.formData.ysxlh" style="float:right">
32 <el-button type="primary" @click="handleZF" v-if="disabled">作废</el-button>
33 </el-col>
34 </el-row>
35
36 </el-form-item>
37 </el-form>
38 <div class="zs-content">
39 <canvas ref="zs1" width="1024" v-show="this.formData.bdcqzlx==1 && activeTitle=='title1'" height="739"></canvas>
40 <canvas ref="zs" width="1024" v-show="this.formData.bdcqzlx==1 && activeTitle=='title2'" height="739"></canvas>
41 <canvas ref="zm" width="1169" v-show="this.formData.bdcqzlx==2" height="828"></canvas>
42 </div>
43 </div>
44 <!-- 打印模板需要此模块 -->
45 <object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" v-show="false">
46 <embed id="LODOP_EM" type="application/x-print-lodop" width="1180" height="720" pluginspage="install_lodop32.exe" />
47 </object>
48 <div class="text-center pt-10">
49 <el-button @click="$popupCacel">取消</el-button>
50 <el-button type="primary" @click="handlePrint" v-if="disabled">打印</el-button>
51 <el-button type="primary" @click="handleSubmit" v-else>确定</el-button>
52 </div>
53
54 <el-dialog title="证书作废" :visible.sync="invalidDiglog" width="40%" :modal-append-to-body="false" top="30vh">
55 <div class="invalid-diglog">
56 <div class="invalid-title">
57 <i class="el-icon-question invalid-icon"></i>
58 <div class="invalid-body">您确定作废证书并再次打印?印刷序列号{{bdcqz.ysxlh}}</div>
59 </div>
60 <div class="invalid-reson">作废原因:</div>
61 <el-input v-model="zfyy" placeholder="请输入作废原因" type="textarea" :rows="4"></el-input>
62 <div class="text-center pt-10">
63 <el-button @click="closeInvalidDiglog">取 消</el-button>
64 <el-button type="primary" @click="confirmInvalid">确 定</el-button>
65 </div>
66 </div>
67 </el-dialog>
68 </div>
69 </template>
70
71 <script>
72 import QRCode from 'qrcode'
73 import store from '@/store/index.js'
74 import { datas } from "../../javascript/zsyl.js";
75 import { getPrintTemplateByCode } from "@/api/print";
76 import { getLodop } from "@/utils/LodopFuncs"
77 import { readYsxlh, certificate, getBdcqzDetail, invalidCertificate } from "@/api/bdcqz.js";
78 export default {
79 props: {
80 formData: {
81 type: Object,
82 default: () => {
83 return {}
84 }
85 }
86 },
87 data () {
88 return {
89 activeTitle: 'title1',
90 // 详细信息
91 bdcqz: {},
92 key: 0,
93 disabled: false,
94 // 不动产证书图片地址
95 imgSrc1: require('@/image/bdcqz/bdcqzs1.jpg'),
96 imgSrc: require('@/image/bdcqz/bdcqzs2.jpg'),
97 bdczmSrc: require('@/image/bdcqz/bdczm.jpg'),
98 loading: false,
99 //印刷序列号集合
100 ysxlh: [],
101 //列名称对象
102 columns: [],
103 //tab选择绑定值
104 activeName: '',
105 invalidDiglog: false,
106 zfyy: "",
107 ruleForm: {
108 bsmBdcqz: "",
109 szmc: "不动产权证书",
110 bdcqzlx: "",
111 szzh: "",
112 ysxlh: ""
113 }
114 }
115 },
116 mounted () {
117 store.dispatch('user/refreshPage', false)
118 this.columns = datas.columns()
119 this.ysxlhList()
120 // 获取详细信息
121 this.getDetail()
122 if (this.formData.ysxlh) {
123 this.disabled = true
124 } else {
125 this.disabled = false
126 }
127 },
128 methods: {
129 /**
130 * @description: 获取详细信息
131 * @author: renchao
132 */
133 getDetail () {
134 this.loading = true
135 getBdcqzDetail(this.formData.bsmBdcqz).then(res => {
136 this.bdcqz = res.result
137 this.loading = false
138 if (this.bdcqz.ysxlh) this.ruleForm.ysxlh = this.bdcqz.ysxlh
139 if (this.bdcqz.bdcqzlx == 1) {
140 this.drawTextOnImage()
141 } else {
142 this.drawTextzmImage()
143 }
144 })
145 },
146 /**
147 * @description: 获取印刷序列号列表
148 * @author: renchao
149 */
150 ysxlhList () {
151 readYsxlh({ zslx: this.formData.bdcqzlx }).then((res) => {
152 if (res.code === 200) {
153 this.ysxlh = res.result;
154 }
155 })
156 },
157 /**
158 * @description: handleSelect
159 * @param {*} val
160 * @author: renchao
161 */
162 handleSelect (val) {
163 this.bdcqz.ysxlh = this.ruleForm.ysxlh
164 if (this.bdcqz.bdcqzlx == 1) {
165 this.drawTextOnImage()
166 } else {
167 this.drawTextzmImage()
168 }
169 },
170 /**
171 * @description: closeInvalidDiglog
172 * @author: renchao
173 */
174 closeInvalidDiglog () {
175 this.zfyy = "";
176 this.invalidDiglog = false
177 },
178 /**
179 * @description: handleZF
180 * @author: renchao
181 */
182 handleZF () {
183 this.invalidDiglog = true
184 },
185 /**
186 * @description: 作废缮证信息
187 * @author: renchao
188 */
189 confirmInvalid () {
190 store.dispatch('user/reWorkFresh', false)
191 invalidCertificate({ bsmBdcqz: this.bdcqz.bsmBdcqz, zfyy: this.zfyy }).then((res) => {
192 if (res.code === 200) {
193 this.$message.success("作废成功");
194 this.disabled = false
195 this.invalidDiglog = false;
196 this.zfyy = ''
197 this.ruleForm.ysxlh = ''
198 this.bdcqz.ysxlh = ''
199 if (this.bdcqz.bdcqzlx == 1) {
200 this.drawTextOnImage()
201 } else {
202 this.drawTextzmImage()
203 }
204 store.dispatch('user/reWorkFresh', true)
205 } else {
206 this.$message.error(res.message);
207 }
208 })
209 },
210 /**
211 * @description: 不动产证书
212 * @author: renchao
213 */
214 drawTextOnImage1 () {
215 const canvas = this.$refs.zs1;
216 const context = canvas.getContext('2d');
217 const image = new Image();
218 image.onload = () => {
219 context.drawImage(image, 0, 0);
220 context.font = '18px 楷体';
221 context.fillStyle = '#000000';
222 let date = this.bdcqz.djsj.split(' ')[0].split('/');
223 let nian = date[0]
224 let yue = date[1]
225 let ri = date[2]
226 this.bdcqz.nian = nian
227 this.bdcqz.yue = yue
228 this.bdcqz.ri = ri
229 context.fillText(nian ? nian : '', 780, 499);
230 context.fillText(yue ? yue : '', 840, 499);
231 context.fillText(ri ? ri : '', 885, 499);
232 QRCode.toDataURL(this.bdcqz.bdcqzh, { margin: 0 })
233 .then(url => {
234 const qrImage = new Image();
235 this.bdcqz.qrImage = url; // 将二维码图片的 URL 存储到 bdcqz 对象的 qrImage 属性中
236 qrImage.onload = () => {
237 context.drawImage(qrImage, 670, 400, 100, 100);
238 };
239 qrImage.src = url;
240 })
241 .catch(error => {
242 console.error(error);
243 });
244 context.fillText(this.bdcqz.bdcqzbm ? this.bdcqz.bdcqzbm : '', 745, 633);
245 };
246 image.src = this.imgSrc1;
247 },
248 drawTextOnImage () {
249 this.drawTextOnImage1()
250 function getByteLen (val) {
251 var len = 0;
252 if (!val) return len;
253 for (var i = 0; i < val.length; i++) {
254 var length = val.charCodeAt(i);
255 if (length >= 0 && length <= 128) {
256 len += 1;
257 } else {
258 len += 2;
259 }
260 }
261 return len;
262 }
263 const canvas = this.$refs.zs;
264 const context = canvas.getContext('2d');
265 const image = new Image();
266 image.onload = () => {
267 context.drawImage(image, 0, 0);
268 context.font = '18px 楷体';
269 context.fillStyle = '#000000';
270 context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 60, 56);
271 context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 113, 56);
272 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 180, 56);
273 context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 370, 56);
274 context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 129, 97);
275 context.fillText(this.bdcqz.gyqk ? this.bdcqz.gyqk : '', 129, 136);
276
277 this.bdcdyh = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
278 this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
279 context.fillText(this.bdcdyh ? this.bdcdyh : '', 129, 223);
280
281
282
283 context.fillText(this.bdcqz.qllx ? this.bdcqz.qllx : '', 129, 263);
284 context.fillText(this.bdcqz.qlxz ? this.bdcqz.qlxz : '', 129, 303);
285 context.fillText(this.bdcqz.yt ? this.bdcqz.yt : '', 129, 346);
286 let lines6 = this.bdcqz.mj ? this.bdcqz.mj.split(' ') : [];
287 if (getByteLen(this.bdcqz.mj) > 37) {
288 lines6.forEach((line, index) => {
289 const y = 378 + (index * 27); // 每行文本的垂直位置
290 let currentLine = '';
291 let arr = [];
292 for (let word of line) {
293 const testLine = currentLine + word;
294 const lineWidth = context.measureText(testLine).width;
295 if (lineWidth <= 336) {
296 currentLine = testLine;
297 } else {
298 arr.push(currentLine);
299 currentLine = word;
300 }
301 }
302 arr.push(currentLine);
303 arr.forEach((line, index) => {
304 context.fillText(line, 129, y + (index * 20)); // 调整行高
305 })
306 })
307 } else {
308 lines6.forEach((line, index) => {
309 const y = 386 + (index * 27); // 每行文本的垂直位置
310 let currentLine = '';
311 let arr = [];
312 for (let word of line) {
313 const testLine = currentLine + word;
314 const lineWidth = context.measureText(testLine).width;
315 if (lineWidth <= 336) {
316 currentLine = testLine;
317 } else {
318 arr.push(currentLine);
319 currentLine = word;
320 }
321 }
322 arr.push(currentLine);
323 arr.forEach((line, index) => {
324 context.fillText(line, 129, y + (index * 20)); // 调整行高
325 })
326 })
327 }
328 // 权利其他状态
329 const maxWidth = 332; // 最大宽度限制
330 let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split('\n').filter(i => i && i.trim()) : [];
331 for (let i = 0; i < lines.length; i++) {
332 let num = Math.ceil(getByteLen(lines[i]) / 37)
333 if (getByteLen(lines[i]) > 37) {
334 let currentLine = '';
335 let arr = [];
336 for (let word of lines[i]) {
337 const testLine = currentLine + word;
338 const lineWidth = context.measureText(testLine).width;
339 if (lineWidth <= maxWidth) {
340 currentLine = testLine;
341 } else {
342 arr.push(currentLine);
343 currentLine = word;
344 }
345 }
346 arr.push(currentLine);
347 if (i > 0) {
348 arr.forEach((line, index) => {
349 context.fillText(line, 129, 495 + (29 * (i - 1)) + 4 * num + (index * 14)); // 调整行高
350 })
351 } else {
352 arr.forEach((line, index) => {
353 context.fillText(line, 129, 493 + (26 * (i - 1)) + (index * 14)); // 调整行高
354 })
355 }
356 } else {
357 if (i > 0) {
358 context.fillText(lines[i] ? lines[i] : '', 129, 500 + 4 * num + (29 * (i - 1)));
359 } else {
360 context.fillText(lines[i] ? lines[i] : '', 129, 505 + (27 * (i - 1)));
361 }
362 }
363 }
364
365 let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split('\n').filter(i => i && i.trim()) : [];
366 lines1.forEach((line, index) => {
367 const y = 100 + (index * 30); // 每行文本的垂直位置
368 let currentLine = '';
369 let arr = [];
370 for (let word of line) {
371 const testLine = currentLine + word;
372 const lineWidth = context.measureText(testLine).width;
373 if (lineWidth <= 395) {
374 currentLine = testLine;
375 } else {
376 arr.push(currentLine);
377 currentLine = word;
378 }
379 }
380 arr.push(currentLine);
381 arr.forEach((line, index) => {
382 context.fillText(line, 580, y + (index * 30)); // 调整行高
383 })
384 })
385 let lines3 = this.bdcqz.syqx ? this.bdcqz.syqx.split(' ') : [];
386 if (getByteLen(this.bdcqz.syqx) > 37) {
387 lines3.forEach((line, index) => {
388 const y = 423 + (index * 27); // 每行文本的垂直位置
389 let currentLine = '';
390 let arr = [];
391 for (let word of line) {
392 const testLine = currentLine + word;
393 const lineWidth = context.measureText(testLine).width;
394 if (lineWidth <= 330) {
395 currentLine = testLine;
396 } else {
397 arr.push(currentLine);
398 currentLine = word;
399 }
400 }
401 arr.push(currentLine);
402 arr.forEach((line, index) => {
403 context.fillText(line, 129, y + (index * 20)); // 调整行高
404 })
405 })
406 } else {
407 lines3.forEach((line, index) => {
408 const y = 430 + (index * 27); // 每行文本的垂直位置
409 let currentLine = '';
410 let arr = [];
411 for (let word of line) {
412 const testLine = currentLine + word;
413 const lineWidth = context.measureText(testLine).width;
414 if (lineWidth <= 315) {
415 currentLine = testLine;
416 } else {
417 arr.push(currentLine);
418 currentLine = word;
419 }
420 }
421 arr.push(currentLine);
422 arr.forEach((line, index) => {
423 context.fillText(line, 129, y + (index * 20)); // 调整行高
424 })
425 })
426 }
427
428 let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(' ') : [];
429 if (getByteLen(this.bdcqz.zl) > 37) {
430 lines2.forEach((line, index) => {
431 const y = 170 + (index * 20); // 每行文本的垂直位置
432 let currentLine = '';
433 let arr = [];
434 for (let word of line) {
435 const testLine = currentLine + word;
436 const lineWidth = context.measureText(testLine).width;
437 if (lineWidth <= 336) {
438 currentLine = testLine;
439 } else {
440 arr.push(currentLine);
441 currentLine = word;
442 }
443 }
444 arr.push(currentLine);
445 arr.forEach((line, index) => {
446 context.fillText(line, 129, y + (index * 20)); // 调整行高
447 })
448 })
449 } else {
450 lines2.forEach((line, index) => {
451 const y = 180 + (index * 20); // 每行文本的垂直位置
452 let currentLine = '';
453 let arr = [];
454 for (let word of line) {
455 const testLine = currentLine + word;
456 const lineWidth = context.measureText(testLine).width;
457 if (lineWidth <= 336) {
458 currentLine = testLine;
459 } else {
460 arr.push(currentLine);
461 currentLine = word;
462 }
463 }
464 arr.push(currentLine);
465 arr.forEach((line, index) => {
466 context.fillText(line, 129, y + (index * 20)); // 调整行高
467 })
468 })
469 }
470 }
471 image.src = this.imgSrc
472 },
473 /**
474 * @description: 不动产证明
475 * @author: renchao
476 */
477 drawTextzmImage () {
478 function getByteLen (val) {
479 var len = 0;
480 if (!val) return len;
481 for (var i = 0; i < val.length; i++) {
482 var length = val.charCodeAt(i);
483 if (length >= 0 && length <= 128) {
484 len += 1;
485 } else {
486 len += 2;
487 }
488 }
489 return len;
490 }
491
492 const canvas = this.$refs.zm;
493 const context = canvas.getContext('2d');
494 const image = new Image();
495 image.onload = () => {
496 context.drawImage(image, 0, 0);
497 context.font = '18px 楷体';
498 context.fillStyle = '#000000';
499 // ysxlh
500 context.fillText(this.bdcqz.ysxlh ? this.bdcqz.ysxlh : '', 280, 712);
501 // djsj
502 if (this.bdcqz.djsj) {
503 let djsjList = this.bdcqz.djsj.split(' ')[0].split('/')
504 context.fillText(djsjList[0] ? djsjList[0] : '', 327, 580);
505 context.fillText(djsjList[1] ? djsjList[1] : '', 393, 580);
506 context.fillText(djsjList[2] ? djsjList[2] : '', 443, 580);
507 }
508 context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 620, 125);
509 context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 665, 125);
510 // context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 750, 125);
511
512 if (getByteLen(this.bdcqz.sxqc) > 14) {
513 const originalFont = context.font;
514 // 设置新的字体大小
515 context.font = '14px 楷体'; // 替换为你想要的字体和大小
516 // 绘制 bdcdyh
517 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 725, 125);
518 // 恢复原始字体设置
519 context.font = originalFont;
520 } else {
521 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 755, 125);
522 }
523
524 context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 960, 123);
525 context.fillText(this.bdcqz.zmqlhsx ? this.bdcqz.zmqlhsx : '', 775, 180);
526 // context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 775, 228);
527 // 权利人
528 let qlrlines = this.bdcqz.qlr
529 if (getByteLen(this.bdcqz.qlr) > 32) {
530 let currentLine = '';
531 let arr = [];
532 for (let word of qlrlines) {
533 const testLine = currentLine + word;
534 const lineWidth = context.measureText(testLine).width;
535 if (lineWidth <= 295) {
536 currentLine = testLine;
537 } else {
538 arr.push(currentLine);
539 currentLine = word;
540 }
541 }
542 arr.push(currentLine); // 将最后一行添加到数组
543 // 绘制所有行
544 for (let i = 0; i < arr.length; i++) {
545 context.fillText(arr[i], 775, 218 + i * 20); // lineHeight 为行高
546 }
547 } else {
548 context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 775, 228);
549 }
550 // 义务人
551 // context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : '', 775, 275);
552
553 let ywrlines = this.bdcqz.ywr
554 if (getByteLen(this.bdcqz.ywr) > 32) {
555 let currentLine = '';
556 let arr = [];
557 for (let word of ywrlines) {
558 const testLine = currentLine + word;
559 const lineWidth = context.measureText(testLine).width;
560 if (lineWidth <= 295) {
561 currentLine = testLine;
562 } else {
563 arr.push(currentLine);
564 currentLine = word;
565 }
566 }
567 arr.push(currentLine); // 将最后一行添加到数组
568 // 绘制所有行
569 for (let i = 0; i < arr.length; i++) {
570 context.fillText(arr[i], 775, 268 + i * 20); // lineHeight 为行高
571 }
572 } else {
573 context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : '', 775, 275);
574 }
575
576
577 let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(' ') : [];
578 if (getByteLen(this.bdcqz.zl) > 32) {
579 lines2.forEach((line, index) => {
580 const y = 315 + (index * 20); // 每行文本的垂直位置
581 let currentLine = '';
582 let arr = [];
583 for (let word of line) {
584 const testLine = currentLine + word;
585 const lineWidth = context.measureText(testLine).width;
586 if (lineWidth <= 295) {
587 currentLine = testLine;
588 } else {
589 arr.push(currentLine);
590 currentLine = word;
591 }
592 }
593 arr.push(currentLine);
594 arr.forEach((line, index) => {
595 context.fillText(line, 775, y + (index * 20)); // 调整行高
596 })
597 })
598 } else {
599 lines2.forEach((line, index) => {
600 const y = 325 + (index * 20); // 每行文本的垂直位置
601 let currentLine = '';
602 let arr = [];
603 for (let word of line) {
604 const testLine = currentLine + word;
605 const lineWidth = context.measureText(testLine).width;
606 if (lineWidth <= 295) {
607 currentLine = testLine;
608 } else {
609 arr.push(currentLine);
610 currentLine = word;
611 }
612 }
613 arr.push(currentLine);
614 arr.forEach((line, index) => {
615 context.fillText(line, 775, y + (index * 20)); // 调整行高
616 })
617 })
618 }
619 // bdcdyh
620 this.bdcdyh = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
621 this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
622 // 保存当前字体设置
623 const originalFont = context.font;
624 // 设置新的字体大小
625 context.font = '16px 楷体'; // 替换为你想要的字体和大小
626 // 绘制 bdcdyh
627 context.fillText(this.bdcdyh ? this.bdcdyh : '', 775, 373);
628 // 恢复原始字体设置
629 context.font = originalFont;
630 // qlqtzk
631 function getByteLenBdcdy (val) {
632 var encoder = new TextEncoder('utf-8');
633 return encoder.encode(val).length;
634 }
635 const maxWidth = 290; // 最大宽度限制
636 let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split('\n').filter(i => i && i.trim()) : [];
637 let bdcdyNum = Math.ceil(getByteLenBdcdy(lines[0]) / 43)
638 // 单独处理不动产单元号
639 let linesBdcdy = lines[0] ? lines[0].split(' ') : [];
640 if (getByteLenBdcdy(lines[0]) > 43) {
641 linesBdcdy.forEach((line, index) => {
642 const y = 412 + (index * 17); // 每行文本的垂直位置
643 let currentLine = '';
644 let arr = [];
645 for (let word of line) {
646 const testLine = currentLine + word;
647 const lineWidth = context.measureText(testLine).width;
648 if (lineWidth <= maxWidth) {
649 currentLine = testLine;
650 } else {
651 arr.push(currentLine);
652 currentLine = word;
653 }
654 }
655 arr.push(currentLine);
656 arr.forEach((line, index) => {
657 context.fillText(line, 770, y + (index * 17)); // 调整行高
658 })
659 })
660 } else {
661 linesBdcdy.forEach((line, index) => {
662 const y = 418 + (index * 17); // 每行文本的垂直位置
663 let currentLine = '';
664 let arr = [];
665 for (let word of line) {
666 const testLine = currentLine + word;
667 const lineWidth = context.measureText(testLine).width;
668 if (lineWidth <= maxWidth) {
669 currentLine = testLine;
670 } else {
671 arr.push(currentLine);
672 currentLine = word;
673 }
674 }
675 arr.push(currentLine);
676 arr.forEach((line, index) => {
677 context.fillText(line, 770, y + (index * 17)); // 调整行高
678 })
679 })
680 }
681
682 for (let i = 1; i < lines.length; i++) {
683 let num = Math.ceil(getByteLen(lines[i]) / 32)
684 if (getByteLen(lines[i]) > 32) {
685 let currentLine = '';
686 let arr = [];
687 for (let word of lines[i]) {
688 const testLine = currentLine + word;
689 const lineWidth = context.measureText(testLine).width;
690 if (lineWidth <= maxWidth) {
691 currentLine = testLine;
692 } else {
693 arr.push(currentLine);
694 currentLine = word;
695 }
696 }
697 arr.push(currentLine);
698 if (i > 0) {
699 arr.forEach((line, index) => {
700 context.fillText(line, 770, 408 + (bdcdyNum * 15) + (24 * (i - 1)) + 5 * num + (index * 17)); // 调整行高
701 })
702 } else {
703 arr.forEach((line, index) => {
704 context.fillText(line, 770, 408 + (bdcdyNum * 15) + (24 * (i - 1)) + (index * 17)); // 调整行高
705 })
706 }
707 } else {
708 if (i > 0) {
709 context.fillText(lines[i] ? lines[i] : '', 770, 417 + (bdcdyNum * 15) + 6 * num + (25 * (i - 1)));
710 } else {
711 context.fillText(lines[i] ? lines[i] : '', 770, 417 + (bdcdyNum * 15) + (25 * (i - 1)));
712 }
713 }
714 }
715 // fj
716 let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split('\n').filter(i => i && i.trim()) : [];
717 for (let i = 0; i < lines1.length; i++) {
718 let num = Math.ceil(getByteLen(lines1[i]) / 37)
719 if (getByteLen(lines1[i]) > 37) {
720 let currentLine = '';
721 let arr = [];
722 for (let word of lines1[i]) {
723 const testLine = currentLine + word;
724 const lineWidth = context.measureText(testLine).width;
725 if (lineWidth <= maxWidth) {
726 currentLine = testLine;
727 } else {
728 arr.push(currentLine);
729 currentLine = word;
730 }
731 }
732 arr.push(currentLine);
733 if (i > 0) {
734 arr.forEach((line, index) => {
735 context.fillText(line, 770, 605 + (24 * (i - 1)) + 5 * num + (index * 17)); // 调整行高
736 })
737 } else {
738 arr.forEach((line, index) => {
739 context.fillText(line, 770, 605 + (24 * (i - 1)) + (index * 17)); // 调整行高
740 })
741 }
742 } else {
743 if (i > 0) {
744 context.fillText(lines1[i] ? lines1[i] : '', 770, 616 + 6 * num + (25 * (i - 1)));
745 } else {
746 context.fillText(lines1[i] ? lines1[i] : '', 770, 616 + (25 * (i - 1)));
747 }
748 }
749 }
750 }
751 image.src = this.bdczmSrc;
752 },
753 /**
754 * @description: 打印
755 * @author: renchao
756 */
757 handlePrint () {
758 let that = this
759 if (this.ruleForm.ysxlh == '') {
760 this.$message.error('请选择印刷序列号');
761 return;
762 }
763 store.dispatch('user/reWorkFresh', false)
764 if (this.bdcqz.bdcqzlx == 1) {
765 if (this.activeTitle == 'title1') {
766 getPrintTemplateByCode({ tmpno: 'zsdy1' }).then(resInfo => {
767 if (resInfo.code == 200) {
768 //打开模板设计
769 let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));
770 LODOP.ADD_PRINT_DATA("ProgramData", resInfo.result.tmpcontent); //装载模板
771 console.log(that.bdcqz);
772 for (let key in that.bdcqz) {
773 LODOP.SET_PRINT_STYLEA(key, "CONTENT", that.bdcqz[key]);
774 }
775 LODOP.PREVIEW();
776 } else {
777 that.$message.error(resInfo.message)
778 }
779 that.$popupCacel()
780 //刷新列表
781 store.dispatch('user/reWorkFresh', true)
782 })
783 } else {
784 getPrintTemplateByCode({ tmpno: 'zsdy' }).then(resInfo => {
785 if (resInfo.code == 200) {
786 //打开模板设计
787 let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));
788 LODOP.ADD_PRINT_DATA("ProgramData", resInfo.result.tmpcontent); //装载模板
789
790 that.bdcqz.bdcdyh1 = that.bdcqz.bdcdyh.slice(0, 6) + ' ' + that.bdcqz.bdcdyh.slice(6, 12) + ' ' +
791 that.bdcqz.bdcdyh.slice(12, 19) + ' ' + that.bdcqz.bdcdyh.slice(19, that.bdcqz.bdcdyh.length)
792 //todo 调取后端接口获取数据 循环set
793 for (let key in that.bdcqz) {
794 LODOP.SET_PRINT_STYLEA(key, "CONTENT", that.bdcqz[key]);
795 }
796 LODOP.PREVIEW();
797 } else {
798 that.$message.error(resInfo.message)
799 }
800 that.$popupCacel()
801 //刷新列表
802 store.dispatch('user/reWorkFresh', true)
803 })
804 }
805 } else {
806 getPrintTemplateByCode({ tmpno: 'zmdy' }).then(resInfo => {
807 if (resInfo.code == 200) {
808 //打开模板设计
809 let LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));
810 LODOP.ADD_PRINT_DATA("ProgramData", resInfo.result.tmpcontent); //装载模板
811
812 // 年月日
813 this.bdcqz.nian = this.bdcqz.djsj.split(' ')[0].split('/')[0]
814 this.bdcqz.yue = this.bdcqz.djsj.split(' ')[0].split('/')[1]
815 this.bdcqz.ri = this.bdcqz.djsj.split(' ')[0].split('/')[1]
816 this.bdcqz.bdcdyh1 = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
817 this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
818 //todo 调取后端接口获取数据 循环set
819 for (let key in this.bdcqz) {
820 LODOP.SET_PRINT_STYLEA(key, "CONTENT", this.bdcqz[key]);
821 }
822 LODOP.PREVIEW();
823 } else {
824 this.$message.error(resInfo.message)
825 }
826 that.$popupCacel()
827 //刷新列表
828 store.dispatch('user/reWorkFresh', true)
829 })
830 }
831 },
832 /**
833 * @description: 保存打印记录
834 * @author: renchao
835 */
836 handleSubmit () {
837 let that = this
838 if (this.ruleForm.ysxlh == '') {
839 this.$message.error('请选择印刷序列号');
840 return;
841 }
842 store.dispatch('user/reWorkFresh', false)
843 this.ruleForm.bsmBdcqz = this.bdcqz.bsmBdcqz;
844 this.ruleForm.bdcqzlx = this.bdcqz.bdcqzlx;
845 this.ruleForm.szzh = this.bdcqz.bdcqzh;
846 this.bdcqz.ysxlh = this.ruleForm.ysxlh
847 certificate(this.ruleForm).then((res) => {
848 if (res.code === 200) {
849 that.$popupCacel()
850 this.handlePrint()
851 } else {
852 this.$message.error(res.message)
853 }
854 store.dispatch('user/reWorkFresh', true)
855 })
856 }
857 }
858 }
859 </script>
860 <style scoped lang="scss">
861 @import "~@/styles/mixin.scss";
862 /deep/.el-tabs__nav-wrap::after {
863 display: none;
864 }
865 /deep/.el-tabs__header {
866 margin: 0;
867 }
868 /deep/.el-form-item--small.el-form-item {
869 margin-bottom: 0;
870 }
871 .zsdy-content {
872 height: 80vh;
873 overflow-y: scroll;
874 }
875 .zs-content {
876 text-align: center;
877 }
878 .invalid-diglog {
879 padding-bottom: 20px;
880 font-size: 16px;
881 font-weight: bold;
882 color: rgb(99, 99, 99);
883
884 .invalid-title {
885 display: flex;
886 align-content: center;
887
888 .invalid-icon {
889 color: rgb(254, 148, 0);
890 font-size: 34px;
891 margin-right: 10px;
892 }
893
894 .invalid-body {
895 line-height: 40px;
896 margin-bottom: 10px;
897 }
898 }
899
900 .invalid-reson {
901 margin-bottom: 10px;
902 }
903
904 .dialog-footer {
905 margin-top: 10px;
906 display: flex;
907 justify-content: flex-end;
908 }
909 }
910 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-19 14:45:09
5 -->
6 <template>
7 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
8 <el-row>
9 <el-col :span="8">
10 <el-form-item label="发证人姓名">
11 <el-input v-model="ruleForm.fzrmc" disabled></el-input>
12 </el-form-item>
13 </el-col>
14 <el-col :span="8">
15 <el-form-item label="发证时间">
16 <el-input v-model="ruleForm.fzsj" disabled></el-input>
17 </el-form-item>
18 </el-col>
19 <el-col :span="8">
20 <el-form-item label="发证数量">
21 <el-input v-model="ruleForm.fzsl" disabled></el-input>
22 </el-form-item>
23 </el-col>
24 </el-row>
25 <lb-table :column="tableData.columns" @row-dblclick="handleRowClick" ref="table" @selection-change="handleSelectionChange"
26 :data="tableData.data"
27 :pagination="false"
28 :calcHeight="300">
29 </lb-table>
30 <el-row>
31 <el-col :span="3">
32 <el-form-item label="身份证读卡器">
33 <el-button type="text" icon="el-icon-tickets" @click="readClick">读取</el-button>
34 </el-form-item>
35 </el-col>
36 <el-col :span="5">
37 <el-form-item label="领证人" prop="lzrxm" label-width="70px">
38 <el-input v-model="ruleForm.lzrxm"></el-input>
39 </el-form-item>
40 </el-col>
41 <el-col :span="5">
42 <el-form-item label="证件类型" prop="lzrzjlb" label-width="80px">
43 <el-select v-model="ruleForm.lzrzjlb" filterable clearable placeholder="请选择">
44 <el-option v-for="item in lzrzjlbData" :key="item.dcode" :label="item.dname" :value="item.dcode">
45 </el-option>
46 </el-select>
47 </el-form-item>
48 </el-col>
49 <el-col :span="5">
50 <el-form-item label="证件号" prop="lzrzjh" label-width="70px">
51 <el-input v-model="ruleForm.lzrzjh"></el-input>
52 </el-form-item>
53 </el-col>
54 <el-col :span="5">
55 <el-form-item label="领证人电话" prop="lzrdh">
56 <el-input v-model="ruleForm.lzrdh"></el-input>
57 </el-form-item>
58 </el-col>
59 </el-row>
60 <el-form-item class="text-center">
61 <el-button @click="$popupCacel">取消</el-button>
62 <el-button type="primary" @click="handleSubmit">确定</el-button>
63 </el-form-item>
64 </el-form>
65 </template>
66 <script>
67 const checkPhone = (rule, value, callback) => {
68 let regPone = null
69 let mobile = /^(1[3456789]\d{9})$/ //手机号
70 let tel = /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/ // 座机
71 if (value && value[0] === '0') {// 检查 value 是否存在并且不是 null 或者 undefined
72 regPone = tel
73 } else if (value && value[0] !== '0') {
74 regPone = mobile
75 }
76 if (regPone === null) {
77 return callback(
78 new Error('请输入电话')
79 )
80 } else if (!regPone.test(value)) {
81 return callback(
82 new Error("请输入正确的电话格式,其中座机格式'区号-座机号码'")
83 )
84 } else {
85 callback()
86 }
87 };
88 import Vue from 'vue'
89 import store from '@/store/index.js'
90 import table from "@/utils/mixin/table";
91 import { getIdCardInfo } from '@/utils/operation.js'
92 import { getUnclaimedBdcqz, issueCertificate, getBdcqzQlr } from "@/api/bdcqz.js";
93 import { datas } from "../../javascript/fzxxdata";
94 export default {
95 props: {
96 formData: {
97 type: Object,
98 default: () => {
99 return {}
100 }
101 }
102 },
103 mixins: [table],
104 data () {
105 return {
106 lzrzjlbData: store.getters.dictData['A30'],
107 ruleForm: {
108 fzrmc: '',
109 fzsj: '',
110 fzsl: '',
111 bdcqzList: [],
112 lzrxm: '',
113 lzrzjlb: '',
114 lzrzjh: '',
115 lzrdh: ''
116 },
117 rules: {
118 lzrxm: [
119 { required: true, message: '请输入领证人', trigger: 'blur' }
120 ],
121 lzrzjlb: [
122 { required: true, message: '请选择证件类型', trigger: 'change' }
123 ],
124 lzrzjh: [
125 { required: true, message: '请输入证件号', trigger: 'blur' }
126 ],
127 lzrdh: [
128 { required: true, validator: checkPhone, trigger: ["blur"] }
129 ]
130 },
131 tableData: {
132 total: 0,
133 columns: datas.columns().lzgrid,
134 data: []
135 }
136 }
137 },
138 mounted () {
139 this.$nextTick(() => {
140 this.loadGrid()
141 })
142 },
143 methods: {
144 /**
145 * @description: 身份证打卡器
146 * @author: renchao
147 */
148 readClick () {
149 function getObjectByValue (arrayOfObjects, value) {
150 var name = ''
151 arrayOfObjects.forEach(item => {
152 if (item.dname.includes(value)) name = item.dcode
153 })
154 return name
155 }
156 getIdCardInfo(this.BASE_API.gaopaiyi).then(res => {
157 if (this.BASE_API.gaopaiyi == 'jy') {
158 const {
159 Name,
160 IdNo,
161 } = JSON.parse(res)
162 if (Name) {
163 this.ruleForm.lzrxm = Name;
164 this.ruleForm.lzrzjlb = '1';
165 this.ruleForm.lzrzjh = IdNo;
166 this.$message({
167 message: '读取成功!',
168 type: 'success'
169 })
170 } else {
171 this.$message({
172 message: '请放置身份证',
173 type: 'warning'
174 })
175 }
176 } else {
177 if (res.data.code == 0) {
178 let data = res.data.IDCardInfo
179 this.ruleForm.lzrxm = data.name
180 this.ruleForm.lzrzjlb = '1'
181 this.ruleForm.lzrzjh = data.cardID
182 this.$message({
183 message: '读取成功!',
184 type: 'success'
185 })
186 } else {
187 this.$message({
188 message: res.data.message,
189 type: 'warning'
190 })
191 }
192 }
193 })
194 },
195 /**
196 * @description: 列表初始化
197 * @author: renchao
198 */
199 loadGrid () {
200 let that = this
201 getUnclaimedBdcqz({ bsmSlsq: Vue.prototype.$currentRoute.query.bsmSlsq }).then(res => {
202 if (res.code === 200) {
203 this.tableData.data = res.result.list;
204 this.$nextTick(() => {
205 this.tableData.data.forEach(item => {
206 that.$refs.table.toggleRowSelection(item)
207 })
208 })
209 this.ruleForm.fzrmc = res.result.fzrmc
210 this.ruleForm.fzsj = res.result.fzsj
211 this.ruleForm.fzsl = res.result.fzsl
212 this.ruleForm.bdcqzList = res.result.list;
213 res.result.list.length && this.getQlr(res.result.list[0].bsmBdcqz)
214 }
215 })
216 },
217 /**
218 * @description: 获取权利人信息
219 * @author: renchao
220 */
221 getQlr (bsmBdcqz) {
222 getBdcqzQlr(bsmBdcqz).then(res => {
223 if (res.code === 200) {
224 this.ruleForm.lzrxm = res.result.qlrmc;
225 this.ruleForm.lzrzjlb = res.result.zjzl;
226 this.ruleForm.lzrzjh = res.result.zjh;
227 this.ruleForm.lzrdh = res.result.dh;
228 }
229 })
230 },
231 /**
232 * @description: handleSelectionChange
233 * @param {*} val
234 * @author: renchao
235 */
236 handleSelectionChange (val) {
237 this.ruleForm.bdcqzList = val
238 },
239 /**
240 * @description: handleRowClick
241 * @param {*} row
242 * @author: renchao
243 */
244 handleRowClick (row) {
245 this.$refs.table.toggleRowSelection(row)
246 },
247 /**
248 * @description: handleSubmit
249 * @author: renchao
250 */
251 handleSubmit () {
252 this.$refs.ruleForm.validate(valid => {
253 if (valid) {
254 issueCertificate(this.ruleForm).then(res => {
255 if (res.code == 200) {
256 this.$message.success('保存成功');
257 //刷新列表
258 store.dispatch('user/reWorkFresh', true)
259 this.$popupCacel()
260 } else {
261 this.$message.error(res.message)
262 }
263 })
264 } else {
265 return false;
266 }
267 })
268 }
269 }
270 }
271 </script>
272 <style scoped lang="scss">
273 @import "~@/styles/mixin.scss";
274 </style>
275
276
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-11-15 15:41:43
5 -->
6 <template>
7 <div class="from-clues loadingtext" v-Loading="loading" element-loading-text="拼命加载中...">
8 <!-- 表单部分 -->
9 <el-tabs v-model="activeName" @tab-click="handleClick" v-if="headTabBdcqz.length >1" style="margin-top:-15px">
10 <el-tab-pane :label="item.qlr + (item.bdcqzh !== null ? '(' + item.bdcqzh + ')' : '')" :name="item.bsmBdcqz"
11 v-for="(item, index) in headTabBdcqz" :key="index">
12 </el-tab-pane>
13 </el-tabs>
14 <el-empty description="暂无数据" v-if="headTabBdcqz.length == 0 && noData"></el-empty>
15 <div v-else>
16 <div style="height:540px">
17 <el-form class="zs" :model="bdcqz" v-if="this.bdcqz.bdcqzlx==1" ref="ruleForm" label-width="100px">
18 <el-row>
19 <el-col :span="24">
20 <el-form-item label="权利人">
21 <el-input v-model="bdcqz.qlr"></el-input>
22 </el-form-item>
23 </el-col>
24 </el-row>
25 <el-row>
26 <el-col :span="24">
27 <el-form-item label="共有情况">
28 <el-select v-model="bdcqz.gyqk" class="width100" placeholder="请选择">
29 <el-option
30 v-for="item in gyqkList"
31 :key="item.dcode"
32 :label="item.dname"
33 :value="item.dcode">
34 </el-option>
35 </el-select>
36 </el-form-item>
37 </el-col>
38 </el-row>
39 <el-row>
40 <el-col :span="24">
41 <el-form-item label="坐落">
42 <el-input v-model="bdcqz.zl"></el-input>
43 </el-form-item>
44 </el-col>
45 </el-row>
46 <el-row>
47 <el-col :span="24">
48 <el-form-item label="不动产单元号">
49 <el-input v-model="bdcqz.bdcdyh"></el-input>
50 </el-form-item>
51 </el-col>
52 </el-row>
53 <el-row>
54 <el-col :span="24">
55 <el-form-item label="权利类型">
56 <el-input v-model="bdcqz.qllx"></el-input>
57 </el-form-item>
58 </el-col>
59 </el-row>
60 <el-row>
61 <el-col :span="24">
62 <el-form-item label="权利性质 ">
63 <el-input v-model="bdcqz.qlxz"></el-input>
64 </el-form-item>
65 </el-col>
66 </el-row>
67 <el-row>
68 <el-col :span="24">
69 <el-form-item label="用途">
70 <el-input v-model="bdcqz.yt"></el-input>
71 </el-form-item>
72 </el-col>
73 </el-row>
74 <el-row>
75 <el-col :span="24">
76 <el-form-item label="面积">
77 <el-input v-model="bdcqz.mj"></el-input>
78 </el-form-item>
79 </el-col>
80 </el-row>
81 <el-row>
82 <el-col :span="24">
83 <el-form-item label="使用期限 ">
84 <el-input v-model="bdcqz.syqx"></el-input>
85 </el-form-item>
86 </el-col>
87 </el-row>
88 <el-row>
89 <el-col :span="24">
90 <el-form-item label="权利其他状况">
91 <el-input v-model="bdcqz.qlqtzk" :rows="4" type="textarea"></el-input>
92 </el-form-item>
93 </el-col>
94 </el-row>
95 <el-row>
96 <el-col :span="24">
97 <el-form-item label="附记">
98 <el-input v-model="bdcqz.fj" :rows="4" type="textarea"></el-input>
99 </el-form-item>
100 </el-col>
101 </el-row>
102 </el-form>
103 <el-form :model="bdcqz" class="zm" v-else ref="ruleForm" label-width="110px">
104 <el-row>
105 <el-col :span="24">
106 <el-form-item label="证明权利或事项">
107 <el-input v-model="bdcqz.zmqlhsx"></el-input>
108 </el-form-item>
109 </el-col>
110 </el-row>
111 <el-row>
112 <el-col :span="24">
113 <el-form-item label="权利人(申请人)">
114 <el-input v-model="bdcqz.qlr"></el-input>
115 </el-form-item>
116 </el-col>
117 </el-row>
118 <el-row>
119 <el-col :span="24">
120 <el-form-item label="义务人">
121 <el-input v-model="bdcqz.ywr"></el-input>
122 </el-form-item>
123 </el-col>
124 </el-row>
125 <el-row>
126 <el-col :span="24">
127 <el-form-item label="坐落">
128 <el-input v-model="bdcqz.zl"></el-input>
129 </el-form-item>
130 </el-col>
131 </el-row>
132 <el-row>
133 <el-col :span="24">
134 <el-form-item label="不动产单元号">
135 <el-input v-model="bdcqz.bdcdyh"></el-input>
136 </el-form-item>
137 </el-col>
138 </el-row>
139 <el-row>
140 <el-col :span="24">
141 <el-form-item label="其他状况">
142 <el-input v-model="bdcqz.qlqtzk" :rows="6" type="textarea"></el-input>
143 </el-form-item>
144 </el-col>
145 </el-row>
146 <el-row>
147 <el-col :span="24">
148 <el-form-item label="附记">
149 <el-input v-model="bdcqz.fj" :rows="6" type="textarea"></el-input>
150 </el-form-item>
151 </el-col>
152 </el-row>
153 </el-form>
154 </div>
155 <div style="text-align:center">
156 <el-button @click="$popupCacel">取消</el-button>
157 <el-button type="primary" @click="handleSubmit">保存</el-button>
158 </div>
159 </div>
160 </div>
161 </template>
162
163 <script>
164 import store from '@/store/index.js'
165 import { getSlsqBdcqzList, editBdcqz } from "@/api/bdcqz.js"
166 export default {
167 name: "zsxg",
168 props: {
169 formData: {
170 type: Object,
171 default: {}
172 }
173 },
174 data () {
175 return {
176 gyqkList: store.getters.dictData['A34'],
177 key: 0,
178 noData: false,
179 loading: false,
180 bdcqz: {},
181 //tab切换栏数组
182 headTabBdcqz: [],
183 //tab选择绑定值
184 activeName: '',
185 }
186 },
187 mounted () {
188 this.getHeadTabBdcqz()
189 },
190 methods: {
191 /**
192 * @description: 获取受理申请下全部不动产权证
193 * @author: renchao
194 */
195 getHeadTabBdcqz () {
196 this.loading = true
197 getSlsqBdcqzList({ bsmSlsq: this.formData.bsmSlsq }).then(res => {
198 if (res.code == 200) {
199 this.noData = true
200 if (res.result && res.result.length > 0) {
201 this.bdcqz = res.result[0]
202 this.headTabBdcqz = _.cloneDeep(res.result)
203 if (this.formData.bsmBdcqz) {
204 this.activeName = this.formData.bsmBdcqz
205 } else {
206 this.activeName = res.result[0].bsmBdcqz
207 }
208 }
209 }
210 this.loading = false
211 })
212 },
213 handleClick (tab) {
214 this.bdcqz = _.cloneDeep(this.headTabBdcqz[tab.index])
215 },
216 handleSubmit () {
217 editBdcqz(this.bdcqz).then(res => {
218 if (res.code == 200) {
219 this.$message.success('保存成功');
220 //刷新列表
221 this.$popupCacel()
222 } else {
223 this.$message.error(res.message)
224 }
225 })
226 }
227 }
228 }
229 </script>
230 <style scoped lang="scss">
231 @import "~@/styles/mixin.scss";
232 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-02-06 13:23:44
5 -->
6 <template>
7 <div class="from-clues loadingtext" v-Loading="loading" element-loading-text="拼命加载中..." style="text-align: center;">
8 <!-- 表单部分 -->
9 <div style="margin-top:-20px">
10 <el-tabs v-model="activeName" @tab-click="handleClick" v-if="headTabBdcqz.length >1">
11 <el-tab-pane :label="item.qlr + (item.bdcqzh !== null ? '(' + item.bdcqzh + ')' : '')" :name="item.bsmBdcqz"
12 v-for="(item, index) in headTabBdcqz" :key="index">
13 </el-tab-pane>
14 </el-tabs>
15 </div>
16 <el-empty description="暂无数据" v-if="headTabBdcqz.length == 0 && noData"></el-empty>
17 <div style="max-height:89vh;overflow-y:auto">
18 <div v-show="this.bdcqz.bdcqzlx==1">
19 <el-tabs v-model="activeTitle">
20 <el-tab-pane label="第一页" name="title1"></el-tab-pane>
21 <el-tab-pane label="第二页" name="title2"></el-tab-pane>
22 </el-tabs>
23 <div style="width:1169px;overflow-x: hidden;">
24 <canvas ref="zs1" width="1024" v-show="activeTitle=='title1'" height="739"></canvas>
25 <canvas ref="zs" width="1024" v-show="activeTitle=='title2'" height="739"></canvas>
26 </div>
27 </div>
28 <div style="width:1169px;overflow-x: hidden;" v-show="this.bdcqz.bdcqzlx==2">
29 <canvas ref="zm" width="1169" height="828"></canvas>
30 </div>
31 </div>
32 </div>
33 </template>
34
35 <script>
36 import QRCode from 'qrcode'
37 import { datas } from "../../javascript/zsyl.js";
38 import { getSlsqBdcqzList } from "@/api/bdcqz.js"
39 export default {
40 name: "zsyl",
41 props: {
42 formData: {
43 type: Object,
44 default: {}
45 }
46 },
47 data () {
48 return {
49 activeTitle: 'title1',
50 key: 0,
51 noData: false,
52 imgSrc1: require('@/image/bdcqz/bdcqzs1.jpg'),
53 imgSrc: require('@/image/bdcqz/bdcqzs2.jpg'),
54 bdczmSrc: require('@/image/bdcqz/bdczm.jpg'),
55 loading: false,
56 //印刷序列号集合
57 ysxlh: [],
58 //列名称对象
59 columns: [],
60 //选择的不动产权证文件
61 bdcqz: '',
62 //证书打开类型 是否需要展示打印按钮
63 isToPrint: false,
64 //tab切换栏数组
65 headTabBdcqz: [],
66 //tab选择绑定值
67 activeName: '',
68 //证书图片预览
69 previewImage: '',
70 ruleForm: {
71 bsmBdcqz: '',
72 szmc: '不动产权证书',
73 bsmBdcqz: '',
74 szzh: '',
75 ysxlh: '',
76 },
77 }
78 },
79 mounted () {
80 this.columns = datas.columns();
81 if (this.formData.bdcqz) {
82 //从缮证进入
83 this.bdcqz = this.formData.bdcqz
84 } else {
85 //从按钮进入
86 this.getHeadTabBdcqz();
87 }
88 },
89 methods: {
90 /**
91 * @description: 获取证书内容
92 * @param {*} code
93 * @author: renchao
94 */
95 getRowValue (code) {
96 var value = this.bdcqz[code];
97 return value;
98 },
99 /**
100 * @description: 获取受理申请下全部不动产权证
101 * @author: renchao
102 */
103 getHeadTabBdcqz () {
104 this.loading = true
105 getSlsqBdcqzList({ bsmSlsq: this.formData.bsmSlsq }).then(res => {
106 if (res.code == 200) {
107 this.noData = true
108 if (res.result && res.result.length > 0) {
109 this.bdcqz = res.result[0]
110 this.headTabBdcqz = res.result
111 if (this.formData.bsmBdcqz) {
112 this.activeName = this.formData.bsmBdcqz
113 } else {
114 this.activeName = res.result[0].bsmBdcqz
115 }
116 if (this.bdcqz.bdcqzlx == 1) {
117 this.drawTextOnImage()
118 } else {
119 this.drawTextzmImage()
120 }
121 }
122 }
123 this.loading = false
124 })
125 },
126 /**
127 * @description: tab表头切换方法
128 * @param {*} e
129 * @author: renchao
130 */
131 handleClick (tab, event) {
132 this.bdcqz = this.headTabBdcqz[tab.index]
133 if (this.bdcqz.bdcqzlx == 1) {
134 this.drawTextOnImage()
135 } else {
136 this.drawTextzmImage()
137 }
138 },
139 /**
140 * @description: 不动产证书
141 * @author: renchao
142 */
143 drawTextOnImage1 () {
144 const canvas = this.$refs.zs1;
145 const context = canvas.getContext('2d');
146 const image = new Image();
147 image.onload = () => {
148 context.drawImage(image, 0, 0);
149 context.font = '18px 楷体';
150 context.fillStyle = '#000000';
151 let date = this.bdcqz.djsj.split(' ')[0].split('/');
152 let nian = date[0]
153 let yue = date[1]
154 let ri = date[2]
155 this.bdcqz.nian = nian
156 this.bdcqz.yue = yue
157 this.bdcqz.ri = ri
158 context.fillText(nian ? nian : '', 780, 499);
159 context.fillText(yue ? yue : '', 840, 499);
160 context.fillText(ri ? ri : '', 885, 499);
161 QRCode.toDataURL(this.bdcqz.bdcqzh, { margin: 0 })
162 .then(url => {
163 const qrImage = new Image();
164 this.bdcqz.qrImage = url; // 将二维码图片的 URL 存储到 bdcqz 对象的 qrImage 属性中
165 qrImage.onload = () => {
166 context.drawImage(qrImage, 670, 400, 100, 100);
167 };
168 qrImage.src = url;
169 })
170 .catch(error => {
171 console.error(error);
172 });
173 context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 745, 633);
174 };
175 image.src = this.imgSrc1;
176 },
177 drawTextOnImage () {
178 this.drawTextOnImage1()
179 function getByteLen (val) {
180 var len = 0;
181 if (!val) return len;
182 for (var i = 0; i < val.length; i++) {
183 var length = val.charCodeAt(i);
184 if (length >= 0 && length <= 128) {
185 len += 1;
186 } else {
187 len += 2;
188 }
189 }
190 return len;
191 }
192 const canvas = this.$refs.zs;
193 const context = canvas.getContext('2d');
194 const image = new Image();
195 image.onload = () => {
196 context.drawImage(image, 0, 0);
197 context.font = '18px 楷体';
198 context.fillStyle = '#000000';
199 context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 60, 56);
200 context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 113, 56);
201 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 180, 56);
202 context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 370, 56);
203 context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 129, 97);
204 context.fillText(this.bdcqz.gyqk ? this.bdcqz.gyqk : '', 129, 136);
205
206 this.bdcdyh = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
207 this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
208 context.fillText(this.bdcdyh ? this.bdcdyh : '', 129, 223);
209
210 context.fillText(this.bdcqz.qllx ? this.bdcqz.qllx : '', 129, 263);
211 context.fillText(this.bdcqz.qlxz ? this.bdcqz.qlxz : '', 129, 303);
212 context.fillText(this.bdcqz.yt ? this.bdcqz.yt : '', 129, 346);
213 // context.fillText(this.bdcqz.mj ? this.bdcqz.mj : '', 129, 386);
214 let lines6 = this.bdcqz.mj ? this.bdcqz.mj.split(' ') : [];
215 if (getByteLen(this.bdcqz.mj) > 37) {
216 lines6.forEach((line, index) => {
217 const y = 378 + (index * 27); // 每行文本的垂直位置
218 let currentLine = '';
219 let arr = [];
220 for (let word of line) {
221 const testLine = currentLine + word;
222 const lineWidth = context.measureText(testLine).width;
223 if (lineWidth <= 330) {
224 currentLine = testLine;
225 } else {
226 arr.push(currentLine);
227 currentLine = word;
228 }
229 }
230 arr.push(currentLine);
231 arr.forEach((line, index) => {
232 context.fillText(line, 129, y + (index * 20)); // 调整行高
233 })
234 })
235 } else {
236 lines6.forEach((line, index) => {
237 const y = 386 + (index * 27); // 每行文本的垂直位置
238 let currentLine = '';
239 let arr = [];
240 for (let word of line) {
241 const testLine = currentLine + word;
242 const lineWidth = context.measureText(testLine).width;
243 if (lineWidth <= 330) {
244 currentLine = testLine;
245 } else {
246 arr.push(currentLine);
247 currentLine = word;
248 }
249 }
250 arr.push(currentLine);
251 arr.forEach((line, index) => {
252 context.fillText(line, 129, y + (index * 20)); // 调整行高
253 })
254 })
255 }
256 // 权利其他状态
257 let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split('\n').filter(i => i && i.trim()) : [];
258 for (let i = 0; i < lines.length; i++) {
259 let num = Math.ceil(getByteLen(lines[i]) / 38)
260 if (getByteLen(lines[i]) > 37) {
261 let currentLine = '';
262 let arr = [];
263 for (let word of lines[i]) {
264 const testLine = currentLine + word;
265 const lineWidth = context.measureText(testLine).width;
266 if (lineWidth <= 323) {
267 currentLine = testLine;
268 } else {
269 arr.push(currentLine);
270 currentLine = word;
271 }
272 }
273 arr.push(currentLine);
274 if (i > 0) {
275 arr.forEach((line, index) => {
276 context.fillText(line, 129, 495 + (29 * (i - 1)) + 4 * num + (index * 14)); // 调整行高
277 })
278 } else {
279 arr.forEach((line, index) => {
280 context.fillText(line, 129, 493 + (26 * (i - 1)) + (index * 14)); // 调整行高
281 })
282 }
283 } else {
284 if (i > 0) {
285 context.fillText(lines[i] ? lines[i] : '', 129, 500 + 4 * num + (29 * (i - 1)));
286 } else {
287 context.fillText(lines[i] ? lines[i] : '', 129, 505 + (27 * (i - 1)));
288 }
289 }
290 }
291
292 let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split('\n').filter(i => i && i.trim()) : [];
293 lines1.forEach((line, index) => {
294 const y = 100 + (index * 30); // 每行文本的垂直位置
295 let currentLine = '';
296 let arr = [];
297 for (let word of line) {
298 const testLine = currentLine + word;
299 const lineWidth = context.measureText(testLine).width;
300 if (lineWidth <= 395) {
301 currentLine = testLine;
302 } else {
303 arr.push(currentLine);
304 currentLine = word;
305 }
306 }
307 arr.push(currentLine);
308 arr.forEach((line, index) => {
309 context.fillText(line, 580, y + (index * 30)); // 调整行高
310 })
311 })
312 let lines3 = this.bdcqz.syqx ? this.bdcqz.syqx.split(' ') : [];
313 if (getByteLen(this.bdcqz.syqx) > 37) {
314 lines3.forEach((line, index) => {
315 const y = 423 + (index * 27); // 每行文本的垂直位置
316 let currentLine = '';
317 let arr = [];
318 for (let word of line) {
319 const testLine = currentLine + word;
320 const lineWidth = context.measureText(testLine).width;
321 if (lineWidth <= 330) {
322 currentLine = testLine;
323 } else {
324 arr.push(currentLine);
325 currentLine = word;
326 }
327 }
328 arr.push(currentLine);
329 arr.forEach((line, index) => {
330 context.fillText(line, 129, y + (index * 20)); // 调整行高
331 })
332 })
333 } else {
334 lines3.forEach((line, index) => {
335 const y = 430 + (index * 27); // 每行文本的垂直位置
336 let currentLine = '';
337 let arr = [];
338 for (let word of line) {
339 const testLine = currentLine + word;
340 const lineWidth = context.measureText(testLine).width;
341 if (lineWidth <= 315) {
342 currentLine = testLine;
343 } else {
344 arr.push(currentLine);
345 currentLine = word;
346 }
347 }
348 arr.push(currentLine);
349 arr.forEach((line, index) => {
350 context.fillText(line, 129, y + (index * 20)); // 调整行高
351 })
352 })
353 }
354
355 let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(' ') : [];
356 if (getByteLen(this.bdcqz.zl) > 37) {
357 lines2.forEach((line, index) => {
358 const y = 170 + (index * 20); // 每行文本的垂直位置
359 let currentLine = '';
360 let arr = [];
361 for (let word of line) {
362 const testLine = currentLine + word;
363 const lineWidth = context.measureText(testLine).width;
364 if (lineWidth <= 336) {
365 currentLine = testLine;
366 } else {
367 arr.push(currentLine);
368 currentLine = word;
369 }
370 }
371 arr.push(currentLine);
372 arr.forEach((line, index) => {
373 context.fillText(line, 129, y + (index * 20)); // 调整行高
374 })
375 })
376 } else {
377 lines2.forEach((line, index) => {
378 const y = 180 + (index * 20); // 每行文本的垂直位置
379 let currentLine = '';
380 let arr = [];
381 for (let word of line) {
382 const testLine = currentLine + word;
383 const lineWidth = context.measureText(testLine).width;
384 if (lineWidth <= 336) {
385 currentLine = testLine;
386 } else {
387 arr.push(currentLine);
388 currentLine = word;
389 }
390 }
391 arr.push(currentLine);
392 arr.forEach((line, index) => {
393 context.fillText(line, 129, y + (index * 20)); // 调整行高
394 })
395 })
396 }
397 }
398 image.src = this.imgSrc
399 },
400 /**
401 * @description: 不动产证明
402 * @author: renchao
403 */
404 drawTextzmImage () {
405 function getByteLen (val) {
406 var len = 0;
407 if (!val) return len;
408 for (var i = 0; i < val.length; i++) {
409 var length = val.charCodeAt(i);
410 if (length >= 0 && length <= 128) {
411 len += 1;
412 } else {
413 len += 2;
414 }
415 }
416 return len;
417 }
418 const canvas = this.$refs.zm;
419 const context = canvas.getContext('2d');
420 const image = new Image();
421 image.onload = () => {
422 context.drawImage(image, 0, 0);
423 context.font = '18px 楷体';
424 context.fillStyle = '#000000';
425 // ysxlh
426 context.fillText(this.bdcqz.ysxlh ? this.bdcqz.ysxlh : '', 280, 712);
427 // djsj
428 if (this.bdcqz.djsj) {
429 let djsjList = this.bdcqz.djsj.split(' ')[0].split('/')
430 context.fillText(djsjList[0] ? djsjList[0] : '', 327, 580);
431 context.fillText(djsjList[1] ? djsjList[1] : '', 393, 580);
432 context.fillText(djsjList[2] ? djsjList[2] : '', 443, 580);
433 }
434 context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : '', 620, 125);
435 context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : '', 665, 125);
436 if (getByteLen(this.bdcqz.sxqc) > 14) {
437 const originalFont = context.font;
438 // 设置新的字体大小
439 context.font = '14px 楷体'; // 替换为你想要的字体和大小
440 // 绘制 bdcdyh
441 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 725, 125);
442 // 恢复原始字体设置
443 context.font = originalFont;
444 } else {
445 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : '', 755, 125);
446 }
447
448 context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : '', 960, 123);
449 context.fillText(this.bdcqz.zmqlhsx ? this.bdcqz.zmqlhsx : '', 775, 180);
450 // context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 775, 228);
451 // 权利人
452 let qlrlines = this.bdcqz.qlr
453 if (getByteLen(this.bdcqz.qlr) > 32) {
454 let currentLine = '';
455 let arr = [];
456 for (let word of qlrlines) {
457 const testLine = currentLine + word;
458 const lineWidth = context.measureText(testLine).width;
459 if (lineWidth <= 295) {
460 currentLine = testLine;
461 } else {
462 arr.push(currentLine);
463 currentLine = word;
464 }
465 }
466 arr.push(currentLine); // 将最后一行添加到数组
467 // 绘制所有行
468 for (let i = 0; i < arr.length; i++) {
469 context.fillText(arr[i], 775, 218 + i * 20); // lineHeight 为行高
470 }
471 } else {
472 context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : '', 775, 228);
473 }
474
475 // 义务人
476 // context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : '', 775, 275);
477 let ywrlines = this.bdcqz.ywr
478 if (getByteLen(this.bdcqz.ywr) > 32) {
479 let currentLine = '';
480 let arr = [];
481 for (let word of ywrlines) {
482 const testLine = currentLine + word;
483 const lineWidth = context.measureText(testLine).width;
484 if (lineWidth <= 295) {
485 currentLine = testLine;
486 } else {
487 arr.push(currentLine);
488 currentLine = word;
489 }
490 }
491 arr.push(currentLine); // 将最后一行添加到数组
492 // 绘制所有行
493 for (let i = 0; i < arr.length; i++) {
494 context.fillText(arr[i], 775, 268 + i * 20); // lineHeight 为行高
495 }
496 } else {
497 context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : '', 775, 275);
498 }
499
500 // context.fillText(this.bdcqz.zl ? this.bdcqz.zl : '', 775, 325);
501 let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(' ') : [];
502 if (getByteLen(this.bdcqz.zl) > 32) {
503 lines2.forEach((line, index) => {
504 const y = 315 + (index * 20); // 每行文本的垂直位置
505 let currentLine = '';
506 let arr = [];
507 for (let word of line) {
508 const testLine = currentLine + word;
509 const lineWidth = context.measureText(testLine).width;
510 if (lineWidth <= 295) {
511 currentLine = testLine;
512 } else {
513 arr.push(currentLine);
514 currentLine = word;
515 }
516 }
517 arr.push(currentLine);
518 arr.forEach((line, index) => {
519 context.fillText(line, 775, y + (index * 20)); // 调整行高
520 })
521 })
522 } else {
523 lines2.forEach((line, index) => {
524 const y = 325 + (index * 20); // 每行文本的垂直位置
525 let currentLine = '';
526 let arr = [];
527 for (let word of line) {
528 const testLine = currentLine + word;
529 const lineWidth = context.measureText(testLine).width;
530 if (lineWidth <= 295) {
531 currentLine = testLine;
532 } else {
533 arr.push(currentLine);
534 currentLine = word;
535 }
536 }
537 arr.push(currentLine);
538 arr.forEach((line, index) => {
539 context.fillText(line, 775, y + (index * 20)); // 调整行高
540 })
541 })
542 }
543
544 // bdcdyh
545 this.bdcdyh = this.bdcqz.bdcdyh.slice(0, 6) + ' ' + this.bdcqz.bdcdyh.slice(6, 12) + ' ' +
546 this.bdcqz.bdcdyh.slice(12, 19) + ' ' + this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length)
547 // context.fillText(this.bdcdyh ? this.bdcdyh : '', 775, 373);
548 // 保存当前字体设置
549 const originalFont = context.font;
550 // 设置新的字体大小
551 context.font = '16px 楷体'; // 替换为你想要的字体和大小
552 // 绘制 bdcdyh
553 context.fillText(this.bdcdyh ? this.bdcdyh : '', 775, 373);
554 // 恢复原始字体设置
555 context.font = originalFont;
556 // qlqtzk
557 function getByteLenBdcdy (val) {
558 var encoder = new TextEncoder('utf-8');
559 return encoder.encode(val).length;
560 }
561 const maxWidth = 295; // 最大宽度限制
562 let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split('\n').filter(i => i && i.trim()) : [];
563 let bdcdyNum = Math.ceil(getByteLenBdcdy(lines[0]) / 43)
564 // 单独处理不动产单元号
565 let linesBdcdy = lines[0] ? lines[0].split(' ') : [];
566 if (getByteLenBdcdy(lines[0]) > 43) {
567 linesBdcdy.forEach((line, index) => {
568 const y = 412 + (index * 17); // 每行文本的垂直位置
569 let currentLine = '';
570 let arr = [];
571 for (let word of line) {
572 const testLine = currentLine + word;
573 const lineWidth = context.measureText(testLine).width;
574 if (lineWidth <= maxWidth) {
575 currentLine = testLine;
576 } else {
577 arr.push(currentLine);
578 currentLine = word;
579 }
580 }
581 arr.push(currentLine);
582 arr.forEach((line, index) => {
583 context.fillText(line, 770, y + (index * 17)); // 调整行高
584 })
585 })
586 } else {
587 linesBdcdy.forEach((line, index) => {
588 const y = 418 + (index * 17); // 每行文本的垂直位置
589 let currentLine = '';
590 let arr = [];
591 for (let word of line) {
592 const testLine = currentLine + word;
593 const lineWidth = context.measureText(testLine).width;
594 if (lineWidth <= maxWidth) {
595 currentLine = testLine;
596 } else {
597 arr.push(currentLine);
598 currentLine = word;
599 }
600 }
601 arr.push(currentLine);
602 arr.forEach((line, index) => {
603 context.fillText(line, 770, y + (index * 17)); // 调整行高
604 })
605 })
606 }
607
608 for (let i = 1; i < lines.length; i++) {
609 let num = Math.ceil(getByteLen(lines[i]) / 32)
610 if (getByteLen(lines[i]) > 32) {
611 let currentLine = '';
612 let arr = [];
613 for (let word of lines[i]) {
614 const testLine = currentLine + word;
615 const lineWidth = context.measureText(testLine).width;
616 if (lineWidth <= maxWidth) {
617 currentLine = testLine;
618 } else {
619 arr.push(currentLine);
620 currentLine = word;
621 }
622 }
623 arr.push(currentLine);
624 if (i > 0) {
625 arr.forEach((line, index) => {
626 context.fillText(line, 770, 408 + (bdcdyNum * 15) + (24 * (i - 1)) + 5 * num + (index * 17)); // 调整行高
627 })
628 } else {
629 arr.forEach((line, index) => {
630 context.fillText(line, 770, 408 + (bdcdyNum * 15) + (24 * (i - 1)) + (index * 17)); // 调整行高
631 })
632 }
633 } else {
634 if (i > 0) {
635 context.fillText(lines[i] ? lines[i] : '', 770, 417 + (bdcdyNum * 15) + 6 * num + (25 * (i - 1)));
636 } else {
637 context.fillText(lines[i] ? lines[i] : '', 770, 417 + (bdcdyNum * 15) + (25 * (i - 1)));
638 }
639 }
640 }
641 // fj
642 let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split('\n').filter(i => i && i.trim()) : [];
643 for (let i = 0; i < lines1.length; i++) {
644 let num = Math.ceil(getByteLen(lines1[i]) / 37)
645 if (getByteLen(lines1[i]) > 37) {
646 let currentLine = '';
647 let arr = [];
648 for (let word of lines1[i]) {
649 const testLine = currentLine + word;
650 const lineWidth = context.measureText(testLine).width;
651 if (lineWidth <= maxWidth) {
652 currentLine = testLine;
653 } else {
654 arr.push(currentLine);
655 currentLine = word;
656 }
657 }
658 arr.push(currentLine);
659 if (i > 0) {
660 arr.forEach((line, index) => {
661 context.fillText(line, 770, 605 + (24 * (i - 1)) + 5 * num + (index * 17)); // 调整行高
662 })
663 } else {
664 arr.forEach((line, index) => {
665 context.fillText(line, 770, 605 + (24 * (i - 1)) + (index * 17)); // 调整行高
666 })
667 }
668 } else {
669 if (i > 0) {
670 context.fillText(lines1[i] ? lines1[i] : '', 770, 616 + 6 * num + (25 * (i - 1)));
671 } else {
672 context.fillText(lines1[i] ? lines1[i] : '', 770, 616 + (25 * (i - 1)));
673 }
674 }
675 }
676 }
677
678 image.src = this.bdczmSrc;
679 }
680 }
681 }
682 </script>
683 <style scoped lang="scss">
684 @import "~@/styles/mixin.scss";
685 /deep/.el-tabs__nav-wrap::after {
686 display: none;
687 }
688 /deep/.el-tabs__header {
689 margin: 0;
690 }
691 /deep/.el-form-item--small.el-form-item {
692 margin-bottom: 0;
693 }
694 /deep/.mask-content {
695 padding-top: 10px !important;
696 }
697 .imgClass {
698 display: inline-block;
699 height: auto;
700 max-width: 100%;
701 }
702
703 .middle_padding {
704 padding-bottom: 10px;
705 }
706
707 .zsyl-button {
708 text-align: center;
709 margin-top: 20px;
710
711 .operation_button {
712 width: 100px;
713 border: 1px solid rgb(0, 121, 254);
714 }
715
716 .dy-button {
717 color: white;
718 background-color: rgb(0, 121, 254);
719 }
720 }
721
722 .table-column {
723 border-spacing: 1px;
724 width: 100%;
725
726 tr td {
727 border: 1px solid #ccc;
728 text-align: center;
729 height: 40px;
730 padding: 4px;
731 font-size: 13px;
732 background: rgb(251, 249, 229);
733 }
734 }
735
736 .zsyl-title {
737 background: #fafbe5;
738 text-align: center;
739 padding: 5px 0px;
740 font-size: 20px;
741 }
742
743 .no-data {
744 font-size: 18px;
745 display: flex;
746 text-align: center;
747 justify-content: center;
748 }
749 </style>
1 <!--
2 * @Description:
3 * @Autor: miaofang
4 * @LastEditTime: 2023-10-23 16:16:24
5 -->
6 <template>
7 <div
8 class="from-clues loadingtext"
9 v-Loading="loading"
10 element-loading-text="拼命加载中..."
11 style="height: 720px; text-align: center">
12 <!-- 表单部分 -->
13 <el-tabs v-model="activeName" @tab-click="handleClick">
14 <el-tab-pane label="证书预览" name="zsyl">
15 <el-empty
16 description="暂无数据"
17 v-if="headTabBdcqz.length == 0 && noData"></el-empty>
18 <div class="zsys">
19 <canvas
20 ref="zs"
21 width="1000"
22 v-show="this.bdcqz.bdcqzlx == 1"
23 height="700"></canvas>
24 <canvas
25 ref="zm"
26 width="1180"
27 v-show="this.bdcqz.bdcqzlx == 2"
28 height="780"></canvas>
29 </div>
30 </el-tab-pane>
31 <el-tab-pane label="证书详情" name="lcjl">
32 <div class="slxx_title title-block">
33 证书详情信息
34 <div class="triangle"></div>
35 </div>
36 <el-form :rules="rules" ref="ruleForm" label-width="120px">
37 <el-row>
38 <el-col :span="8">
39 <el-form-item label="权利人" prop="cyxm">
40 <el-input disabled v-model="bdcqz.qlr" maxlegth="15"></el-input>
41 </el-form-item>
42 </el-col>
43 <el-col :span="8">
44 <el-form-item label="义务人" prop="jtgxdm">
45 <el-input disabled v-model="bdcqz.qlr" maxlegth="15"></el-input>
46 </el-form-item>
47 </el-col>
48 <el-col :span="8">
49 <el-form-item label="坐落" prop="cbfdm">
50 <el-input disabled v-model="bdcqz.zl" maxlegth="15"></el-input>
51 </el-form-item>
52 </el-col>
53
54 </el-row>
55 <el-row>
56 <el-col :span="8">
57 <el-form-item label="不动产单元号" prop="cyxm">
58 <el-input disabled v-model="bdcqz.bdcdyh" maxlegth="15"></el-input>
59 </el-form-item>
60 </el-col>
61 <el-col :span="8">
62 <el-form-item label="印刷序列号" prop="jtgxdm">
63 <el-input disabled v-model="bdcqz.ysxlh" maxlegth="15"></el-input>
64 </el-form-item>
65 </el-col>
66 <el-col :span="8">
67 <el-form-item label="不动产权证号" prop="cbfdm">
68 <el-input disabled v-model="bdcqz.bdcqzh" maxlegth="15"></el-input>
69 </el-form-item>
70 </el-col>
71
72 </el-row>
73 </el-form>
74 <div class="slxx_title title-block">
75 缮证记录信息
76 <div class="triangle"></div>
77 </div>
78 <lb-table
79 class="sz"
80 :column="szxxtableData.columns"
81 heightNumSetting
82 :pagination="false"
83 :key="key"
84 :data="szxxtableData.data">
85 </lb-table>
86 <div class="slxx_title title-block">
87 发证记录信息
88 <div class="triangle"></div>
89 </div>
90 <lb-table
91 border
92 :column="tableDatas.columns"
93 :heightNum="100"
94 :data="tableDatas.data"
95 :pagination="false">
96 </lb-table>
97 </el-tab-pane>
98 <el-tab-pane label="电子证照" name="third"> 等一个照片 </el-tab-pane>
99 </el-tabs>
100 </div>
101 </template>
102
103 <script>
104 // import { zsyldatas } from "../../javascript/zsyl.js";
105 import { getSlsqBdcqzList } from "@/api/bdcqz.js";
106 import { getCertificateList } from "@/api/bdcqz.js";
107 import { getSzRecordList } from "@/api/bdcqz.js";
108 import { szxxdatas } from "../../javascript/szxxdatapart";
109 import { datas } from "../../javascript/fzxxdatapart";
110 export default {
111 name: "zsyl",
112 props: {
113 formData: {
114 type: Object,
115 default: {},
116 },
117 },
118 data () {
119 return {
120 key: 0,
121 noData: false,
122 imgSrc: require("@/image/bdcqz/bdcqzs2.jpg"),
123 bdczmSrc: require("@/image/bdcqz/bdczm.jpg"),
124 loading: false,
125 //印刷序列号集合
126 ysxlh: [],
127 //列名称对象
128 columns: [],
129 //选择的不动产权证文件
130 bdcqz: "",
131 //证书打开类型 是否需要展示打印按钮
132 isToPrint: false,
133 //tab切换栏数组
134 tabslist: [],
135 headTabBdcqz: [],
136 //tab选择绑定值
137 activeName: "zsyl",
138 //证书图片预览
139 previewImage: "",
140 ruleForm: {
141 bsmBdcqz: "",
142 szmc: "不动产权证书",
143 bsmBdcqz: "",
144 szzh: "",
145 ysxlh: "",
146 },
147 formdata: {},
148 szxxtableData: {
149 total: 0,
150 columns: szxxdatas.columns(),
151 data: [],
152 },
153 tableDatas: {
154 total: 0,
155 columns: datas.columns().fzgrid,
156 data: [],
157 },
158 };
159 },
160 mounted () {
161 this.queryClick();
162 this.query();
163 if (this.formData.bdcqz) {
164 //从缮证进入
165 this.bdcqz = this.formData.bdcqz;
166 } else {
167 //从按钮进入
168 this.getHeadTabBdcqz();
169 }
170 },
171 methods: {
172 /**
173 * @description: queryClick
174 * @author: miaofang
175 */
176 queryClick () {
177 this.formdata.bsmSlsq = this.formData.bsmSlsq;
178 getCertificateList(this.formdata).then((res) => {
179 if (res.code === 200) {
180 this.tableDatas.data = res.result ? res.result : [];
181 }
182 })
183 },
184 /**
185 * @description: query
186 * @author: miaofang
187 */
188 query () {
189 getSzRecordList({ bsmBdcqz: this.formData.bsmBdcqz }).then((res) => {
190 if (res.code == 200) {
191 this.szxxtableData.data = res.result;
192 this.key++;
193 }
194 })
195 },
196 /**
197 * @description: 获取证书内容
198 * @param {*} code
199 * @author: miaofang
200 */
201 getRowValue (code) {
202 var value = this.bdcqz[code];
203 return value;
204 },
205 /**
206 * @description: 获取受理申请下全部不动产权证
207 * @author: miaofang
208 */
209 getHeadTabBdcqz () {
210 this.loading = true;
211 getSlsqBdcqzList({ bsmSlsq: this.formData.bsmSlsq }).then((res) => {
212 if (res.code == 200) {
213 this.noData = true;
214 if (res.result && res.result.length > 0) {
215 this.bdcqz = res.result[0];
216 this.headTabBdcqz = res.result;
217 if (this.bdcqz.bdcqzlx == 1) {
218 this.drawTextOnImage();
219 } else {
220 this.drawTextzmImage();
221 }
222 }
223 }
224 this.loading = false;
225 });
226 },
227 /**
228 * @description: tab表头切换方法
229 * @param {*} e
230 * @author: miaofang
231 */
232 handleClick (tab, event) {
233 console.log(tab, event);
234 this.bdcqz = this.headTabBdcqz[0];
235 if (this.bdcqz.bdcqzlx == 1) {
236 this.drawTextOnImage();
237 } else {
238 this.drawTextzmImage();
239 }
240 },
241 /**
242 * @description: 不动产证书
243 * @author: miaofang
244 */
245 drawTextOnImage () {
246 function getByteLen (val) {
247 var len = 0;
248 if (!val) return len;
249 for (var i = 0; i < val.length; i++) {
250 var length = val.charCodeAt(i);
251 if (length >= 0 && length <= 128) {
252 len += 1;
253 } else {
254 len += 2;
255 }
256 }
257 return len;
258 }
259 const canvas = this.$refs.zs;
260 const context = canvas.getContext("2d");
261 const image = new Image();
262 image.onload = () => {
263 context.drawImage(image, 0, 0);
264 context.font = "18px 楷体";
265 context.fillStyle = "#000000";
266 context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : "", 60, 56);
267 context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : "", 113, 56);
268 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : "", 180, 56);
269 context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : "", 370, 56);
270 context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : "", 129, 97);
271 context.fillText(this.bdcqz.gyqk ? this.bdcqz.gyqk : "", 129, 136);
272
273 this.bdcdyh =
274 this.bdcqz.bdcdyh.slice(0, 6) +
275 " " +
276 this.bdcqz.bdcdyh.slice(6, 12) +
277 " " +
278 this.bdcqz.bdcdyh.slice(12, 19) +
279 " " +
280 this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length);
281 context.fillText(this.bdcdyh ? this.bdcdyh : "", 129, 223);
282
283 context.fillText(this.bdcqz.qllx ? this.bdcqz.qllx : "", 129, 263);
284 context.fillText(this.bdcqz.qlxz ? this.bdcqz.qlxz : "", 129, 303);
285 context.fillText(this.bdcqz.yt ? this.bdcqz.yt : "", 129, 346);
286 // context.fillText(this.bdcqz.mj ? this.bdcqz.mj : '', 129, 386);
287 let lines6 = this.bdcqz.mj ? this.bdcqz.mj.split(" ") : [];
288 if (getByteLen(this.bdcqz.mj) > 41) {
289 lines6.forEach((line, index) => {
290 const y = 378 + index * 27; // 每行文本的垂直位置
291 let currentLine = "";
292 let arr = [];
293 for (let word of line) {
294 const testLine = currentLine + word;
295 const lineWidth = context.measureText(testLine).width;
296 if (lineWidth <= 330) {
297 currentLine = testLine;
298 } else {
299 arr.push(currentLine);
300 currentLine = word;
301 }
302 }
303 arr.push(currentLine);
304 arr.forEach((line, index) => {
305 context.fillText(line, 129, y + index * 20); // 调整行高
306 });
307 });
308 } else {
309 lines6.forEach((line, index) => {
310 const y = 386 + index * 27; // 每行文本的垂直位置
311 let currentLine = "";
312 let arr = [];
313 for (let word of line) {
314 const testLine = currentLine + word;
315 const lineWidth = context.measureText(testLine).width;
316 if (lineWidth <= 330) {
317 currentLine = testLine;
318 } else {
319 arr.push(currentLine);
320 currentLine = word;
321 }
322 }
323 arr.push(currentLine);
324 arr.forEach((line, index) => {
325 context.fillText(line, 129, y + index * 20); // 调整行高
326 });
327 });
328 }
329 // 权利其他状态
330 let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split("\n") : [];
331 for (let i = 0; i < lines.length; i++) {
332 let num = Math.ceil(getByteLen(lines[i]) / 38);
333 if (getByteLen(lines[i]) > 38) {
334 let currentLine = "";
335 let arr = [];
336 for (let word of lines[i]) {
337 const testLine = currentLine + word;
338 const lineWidth = context.measureText(testLine).width;
339 if (lineWidth <= 323) {
340 currentLine = testLine;
341 } else {
342 arr.push(currentLine);
343 currentLine = word;
344 }
345 }
346 arr.push(currentLine);
347 if (i > 0) {
348 arr.forEach((line, index) => {
349 context.fillText(
350 line,
351 129,
352 490 + 26 * (i - 1) + 4 * num + index * 14
353 ); // 调整行高
354 });
355 } else {
356 arr.forEach((line, index) => {
357 context.fillText(line, 129, 500 + 26 * (i - 1) + index * 14); // 调整行高
358 });
359 }
360 } else {
361 if (i > 0) {
362 context.fillText(
363 lines[i] ? lines[i] : "",
364 129,
365 500 + 4 * num + 24 * (i - 1)
366 );
367 } else {
368 context.fillText(
369 lines[i] ? lines[i] : "",
370 129,
371 505 + 24 * (i - 1)
372 );
373 }
374 }
375 }
376
377 let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split("\n") : [];
378 lines1.forEach((line, index) => {
379 const y = 100 + index * 30; // 每行文本的垂直位置
380 let currentLine = "";
381 let arr = [];
382 for (let word of line) {
383 const testLine = currentLine + word;
384 const lineWidth = context.measureText(testLine).width;
385 if (lineWidth <= 395) {
386 currentLine = testLine;
387 } else {
388 arr.push(currentLine);
389 currentLine = word;
390 }
391 }
392 arr.push(currentLine);
393 arr.forEach((line, index) => {
394 context.fillText(line, 580, y + index * 30); // 调整行高
395 });
396 });
397 let lines3 = this.bdcqz.syqx ? this.bdcqz.syqx.split(" ") : [];
398 if (getByteLen(this.bdcqz.syqx) > 41) {
399 lines3.forEach((line, index) => {
400 const y = 423 + index * 27; // 每行文本的垂直位置
401 let currentLine = "";
402 let arr = [];
403 for (let word of line) {
404 const testLine = currentLine + word;
405 const lineWidth = context.measureText(testLine).width;
406 if (lineWidth <= 330) {
407 currentLine = testLine;
408 } else {
409 arr.push(currentLine);
410 currentLine = word;
411 }
412 }
413 arr.push(currentLine);
414 arr.forEach((line, index) => {
415 context.fillText(line, 129, y + index * 20); // 调整行高
416 });
417 });
418 } else {
419 lines3.forEach((line, index) => {
420 const y = 430 + index * 27; // 每行文本的垂直位置
421 let currentLine = "";
422 let arr = [];
423 for (let word of line) {
424 const testLine = currentLine + word;
425 const lineWidth = context.measureText(testLine).width;
426 if (lineWidth <= 315) {
427 currentLine = testLine;
428 } else {
429 arr.push(currentLine);
430 currentLine = word;
431 }
432 }
433 arr.push(currentLine);
434 arr.forEach((line, index) => {
435 context.fillText(line, 129, y + index * 20); // 调整行高
436 });
437 });
438 }
439
440 let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(" ") : [];
441 if (getByteLen(this.bdcqz.zl) > 41) {
442 lines2.forEach((line, index) => {
443 const y = 170 + index * 20; // 每行文本的垂直位置
444 let currentLine = "";
445 let arr = [];
446 for (let word of line) {
447 const testLine = currentLine + word;
448 const lineWidth = context.measureText(testLine).width;
449 if (lineWidth <= 336) {
450 currentLine = testLine;
451 } else {
452 arr.push(currentLine);
453 currentLine = word;
454 }
455 }
456 arr.push(currentLine);
457 arr.forEach((line, index) => {
458 context.fillText(line, 129, y + index * 20); // 调整行高
459 });
460 });
461 } else {
462 lines2.forEach((line, index) => {
463 const y = 180 + index * 20; // 每行文本的垂直位置
464 let currentLine = "";
465 let arr = [];
466 for (let word of line) {
467 const testLine = currentLine + word;
468 const lineWidth = context.measureText(testLine).width;
469 if (lineWidth <= 336) {
470 currentLine = testLine;
471 } else {
472 arr.push(currentLine);
473 currentLine = word;
474 }
475 }
476 arr.push(currentLine);
477 arr.forEach((line, index) => {
478 context.fillText(line, 129, y + index * 20); // 调整行高
479 });
480 });
481 }
482 };
483 image.src = this.imgSrc;
484 },
485 /**
486 * @description: 不动产证明
487 * @author: miaofang
488 */
489 drawTextzmImage () {
490 function getByteLen (val) {
491 var len = 0;
492 if (!val) return len;
493 for (var i = 0; i < val.length; i++) {
494 var length = val.charCodeAt(i);
495 if (length >= 0 && length <= 128) {
496 len += 1;
497 } else {
498 len += 2;
499 }
500 }
501 return len;
502 }
503
504 const canvas = this.$refs.zm;
505 const context = canvas.getContext("2d");
506 const image = new Image();
507 image.onload = () => {
508 context.drawImage(image, 0, 0);
509 context.font = "18px 楷体";
510 context.fillStyle = "#000000";
511 // ysxlh
512 context.fillText(this.bdcqz.ysxlh ? this.bdcqz.ysxlh : "", 280, 712);
513 // djsj
514 if (this.bdcqz.djsj) {
515 let djsjList = this.bdcqz.djsj.split(" ")[0].split("/");
516 context.fillText(djsjList[0] ? djsjList[0] : "", 327, 580);
517 context.fillText(djsjList[1] ? djsjList[1] : "", 393, 580);
518 context.fillText(djsjList[2] ? djsjList[2] : "", 443, 580);
519 }
520 context.fillText(this.bdcqz.sjjc ? this.bdcqz.sjjc : "", 620, 125);
521 context.fillText(this.bdcqz.djnd ? this.bdcqz.djnd : "", 665, 125);
522 context.fillText(this.bdcqz.sxqc ? this.bdcqz.sxqc : "", 750, 125);
523 context.fillText(this.bdcqz.sxh ? this.bdcqz.sxh : "", 960, 123);
524 context.fillText(
525 this.bdcqz.zmqlhsx ? this.bdcqz.zmqlhsx : "",
526 775,
527 180
528 );
529 context.fillText(this.bdcqz.qlr ? this.bdcqz.qlr : "", 775, 228);
530 // 义务人
531 context.fillText(this.bdcqz.ywr ? this.bdcqz.ywr : "", 775, 275);
532 // context.fillText(this.bdcqz.zl ? this.bdcqz.zl : '', 775, 325);
533
534 let lines2 = this.bdcqz.zl ? this.bdcqz.zl.split(" ") : [];
535 if (getByteLen(this.bdcqz.zl) > 41) {
536 lines2.forEach((line, index) => {
537 const y = 315 + index * 20; // 每行文本的垂直位置
538 let currentLine = "";
539 let arr = [];
540 for (let word of line) {
541 const testLine = currentLine + word;
542 const lineWidth = context.measureText(testLine).width;
543 if (lineWidth <= 295) {
544 currentLine = testLine;
545 } else {
546 arr.push(currentLine);
547 currentLine = word;
548 }
549 }
550 arr.push(currentLine);
551 arr.forEach((line, index) => {
552 context.fillText(line, 775, y + index * 20); // 调整行高
553 });
554 });
555 } else {
556 lines2.forEach((line, index) => {
557 const y = 325 + index * 20; // 每行文本的垂直位置
558 let currentLine = "";
559 let arr = [];
560 for (let word of line) {
561 const testLine = currentLine + word;
562 const lineWidth = context.measureText(testLine).width;
563 if (lineWidth <= 295) {
564 currentLine = testLine;
565 } else {
566 arr.push(currentLine);
567 currentLine = word;
568 }
569 }
570 arr.push(currentLine);
571 arr.forEach((line, index) => {
572 context.fillText(line, 775, y + index * 20); // 调整行高
573 });
574 });
575 }
576
577 // bdcdyh
578 this.bdcdyh =
579 this.bdcqz.bdcdyh.slice(0, 6) +
580 " " +
581 this.bdcqz.bdcdyh.slice(6, 12) +
582 " " +
583 this.bdcqz.bdcdyh.slice(12, 19) +
584 " " +
585 this.bdcqz.bdcdyh.slice(19, this.bdcqz.bdcdyh.length);
586 context.fillText(this.bdcdyh ? this.bdcdyh : "", 775, 373);
587 // qlqtzk
588 const maxWidth = 295; // 最大宽度限制
589 let lines = this.bdcqz.qlqtzk ? this.bdcqz.qlqtzk.split("\n") : [];
590 for (let i = 0; i < lines.length; i++) {
591 let num = Math.ceil(getByteLen(lines[i]) / 37);
592 if (getByteLen(lines[i]) > 37) {
593 let currentLine = "";
594 let arr = [];
595 for (let word of lines[i]) {
596 const testLine = currentLine + word;
597 const lineWidth = context.measureText(testLine).width;
598 if (lineWidth <= maxWidth) {
599 currentLine = testLine;
600 } else {
601 arr.push(currentLine);
602 currentLine = word;
603 }
604 }
605 arr.push(currentLine);
606 if (i > 0) {
607 arr.forEach((line, index) => {
608 context.fillText(
609 line,
610 770,
611 428 + 25 * (i - 1) + 5 * num + index * 15
612 ); // 调整行高
613 });
614 } else {
615 arr.forEach((line, index) => {
616 context.fillText(line, 770, 435 + 25 * (i - 1) + index * 14); // 调整行高
617 });
618 }
619 } else {
620 if (i > 0) {
621 context.fillText(
622 lines[i] ? lines[i] : "",
623 770,
624 440 + 5 * num + 24 * (i - 1)
625 );
626 } else {
627 context.fillText(
628 lines[i] ? lines[i] : "",
629 770,
630 440 + 24 * (i - 1)
631 );
632 }
633 }
634 }
635 // fj
636 let lines1 = this.bdcqz.fj ? this.bdcqz.fj.split("\n") : [];
637 for (let i = 0; i < lines1.length; i++) {
638 let num = Math.ceil(getByteLen(lines1[i]) / 37);
639 if (getByteLen(lines1[i]) > 37) {
640 let currentLine = "";
641 let arr = [];
642 for (let word of lines1[i]) {
643 const testLine = currentLine + word;
644 const lineWidth = context.measureText(testLine).width;
645 if (lineWidth <= maxWidth) {
646 currentLine = testLine;
647 } else {
648 arr.push(currentLine);
649 currentLine = word;
650 }
651 }
652 arr.push(currentLine);
653 if (i > 0) {
654 arr.forEach((line, index) => {
655 context.fillText(
656 line,
657 770,
658 610 + 25 * (i - 1) + 5 * num + index * 15
659 ); // 调整行高
660 });
661 } else {
662 arr.forEach((line, index) => {
663 context.fillText(line, 770, 610 + 25 * (i - 1) + index * 15); // 调整行高
664 });
665 }
666 } else {
667 if (i > 0) {
668 context.fillText(
669 lines1[i] ? lines1[i] : "",
670 770,
671 610 + 5 * num + 23 * (i - 1)
672 );
673 } else {
674 context.fillText(
675 lines1[i] ? lines1[i] : "",
676 770,
677 610 + 23 * (i - 1)
678 );
679 }
680 }
681 }
682 };
683
684 image.src = this.bdczmSrc;
685 },
686 },
687 computed: {
688 hdiffHeight () {
689 return 0;
690 // return this.headTabBdcqz.length > 1 ? 54 : 0
691 },
692 },
693 };
694 </script>
695 <style scoped lang="scss">
696 @import "~@/styles/mixin.scss";
697
698 .imgClass {
699 display: inline-block;
700 height: auto;
701 max-width: 100%;
702 }
703
704 .middle_padding {
705 padding-bottom: 10px;
706 }
707
708 .zsyl-button {
709 text-align: center;
710 margin-top: 20px;
711
712 .operation_button {
713 width: 100px;
714 border: 1px solid rgb(0, 121, 254);
715 }
716
717 .dy-button {
718 color: white;
719 background-color: rgb(0, 121, 254);
720 }
721 }
722
723 .table-column {
724 border-spacing: 1px;
725 width: 100%;
726
727 tr td {
728 border: 1px solid #ccc;
729 text-align: center;
730 height: 40px;
731 padding: 4px;
732 font-size: 13px;
733 background: rgb(251, 249, 229);
734 }
735 }
736
737 .zsyl-title {
738 background: #fafbe5;
739 text-align: center;
740 padding: 5px 0px;
741 font-size: 20px;
742 }
743
744 .no-data {
745 font-size: 18px;
746 display: flex;
747 text-align: center;
748 justify-content: center;
749 }
750 .el-tab-pane {
751 width: 1190px;
752 height: 670px;
753 overflow-y: auto;
754 }
755 .zsys {
756 width: 1180px;
757 height: 670px;
758 }
759 /deep/.el-table {
760 height: 100px !important;
761 }
762 // /deep/.sz {
763 // height: 340px !important;
764 // }
765 .el-form {
766 margin-top: 20px;
767 }
768 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-07-17 13:51:29
5 -->
6 <template>
7 <lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :pagination="false" :key="key" :data="tableData">
8 </lb-table>
9 </template>
10 <script>
11 import addQlr from './dialog/addQlr.vue'
12 import { mapGetters } from 'vuex'
13 export default {
14 components: {
15 addQlr
16 },
17 computed: {
18 ...mapGetters(["dictData"]),
19 },
20 props: {
21 tableData: {
22 type: Array,
23 default: function () {
24 return []
25 }
26 },
27 gyfs: {
28 type: String,
29 default: '1'
30 }
31 },
32 data () {
33 return {
34 key: 0,
35 dataIndex: 0,
36 dialog: false,
37 details: {},
38 tableDataList: [],
39 qlrCommonTable: [
40 {
41 label: '序号',
42 type: 'index',
43 width: '50',
44 render: (h, scope) => {
45 return (
46 <div>
47 {scope.$index + 1}
48 </div>
49 )
50 }
51 },
52 {
53 prop: "qlrmc",
54 label: "抵押权人"
55 },
56 {
57 prop: "ywrmc",
58 label: "抵押人"
59 },
60 {
61 prop: "bdcqzh",
62 label: "不动产登记证明号"
63 },
64 {
65 prop: "dyjelx",
66 label: "抵押金额类型"
67 },
68 {
69 prop: "dyfsmc",
70 label: "抵押方式"
71 },
72 {
73 prop: "qdjgmc",
74 label: "抵押金额"
75 },
76 {
77 prop: "qlmjmc",
78 label: "抵押面积"
79 },
80 {
81 prop: "zwlxqssj",
82 label: "债务履行开始时间"
83 },
84 {
85 prop: "zwlxjssj",
86 label: "债务履行结束时间"
87 },
88 {
89 prop: "bdcdyh",
90 label: "不动产单元号"
91 },
92 {
93 prop: "zl",
94 label: "坐落"
95 },
96
97
98 ],
99 column: this.qlrCommonTable
100 }
101 },
102 watch: {
103 tableData: {
104 handler: function (val, oldVal) {
105 let that = this
106 if (val.length == 0 || !val) {
107 that.tableDataList = _.cloneDeep([{
108 sqrmc: '',
109 dlrzjlx: '',
110 dlrzjh: '',
111 fr: ''
112 }])
113 } else {
114 that.tableDataList = _.cloneDeep(val)
115 }
116 },
117 immediate: true,
118 deep: true
119 },
120 gyfs: {
121 handler (newVal, oldValue) {
122 let dataList = _.cloneDeep(this.qlrCommonTable)
123 if (newVal == '1') {
124 this.column = _.cloneDeep(dataList).slice(1, dataList.length)
125 } else if ((newVal == '2')) {
126 this.column = dataList
127 } else {
128 this.column = _.cloneDeep(dataList)
129 this.column.splice(
130 2, 0, {
131 prop: "qlbl",
132 label: "份数"
133 })
134 }
135 },
136 immediate: true
137 }
138 },
139 methods: {
140 }
141 }
142 </script>
143 <style scoped lang='scss'>
144 /deep/.el-table th {
145 height: 30px !important;
146 }
147 /deep/.el-table--small .el-table__cell {
148 padding: 5px;
149 }
150 </style>
1 <!--
2 * @Description: 流程图
3 * @Autor: renchao
4 * @LastEditTime: 2023-07-25 09:26:01
5 -->
6 <template>
7 <div class='flowChart'>
8 <img :src="formData" alt="">
9 </div>
10 </template>
11 <script>
12 export default {
13 props: {
14 formData: {
15 type: String,
16 default: ''
17 }
18 }
19 }
20 </script>
21 <style scoped lang="scss">
22 @import "~@/styles/mixin.scss";
23
24 .flowChart {
25 margin: 20px 0;
26 }
27 </style>
...\ No newline at end of file ...\ No newline at end of file
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-07-28 16:28:43
5 -->
6 <template>
7 <div class="from-clues">
8 <!-- 发证信息 -->
9 <div class="from-clues-header">
10 <el-form :model="ruleForm">
11 <el-row :gutter="20">
12 <el-col :span="6">
13 <el-form-item label="印刷序列号">
14 <el-input v-model="ruleForm.ysxlh" clearable placeholder="请输入印刷序列号"></el-input>
15 </el-form-item>
16 </el-col>
17 <el-col :span="6">
18 <el-form-item label="证书号">
19 <el-input v-model="ruleForm.zsh" clearable placeholder="请输入证书号"></el-input>
20 </el-form-item>
21 </el-col>
22 <el-col :span="6">
23 <el-form-item label="权利人">
24 <el-input v-model="ruleForm.qlr" clearable placeholder="请输入权利人"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="6" class="btnColRight" v-if="viewEdit">
28 <el-form-item>
29 <el-button type="primary" icon="el-icon-search" @click="handleSearch">查询</el-button>
30 <el-button type="primary" icon="el-icon-search" @click="zslqClick">证书领取</el-button>
31 </el-form-item>
32 </el-col>
33 </el-row>
34 </el-form>
35 </div>
36 <div class="from-clues-content">
37 <lb-table border :column="tableData.columns" :heightNum="210" :data="tableData.data" :pagination="false">
38 </lb-table>
39 </div>
40 </div>
41 </template>
42 <script>
43 import { mapGetters } from 'vuex'
44 import store from '@/store/index.js'
45 import table from "@/utils/mixin/table";
46 import { datas } from "../javascript/fzxxdata";
47 import { getCertificateList } from "@/api/bdcqz.js";
48 export default {
49 mixins: [table],
50 data () {
51 return {
52 //表单是否可操作
53 viewEdit: false,
54 ruleForm: {
55 ysxlh: '',
56 zsh: '',
57 qlr: '',
58 bsmSldy: ''
59 },
60 tableData: {
61 total: 0,
62 columns: datas.columns().fzgrid,
63 data: []
64 },
65 dialogVisible: false
66 }
67 },
68 created () {
69 this.viewEdit = this.$parent.currentSelectTab.ableOperation
70 },
71 computed: {
72 ...mapGetters(['workFresh'])
73 },
74 watch: {
75 workFresh: {
76 handler (newVal, oldVal) {
77 if (newVal) this.queryClick()
78 }
79 }
80 },
81 methods: {
82 /**
83 * @description: queryClick
84 * @author: renchao
85 */
86 queryClick () {
87 this.ruleForm.bsmSlsq = this.$route.query.bsmSlsq;
88 getCertificateList(this.ruleForm).then(res => {
89 if (res.code === 200) {
90 this.tableData.data = res.result ? res.result : []
91 }
92 })
93 },
94 /**
95 * @description:
96 * @author: renchao
97 */
98 zslqClick () {
99 store.dispatch('user/reWorkFresh', false)
100 this.$popupDialog("不动产权证领取", "workflow/components/dialog/zslq", {}, '80%', true)
101 }
102 }
103 }
104 </script>
105 <style scoped lang='scss'>
106 @import "~@/styles/public.scss";
107 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-05-17 10:41:15
5 -->
6 <template>
7 <div>
8 <div class="process-viewer">
9 <div
10 v-show="!isLoading"
11 ref="processCanvas"
12 class="process-canvas"
13 style="height: 280px"
14 />
15 <!-- 自定义箭头样式,用于成功状态下流程连线箭头 -->
16 <defs ref="customSuccessDefs">
17 <marker
18 id="sequenceflow-end-white-success"
19 view-box="0 0 20 20"
20 ref-x="11"
21 ref-y="10"
22 marker-width="10"
23 marker-height="10"
24 orient="auto"
25 >
26 <path
27 class="success-arrow"
28 d="M 1 5 L 11 10 L 1 15 Z"
29 style="
30 stroke-width: 1px;
31 stroke-linecap: round;
32 stroke-dasharray: 10000, 1;
33 "
34 />
35 </marker>
36 <marker
37 id="conditional-flow-marker-white-success"
38 view-box="0 0 20 20"
39 ref-x="-1"
40 ref-y="10"
41 marker-width="10"
42 marker-height="10"
43 orient="auto"
44 >
45 <path
46 class="success-conditional"
47 d="M 0 10 L 8 6 L 16 10 L 8 14 Z"
48 style="
49 stroke-width: 1px;
50 stroke-linecap: round;
51 stroke-dasharray: 10000, 1;
52 "
53 />
54 </marker>
55 </defs>
56 <!-- 自定义箭头样式,用于失败状态下流程连线箭头 -->
57 <defs ref="customFailDefs">
58 <marker
59 id="sequenceflow-end-white-fail"
60 view-box="0 0 20 20"
61 ref-x="11"
62 ref-y="10"
63 marker-width="10"
64 marker-height="10"
65 orient="auto"
66 >
67 <path
68 class="fail-arrow"
69 d="M 1 5 L 11 10 L 1 15 Z"
70 style="
71 stroke-width: 1px;
72 stroke-linecap: round;
73 stroke-dasharray: 10000, 1;
74 "
75 />
76 </marker>
77 <marker
78 id="conditional-flow-marker-white-fail"
79 view-box="0 0 20 20"
80 ref-x="-1"
81 ref-y="10"
82 marker-width="10"
83 marker-height="10"
84 orient="auto"
85 >
86 <path
87 class="fail-conditional"
88 d="M 0 10 L 8 6 L 16 10 L 8 14 Z"
89 style="
90 stroke-width: 1px;
91 stroke-linecap: round;
92 stroke-dasharray: 10000, 1;
93 "
94 />
95 </marker>
96 </defs>
97
98 <div style="position: absolute; top: 0px; left: 0px; width: 100%">
99 <el-row type="flex" justify="end">
100 <el-button-group key="scale-control" size="medium">
101 <el-button
102 size="medium"
103 type="default"
104 :plain="true"
105 :disabled="defaultZoom <= 0.3"
106 icon="el-icon-zoom-out"
107 @click="processZoomOut()"
108 />
109 <el-button size="medium" type="default" style="width: 90px">{{
110 Math.floor(this.defaultZoom * 10 * 10) + "%"
111 }}</el-button>
112 <el-button
113 size="medium"
114 type="default"
115 :plain="true"
116 :disabled="defaultZoom >= 3.9"
117 icon="el-icon-zoom-in"
118 @click="processZoomIn()"
119 />
120 <el-button
121 size="medium"
122 type="default"
123 icon="el-icon-c-scale-to-original"
124 @click="processReZoom()"
125 />
126 <slot />
127 </el-button-group>
128 </el-row>
129 </div>
130 </div>
131 <!-- 已完成节点悬浮弹窗 -->
132 <div class="information-list">
133 <el-select v-model="selectValue" @change="handleSelect">
134 <el-option
135 v-for="item in selectOptions"
136 :key="item.value"
137 :label="item.label"
138 :value="item.value"
139 >
140 </el-option>
141 </el-select>
142 <div class="cutline">
143 <p class="cutlines">图例</p>
144 <div v-for="item in cutlinelist" :key="item.value" class="concent" :style="{ backgroundColor: item.backgroundColor,borderColor:item.color }">
145 {{item.value}}
146 </div>
147 </div>
148 <el-table
149 height="190"
150 :data="taskCommentList"
151 size="mini"
152 border
153 header-cell-class-name="table-header-gray"
154 >
155 <el-table-column
156 label="序号"
157 header-align="center"
158 align="center"
159 type="index"
160 width="55px"
161 />
162 <el-table-column
163 label="转入时间"
164 prop="createTime"
165 :formatter="formatDate"
166 width="160"
167 align="center"
168 />
169 <el-table-column
170 label="认领时间"
171 prop="claimTime"
172 :formatter="formatDate"
173 width="160"
174 align="center"
175 />
176 <el-table-column
177 label="转出时间"
178 prop="endTime"
179 :formatter="formatDate"
180 width="160"
181 align="center"
182 />
183 <el-table-column label="操作方式" prop="controls" align="center" />
184 <el-table-column label="意见" prop="idea" align="center" />
185 </el-table>
186 </div>
187 </div>
188 </template>
189 <script>
190 import "@/styles/package/theme/index.scss";
191 import BpmnViewer from "bpmn-js/lib/Viewer";
192 import MoveCanvasModule from "diagram-js/lib/navigation/movecanvas";
193 export default {
194 props: {
195 formData: {
196 type: Object,
197 default: {},
198 },
199 },
200 data() {
201 return {
202 dlgTitle: undefined,
203 defaultZoom: 1,
204 // 是否正在加载流程图
205 isLoading: true,
206 bpmnViewer: undefined,
207 // 已完成流程元素
208 processNodeInfo: undefined,
209 // 当前任务id
210 selectTaskId: undefined,
211 // 任务节点审批记录
212 taskList: [],
213 taskCommentList: [],
214 // 已完成任务悬浮延迟Timer
215 hoverTimer: null,
216 // 下拉
217 selectValue: "",
218 selectOptions: [],
219 cutlinelist:[
220 {
221 value: "完成节点",
222 color: "#4eb819",
223 backgroundColor :"rgba(78, 184, 25,0.2)"
224 },
225 {
226 value: "当前节点",
227 color: "#409EFF",
228 backgroundColor :"rgba(64, 158, 255,0.2)"
229 },
230 {
231 value: "挂起节点",
232 color: "#E6A23C",
233 backgroundColor :"rgba(230, 162, 60,0.2)"
234 },
235 {
236 value: "阻塞节点",
237 color: "#F56C6C",
238 backgroundColor :"rgb(245, 108, 108,0.2)"
239 },
240 {
241 value: "未激活节点",
242 color: "#000000",
243 backgroundColor :"none",
244 }
245 ],
246 };
247 },
248 created() {
249 this.$nextTick(() => {
250 // 获取流程记录
251 this.getCommentList();
252 this.setProcessStatus(this.formData.finishedInfo);
253 this.importXML(this.formData.xml);
254 });
255 },
256 destroyed() {
257 this.clearViewer();
258 },
259 methods: {
260 /**
261 * @description: formatDate
262 * @param {*} row
263 * @param {*} column
264 * @author: renchao
265 */
266 formatDate(row, column) {
267 let data = row[column.property];
268 if (data == null) {
269 return null;
270 }
271 let dt = new Date(data);
272 return (
273 dt.getFullYear() +
274 "-" +
275 (dt.getMonth() + 1) +
276 "-" +
277 dt.getDate() +
278 " " +
279 dt.getHours() +
280 ":" +
281 dt.getMinutes() +
282 ":" +
283 dt.getSeconds()
284 );
285 },
286 /**
287 * @description: processReZoom
288 * @author: renchao
289 */
290 processReZoom() {
291 this.defaultZoom = 1;
292 this.bpmnViewer.get("canvas").zoom("fit-viewport", "auto");
293 },
294 /**
295 * @description: processZoomIn
296 * @param {*} zoomStep
297 * @author: renchao
298 */
299 processZoomIn(zoomStep = 0.1) {
300 const newZoom = Math.floor(this.defaultZoom * 100 + zoomStep * 100) / 100;
301 if (newZoom > 4) {
302 throw new Error(
303 "[Process Designer Warn ]: The zoom ratio cannot be greater than 4"
304 );
305 }
306 this.defaultZoom = newZoom;
307 this.bpmnViewer.get("canvas").zoom(this.defaultZoom);
308 },
309 /**
310 * @description: processZoomOut
311 * @param {*} zoomStep
312 * @author: renchao
313 */
314 processZoomOut(zoomStep = 0.1) {
315 const newZoom = Math.floor(this.defaultZoom * 100 - zoomStep * 100) / 100;
316 if (newZoom < 0.2) {
317 throw new Error(
318 "[Process Designer Warn ]: The zoom ratio cannot be scss than 0.2"
319 );
320 }
321 this.defaultZoom = newZoom;
322 this.bpmnViewer.get("canvas").zoom(this.defaultZoom);
323 },
324 /**
325 * @description: getOperationTagType
326 * @param {*} type
327 * @author: renchao
328 */
329 getOperationTagType(type) {
330 return "success";
331 },
332 // 流程图预览清空
333 /**
334 * @description: 流程图预览清空
335 * @param {*} e
336 * @author: renchao
337 */
338 clearViewer(a) {
339 if (this.$refs.processCanvas) {
340 this.$refs.processCanvas.innerHTML = "";
341 }
342 if (this.bpmnViewer) {
343 this.bpmnViewer.destroy();
344 }
345 this.bpmnViewer = null;
346 },
347 // 添加自定义箭头
348 /**
349 * @description: 添加自定义箭头
350 * @author: renchao
351 */
352 addCustomDefs() {
353 const canvas = this.bpmnViewer.get("canvas");
354 const svg = canvas._svg;
355 const customSuccessDefs = this.$refs.customSuccessDefs;
356 const customFailDefs = this.$refs.customFailDefs;
357 svg.appendChild(customSuccessDefs);
358 svg.appendChild(customFailDefs);
359 },
360 // 任务悬浮弹窗
361 /**
362 * @description: 任务悬浮弹窗
363 * @param {*} element
364 * @author: renchao
365 */
366 onSelectElement(element) {
367 this.selectTaskId = undefined;
368 this.dlgTitle = undefined;
369 let allfinishedTaskSet = [
370 ...this.processNodeInfo.finishedTaskSet,
371 ...this.processNodeInfo.unfinishedTaskSet,
372 ];
373 if (this.processNodeInfo == null || allfinishedTaskSet == null) return;
374 if (element == null || allfinishedTaskSet.indexOf(element.id) === -1) {
375 return;
376 }
377 this.selectTaskId = element.id;
378 this.selectValue = element.id;
379 this.dlgTitle = element.businessObject
380 ? element.businessObject.name
381 : undefined;
382 // 计算当前悬浮任务审批记录,如果记录为空不显示弹窗
383 this.taskCommentList = (this.taskList || []).filter((item) => {
384 return item.taskDefinitionKey === this.selectTaskId;
385 });
386 if (this.taskCommentList.length == 0) {
387 this.taskCommentList = this.taskList;
388 }
389 },
390 // 下拉列表切换
391 /**
392 * @description: 下拉列表切换
393 * @param {*} val
394 * @author: renchao
395 */
396 handleSelect(val) {
397 this.taskCommentList = (this.taskList || []).filter((item) => {
398 return item.taskDefinitionKey === val;
399 });
400 if (this.taskCommentList.length == 0) {
401 this.taskCommentList = this.taskList;
402 }
403 },
404 // 显示流程图
405 /**
406 * @description: 显示流程图
407 * @param {*} xml
408 * @author: renchao
409 */
410 async importXML(xml) {
411 let xmlData = this.$x2js.xml2js(xml).definitions.process;
412 this.selectOptions = xmlData.userTask.map((item) => {
413 return { value: item._id, label: item._name };
414 });
415 this.selectOptions = [
416 { value: xmlData.startEvent._id, label: "浏览记录" },
417 ...this.selectOptions,
418 ];
419 this.selectOptions = this.selectOptions
420 .map((item) => {
421 if (this.formData.finishedInfo.finishedTaskSet.includes(item.value)) {
422 return item;
423 }
424 if (
425 this.formData.finishedInfo.unfinishedTaskSet.includes(item.value)
426 ) {
427 return item;
428 }
429 })
430 .filter(Boolean);
431 this.selectValue = xmlData.startEvent._id;
432 this.clearViewer("a");
433 if (xml != null && xml !== "") {
434 try {
435 this.bpmnViewer = new BpmnViewer({
436 additionalModules: [
437 // 移动整个画布
438 MoveCanvasModule,
439 ],
440 container: this.$refs.processCanvas,
441 });
442 // 任务节点悬浮事件
443 this.bpmnViewer.on("element.click", ({ element }) => {
444 this.onSelectElement(element);
445 });
446 await this.bpmnViewer.importXML(xml);
447 this.isLoading = true;
448 this.addCustomDefs();
449 } catch (e) {
450 this.clearViewer("b");
451 } finally {
452 this.isLoading = false;
453 this.setProcessStatus(this.processNodeInfo);
454 this.$nextTick(() => {
455 this.processReZoom();
456 });
457 }
458 }
459 },
460 // 获取流程记录
461 /**
462 * @description: 获取流程记录
463 * @author: renchao
464 */
465 getCommentList() {
466 this.formData.allCommentList.forEach(async (item, index) => {
467 // item.comments.forEach(element => {
468 // if(element.type=="COMPLETE"){
469 // this.formData.allCommentList[index].idea=element.message
470 // this.formData.allCommentList[index].controls="完成"
471 // }
472 // });
473 let type = item.comments[item.comments.length - 1].type;
474 this.formData.allCommentList[index].idea =
475 item.comments[item.comments.length - 1].message;
476 // 操作方式
477 let controls = "";
478 // 正在办理
479 // 已完结
480 // 已退回
481 switch (type) {
482 case "COMPLETE":
483 controls = "完成";
484 break;
485 case "CLAIM":
486 controls = "完成";
487 break;
488 case "ASSIGN":
489 controls = "转办";
490 break;
491 case "DELEGATE":
492 controls = "委派";
493 break;
494 case "UNCLAIM":
495 controls = "取消认领";
496 break;
497 case "STOP":
498 controls = "终止";
499 break;
500 case "BACK":
501 controls = "退回";
502 break;
503 }
504 this.formData.allCommentList[index].controls = controls;
505 this.formData.allCommentList[index].agent = item.assignee.name;
506 });
507 this.formData.handlinglist.forEach(async (item, index) => {
508 if (item.assignee.name) {
509 this.formData.handlinglist[index].agent = item.assignee.name;
510 } else {
511 let str = "";
512 item.countersign.forEach((item) => {
513 str += item.name + ",";
514 });
515 str = str.slice(0, -1);
516 this.formData.allCommentList[index].agent = str;
517 }
518 });
519 this.taskList = [
520 ...this.formData.allCommentList,
521 ...this.formData.handlinglist,
522 ];
523 // this.taskList =this.formData.allCommentList;
524 // 处理数据之后赋值
525 this.taskCommentList = this.taskList;
526 this.taskCommentList = this.taskCommentList.sort(this.sortDownDate);
527 },
528 /**
529 * 时间排序函数
530 * @description: formatDate
531 * @param {*} row
532 * @param {*} column
533 * @author: renchao
534 */
535
536 sortDownDate(a, b) {
537 return Date.parse(a.createTime) - Date.parse(b.createTime);
538 },
539 // 设置流程图元素状态
540 /**
541 * @description: 设置流程图元素状态
542 * @param {*} processNodeInfo
543 * @author: renchao
544 */
545 setProcessStatus(processNodeInfo) {
546 this.processNodeInfo = processNodeInfo;
547 if (
548 this.isLoading ||
549 this.processNodeInfo == null ||
550 this.bpmnViewer == null
551 )
552 return;
553 const {
554 finishedTaskSet,
555 rejectedTaskSet,
556 unfinishedTaskSet,
557 finishedSequenceFlowSet,
558 } = this.processNodeInfo;
559 const canvas = this.bpmnViewer.get("canvas");
560 const elementRegistry = this.bpmnViewer.get("elementRegistry");
561 if (Array.isArray(finishedSequenceFlowSet)) {
562 finishedSequenceFlowSet.forEach((item) => {
563 if (item != null) {
564 canvas.addMarker(item, "success");
565 const element = elementRegistry.get(item);
566 const conditionExpression =
567 element.businessObject.conditionExpression;
568 if (conditionExpression) {
569 canvas.addMarker(item, "condition-expression");
570 }
571 }
572 });
573 }
574 if (Array.isArray(finishedTaskSet)) {
575 finishedTaskSet.forEach((item) => canvas.addMarker(item, "success"));
576 }
577 if (Array.isArray(unfinishedTaskSet)) {
578 unfinishedTaskSet.forEach((item) => canvas.addMarker(item, "primary"));
579 }
580 if (Array.isArray(rejectedTaskSet)) {
581 rejectedTaskSet.forEach((item) => {
582 if (item != null) {
583 const element = elementRegistry.get(item);
584 if (element.type.includes("Task")) {
585 canvas.addMarker(item, "danger");
586 } else {
587 canvas.addMarker(item, "warning");
588 }
589 }
590 });
591 }
592 },
593 },
594 };
595 </script>
596 <style scoped lang="scss">
597 .information-list {
598 height: 220px;
599 margin-top: 10px;
600
601 p {
602 font-size: 16px;
603 line-height: 24px;
604 }
605 }
606 /deep/.bjs-powered-by {
607 display: none;
608 }
609 // /deep/.information-list {
610 // height: 170px;
611 // overflow: visible;
612 // }
613 .cutline {
614
615 float: right;
616 width: 30%;
617 height: 30px;
618 display: flex;
619 margin-right: 30px;
620 justify-content: space-between;
621 .cutlines{
622 line-height: 30px;
623 font-weight: 600;
624 margin-right: 50px;
625 }
626 .concent{
627 line-height: 30px;
628 line-height: 14px;
629 text-align: center;
630 align-items: center;
631 margin: auto;
632 padding: 3px;
633 border-radius: 4px;
634 border:1px solid #fff;
635 }
636
637 }
638 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-07-17 13:50:53
5 -->
6 <template>
7 <lb-table :column="column" :maxHeight="200" :heightNumSetting="true" :pagination="false" :key="key" :data="tableData">
8 </lb-table>
9 </template>
10 <script>
11 import addQlr from './dialog/addQlr.vue'
12 import { mapGetters } from 'vuex'
13 export default {
14 components: {
15 addQlr
16 },
17 computed: {
18 ...mapGetters(["dictData"]),
19 },
20 props: {
21 tableData: {
22 type: Array,
23 default: function () {
24 return []
25 }
26 },
27 gyfs: {
28 type: String,
29 default: '1'
30 }
31 },
32 data () {
33 return {
34 key: 0,
35 dataIndex: 0,
36 dialog: false,
37 details: {},
38 tableDataList: [],
39 qlrCommonTable: [
40 {
41 label: '序号',
42 type: 'index',
43 width: '50',
44 render: (h, scope) => {
45 return (
46 <div>
47 {scope.$index + 1}
48 </div>
49 )
50 }
51 },
52 // {
53 // prop: "bdcdyh",
54 // label: "不动产单元号"
55 // },
56 {
57 prop: "zl",
58 label: "坐落"
59 },
60 {
61 prop: "shbw",
62 label: "室号部位"
63 },
64 {
65 prop: "fwxzmc",
66 label: "房屋性质"
67 },
68 {
69 prop: "sjc",
70 label: "层号"
71 },
72 {
73 prop: "jzmj",
74 label: "建筑面积"
75 },
76 {
77 prop: "fwlxmc",
78 label: "房屋类型"
79 },
80 {
81 prop: "showfwyt",
82 label: "房屋用途"
83 },
84 {
85 prop: "showfwjg",
86 label: "房屋结构"
87 },
88 ],
89 column: this.qlrCommonTable
90 }
91 },
92 watch: {
93 tableData: {
94 handler: function (val, oldVal) {
95 let that = this;
96 if (val.length == 0 || !val) {
97 } else {
98 that.tableDataList = _.cloneDeep(val)
99 }
100 },
101 immediate: true,
102 deep: true
103 },
104 gyfs: {
105 handler (newVal, oldValue) {
106 let dataList = _.cloneDeep(this.qlrCommonTable)
107 if (newVal == '1') {
108 this.column = _.cloneDeep(dataList).slice(1, dataList.length)
109 } else if ((newVal == '2')) {
110 this.column = dataList
111 } else {
112 this.column = _.cloneDeep(dataList)
113 this.column.splice(
114 2, 0, {
115 prop: "qlbl",
116 label: "份数"
117 })
118 }
119 },
120 immediate: true
121 }
122 },
123 methods: {
124 }
125 }
126 </script>
127 <style scoped lang="scss">
128 /deep/.el-table th {
129 height: 30px !important;
130 }
131 /deep/.el-table--small .el-table__cell {
132 padding: 5px;
133 }
134 </style>
135
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-09-14 17:19:26
5 -->
6 <template>
7 <div class="slxx sdqxx">
8 <el-form
9 :model="ruleForm"
10 ref="ruleForm"
11 v-Loading="loading"
12 :label-position="flag ? 'top' : ''"
13 :inline="flag"
14 label-width="130px">
15 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
16 <div class="slxx_title title-block">
17 电力信息
18 <div class="triangle"></div>
19 </div>
20 <el-row :gutter="10">
21 <el-col :span="8">
22 <el-form-item label="服务代码:">
23 <el-input v-model="ruleForm.serviceCode"></el-input>
24 </el-form-item>
25 </el-col>
26 <el-col :span="8">
27 <el-form-item label="行政区划区县代码:">
28 <el-input v-model="ruleForm.areacode"></el-input>
29 </el-form-item>
30 </el-col>
31 <el-col :span="8">
32 <el-form-item label="登记系统业务号:">
33 <el-input v-model="ruleForm.ywh"></el-input>
34 </el-form-item>
35 </el-col>
36 </el-row>
37
38 <el-row :gutter="10">
39 <el-col :span="8">
40 <el-form-item label="推送日期:">
41 <el-input v-model="ruleForm.SENDTIME"></el-input>
42 </el-form-item>
43 </el-col>
44 <el-col :span="8">
45 <el-form-item label="原户主姓名:">
46 <el-input v-model="ruleForm.mcOld"></el-input>
47 </el-form-item>
48 </el-col>
49 <el-col :span="8">
50 <el-form-item label="原户主身份证号码:">
51 <el-input v-model="ruleForm.zjhmOld"></el-input>
52 </el-form-item>
53 </el-col>
54 </el-row>
55 <el-row :gutter="10">
56 <el-col :span="8">
57 <el-form-item label="原户主联系电话:">
58 <el-input v-model="ruleForm.lxdhOld"></el-input>
59 </el-form-item>
60 </el-col>
61 <el-col :span="8">
62 <el-form-item label="新户主姓名:">
63 <el-input v-model="ruleForm.mcNew"></el-input>
64 </el-form-item>
65 </el-col>
66 <el-col :span="8">
67 <el-form-item label="新户主身份证号码:">
68 <el-input v-model="ruleForm.zjhmNew"></el-input>
69 </el-form-item>
70 </el-col>
71 </el-row>
72 <el-row :gutter="10">
73 <el-col :span="8">
74 <el-form-item label="新户主联系电话:">
75 <el-input v-model="ruleForm.lxdhNew"></el-input>
76 </el-form-item>
77 </el-col>
78 <el-col :span="8">
79 <el-form-item label="房产证编号:">
80 <el-input v-model="ruleForm.fczbh"></el-input>
81 </el-form-item>
82 </el-col>
83 <el-col :span="8">
84 <el-form-item label="是否过户:">
85 <el-switch
86 v-model="ruleForm.sfgh"
87 :active-value='1'
88 active-text="是"
89 :inactive-value="0"
90 inactive-text="否">
91 </el-switch>
92 </el-form-item>
93 </el-col>
94
95 </el-row>
96 <el-row :gutter="10">
97 <el-col :span="24">
98 <el-form-item label="房屋坐落(地址):">
99 <el-input v-model="ruleForm.fwzl" type="textarea"
100 :rows="2"></el-input>
101 </el-form-item>
102 </el-col>
103 </el-row>
104 <el-row class="btn" v-if="viewEdit">
105 <el-form-item>
106 <el-button type="primary" @click="onSubmit">保存</el-button>
107 </el-form-item>
108 </el-row>
109 </div>
110 </el-form>
111 </div>
112 </template>
113 <script>
114 import { mapGetters } from "vuex";
115 import { getDlxxByBsmSldy, saveOrUpdateDlxx } from "@/api/sfxx.js";
116 export default {
117 computed: {
118 ...mapGetters(["dictData", "flag"]),
119 },
120 mounted () {
121 // this.loading = true
122 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
123 this.propsParam = this.$attrs;
124 var formdata = new FormData();
125 formdata.append("bsmSldy", this.propsParam.bsmSldy);
126 formdata.append("djlx", this.propsParam.djlx);
127 formdata.append("isEdit", this.viewEdit);
128 console.log(this.propsParam)
129 this.getDlxxByBsmSldy()
130 },
131 data () {
132 return {
133 loading: false,
134 //表单是否可操作
135 viewEdit: false,
136 ruleForm: {
137 SFGH: 1
138 }
139 }
140 },
141 methods: {
142 getDlxxByBsmSldy() {
143 getDlxxByBsmSldy(this.propsParam.bsmSldy).then((res) => {
144 if (res.code === 200) {
145 if (res.result != null) {
146 this.ruleForm = res.result
147 }
148 }
149 });
150 },
151 saveOrUpdateDlxx() {
152 saveOrUpdateDlxx(this.ruleForm).then((res) => {
153 if (res.code === 200) {
154 this.$message.success("成功")
155 }
156 });
157 },
158 onSubmit () {
159 this.saveOrUpdateDlxx()
160 }
161 }
162 }
163 </script>
164 <style scoped lang="scss">
165 @import "~@/styles/public.scss";
166 @import "~@/styles/slxx/slxx.scss";
167 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-12-29 16:35:50
5 -->
6 <template>
7 <div class='sfxx'>
8 <div class="sfxx-left">
9 <div class="slxx_title title-block">
10 基本信息
11 <div class="triangle"></div>
12 </div>
13 <ul>
14 <li>
15 <p>业务号</p>
16 <p>{{detail.ywh}}</p>
17 </li>
18 <li>
19 <p>申请登记类型</p>
20 <p>{{detail.sqdjlx}}</p>
21 </li>
22 <li>
23 <p>联系人</p>
24 <p>{{detail.lxr}}</p>
25 </li>
26 <li>
27 <p>联系人电话</p>
28 <p>{{detail.lxdh}}</p>
29 </li>
30 <li>
31 <p>缴费人</p>
32 <p><el-input v-model="detail.jfr"></el-input></p>
33 </li>
34 <li>
35 <p>缴费单号</p>
36 <p><el-input v-model="detail.jfdh"></el-input></p>
37 </li>
38 <li>
39 <p>应收金额</p>
40 <p style="color:red">{{detail.ysje}}</p>
41 </li>
42 <li>
43 <p>实收金额</p>
44 <p><el-input v-model="detail.ssje"></el-input></p>
45 </li>
46 <li>
47 <p>备注</p>
48 <p><el-input v-model="detail.bz"></el-input></p>
49 </li>
50 </ul>
51 </div>
52 <div class="sfxx-right">
53 <div class="slxx_title title-block">
54 收费明细
55 <!-- <div class="triangle"></div> -->
56 <el-button type="primary" @click="hanldeAdd" style="float:right;margin-top:-5px">增加</el-button>
57 </div>
58 <el-table :data="tableData.data" border :height="355">
59 <el-table-column v-for="item in tableData.columns" :key="item.index" :prop="item.prop" :label="item.label" align="center">
60 </el-table-column>
61 <el-table-column label="操作" width="50">
62 <template slot-scope="scope">
63 <el-button type="text" @click="handleDelete(scope.row)">删除</el-button>
64 </template>
65 </el-table-column>
66 </el-table>
67 <div class="slxx_title title-block">
68 票据
69 <div style="height:250px">
70 <img src="../../../image/pj.jpg" alt="" style="height:100%">
71 </div>
72 </div>
73 </div>
74 </div>
75 </template>
76 <script>
77 import { mapGetters } from "vuex";
78 import { getSfmxList, deleteSfmx } from "@/api/sfxx.js";
79 export default {
80 components: {},
81 data () {
82 return {
83 detail: {
84 ywh: '',
85 sqdjlx: '',
86 lxr: '',
87 lxdh: '',
88 jfr: '',
89 jfdh: '',
90 ysje: '',
91 ssje: '',
92 bz: ''
93 },
94 tableData: {
95 columns: [
96 {
97 prop: "sfdw",
98 label: "收费单位",
99 },
100 {
101 label: '是否额外收费',
102 align: 'center',
103 render: (h, scope) => {
104 return (
105 <div>
106 {scope.row.sfewsf == '1' ? <span></span> : <span>否</span>}
107 </div>
108 )
109 }
110 },
111 {
112 prop: "sfry",
113 label: "收费人员",
114 },
115 {
116 prop: "sfkmmc",
117 label: "收费科目名称",
118 },
119 {
120 prop: "sjffr",
121 label: "实际付费人",
122 },
123 {
124 prop: "ssje",
125 label: "实收金额",
126 },
127 {
128 prop: "ysje",
129 label: "应收金额",
130 }
131 ],
132 data: []
133 }
134 }
135 },
136 computed: {
137 ...mapGetters(["workFresh"]),
138 },
139 watch: {
140 workFresh: {
141 handler (newVal, oldVal) {
142 if (newVal) this.getList();
143 },
144 },
145 },
146 mounted () {
147 this.getList()
148 },
149 methods: {
150 getList () {
151 let bsmBusiness = this.$route.query.bsmBusiness ? this.$route.query.bsmBusiness : window.currentSelect.bsmBusiness
152 getSfmxList(bsmBusiness).then(res => {
153 this.tableData.data = res.result
154 })
155 },
156 hanldeAdd () {
157 let bsmBusiness = this.$route.query.bsmBusiness ? this.$route.query.bsmBusiness : window.currentSelect.bsmBusiness
158 this.$popupDialog('新增', 'workflow/components/dialog/xzsf', { bsmBusiness: bsmBusiness }, '50%', true)
159 },
160 handleDelete (row) {
161 let that = this
162 this.$confirm('此操作将永久删除该 是否继续?', '提示', {
163 confirmButtonText: '确定',
164 cancelButtonText: '取消',
165 type: 'warning'
166 }).then(() => {
167 deleteSfmx(row.bsmSf).then(res => {
168 if (res.code == 200) {
169 that.$message({
170 message: '删除成功!',
171 type: 'success'
172 })
173 that.getList()
174 } else {
175 that.$message({
176 type: 'info',
177 message: res.message
178 })
179 }
180 })
181 }).catch(() => {
182 this.$message({
183 type: 'info',
184 message: '已取消删除'
185 })
186 })
187
188 }
189 }
190 }
191 </script>
192 <style scoped lang='scss'>
193 @import "~@/styles/public.scss";
194 .sfxx {
195 display: flex;
196 padding: 10px;
197 height: 100%;
198 box-sizing: border-box;
199 &-left {
200 width: 50%;
201 margin-right: 10px;
202 ul {
203 border-radius: 3px;
204 }
205 li:last-child {
206 border-bottom: 1px solid #e8e5e5;
207 }
208 li {
209 display: flex;
210 border: 1px solid #e8e5e5;
211 border-bottom: none;
212
213 p:nth-child(1) {
214 width: 35%;
215 text-align: center;
216 background-color: #fafafa;
217 border-right: 1px solid #e8e5e5;
218 padding: 10px 0;
219 }
220 p:nth-child(2) {
221 width: 65%;
222 display: flex;
223 align-items: center;
224 box-sizing: border-box;
225 margin: 0 10px;
226 }
227 }
228 }
229 &-right {
230 width: 50%;
231 margin-left: 10px;
232 }
233 }
234 </style>
1 <!--
2 * @Description: 审批意见
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-26 08:45:07
5 -->
6 <template>
7 <div class="spyj" v-Loading="loading">
8 <div class="box">
9 <div class="spyj_title">
10 <div class="righttitle">审批表</div>
11 </div>
12
13 <div v-for="(item, index) in tableData" :key="index">
14 <el-form
15 :model="tableData[index]"
16 label-width="120px"
17 ref="ruleForm'">
18 <div class="spyj_form">
19 <div class="item_left">
20 <div class="right">{{ item.jdmc }}意见</div>
21 </div>
22 <div class="item_right">
23 <el-row>
24 <el-col :span="24">
25 <el-form-item
26 label-width="0"
27 class="opinion_item">
28 <el-input
29 :disabled="!viewEdit || item.show"
30 type="textarea"
31 :rows="4"
32 class="opinion"
33 placeholder=""
34 v-model="item.shyj"></el-input>
35 <el-button
36 class="opinion_btn"
37 @click="commonOpinion(index)"
38 :disabled="!viewEdit|| item.show">常用意见</el-button>
39 </el-form-item>
40 </el-col>
41 </el-row>
42 <el-row>
43 <el-col :span="16">
44 <el-form-item label="审查人">
45 {{ item.shryxm }}
46 </el-form-item>
47 </el-col>
48 <el-col :span="8">
49 <el-form-item disabled label="审核时间" :key="refresh">
50 {{ item.shjssj }}
51 </el-form-item>
52 </el-col>
53 </el-row>
54 </div>
55 </div>
56 </el-form>
57 </div>
58 <div class="submit_button" v-if="viewEdit">
59 <el-button type="primary" :disabled="shows" @click="onSubmit()">保存</el-button>
60 </div>
61 </div>
62 </div>
63 </template>
64 <script>
65 import { saveSpyjBySlsq, getSpyjList } from "@/api/opinion.js";
66 import { mapGetters } from "vuex";
67 import { getNewDatesh } from "@/utils/util";
68 export default {
69 computed: {
70 ...mapGetters(["dqhj", "yjsqOptions", "userInfo"]),
71 },
72 data () {
73 return {
74 loading: false,
75 currentindex: 0,
76 refresh: 10,
77 viewEdit: false,
78 bsmSlsq: this.$route.query.bsmSlsq,
79 bestepid: this.$route.query.bestepid,
80 propsParam: {},
81 tableData: [],
82 shows: false,
83 };
84 },
85
86 watch: {
87 yjsqOptions: {
88 handler (val) {
89 this.add(val.opinion);
90 },
91 deep: true,
92 immediate: true,
93 },
94 dqhj: {
95 handler (val) {
96 this.propsParam = this.$attrs;
97 this.dataset()
98 this.getShList();
99
100 },
101 deep: true,
102 immediate: true,
103 },
104
105 },
106 methods: {
107 /**
108 * @description: dataset
109 * @param {*} 数据处理
110 * @author: renchao
111 */
112 dataset () {
113 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
114 },
115 /**
116 * @description: getShList
117 * @param {*} obj
118 * @author: renchao
119 */
120 getShList () {
121 this.loading = true
122 var formdata = new FormData();
123 formdata.append("bsmBusiness", this.propsParam.bsmBusiness);
124 formdata.append("bestepid", this.$route.query.bestepid);
125
126 getSpyjList(formdata).then((res) => {
127 if (res.code === 200 && res.result) {
128 this.tableData = res.result;
129 if (this.shows) {
130 this.shows = false;
131 }
132 var index = this.tableData.findIndex(
133 (item) => item.jddm === this.$parent.dqhj
134 );
135 if (index == -1) {
136 switch (this.$parent.dqhj) {
137 case "cs":
138 this.tableData.push({ jdmc: "初审", jddm: "cs", sxh: 1 });
139 break;
140 case "fs":
141 this.tableData.push({ jdmc: "复审", jddm: "fs", sxh: 2 });
142 break;
143 case "hd":
144 this.tableData.push({ jdmc: "核定", jddm: "hd", sxh: 3 });
145 break;
146 }
147 }
148 this.tableData.forEach((item) => {
149 item.show = true;
150 if (this.$parent.dqhj == item.jddm) {
151 item["stepid"] = this.$route.query.bestepid;
152 item.shjssj = getNewDatesh();
153 item.shkssj = getNewDatesh();
154 item["shryxm"] = this.userInfo.name;
155 item["userid"] = this.userInfo.id;
156 item.show = false;
157 }
158 });
159 this.loading = false
160 }
161 })
162 },
163 /**
164 * @description: onSubmit
165 * @author: renchao
166 */
167 onSubmit () {
168
169 this.tableData.forEach((item, index) => {
170 item["bsmBusiness"] = this.propsParam.bsmBusiness;
171 item["czjg"] = "1";
172 });
173 var index = this.tableData.findIndex(
174 (item) => item.shyj == null || item.shyj == ""
175 );
176 if (index == -1) {
177 this.shows = true;
178 saveSpyjBySlsq(this.tableData).then((res) => {
179 if (res.code === 200) {
180 this.$message.success("保存成功");
181 this.refresh += 1;
182 this.getShList();
183 } else {
184 this.$message.error(res.message);
185 }
186 });
187 } else {
188 this.$message.error("意见不能为空");
189 }
190
191 },
192 //打开常用意见列表弹窗
193 /**
194 * @description: 打开常用意见列表弹窗
195 * @param {*} index
196 * @author: renchao
197 */
198 commonOpinion (index) {
199 this.currentindex = index;
200 this.$popupDialog(
201 "常用意见",
202 "workflow/components/dialog/commonOpinion",
203 {},
204 "70%",
205 true
206 );
207 },
208 /**
209 * @description: add
210 * @param {*} val
211 * @author: renchao
212 */
213 add (val) {
214 if (val != "" && this.tableData.length > 0) {
215 this.$set(this.tableData[this.currentindex], "shyj", val);
216 }
217 },
218 },
219 };
220 </script>
221 <style scoped lang="scss">
222 @import "~@/styles/mixin.scss";
223
224 .spyj {
225 width: 100%;
226 height: 100%;
227 background-color: #f5f5f5;
228 .box {
229 overflow-x: auto;
230 width: 100%;
231 height: 95%;
232 background: #fff;
233 text-align: center;
234 padding: 4px;
235 overflow-y: scroll;
236 padding-top: 20px;
237 padding: 20px 40px;
238 .spyj_title {
239 width: 100%;
240 height: 80px;
241 border: 1px solid $borderColor;
242 background-color: #eceef2;
243 display: flex;
244 }
245 .leftadd {
246 width: 3%;
247 height: 100%;
248 display: flex;
249 font-size: 14px;
250 text-indent: 20px;
251 align-items: center;
252 border: 1px solid $borderColor;
253 }
254 .righttitle {
255 width: 80%;
256 height: 100%;
257 line-height: 80px;
258 border: 1px solid $borderColor;
259 margin: auto;
260 font-size: 22px;
261 font-weight: 400;
262 }
263 }
264
265 /deep/.el-form-item {
266 margin-bottom: 0;
267 }
268
269 .bottom10 {
270 margin-bottom: 15px;
271 }
272
273 .spyj_form {
274 display: flex;
275 border: 1px solid $borderColor;
276
277 .item_left {
278 width: 150px;
279 background-color: #f8f8fa;
280 color: #606266;
281 display: flex;
282 font-size: 14px;
283 text-indent: 50px;
284 align-items: center;
285 border-right: 1px solid $borderColor;
286 }
287
288 .item_right {
289 flex: 1;
290 width: 100%;
291
292 /deep/.el-form-item__label {
293 background-color: #f8f8fa;
294 }
295 /deep/.el-form-item__content {
296 display: block;
297 text-align: left;
298 }
299 .opinion_item {
300 /deep/.el-form-item__error {
301 margin-top: -16px !important;
302 left: 3px;
303 }
304 border-bottom: 1px solid $borderColor;
305 }
306
307 .opinion {
308 position: relative;
309 font-size: 14px;
310
311 /deep/.el-textarea__inner {
312 border: none;
313 }
314 }
315
316 .opinion_btn {
317 position: absolute;
318 right: 15px;
319 bottom: 10px;
320 }
321 }
322 }
323
324 .submit_button {
325 text-align: center;
326 margin: 15px 0;
327 }
328
329 .el-date-editor.el-input {
330 width: 100%;
331 }
332 }
333 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-07-17 13:51:09
5 -->
6 <template>
7 <lb-table :column="column" :maxHeight="300" heightNumSetting :pagination="false" :key="key" :data="tableData">
8 </lb-table>
9 </template>
10 <script>
11 import addQlr from './dialog/addQlr.vue'
12 import { mapGetters } from 'vuex'
13 export default {
14 components: {
15 addQlr
16 },
17 computed: {
18 ...mapGetters(["dictData"]),
19 },
20 props: {
21 tableData: {
22 type: Array,
23 default: function () {
24 return []
25 }
26 },
27 gyfs: {
28 type: String,
29 default: '1'
30 }
31 },
32 data () {
33 return {
34 key: 0,
35 dataIndex: 0,
36 dialog: false,
37 details: {},
38 tableDataList: [],
39 qlrCommonTable: [
40 {
41 width: '50',
42 renderHeader: (h, scope) => {
43 return <div> {
44 this.ableOperation ? '序号' : <i class="el-icon-plus pointer" onClick={() => { this.handleAdd() }}></i>
45 }
46 </div>
47 },
48 render: (h, scope) => {
49 return (
50 <div>
51 {
52 this.ableOperation ? <span>{scope.$index + 1}</span> :
53 <i class="el-icon-minus pointer" onClick={() => { this.handleMinus(scope.$index, scope.row) }}></i>
54 }
55 </div>
56 )
57 }
58 },
59 {
60 prop: "sqrmc",
61 label: "姓名/名称"
62 },
63 {
64 prop: "zjzl",
65 label: "证件种类"
66 },
67 {
68 prop: "zjh",
69 label: "证件号"
70 },
71 {
72 prop: "dh",
73 label: "联系电话"
74 },
75 {
76 prop: "frmc",
77 label: "法人"
78 },
79 {
80 label: '操作',
81 render: (h, scope) => {
82 return (
83 <div>
84 {
85 <el-button icon="el-icon-view" type="text" onClick={() => { this.handleView(scope.$index, scope.row) }}>查看</el-button>
86 }
87 </div>
88 )
89 }
90 }
91 ],
92 column: this.qlrCommonTable
93 }
94 },
95 watch: {
96 tableData: {
97 handler: function (val, oldVal) {
98 let that = this
99 if (val.length == 0 || !val) {
100 that.tableDataList = _.cloneDeep([{
101 sqrmc: '',
102 dlrzjlx: '',
103 dlrzjh: '',
104 fr: ''
105 }])
106 } else {
107 that.tableDataList = _.cloneDeep(val)
108 }
109 },
110 immediate: true,
111 deep: true
112 },
113 gyfs: {
114 handler (newVal, oldValue) {
115 let dataList = _.cloneDeep(this.qlrCommonTable)
116 if (newVal == '1') {
117 this.column = _.cloneDeep(dataList).slice(1, dataList.length)
118 } else if ((newVal == '2')) {
119 this.column = dataList
120 } else {
121 this.column = _.cloneDeep(dataList)
122 this.column.splice(
123 2, 0, {
124 prop: "qlbl",
125 label: "份数"
126 })
127 }
128 },
129 immediate: true
130 }
131 },
132 methods: {
133 /**
134 * @description: updateDetail
135 * @param {*} value
136 * @author: renchao
137 */
138 updateDetail (value) {
139 this.tableDataList[this.dataIndex] = value
140 this.key++
141 this.$emit('upDateQlrxxList', this.tableDataList)
142 },
143 // 添加
144 /**
145 * @description: 添加
146 * @author: renchao
147 */
148 handleAdd () {
149 this.dialog = true
150 },
151 // 减
152 /**
153 * @description: 减
154 * @param {*} index
155 * @param {*} row
156 * @author: renchao
157 */
158 handleMinus (index, row) {
159 this.tableData.splice(index, 1)
160 },
161 // 身份证读取
162 /**
163 * @description: 身份证读取
164 * @author: renchao
165 */
166 readClick () { },
167 // 修改
168 /**
169 * @description: 修改
170 * @param {*} index
171 * @param {*} row
172 * @author: renchao
173 */
174 handleEdit (index, row) {
175 console.log(row, 'rowrowrowrowrow');
176 this.dataIndex = index
177 this.dialog = true
178 this.details = row
179 },
180 /**
181 * @description: handleView
182 * @author: renchao
183 */
184 handleView () {
185 this.dialog = true
186 }
187 }
188 }
189 </script>
190 <style scoped lang="scss">
191 /deep/.el-table th {
192 height: 30px !important;
193 }
194 /deep/.el-table--small .el-table__cell {
195 padding: 5px;
196 }
197 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-09-27 08:51:13
5 -->
6 <template>
7 <div class="from-clues">
8 <div class="invalid-title">
9 <i class="el-icon-question invalid-icon"></i>
10 <div class="invalid-body">您是否确定终止该业务办理?</div>
11 </div>
12 <div class="invalid-reson">退件原因:</div>
13 <el-input
14 v-model="stopMessage"
15 placeholder="请输入终止原因"
16 type="textarea"
17 :rows="4"></el-input>
18 <div style="overflow:hidden;text-align:center;margin-top:10px">
19 <el-button @click="cancelBack">取消</el-button>
20 <el-button type="primary" @click="onSubmit">退件</el-button>
21 </div>
22 </div>
23 </template>
24
25 <script>
26 import { stopTask } from "@/api/workFlow.js";
27 import { popupCacel } from "@/utils/popup.js";
28 export default {
29 props: {
30 formData: {
31 type: Object,
32 default: {},
33 },
34 },
35 data () {
36 return {
37 stopMessage: "",
38 };
39 },
40 methods: {
41 /**
42 * @description: onSubmit
43 * @author: renchao
44 */
45 onSubmit () {
46 stopTask({
47 bsmSlsq: this.formData.bsmSlsq,
48 bestepid: this.formData.bestepid,
49 stopMessage: this.stopMessage,
50 }).then((res) => {
51 this.$message.success("终止成功");
52 setTimeout(() => {
53 // window.opener.location.reload(); //刷新父窗口
54 if (window.opener && window.opener.getBpageList) {
55 window.opener.getBpageList();
56 } else {
57 window.opener.frames[0].getBpageList();
58 }
59 window.close();
60 this.$emit("input", false);
61 }, 1000);
62 });
63 },
64 /**
65 * @description: closeDialog
66 * @author: renchao
67 */
68 cancelBack () {
69 popupCacel();
70 },
71 },
72 };
73 </script>
74 <style scoped lang="scss">
75 @import "~@/styles/mixin.scss";
76 .invalid-title {
77 display: flex;
78 align-content: center;
79
80 .invalid-icon {
81 color: rgb(254, 148, 0);
82 font-size: 34px;
83 margin-right: 10px;
84 }
85
86 .invalid-body {
87 line-height: 40px;
88 margin-bottom: 10px;
89 }
90 }
91
92 .invalid-reson {
93 margin-bottom: 10px;
94 }
95
96 .dialog-footer {
97 margin-top: 10px;
98 display: flex;
99 justify-content: flex-end;
100 }
101 </style>
1 <template>
2 <div class="slxx swxx">
3 <el-form
4 :model="ruleForm"
5 ref="ruleForm"
6 v-Loading="loading"
7 :label-position="flag ? 'top' : ''"
8 :inline="flag"
9 label-width="120px">
10 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
11 <div class="slxx_title title-block">
12 不动产信息
13 <div class="triangle"></div>
14 </div>
15 <el-row :gutter="10">
16 <el-col :span="8">
17 <el-form-item label="不动产单元号:">
18 <el-input disabled v-model="ruleForm.bdcdyh"></el-input>
19 </el-form-item>
20 </el-col>
21 <el-col :span="8">
22 <el-form-item label="原产证号:">
23 <el-input disabled v-model="ruleForm.yfczh"></el-input>
24 </el-form-item>
25 </el-col>
26 <el-col :span="8">
27 <el-form-item label="面积(m3):">
28 <el-input disabled v-model="ruleForm.mj"></el-input>
29 </el-form-item>
30 </el-col>
31 </el-row>
32 <el-row :gutter="10">
33 <el-col :span="8">
34 <el-form-item label="权利类型:">
35 <el-input disabled v-model="ruleForm.qllxmc"></el-input>
36 </el-form-item>
37 </el-col>
38 <el-col :span="8">
39 <el-form-item label="用途:">
40 <el-input disabled v-model="ruleForm.yt"></el-input>
41 </el-form-item>
42 </el-col>
43 <el-col :span="8">
44 <el-form-item label="坐落:">
45 <el-input disabled v-model="ruleForm.zl"></el-input>
46 </el-form-item>
47 </el-col>
48 </el-row>
49 <div class="slxx_title title-block">
50 买方信息
51 <div class="triangle"></div>
52 </div>
53 <lb-table :column="column" :pagination="false" :heightNumSetting="true"
54 :data="ruleForm.tableDataList">
55 </lb-table>
56 <div class="slxx_title title-block">
57 卖方信息
58 <div class="triangle"></div>
59 </div>
60 <lb-table :column="column1" :pagination="false" :heightNumSetting="true"
61 :data="ruleForm.tableDataList">
62 </lb-table>
63 <div class="slxx_title title-block">
64 合同信息
65 <div class="triangle"></div>
66 </div>
67 <el-row :gutter="10">
68 <el-col :span="8">
69 <el-form-item label="合同编号:">
70 <el-input v-model="ruleForm.htbh"></el-input>
71 </el-form-item>
72 </el-col>
73 <el-col :span="8">
74 <el-form-item label="合同金额(万元):">
75 <el-input v-model="ruleForm.htje"></el-input>
76 </el-form-item>
77 </el-col>
78 <el-col :span="8">
79 <el-form-item label="签订时间:">
80 <el-date-picker
81 class="width100"
82 v-model="ruleForm.qdsj"
83 type="date"
84 placeholder="选择日期"
85 value-format="yyyy-MM-dd HH:mm:ss"
86 format="yyyy-MM-dd">
87 </el-date-picker>
88 </el-form-item>
89 </el-col>
90 </el-row>
91 <div class="slxx_title title-block">
92 缴税信息
93 <div class="triangle"></div>
94 </div>
95 <lb-table :column="column2" :pagination="false" :heightNumSetting="true"
96 :data="ruleForm.tableDataList">
97 </lb-table>
98 </div>
99 <el-row class="btn" v-if="viewEdit">
100 <el-form-item>
101 <el-button type="primary" @click="onSubmit">保存</el-button>
102 </el-form-item>
103 </el-row>
104 </el-form>
105 </div>
106 </template>
107 <script>
108 import { mapGetters } from "vuex";
109 export default {
110 computed: {
111 ...mapGetters(["dictData", "flag"]),
112 },
113 mounted () {
114 // this.loading = true
115 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
116 this.propsParam = this.$attrs;
117 var formdata = new FormData();
118 formdata.append("bsmSldy", this.propsParam.bsmSldy);
119 formdata.append("djlx", this.propsParam.djlx);
120 formdata.append("isEdit", this.viewEdit);
121 // Init(formdata).then((res) => {
122 // if (res.code === 200 && res.result) {
123 // }
124 // });
125 },
126 data () {
127 return {
128 loading: false,
129 //表单是否可操作
130 viewEdit: false,
131 column: [
132 {
133 prop: "qlrxm",
134 label: "权利人姓名"
135 },
136 {
137 prop: "gyqk",
138 label: "共有情况"
139 },
140 {
141 prop: "zjzl",
142 label: "身份证号种类"
143 },
144 {
145 prop: "zjhm",
146 label: "证件号码"
147 },
148 ],
149 column1: [{
150 prop: "ywrxm",
151 label: "义务人姓名"
152 },
153 {
154 prop: "zjzl",
155 label: "身份证号种类"
156 },
157 {
158 prop: "zjhm",
159 label: "证件号码"
160 }],
161 column2: [{
162 type: 'index',
163 label: "序号",
164 width: '50'
165 },
166 {
167 prop: "nsr",
168 label: "纳税人"
169 },
170 {
171 prop: "sz",
172 label: "税种"
173 },
174 {
175 prop: "jsyj",
176 label: "计税依据"
177 },
178 {
179 prop: "sl",
180 label: "税率"
181 },
182 {
183 prop: "jsje",
184 label: "计税金额"
185 }],
186 ruleForm: {
187 tableDataList: []
188 }
189 }
190 },
191 methods: {
192 onSubmit () { }
193 }
194 }
195 </script>
196 <style scoped lang="scss">
197 @import "~@/styles/public.scss";
198 @import "~@/styles/slxx/slxx.scss";
199 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-30 15:46:45
5 -->
6 <template>
7 <div class="szxx">
8 <el-card
9 :class="classJudge(item)"
10 v-for="(item, index) in tableData"
11 :key="index">
12 <div slot="header" class="szxx_header">
13 <span class="header_type">{{
14 item.bdcqzlx == 1 ? "不动产权证书" : "不动产登记证明"
15 }}</span>
16 <div class="header_text">{{ item.bdcqzh }}</div>
17 </div>
18 <div class="szxx_body card_padding">
19 <div class="text color_iray">
20 <span>{{ item.qllx }}</span>
21 </div>
22 <div class="text color_red">
23 <span>{{ item.qlr }}</span><span class="color_iray">({{ item.qllx }})</span>
24 </div>
25 <div class="text color_iray">
26 <span>{{ item.gyqk }}</span>
27 </div>
28 <div class="text color_red">
29 <span>{{ item.bdcdyh }}</span>
30 </div>
31 <div class="text color_iray">
32 <span>{{ item.zl }}</span>
33 </div>
34 <div class="text color_red">
35 <span>{{ item.yt }}</span>
36 </div>
37 <div class="text color_iray">
38 <span>{{ item.mj }}</span>
39 </div>
40 <div class="text color_red">
41 <span>{{ item.syqx }}</span>
42 </div>
43 <div class="text color_iray">
44 <span>印刷序列号:{{ item.ysxlh }}</span>
45 </div>
46 </div>
47 <div class="card_padding" v-if="viewEdit">
48 <div class="top_line middle_margin"></div>
49 <div class="text tac" v-if="item.ysxlh">
50 <el-button
51 class="operation_button"
52 type="text"
53 @click="openInvalidDiglog(item)">再次打印({{ item.szcs }})</el-button>
54 <el-button
55 class="operation_button"
56 type="text"
57 @click="openRecordPop(item)">缮证记录</el-button>
58 </div>
59 <div class="text tac" v-else>
60 <el-button
61 class="operation_button"
62 type="text"
63 @click="openZsylDialog(item, 2)">证书打印({{ item.szcs }}</el-button>
64 <el-button
65 class="operation_button"
66 type="text"
67 @click="openRecordPop(item)">缮证记录</el-button>
68 </div>
69 </div>
70 </el-card>
71
72 <el-empty description="暂无数据" v-if="tableData.length == 0"></el-empty>
73 </div>
74 </template>
75 <script>
76 import { mapGetters } from "vuex";
77 import store from "@/store/index.js";
78 import { getSlsqBdcqzList } from "@/api/bdcqz.js";
79 export default {
80 props: {},
81 data () {
82 return {
83 //表单是否可操作
84 viewEdit: false,
85 dialog: false,
86 tableData: [],
87 bdcqzlx: 1,
88 bdcqz: {},
89 };
90 },
91 computed: {
92 ...mapGetters(["workFresh"]),
93 },
94 watch: {
95 workFresh: {
96 handler (newVal, oldVal) {
97 if (newVal) this.list();
98 },
99 },
100 },
101 created () {
102 this.list();
103 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
104 },
105 methods: {
106 /**
107 * @description: 初始化列表
108 * @author: renchao
109 */
110 list () {
111 return new Promise((resolve, reject) => {
112 var bsmSlsq = this.$route.query.bsmSlsq;
113 getSlsqBdcqzList({ bsmSlsq: bsmSlsq }).then((res) => {
114 resolve(res.code);
115 if (res.code === 200) {
116 this.tableData = res.result;
117 if (res.result) {
118 this.bdcqz = res.result[0];
119 }
120 }
121 });
122 });
123 },
124 /**
125 * @description: 打开证书预览弹窗
126 * @param {*} item
127 * @param {*} type
128 * @author: renchao
129 */
130 openZsylDialog (item, type) {
131 store.dispatch("user/reWorkFresh", false);
132 if (type == 1) {
133 this.$popupDialog(
134 "证书证明预览",
135 "workflow/components/dialog/zsyl",
136 { bdcqz: item, bsmSlsq: this.$route.query.bsmSlsq },
137 '1230px',
138 true
139 );
140 } else {
141 this.$popupDialog(
142 "证书证明打印",
143 "workflow/components/dialog/zsdy",
144 { ...item },
145 "76%",
146 true
147 );
148 }
149 },
150 /**
151 * @description: 再次打印
152 * @param {*} item
153 * @author: renchao
154 */
155 openInvalidDiglog (item) {
156 this.$popupDialog(
157 "证书证明打印",
158 "workflow/components/dialog/zsdy",
159 { ...item },
160 "76%",
161 true
162 );
163 },
164 /**
165 * @description: openRecordPop
166 * @param {*} item
167 * @author: renchao
168 */
169 openRecordPop (item) {
170 this.$popupDialog(
171 "缮证记录",
172 "workflow/components/dialog/szRecord",
173 { bsmBdcqz: item.bsmBdcqz },
174 "60%",
175 true
176 );
177 },
178 /**
179 * @description: classJudge 判断class
180 * @param {*} item
181 * @author: renchao
182 */
183 classJudge (item) {
184 let className = "box-card";
185 if (item.bdcqzlx == 1) {
186 className += " zs-card";
187 } else {
188 className += " zm-card";
189 }
190 if (item.szcs == 0) {
191 className += " no-print";
192 }
193 return className;
194 },
195 },
196 };
197 </script>
198 <style scoped lang="scss">
199 @import "~@/styles/public.scss";
200 .szxx {
201 box-sizing: border-box;
202 padding-right: 15px;
203 width: 100%;
204 height: 100%;
205 overflow-y: scroll;
206 padding-bottom: 55px;
207
208 .box-card {
209 float: left;
210 width: 350px;
211 margin: 10px;
212 box-shadow: none;
213 background-image: url("~@/image/zm-bg.png");
214 background-size: 100% 100%;
215 border: 1px solid transparent;
216 /deep/ .el-card__header {
217 padding: 12px 66px;
218 background-size: auto;
219 border-bottom: 0;
220 position: relative;
221 }
222 .szxx_header {
223 color: #8b4534;
224 }
225 .szxx_body {
226 height: 330px;
227 }
228 }
229 .zs-card {
230 border: 1px solid #a6b0be;
231 background-image: none;
232 /deep/ .el-card__header {
233 background-image: url("~@/image/zs-red.png");
234 .szxx_header {
235 color: #ffe47c;
236 }
237 }
238 .top_line {
239 border-top: 1px solid #d3dbe5;
240 width: 330px;
241 margin: 0 auto 10px;
242 }
243 }
244 .zm-card {
245 /deep/ .el-card__header {
246 &:after {
247 content: "";
248 display: inline-block;
249 width: 330px;
250 height: 1px;
251 background-color: #b28676;
252 position: absolute;
253 left: 10px;
254 bottom: 0;
255 }
256 }
257 }
258 .zm-card.no-print {
259 background-image: url("~@/image/zm-gray.png");
260
261 /deep/ .el-card__header {
262 &:after {
263 background-color: #6d7278;
264 }
265 }
266 .szxx_header {
267 color: #6d7278;
268 }
269 }
270 .zs-card.no-print {
271 /deep/ .el-card__header {
272 background-image: url("~@/image/zs-gray.png");
273 .szxx_header {
274 color: #ffffff;
275 }
276 }
277 }
278 }
279
280 .szxx_header {
281 // color: #ffffff;
282 // font-weight: bolder;
283 font-size: 16px;
284
285 .header_type {
286 display: flex;
287 justify-content: center;
288 align-content: center;
289 }
290
291 .header_text {
292 text-align: center;
293 margin-top: 2px;
294 line-height: 22px;
295 }
296 }
297
298 .text {
299 margin-bottom: 8px;
300 text-align: left;
301 text-indent: 16px;
302 }
303 .text.tac {
304 text-align: center;
305 }
306
307 .color_iray {
308 color: #6d7278;
309 }
310
311 .color_red {
312 color: #ab0c0c;
313 }
314
315 .middle_margin {
316 margin-bottom: 10px;
317 }
318
319 .operation_button {
320 border: 1px solid #5c95e5;
321 padding: 5px;
322 text-align: center;
323 }
324
325 .card_padding {
326 padding-top: 8px;
327 font-size: 14px;
328 line-height: 22px;
329 }
330 /deep/.el-card__body {
331 padding: 0px;
332 }
333 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-08-02 14:24:20
5 -->
6 <template>
7 <div class="from-clues">
8 <!-- 表单部分 -->
9 <div class="from-clues-header">
10 <div class="title">请选择要退回到的环节:</div>
11 <el-form ref="queryForm" label-width="90px">
12 <ul style="margin-bottom: 15px">
13 <li
14 v-for="(item, index) in dataList"
15 class="listDetail"
16 :key="index"
17 @click="changeSelectItem(item)">
18 <p class="icon">
19 <el-radio
20 v-model="selectActivity"
21 :label="item.activityId"
22 @change="changeSelectItem(item)"></el-radio>
23 </p>
24 <p>{{ item.activityName }}</p>
25 <p v-for="(child, childIndex) in item.assignee" :key="childIndex">
26 {{ child.name }}
27 </p>
28 </li>
29 </ul>
30 <div class="title">退回意见:</div>
31 <el-form-item>
32 <el-input
33 class="textArea"
34 type="textarea"
35 v-model="outstepopinion"
36 placeholder="请输入退回意见"></el-input>
37 </el-form-item>
38 <el-form-item>
39 <el-button style="float:right" @click="cancelBack">取消</el-button>
40 <el-button type="primary" @click="onSubmit" style="float:right">退回</el-button>
41 </el-form-item>
42 </el-form>
43 </div>
44 </div>
45 </template>
46
47 <script>
48
49 import { getTaskBackNode, sendBackTask } from "@/api/workFlow.js"
50 import { popupCacel } from "@/utils/popup.js";
51
52 export default {
53 props: {
54 formData: {
55 type: Object,
56 default: {},
57 },
58 },
59 data () {
60 return {
61 selectActivity: "",
62 dataList: [],
63 outstepopinion: "",
64 selectItem: {},
65 };
66 },
67 created () {
68 this.getBackNode();
69 },
70 methods: {
71 /**
72 * @description: onSubmit
73 * @author: renchao
74 */
75 onSubmit () {
76 if (!this.outstepopinion) {
77 this.$message.error("请填写退回意见");
78 } else {
79 sendBackTask({
80 bsmSlsq: this.formData.bsmSlsq,
81 backNodeList: [this.selectItem],
82 message: this.outstepopinion
83 }).then((res) => {
84 if (res.code == 200) {
85 this.$message.success("退回成功");
86 setTimeout(() => {
87 if (window.opener && window.opener.getBpageList) {
88 window.opener.getBpageList();
89 } else {
90 window.opener.frames[0].getBpageList();
91 }
92 window.close();
93 this.$emit("input", false);
94 }, 1000);
95 } else {
96 this.$message.error(res.message);
97 }
98 });
99 }
100 },
101 /**
102 * @description: changeSelectItem
103 * @param {*} item
104 * @author: renchao
105 */
106 changeSelectItem (item) {
107 this.selectItem = item;
108 this.selectActivity = item.activityId;
109 },
110 //获取可回退环节信息
111 /**
112 * @description: 获取可回退环节信息
113 * @author: renchao
114 */
115 getBackNode () {
116 getTaskBackNode(this.formData).then((res) => {
117 if (res.code == 200) {
118 this.dataList = res.result;
119 console.log("this.dataList", this.dataList);
120 if (res.result) {
121 this.selectActivity = res.result[0].activityId;
122 this.selectItem = res.result[0];
123 }
124 }
125 });
126 },
127
128 /**
129 * @description: cancelBack
130 * @author: renchao
131 */
132 cancelBack () {
133 popupCacel();
134 }
135 }
136 }
137 </script>
138 <style scoped lang="scss">
139 @import "~@/styles/mixin.scss";
140
141 .listDetail {
142 display: flex;
143 align-items: center;
144 width: 100%;
145
146 p {
147 line-height: 30px;
148 height: 30px;
149 @include flex-center;
150 flex: 1;
151 width: 100%;
152 border: 1px solid rgb(233, 235, 237);
153 margin-top: -1px;
154 margin-left: -1px;
155 }
156
157 .icon {
158 flex: 0 0 60px;
159 }
160 }
161
162 .title {
163 margin-bottom: 10px;
164 }
165
166 .textArea {
167 /deep/.el-textarea__inner {
168 min-height: 90px !important;
169 }
170 }
171 /deep/.el-radio .el-radio__label {
172 display: none;
173 }
174 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-19 16:43:43
5 -->
6 <template>
7 <div class="from-clues">
8 <!-- 表单部分 -->
9 <div class="from-clues-header">
10 <el-form ref="queryForm" label-width="180px" v-if="this.formData.obj">
11 <el-form-item label="下一环节名称:">
12 {{ this.formData.obj.taskName }}
13 </el-form-item>
14 <el-form-item label="下一环节办理人:">
15 {{ this.formData.obj.usernames.join(",") }}
16 </el-form-item>
17 </el-form>
18 <el-form ref="queryForm" label-width="180px" v-else>
19 <el-form-item label="">
20 此环节为流程最后环节,转出后流程将结束
21 </el-form-item>
22 </el-form>
23 <div class="invalid-reson">审批意见:</div>
24 <el-input
25 class="opinion"
26 v-model="shyj"
27 placeholder="请输入审批意见"
28 type="textarea"
29 :rows="4"></el-input>
30 <!-- <el-button
31 class="opinion_btn"
32 @click="commonOpinion"
33 >常用意见</el-button
34 > -->
35 <el-button style="float: right" @click="cancelBack">取消转出</el-button>
36 <el-button type="primary" @click="submitForm" :loading="loading" style="float: right">确定转出</el-button>
37 </div>
38 </div>
39 </template>
40
41 <script>
42 import { completeTask, getNextLinkInfo } from "@/api/workFlow.js";
43 import { popupCacel } from "@/utils/popup.js";
44 import { mapGetters } from 'vuex'
45 export default {
46 components: {},
47
48 props: {
49 formData: {
50 type: Object,
51 default: {},
52 },
53 },
54 computed: {
55 ...mapGetters(['yjsqOptions'])
56 },
57 data () {
58 return {
59 loading: false,
60 queryForm: {},
61 shyj: "",
62 };
63 },
64
65 watch: {
66 // yjsqOptions: {
67 // handler (val) {
68 // if(val){
69 // this.shyj = val
70 // }
71
72 // },
73 // },
74 },
75 mounted () {
76 // this.queryForm= this.queryForm.obj
77 },
78 methods: {
79 /**
80 * @description: submitForm
81 * @author: renchao
82 */
83 commonOpinion () {
84 this.$popupDialog(
85 "常用意见",
86 "workflow/components/dialog/commonOpinion",
87 {},
88 "70%",
89 true
90 );
91 },
92 submitForm () {
93 this.loading = true
94 this.queryForm = {
95 bsmSlsq: this.formData.bsmSlsq,
96 shyj: this.shyj,
97 stepform: JSON.stringify(this.formData.tabList),
98 };
99 completeTask(this.queryForm).then((res) => {
100 this.loading = false
101 if (res.code === 200) {
102 this.$message.success("转件成功");
103 popupCacel();
104 setTimeout(() => {
105 window.close();
106 this.$emit("input", false);
107 if (window.opener && window.opener.getBpageList) {
108 window.opener.getBpageList();
109 } else {
110 window.opener.frames[0].getBpageList();
111 }
112 }, 360);
113 } else {
114 this.$message.error(res.message);
115 }
116 }).catch(() => {
117 this.loading = false
118 })
119 },
120
121 /**
122 * @description: closeDialog
123 * @author: renchao
124 */
125 cancelBack () {
126 popupCacel();
127 },
128 },
129 };
130 </script>
131 <style scoped lang="scss">
132 @import "~@/styles/mixin.scss";
133 .el-button {
134 margin-top: 20px;
135 margin-right: 10px;
136 }
137
138 .opinion {
139 position: relative;
140 font-size: 14px;
141 }
142
143 .opinion_btn {
144 position: absolute;
145 right: 35px;
146 bottom: 80px;
147 }
148 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-09-18 14:06:16
5 -->
6 <template>
7 <div style="width:100%;height:100%;">
8 <canvas id="mxcad" style="width:100%;height:100%;">
9 </canvas>
10 </div>
11 </template>
12 <script>
13 import Mx from "mxdraw"
14 export default {
15 mounted () {
16 // 动态加载 js库核心代码
17 Mx.loadCoreCode().then(() => {
18 // Mx.MxFun.setMxServer("ws://localhost:5090") // 开启socket通信 可编辑图纸
19 // 创建控件对象
20 Mx.MxFun.createMxObject({
21 canvasId: "mxcad", // canvas元素的id
22 cadFile: "buf/hhhh.dwg", // http方式(预览): 加载public/demo文件夹下转换后的图纸
23 callback: (mxDraw, {
24 canvas,
25 canvasParent
26 }) => {
27 // 可以拿到canvas元素和它的父级元素
28 // 拿到图层数据
29 mxDraw.addEvent('uiSetLayerData', (listLayer) => {
30 console.log(listLayer)
31 })
32 },
33 isNewFile: true // 是否新建文件
34 })
35 })
36 },
37 }
38 </script>
39 <style scoped lang="scss">
40 #mxcad {
41 pointer-events: none;
42 }
43 </style>
...\ No newline at end of file ...\ No newline at end of file
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-10-11 10:59:12
5 */
6 import filter from '@/utils/filter.js'
7 let vm = null
8
9 const sendThis = (_this) => {
10 vm = _this
11 }
12 class data extends filter {
13 constructor() {
14 super()
15 }
16 columns () {
17 return {
18 //发证列表
19 fzgrid: [
20 {
21 label: '序号',
22 type: 'index',
23 width: '50'
24 },
25 {
26 prop: "fzrmc",
27 label: "发证人"
28 },
29 {
30 prop: "bdcqzlx",
31 label: "不动产权证类型",
32 width: '120',
33 render: (h, scope) => {
34 return (
35 <div>
36 <span v-show={scope.row.bdcqzlx == '1'}>不动产权证书</span>
37 <span v-show={scope.row.bdcqzlx == '2'}>不动产登记证明</span>
38 </div>
39 )
40 }
41 },
42 {
43 label: "权利类型",
44 width: '100',
45 render: (h, scope) => {
46 return (
47 <el-tooltip effect="dark" content={scope.row.qllx} placement="top" popper-class="tooltip-width ">
48 <span class="ellipsis-table"> {scope.row.qllx}</span>
49 </el-tooltip>
50 )
51 }
52 },
53 {
54 prop: "ysxlh",
55 label: "印刷序列号",
56 width: '100',
57 },
58 {
59 prop: "bdcqzh",
60 label: "不动产权证号",
61 width: '190',
62 },
63 {
64 label: "权利人",
65 minWidth: '120',
66 render: (h, scope) => {
67 return (
68 <el-tooltip effect="dark" content={scope.row.qlr} placement="top" popper-class="tooltip-width ">
69 <span class="ellipsis-table"> {scope.row.qlr}</span>
70 </el-tooltip>
71 )
72 }
73 },
74 {
75 prop: "ywr",
76 label: "义务人"
77 },
78 {
79 label: "面积(㎡)",
80 width: '100',
81 render: (h, scope) => {
82 return (
83 <el-tooltip effect="dark" content={scope.row.mj} placement="top" popper-class="tooltip-width ">
84 <span class="ellipsis-table"> {scope.row.mj}</span>
85 </el-tooltip>
86 )
87 }
88 },
89 {
90 label: "坐落",
91 minWidth: '150',
92 render: (h, scope) => {
93 return (
94 <el-tooltip effect="dark" content={scope.row.zl} placement="top" popper-class="tooltip-width ">
95 <span class="ellipsis-table"> {scope.row.zl}</span>
96 </el-tooltip>
97 )
98 }
99 },
100 {
101 prop: "fzsj",
102 label: "发证时间",
103 width: '140',
104 },
105 {
106 prop: "lzrxm",
107 label: "领证人姓名"
108 },
109 ],
110 //领证证列表
111 lzgrid: [
112 {
113 type: 'selection'
114 },
115 {
116 label: '序号',
117 type: 'index',
118 width: '50'
119 },
120 {
121 prop: "bdcqzlx",
122 label: "不动产权证类型",
123 width: '120',
124 render: (h, scope) => {
125 return (
126 <div>
127 <span v-show={scope.row.bdcqzlx == '1'}>不动产权证书</span>
128 <span v-show={scope.row.bdcqzlx == '2'}>不动产登记证明</span>
129 </div>
130 )
131 }
132 },
133 {
134 prop: "qllx",
135 label: "权利类型"
136 },
137 {
138 prop: "ysxlh",
139 label: "印刷序列号",
140 width: '100',
141 },
142 {
143 prop: "bdcqzh",
144 label: "不动产权证号"
145 },
146 {
147 prop: "qlr",
148 label: "权利人"
149 },
150 {
151 prop: "ywr",
152 label: "义务人"
153 },
154 {
155 label: "面积(㎡)",
156 width: '100',
157 render: (h, scope) => {
158 return (
159 <el-tooltip effect="dark" content={scope.row.mj} placement="top" popper-class="tooltip-width ">
160 <span class="ellipsis-table"> {scope.row.mj}</span>
161 </el-tooltip>
162 )
163 }
164 },
165 {
166 prop: "zl",
167 label: "坐落"
168 }
169 ]
170 }
171 }
172 }
173 let datas = new data()
174 export {
175 datas,
176 sendThis
177 }
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-08-29 12:55:07
5 */
6 import filter from '@/utils/filter.js'
7 let vm = null
8
9 const sendThis = (_this) => {
10 vm = _this
11 }
12 class data extends filter {
13 constructor() {
14 super()
15 }
16 columns () {
17 return {
18 //发证列表
19 fzgrid: [
20 {
21 label: '序号',
22 type: 'index',
23 width: '50'
24 },
25 {
26 prop: "fzrmc",
27 label: "发证人"
28 },
29 {
30 prop: "bdcqzlx",
31 label: "不动产权证类型",
32 width: '130',
33 render: (h, scope) => {
34 return (
35 <div>
36 <span v-show={scope.row.bdcqzlx == '1'}>不动产权证书</span>
37 <span v-show={scope.row.bdcqzlx == '2'}>不动产登记证明</span>
38 </div>
39 )
40 }
41 },
42 {
43 label: "权利类型",
44 width: '100',
45 render: (h, scope) => {
46 return (
47 <el-tooltip effect="dark" content={scope.row.qllx} placement="top" popper-class="tooltip-width ">
48 <span class="ellipsis-table"> {scope.row.qllx}</span>
49 </el-tooltip>
50 )
51 }
52 },
53 {
54 label: "面积(㎡)",
55 width: '100',
56 render: (h, scope) => {
57 return (
58 <el-tooltip effect="dark" content={scope.row.mj} placement="top" popper-class="tooltip-width ">
59 <span class="ellipsis-table"> {scope.row.mj}</span>
60 </el-tooltip>
61 )
62 }
63 },
64 {
65 prop: "fzsj",
66 label: "发证时间",
67 width: '140',
68 },
69 {
70 prop: "lzrxm",
71 label: "领证人姓名"
72 },
73 ],
74 }
75 }
76 }
77 let datas = new data()
78 export {
79 datas,
80 sendThis
81 }
1 /*
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-05-17 10:39:03
5 */
6 import filter from '@/utils/filter.js'
7 let vm = null
8
9 const sendThis = (_this) => {
10 vm = _this
11 }
12 class data extends filter {
13 constructor() {
14 super()
15 }
16 columns () {
17 return [
18 {
19 width:"50px",
20 label: '序号',
21 type: 'index',
22 render: (h, scope) => {
23 return (
24 <div>
25 {scope.$index + 1}
26 </div>
27 )
28 }
29 },
30 {
31 prop: "szry",
32 label: "缮证人员",
33 },
34 {
35 prop: "szsj",
36 label: "缮证时间",
37 },
38 {
39 label: "是否作废",
40 render: (h, scope) => {
41 if (scope.row.sfzf == '0') {
42 return <div></div>
43 } else {
44 return <div>已作废</div>
45 }
46 }
47 },
48 {
49 prop: "bz",
50 label: "备注信息",
51 },
52 ]
53 }
54 }
55 let szxxdatas = new data()
56 export {
57 szxxdatas,
58 sendThis
59 }
...@@ -312,7 +312,7 @@ ...@@ -312,7 +312,7 @@
312 this.$store.dispatch("user/reWorkFresh", false); 312 this.$store.dispatch("user/reWorkFresh", false);
313 this.$popupDialog( 313 this.$popupDialog(
314 "申请材料目录", 314 "申请材料目录",
315 "workflow/components/dialog/clxxDetailDialog", 315 "workflow/main/clxx/clxxDetailDialog",
316 { 316 {
317 data: this.tableData, 317 data: this.tableData,
318 bsmSldy: this.$parent.currentSelectProps.bsmSldy, 318 bsmSldy: this.$parent.currentSelectProps.bsmSldy,
......
...@@ -155,7 +155,7 @@ ...@@ -155,7 +155,7 @@
155 }, 155 },
156 hanldeAdd () { 156 hanldeAdd () {
157 let bsmBusiness = this.$route.query.bsmBusiness ? this.$route.query.bsmBusiness : window.currentSelect.bsmBusiness 157 let bsmBusiness = this.$route.query.bsmBusiness ? this.$route.query.bsmBusiness : window.currentSelect.bsmBusiness
158 this.$popupDialog('新增', 'workflow/components/dialog/xzsf', { bsmBusiness: bsmBusiness }, '50%', true) 158 this.$popupDialog('新增', 'workflow/main/sfxx/xzsf', { bsmBusiness: bsmBusiness }, '50%', true)
159 }, 159 },
160 handleDelete (row) { 160 handleDelete (row) {
161 let that = this 161 let that = this
......
...@@ -285,7 +285,6 @@ ...@@ -285,7 +285,6 @@
285 </div> 285 </div>
286 </template> 286 </template>
287 <script> 287 <script>
288 import sqrViewTable from "@/views/workflow/components/sqrViewTable";
289 import { Init, saveData } from "@/api/workflow/cfdjFlow.js"; 288 import { Init, saveData } from "@/api/workflow/cfdjFlow.js";
290 import { mapGetters } from "vuex"; 289 import { mapGetters } from "vuex";
291 export default { 290 export default {
...@@ -341,7 +340,7 @@ ...@@ -341,7 +340,7 @@
341 }); 340 });
342 }, 341 },
343 watch: {}, 342 watch: {},
344 components: { sqrViewTable }, 343 components: { },
345 props: { 344 props: {
346 flag: { 345 flag: {
347 type: Boolean, 346 type: Boolean,
......
1 <!--
2 * @Description: 房屋多幢明细
3 * @Autor:
4 * @LastEditTime: 2023-09-01 13:29:29
5 -->
6 <template>
7 <div>
8 <el-table
9 :data="tableDataList"
10 border
11 :pagination="false"
12 :key="key"
13 :header-cell-style="{ 'text-align': 'center' }"
14 :heightNumSetting="true"
15 :minHeight="150"
16 height="150"
17 style="width: 100%">
18 <el-table-column prop="index" width="50" :render-header="renderHeader">
19 <template slot-scope="scope">
20 <div style="text-align: center">{{ scope.$index + 1 }}</div>
21 </template>
22 </el-table-column>
23 <el-table-column prop="bdcdyh" label="不动产单元号" min-width="100">
24 <template slot-scope="scope">
25 <div style="text-align: center">{{ scope.row.bdcdyh }}</div>
26 </template>
27 </el-table-column>
28 <el-table-column prop="xmmc" label="项目名称" min-width="100">
29 <template slot-scope="scope">
30 <el-input
31 class="item"
32 :disabled="!ableOperation"
33 v-model="scope.row.xmmc"
34 placeholder="请输入内容"
35 @input="updaterow(scope.row)">
36 </el-input>
37 </template>
38 </el-table-column>
39 <el-table-column prop="fwxz" label="房屋性质" min-width="100">
40 <template slot-scope="scope">
41 <treeselect
42 v-model="scope.row.fwxz"
43 :disabled="!ableOperation"
44 noOptionsText="暂无数据"
45 placeholder=""
46 :show-count="true"
47 :options="dictData['A19']"
48 :normalizer="normalizer"
49 :appendToBody="true"
50 z-index="9999"
51 @input="updaterow(scope.row)" />
52 </template>
53 </el-table-column>
54 <el-table-column prop="ghyt" label="房屋用途" min-width="100">
55 <template slot-scope="scope">
56 <treeselect
57 v-model="scope.row.ghyt"
58 :disabled="!ableOperation"
59 noOptionsText="暂无数据"
60 placeholder=""
61 :show-count="true"
62 :options="dictData['A17']"
63 :normalizer="normalizer"
64 :appendToBody="true"
65 z-index="9999"
66 @input="updaterow(scope.row)" />
67 </template>
68 </el-table-column>
69 <el-table-column prop="fwjg" label="房屋结构" min-width="100">
70 <template slot-scope="scope">
71 <treeselect
72 v-model="scope.row.fwjg"
73 :disabled="!ableOperation"
74 noOptionsText="暂无数据"
75 placeholder=""
76 :show-count="true"
77 :options="dictData['A46']"
78 :normalizer="normalizer"
79 :appendToBody="true"
80 z-index="9999"
81 @input="updaterow(scope.row)" />
82 </template>
83 </el-table-column>
84 <el-table-column prop="jzmj" label="建筑面积" min-width="100">
85 <template slot-scope="scope">
86 <el-input
87 maxlength="12"
88 class="item"
89 :disabled="!ableOperation"
90 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
91 v-model="scope.row.jzmj"
92 placeholder="请输入内容"
93 @input="updaterow(scope.row)">
94 </el-input>
95 </template>
96 </el-table-column>
97 <el-table-column prop="jgsj" label="竣工时间" min-width="100">
98 <template slot-scope="scope">
99 <el-date-picker
100 v-model="scope.row.jgsj"
101 type="date"
102 :disabled="!ableOperation"
103 placeholder="选择日期"
104 value-format="yyyy-MM-dd HH:mm:ss"
105 format="yyyy-MM-dd"
106 @input="updaterow(scope.row)">
107 </el-date-picker>
108 </template>
109 </el-table-column>
110 <el-table-column prop="zcs" label="总层数" min-width="100">
111 <template slot-scope="scope">
112 <el-input
113 class="item"
114 :disabled="!ableOperation"
115 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
116 v-model="scope.row.zcs"
117 placeholder="请输入内容"
118 @input="updaterow(scope.row)">
119 </el-input>
120 </template>
121 </el-table-column>
122 <el-table-column prop="zts" label="总套数" min-width="100">
123 <template slot-scope="scope">
124 <el-input
125 class="item"
126 :disabled="!ableOperation"
127 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
128 v-model="scope.row.zts"
129 placeholder="请输入内容"
130 @input="updaterow(scope.row)">
131 </el-input>
132 </template>
133 </el-table-column>
134 </el-table>
135 </div>
136 </template>
137 <script>
138 import { mapGetters } from "vuex";
139
140 export default {
141 computed: {
142 ...mapGetters(["dictData"]),
143 },
144 props: {
145 tableData: {
146 type: Array,
147 default: function () {
148 return [];
149 },
150 },
151 ableOperation: {
152 type: Boolean,
153 default: false,
154 },
155
156 },
157 data () {
158 return {
159 // 键名转换,方法默认是label和children进行树状渲染
160 key: 0,
161 tableDataList: [],
162 normalizer (node) {
163 if (node.children == null || node.children == "null") {
164 delete node.children;
165 }
166 return {
167 id: node.dcode,
168 label: node.dname,
169 children: node.children,
170 };
171 },
172 };
173 },
174 mounted () {
175 },
176 watch: {
177 tableData: {
178 handler: function (val, oldVal) {
179 let that = this;
180 this.$nextTick(() => {
181 if (val.length == 0 || !val) {
182 that.tableDataList = _.cloneDeep([
183 {
184 yt: null,
185 qssj: "",
186 jssj: "",
187 tdsyqx: "",
188 },
189 ]);
190 } else {
191 that.tableDataList = _.cloneDeep(val);
192 }
193 });
194 },
195 immediate: true,
196 deep: true,
197 },
198 },
199 methods: {
200 /**
201 * @description: renderHeader
202 * @author: renchao
203 */
204 renderHeader () {
205 return (
206 <div>
207 {"序号"}
208 </div>
209 );
210 },
211 updaterow (a) {
212 this.$emit("updateFdcwxmList", this.tableDataList);
213 }
214 }
215 }
216 </script>
217 <style scoped lang="scss">
218 .el-input {
219 border: none !important;
220 }
221
222 /deep/ .el-table__row {
223 border: none !important;
224 }
225
226 .el-date-editor.el-input {
227 width: 100%;
228 }
229
230 /deep/ .el-table th {
231 height: 30px !important;
232 }
233 </style>
234
...@@ -296,7 +296,7 @@ ...@@ -296,7 +296,7 @@
296 import ywmix from "@/views/ywbl/mixin/index"; 296 import ywmix from "@/views/ywbl/mixin/index";
297 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable"; 297 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
298 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable"; 298 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
299 import fdcqxmTable from "../commonTable/fdcqxmTable"; 299 import fdcqxmTable from "./fdcqxmTable";
300 import tdytTable from "@/views/workflow/components/tdytTable"; 300 import tdytTable from "@/views/workflow/components/tdytTable";
301 import { Init, saveData } from "@/api/workflow/fwsyq1Flow.js"; 301 import { Init, saveData } from "@/api/workflow/fwsyq1Flow.js";
302 import { mapGetters } from "vuex"; 302 import { mapGetters } from "vuex";
......
...@@ -73,77 +73,195 @@ ...@@ -73,77 +73,195 @@
73 </div> 73 </div>
74 <el-row :gutter="10" v-if="ruleForm.qlxx"> 74 <el-row :gutter="10" v-if="ruleForm.qlxx">
75 <el-col :span="8"> 75 <el-col :span="8">
76 <el-form-item label="原不动产权证号:">
77 <el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
78 </el-form-item>
79 </el-col>
80 <el-col :span="8">
76 <el-form-item label="不动产单元号:"> 81 <el-form-item label="不动产单元号:">
77 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input> 82 <el-input disabled v-model="ruleForm.sldy.bdcdyh"></el-input>
78 </el-form-item> 83 </el-form-item>
79 </el-col> 84 </el-col>
80 <el-col :span="16"> 85 <el-col :span="8">
81 <el-form-item label="坐落:"> 86 <el-form-item label="坐落:">
82 <el-input disabled v-model="ruleForm.sldy.zl"></el-input> 87 <el-input maxlength="100" :disabled="!viewEdit" v-model="ruleForm.sldy.zl"></el-input>
83 </el-form-item> 88 </el-form-item>
84 </el-col> 89 </el-col>
85 </el-row> 90 </el-row>
86 <el-row :gutter="10" v-if="ruleForm.fdcq2"> 91 <el-row :gutter="10" v-if="ruleForm.fdcq2">
87 <el-col :span="8"> 92 <el-col :span="8">
88 <el-form-item label="土地用途:"> 93 <el-form-item label="宗地面积:">
89 <el-input disabled v-model="ruleForm.fdcq2.yt"></el-input> 94 <div class="flex">
95 <el-input :disabled="!viewEdit" v-model="ruleForm.zdjbxx.zdmj"></el-input>
96 <el-select
97 disabled
98 v-model="ruleForm.zdjbxx.mjdw"
99 style="width: 68px">
100 <el-option
101 v-for="item in dictData['A7']"
102 :key="item.dcode"
103 :label="item.dname"
104 :value="item.dcode">
105 </el-option>
106 </el-select>
107 </div>
90 </el-form-item> 108 </el-form-item>
91 </el-col> 109 </el-col>
92 <el-col :span="8"> 110 <el-col :span="8">
93 <el-form-item label="土地使用起止时间:"> 111 <el-form-item label="土地使用权人:">
94 <el-input disabled v-model="ruleForm.fdcq2.tdsyqzsj"></el-input> 112 <el-input :disabled="!viewEdit" v-model="ruleForm.fdcq2.tdsyqr"></el-input>
95 </el-form-item> 113 </el-form-item>
96 </el-col> 114 </el-col>
97 <el-col :span="8"> 115 <el-col :span="8">
98 <el-form-item label="土地使用期限:"> 116 <el-form-item label="土地性质:">
99 <el-input disabled v-model="ruleForm.fdcq2.tdsyqx"></el-input> 117 <treeselect
118 :disabled="!viewEdit"
119 v-model="ruleForm.fdcq2.tdxz"
120 noOptionsText="暂无数据"
121 placeholder=""
122 :normalizer="normalizer"
123 :default-expand-level="1"
124 :show-count="true"
125 :options="dictData['A9']" />
100 </el-form-item> 126 </el-form-item>
101 </el-col> 127 </el-col>
102 </el-row> 128 </el-row>
103 <el-row :gutter="10" v-if="ruleForm.qlxx"> 129 <el-row :gutter="10" v-if="ruleForm.qlxx">
104 <el-col :span="8"> 130 <el-col :span="8">
105 <el-form-item label="规划用途名称:"> 131 <el-form-item label="独用土地面积:">
106 <el-input disabled v-model="ruleForm.zdjbxx.ghytmc"></el-input> 132 <div class="flex">
133 <el-input
134 maxlength="12"
135 v-model="ruleForm.fdcq2.dytdmj"
136 :disabled="!viewEdit"
137 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
138 <el-select disabled v-model="mjdw" style="width: 68px">
139 <el-option
140 v-for="item in dictData['A7']"
141 :key="item.dcode"
142 :label="item.dname"
143 :value="item.dcode">
144 </el-option>
145 </el-select>
146 </div>
147 </el-form-item>
148 </el-col>
149 <el-col :span="8">
150 <el-form-item label="分摊土地面积:">
151 <div class="flex">
152 <el-input
153 maxlength="12"
154 v-model="ruleForm.fdcq2.fttdmj"
155 :disabled="!viewEdit"
156 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
157 <el-select disabled v-model="mjdw" style="width: 68px">
158 <el-option
159 v-for="item in dictData['A7']"
160 :key="item.dcode"
161 :label="item.dname"
162 :value="item.dcode">
163 </el-option>
164 </el-select>
165 </div>
107 </el-form-item> 166 </el-form-item>
108 </el-col> 167 </el-col>
109 <el-col :span="8"> 168 <el-col :span="8">
110 <el-form-item label="房屋性质:"> 169 <el-form-item label="房屋性质:">
111 <el-input disabled v-model="ruleForm.fdcq2.fwxzmc"></el-input> 170 <el-select v-model="ruleForm.fdcq2.fwxz" :disabled="!viewEdit">
171 <el-option
172 v-for="item in dictData['A19']"
173 :key="item.dcode"
174 :label="item.dname"
175 :value="item.dcode">
176 </el-option>
177 </el-select>
178 </el-form-item>
179 </el-col>
180 </el-row>
181 <el-row :gutter="10" v-if="ruleForm.qlxx">
182 <el-col :span="8">
183 <el-form-item label="房屋用途:">
184 <treeselect
185 v-model="ruleForm.fdcq2.ghyt"
186 :disabled="!viewEdit"
187 noOptionsText=""
188 placeholder=""
189 :normalizer="normalizer"
190 :show-count="true"
191 :options="dictData['A17']" />
112 </el-form-item> 192 </el-form-item>
113 </el-col> 193 </el-col>
114 <el-col :span="8"> 194 <el-col :span="8">
115 <el-form-item label="房屋结构:"> 195 <el-form-item label="房屋结构:">
116 <el-input disabled v-model="ruleForm.fdcq2.fwjgmc"></el-input> 196 <el-select v-model="ruleForm.fdcq2.fwjg" :disabled="!viewEdit">
197 <el-option
198 v-for="item in dictData['A46']"
199 :key="item.dcode"
200 :label="item.dname"
201 :value="item.dcode">
202 </el-option>
203 </el-select>
204 </el-form-item>
205 </el-col>
206 <el-col :span="8">
207 <el-form-item label="竣工时间:">
208 <el-date-picker
209 v-model="ruleForm.fdcq2.jgsj"
210 class="width100"
211 type="date"
212 placeholder="选择日期"
213 value-format="yyyy-MM-dd"
214 :disabled="!viewEdit"></el-date-picker>
117 </el-form-item> 215 </el-form-item>
118 </el-col> 216 </el-col>
119 </el-row> 217 </el-row>
120 <el-row :gutter="10" v-if="ruleForm.fdcq2"> 218 <el-row :gutter="10" v-if="ruleForm.qlxx">
121 <el-col :span="8"> 219 <el-col :span="8">
122 <el-form-item label="所在层:"> 220 <el-form-item label="所在层:">
123 <el-input disabled v-model="ruleForm.fdcq2.szc"></el-input> 221 <el-input
222 maxlength="20"
223 v-model="ruleForm.fdcq2.szc"
224 :disabled="!viewEdit"></el-input>
124 </el-form-item> 225 </el-form-item>
125 </el-col> 226 </el-col>
126 <el-col :span="8"> 227 <el-col :span="8">
127 <el-form-item label="总层数:"> 228 <el-form-item label="总层数:">
128 <el-input 229 <el-input
129 disabled 230 maxlength="4"
231 :disabled="!viewEdit"
130 v-model.number="ruleForm.fdcq2.zcs" 232 v-model.number="ruleForm.fdcq2.zcs"
131 oninput="value=value.replace(/[^0-9]/g,'')"></el-input> 233 oninput="value=value.replace(/[^0-9]/g,'')"></el-input>
132 </el-form-item> 234 </el-form-item>
133 </el-col> 235 </el-col>
134 <el-col :span="8"> 236 <el-col :span="8">
135 <el-form-item label="竣工时间:"> 237 <el-form-item label="房地产交易价格:">
136 <el-input disabled v-model="ruleForm.fdcq2.jgsj"></el-input> 238 <div class="flex">
239 <el-input
240 maxlength="11"
241 v-model="ruleForm.fdcq2.fdcjyjg"
242 style="width: 500%"
243 :disabled="!viewEdit"
244 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
245 <el-select v-model="ruleForm.fdcq2.jedw" :disabled="!viewEdit">
246 <el-option
247 v-for="item in dictData['A57']"
248 :key="item.dcode"
249 :label="item.dname"
250 :value="item.dcode">
251 </el-option>
252 </el-select>
253 </div>
137 </el-form-item> 254 </el-form-item>
138 </el-col> 255 </el-col>
139 </el-row> 256 </el-row>
140 <el-row :gutter="10" v-if="ruleForm.qlxx"> 257 <el-row :gutter="10" v-if="ruleForm.fdcq2">
141 <el-col :span="8"> 258 <el-col :span="8">
142 <el-form-item label="建筑面积:"> 259 <el-form-item label="建筑面积:">
143 <div class="flex"> 260 <div class="flex">
144 <el-input 261 <el-input
145 disabled 262 maxlength="12"
146 v-model="ruleForm.qlxx.mj" 263 v-model="ruleForm.fdcq2.jzmj"
264 :disabled="!viewEdit"
147 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input> 265 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
148 <el-select disabled v-model="mjdw" style="width: 68px"> 266 <el-select disabled v-model="mjdw" style="width: 68px">
149 <el-option 267 <el-option
...@@ -160,8 +278,9 @@ ...@@ -160,8 +278,9 @@
160 <el-form-item label="专有建筑面积:"> 278 <el-form-item label="专有建筑面积:">
161 <div class="flex"> 279 <div class="flex">
162 <el-input 280 <el-input
163 disabled 281 maxlength="12"
164 v-model="ruleForm.fdcq2.zyjzmj" 282 v-model="ruleForm.fdcq2.zyjzmj"
283 :disabled="!viewEdit"
165 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input> 284 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
166 <el-select disabled v-model="mjdw" style="width: 68px"> 285 <el-select disabled v-model="mjdw" style="width: 68px">
167 <el-option 286 <el-option
...@@ -178,8 +297,9 @@ ...@@ -178,8 +297,9 @@
178 <el-form-item label="分摊建筑面积:"> 297 <el-form-item label="分摊建筑面积:">
179 <div class="flex"> 298 <div class="flex">
180 <el-input 299 <el-input
181 disabled 300 maxlength="12"
182 v-model="ruleForm.fdcq2.ftjzmj" 301 v-model="ruleForm.fdcq2.ftjzmj"
302 :disabled="!viewEdit"
183 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input> 303 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
184 <el-select disabled v-model="mjdw" style="width: 68px"> 304 <el-select disabled v-model="mjdw" style="width: 68px">
185 <el-option 305 <el-option
...@@ -193,6 +313,18 @@ ...@@ -193,6 +313,18 @@
193 </el-form-item> 313 </el-form-item>
194 </el-col> 314 </el-col>
195 </el-row> 315 </el-row>
316 <el-row :gutter="10">
317 <el-col :span="24">
318 <el-form-item label="附记:">
319 <el-input
320 v-model="ruleForm.fdcq2.fj"
321 type="textarea"
322 maxlength="500"
323 show-word-limit
324 :disabled="!viewEdit"></el-input>
325 </el-form-item>
326 </el-col>
327 </el-row>
196 <div class="slxx_title title-block"> 328 <div class="slxx_title title-block">
197 土地用途 329 土地用途
198 <div class="triangle"></div> 330 <div class="triangle"></div>
...@@ -334,6 +466,16 @@ ...@@ -334,6 +466,16 @@
334 }, 466 },
335 data () { 467 data () {
336 return { 468 return {
469 normalizer (node) {
470 if (node.children == null || node.children == "null") {
471 delete node.children;
472 }
473 return {
474 id: node.dcode,
475 label: node.dname,
476 children: node.children,
477 };
478 },
337 isSave: true, 479 isSave: true,
338 loading: false, 480 loading: false,
339 mjdw: "1", 481 mjdw: "1",
......
...@@ -330,7 +330,7 @@ ...@@ -330,7 +330,7 @@
330 import ywmix from "@/views/ywbl/mixin/index"; 330 import ywmix from "@/views/ywbl/mixin/index";
331 import { Init, saveData } from "@/api/workflow/nydsyqFlow.js"; 331 import { Init, saveData } from "@/api/workflow/nydsyqFlow.js";
332 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable"; 332 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
333 import JtcyTable from "@/views/workflow/components/JtcyTable"; 333 import JtcyTable from "./JtcyTable";
334 export default { 334 export default {
335 mixins: [ywmix], 335 mixins: [ywmix],
336 mounted () { 336 mounted () {
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
11 import { mapGetters } from 'vuex' 11 import { mapGetters } from 'vuex'
12 import { getSzRecordList } from "@/api/bdcqz.js"; 12 import { getSzRecordList } from "@/api/bdcqz.js";
13 import table from "@/utils/mixin/table"; 13 import table from "@/utils/mixin/table";
14 import { szxxdatas } from "../../javascript/szxxdata"; 14 import { szxxdatas } from "./szxxdata";
15 export default { 15 export default {
16 components: { 16 components: {
17 17
......
1 <!--
2 * @Description:
3 * @Autor: miaofang
4 * @LastEditTime: 2023-07-19 09:52:42
5 -->
6 <template>
7 <div class="fm" id="boxaaa">
8 <div class="title">不动产登记簿</div>
9 <div class="title">(回执)</div>
10 <p class="bian">
11 编号: <span>{{ Receiptdata.sldyList[0].ybdcqzsh||"" }}</span>
12 </p>
13 <div class="texts">
14 <p class="jsjg">{{ Receiptdata.cfdjList[0].cfjg }}:</p>
15 <p class="concent">
16 <span>{{ sj }}</span> ,你院协助执行通知书订单号为:<font>{{
17 Receiptdata.qlxxList[0].ywh||""
18 }}</font
19 >收悉,具体执行情况如下。
20 </p>
21 </div>
22
23 <p class="bian">{{ Receiptdata.user.organizationName }}</p>
24 <p class="bian">{{ sj }}(盖章)</p>
25 <table class="xxTable">
26 <tr>
27 <td>序号</td>
28 <td>坐落</td>
29 <td>控制反馈</td>
30 <td>控制措施</td>
31 </tr>
32 <tr v-for="(item, index) in Receiptdata.sldyList" :key="index">
33 <td>{{ index + 1 }}</td>
34 <td>{{ item.zl }}</td>
35 <td>已控</td>
36 <td>{{ item.djlxmc }}</td>
37 </tr>
38 </table>
39 </div>
40 </template>
41
42
43 <script>
44 import { BatchInit } from "@/api/workflow/cfdjFlow.js";
45 export default {
46 props: {
47 Receiptdata: {
48 type: Object,
49 default: {},
50 },
51 },
52 data() {
53 return {
54 sj: "",
55 data:false
56 };
57 },
58 mounted() {
59 this.loadData();
60 },
61 watch: {
62 Receiptdata: {
63 handler(newValue, oldValue) {
64 this.$nextTick(() => {
65 this.Receiptdata = newValue;
66 this.loadData();
67 });
68 },
69 },
70 },
71 methods: {
72 openPrint () {
73 // 获取打印回执数据
74 var formdata = new FormData();
75 formdata.append("bsmSldy", this.currentSelectProps.bsmSldy);
76 formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
77 formdata.append("djlx", this.currentSelectProps.djlx);
78 BatchInit(formdata).then((res) => {
79 if (res.code === 200 && res.result) {
80 this.Receiptdata = res.result
81 this.shows = true
82 setTimeout(() => {
83 this.prinsss()
84 }, 100)
85 } else {
86 this.$message.error(res.message)
87 }
88 })
89 },
90 /**
91 * @description: loadData
92 * @author: miaofang
93 */
94 loadData() {
95 let dateTime = new Date(this.Receiptdata.slsq.slsj);
96 let y = dateTime.getFullYear();
97 let m = dateTime.getMonth() + 1;
98 m = m < 10 ? "0" + m : m;
99 let d = dateTime.getDate();
100 d = d < 10 ? "0" + d : d;
101 let h = dateTime.getHours();
102 h = h < 10 ? "0" + h : h;
103 let M = dateTime.getMinutes();
104 M = M < 10 ? "0" + M : M;
105 let s = dateTime.getSeconds();
106 s = s < 10 ? "0" + s : s;
107 this.sj = y + "年" + m + "月" + d + "日";
108 },
109 },
110 };
111 </script>
112
113 <style lang="scss" scoped>
114 #boxaaa{
115 font {
116 border-bottom: 1px solid #000;
117 display: inline-block;
118 padding: 0 15px;
119 line-height: 16px;
120 }
121
122 .title {
123 height: 60px;
124 display: flex;
125 font-size: 32px;
126 color: #000;
127 justify-content: center;
128 align-items: center;
129 }
130 .bian {
131 text-align: right;
132 }
133 .texts{
134 margin-top: 40px;
135 margin-bottom: 40px;
136
137 }
138 .jsjg {
139 text-align: left;
140 }
141 .concent {
142 width: 100%;
143
144 line-height: 40px;
145 text-align: left;
146 text-indent: 2em;
147 }
148 p {
149 font-family: serif;
150 }
151 .xxTable {
152
153 width: 100%;
154 border-collapse: collapse;
155 font-family: serif;
156 margin-top: 20px;
157
158 tr td {
159 border: 1px solid #000;
160 text-align: center;
161 height: 40px;
162 line-height: 17px;
163 font-size: 13px;
164 min-width: 80px;
165 z-index: 1;
166 min-width: 80px;
167 padding: 5px;
168 }
169 }
170 }
171 .fm {
172 background: #fff;
173 font-size: 18px;
174 margin: auto;
175 }
176
177 </style>
...@@ -117,17 +117,14 @@ ...@@ -117,17 +117,14 @@
117 import ordinaryMenu from "./components/leftmenu/ordinaryMenu.vue"; 117 import ordinaryMenu from "./components/leftmenu/ordinaryMenu.vue";
118 // 引入左侧菜单 118 // 引入左侧菜单
119 import segmentMenu from "./components/leftmenu/segmentMenu.vue"; 119 import segmentMenu from "./components/leftmenu/segmentMenu.vue";
120 // 回执单
121 import receipt from "./components/receipt.vue";
122 import selectBdc from "@/views/ywbl/ywsq/selectBdc.vue"; 120 import selectBdc from "@/views/ywbl/ywsq/selectBdc.vue";
123 import { BatchInit } from "@/api/workflow/cfdjFlow.js"; 121
124 export default { 122 export default {
125 components: { 123 components: {
126 selectBdc, 124 selectBdc,
127 NoticeBar, 125 NoticeBar,
128 ordinaryMenu, 126 ordinaryMenu,
129 segmentMenu, 127 segmentMenu
130 receipt,
131 }, 128 },
132 mixins: [WorkFlow, publicFlow], 129 mixins: [WorkFlow, publicFlow],
133 data () { 130 data () {
...@@ -176,24 +173,6 @@ ...@@ -176,24 +173,6 @@
176 window.removeEventListener("unload", (e) => this.unloadHandler(e)); 173 window.removeEventListener("unload", (e) => this.unloadHandler(e));
177 }, 174 },
178 methods: { 175 methods: {
179 openPrint () {
180 // 获取打印回执数据
181 var formdata = new FormData();
182 formdata.append("bsmSldy", this.currentSelectProps.bsmSldy);
183 formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
184 formdata.append("djlx", this.currentSelectProps.djlx);
185 BatchInit(formdata).then((res) => {
186 if (res.code === 200 && res.result) {
187 this.Receiptdata = res.result
188 this.shows = true
189 setTimeout(() => {
190 this.prinsss()
191 }, 100)
192 } else {
193 this.$message.error(res.message)
194 }
195 })
196 },
197 prinsss () { 176 prinsss () {
198 printJS({ 177 printJS({
199 printable: "boxaaa", // // 文档来源:pdf或图像的url,html元素的id或json数据的对象 178 printable: "boxaaa", // // 文档来源:pdf或图像的url,html元素的id或json数据的对象
......
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-02-01 09:54:12
5 -->
6 <template>
7 <div class="slxx">
8 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" :label-position="flagTop" :inline="flag"
9 label-width="120px">
10 <div class="slxx_con">
11 <div class="slxx_title title-block">
12 申请业务信息
13 <div class="triangle"></div>
14 </div>
15 <el-row :gutter="10">
16 <el-col :span="8">
17 <el-form-item :class="flag ? 'marginBot0' : ''" label="业务号:">
18 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
19 </el-form-item>
20 </el-col>
21 <el-col :span="8">
22 <el-form-item :class="flag ? 'marginBot0' : ''" label="受理人员:">
23 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
24 </el-form-item>
25 </el-col>
26 <el-col :span="8">
27 <el-form-item :class="flag ? 'marginBot0' : ''" label="受理时间:">
28 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
29 </el-form-item>
30 </el-col>
31 </el-row>
32 <el-row :gutter="10">
33 <el-col :span="8">
34 <el-form-item :class="flag ? 'marginBot0' : ''" label="权利类型:">
35 <el-select disabled v-model="ruleForm.sldyList[0].qllx" filterable clearable placeholder="请选择权利类型">
36 <el-option v-for="item in dictData['A8']" :key="item.dcode" :label="item.dname" :value="item.dcode">
37 </el-option>
38 </el-select>
39 </el-form-item>
40 </el-col>
41 <el-col :span="8">
42 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记类型:">
43 <el-select disabled v-model="ruleForm.sldyList[0].djlx" filterable clearable placeholder="请选择登记类型">
44 <el-option v-for="item in dictData['A21']" :key="item.dcode" :label="item.dname" :value="item.dcode">
45 </el-option>
46 </el-select>
47 </el-form-item>
48 </el-col>
49 <el-col :span="8">
50 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记情形:">
51 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
52 </el-form-item>
53 </el-col>
54 </el-row>
55 <div class="slxx_title title-block" v-if="ruleForm.slsq.djywbm.includes('400')">
56 解封信息列表({{ ruleForm.cfdjDetailList.length }} 个)
57 <div class="triangle"></div>
58 <cfdjTable :tableData="ruleForm.cfdjDetailList" />
59 </div>
60 <div class="slxx_title title-block" v-else>
61 查封不动产列表({{ ruleForm.ztQlxxList.length }} 个)
62 <div class="triangle"></div>
63 <cfBdcdyTable :tableData="ruleForm.ztQlxxList" />
64 </div>
65 <div class="slxx_title title-block" v-if="!ruleForm.slsq.djywbm.includes('400')">
66 批量查封信息
67 <div class="triangle"></div>
68 </div>
69 <el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
70 <el-col :span="8">
71 <el-form-item :class="flag ? 'marginBot0' : ''" label="原告:">
72 <el-input v-model="ruleForm.cfdj.yg" :disabled="!ableOperation|| isJfOperation"></el-input>
73 </el-form-item>
74 </el-col>
75 <el-col :span="8">
76 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封文号:" >
77 <el-input v-model="ruleForm.cfdj.cfwh" :disabled="!ableOperation|| isJfOperation"></el-input>
78 </el-form-item>
79 </el-col>
80 <el-col :span="8">
81 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封机关:">
82 <el-input v-model="ruleForm.cfdj.cfjg" :disabled="!ableOperation|| isJfOperation"></el-input>
83 </el-form-item>
84 </el-col>
85 </el-row>
86 <el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
87 <el-col :span="8">
88 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封期限:">
89 <el-input v-model="ruleForm.cfdj.cfqx" :disabled="!ableOperation|| isJfOperation"></el-input>
90 </el-form-item>
91 </el-col>
92 <el-col :span="8">
93 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封起始时间:">
94 <el-date-picker v-model="ruleForm.cfdj.cfqssj" class="width100" type="date" placeholder="选择日期"
95 value-format="yyyy-MM-dd" :disabled="!ableOperation|| isJfOperation"></el-date-picker>
96 </el-form-item>
97 </el-col>
98 <el-col :span="8">
99 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封结束时间:">
100 <el-date-picker v-model="ruleForm.cfdj.cfjssj" class="width100"
101 :disabled="!ableOperation|| isJfOperation" type="date" placeholder="选择日期"
102 value-format="yyyy-MM-dd"></el-date-picker>
103 </el-form-item>
104 </el-col>
105 </el-row>
106 <el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
107 <el-col :span="8">
108 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封文件:">
109 <el-input v-model="ruleForm.cfdj.cfwj" :disabled="!ableOperation|| isJfOperation"></el-input>
110 </el-form-item>
111 </el-col>
112 <el-col :span="16">
113 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封范围:">
114 <el-input v-model="ruleForm.cfdj.cffw" :disabled="!ableOperation|| isJfOperation"></el-input>
115 </el-form-item>
116 </el-col>
117 </el-row>
118 <el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
119 <el-col>
120 <el-form-item :class="flag ? 'marginBot0' : ''" label="附记:">
121 <el-input class="textArea" type="textarea" v-model="ruleForm.cfdj.fj"
122 :disabled="!ableOperation|| isJfOperation"></el-input>
123 </el-form-item>
124 </el-col>
125 </el-row>
126 <el-row :gutter="10" v-if="!ruleForm.slsq.djywbm.includes('400')">
127 <el-col>
128 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记原因:" prop="cfdj.djyy">
129 <el-input class="textArea" type="textarea" v-model="ruleForm.cfdj.djyy"
130 :disabled="!ableOperation|| isJfOperation"></el-input>
131 </el-form-item>
132 </el-col>
133 </el-row>
134 <div v-if="propsParam.djlx == '400'">
135 <div class="slxx_title title-block">
136 解封信息
137 <div class="triangle"></div>
138 </div>
139 <el-row :gutter="10">
140 <el-col :span="8">
141 <el-form-item :class="flag ? 'marginBot0' : ''" label="解封机关:">
142 <el-input v-model="ruleForm.cfdj.jfjg" :disabled="!ableOperation"></el-input>
143 </el-form-item>
144 </el-col>
145 <el-col :span="8">
146 <el-form-item :class="flag ? 'marginBot0' : ''" label="解封文件:">
147 <el-input v-model="ruleForm.cfdj.jfwj" :disabled="!ableOperation"></el-input>
148 </el-form-item>
149 </el-col>
150 <el-col :span="8">
151 <el-form-item :class="flag ? 'marginBot0' : ''" label="解封文号:">
152 <el-input v-model="ruleForm.cfdj.jfwh" :disabled="!ableOperation"></el-input>
153 </el-form-item>
154 </el-col>
155 </el-row>
156 </div>
157 </div>
158 <el-row class="btn" v-if="ableOperation">
159 <el-button type="primary" @click="onSubmit">保存</el-button>
160 </el-row>
161 </el-form>
162 </div>
163 </template>
164 <script>
165 import cfBdcdyTable from "@/views/workflow/components/cfBdcdyTable";
166 import cfdjTable from "@/views/workflow/components/cfdjTable";
167 import { BatchInit, batchSaveData } from "@/api/workflow/cfdjFlow.js";
168 import { mapGetters } from "vuex";
169 export default {
170 data () {
171 return {
172 //表单是否可操作
173 ableOperation: true,
174 disabled: true,
175 flagTop: this.flag ? "top" : "",
176 rules: {
177 'cfdj.djyy': [
178 { required: true, message: '请输入登记原因', trigger: 'blur' }
179 ]
180 },
181 //传递参数
182 propsParam: {},
183 //页面数据
184 ruleForm: {
185 slsq: {},
186 cfdj: {},
187 },
188 isJfOperation: false,
189 tableData: []
190 }
191 },
192 mounted () {
193 this.ableOperation = this.$parent.currentSelectTab.ableOperation
194 this.propsParam = this.$attrs;
195 var formdata = new FormData();
196 if (this.propsParam.djlx == '400') {
197 this.isJfOperation = true;
198 }
199 formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
200 formdata.append("djlx", this.propsParam.djlx);
201 formdata.append("isEdit", this.ableOperation);
202 BatchInit(formdata).then((res) => {
203 if (res.code === 200 && res.result) {
204 this.ruleForm = res.result
205 }
206 })
207 },
208 components: { cfBdcdyTable,cfdjTable },
209 props: {
210 flag: {
211 type: Boolean,
212 default: false,
213 },
214 fetch: {
215 type: Boolean,
216 default: false,
217 },
218 },
219 computed: {
220 ...mapGetters(["dictData"]),
221 },
222
223 methods: {
224 /**
225 * @description: onSubmit
226 * @author: renchao
227 */
228 onSubmit () {
229 this.$refs['ruleForm'].validate((valid) => {
230 if (valid) {
231 this.ruleForm.bsmSlsq = this.$route.query.bsmSlsq;
232 batchSaveData(this.ruleForm).then((res) => {
233 if (res.code === 200) {
234 this.$message.success('保存成功');
235 }
236 })
237 } else {
238 this.$message({
239 showClose: true,
240 message: "请输入登记原因",
241 type: "error"
242 })
243 return false;
244 }
245 });
246
247 },
248 /**
249 * @description: changeCflx
250 * @param {*} e
251 * @author: renchao
252 */
253 changeCflx (e) {
254 let cflxItem = {}
255 cflxItem = this.dictData['A32'].find((item) => {
256 return item.dcode == e
257 })
258 this.ruleForm.cfdjList[0].cflxmc = cflxItem.dname;
259 }
260 },
261 };
262 </script>
263 <style scoped lang='scss'>
264 @import "~@/styles/public.scss";
265 @import "~@/styles/slxx/slxx.scss";
266 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-30 15:08:38
5 -->
6 <template>
7 <div class="slxx">
8 <el-form
9 :model="ruleForm"
10 :rules="rules"
11 ref="ruleForm"
12 :label-position="flagTop"
13 :inline="flag"
14 label-width="120px">
15 <div class="slxx_con">
16 <div class="slxx_title title-block">
17 申请业务信息
18 <div class="triangle"></div>
19 </div>
20 <el-row :gutter="10">
21 <el-col :span="8">
22 <el-form-item :class="flag ? 'marginBot0' : ''" label="业务号:" prop="slsq.ywh">
23 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
24 </el-form-item>
25 </el-col>
26 <el-col :span="8">
27 <el-form-item :class="flag ? 'marginBot0' : ''" label="受理人员:" prop="slsq.slry">
28 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
29 </el-form-item>
30 </el-col>
31 <el-col :span="8">
32 <el-form-item :class="flag ? 'marginBot0' : ''" label="受理时间:" prop="slsq.slsj">
33 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
34 </el-form-item>
35 </el-col>
36 </el-row>
37 <el-row :gutter="10">
38 <el-col :span="8">
39 <el-form-item :class="flag ? 'marginBot0' : ''" label="权利类型:" prop="slsq.qllx">
40 <el-select
41 disabled
42 v-model="ruleForm.sldy.qllx"
43 filterable
44 clearable
45 placeholder="请选择权利类型">
46 <el-option
47 v-for="item in dictData['A8']"
48 :key="item.dcode"
49 :label="item.dname"
50 :value="item.dcode"></el-option>
51 </el-select>
52 </el-form-item>
53 </el-col>
54 <el-col :span="8">
55 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记类型:" prop="slsq.djlx">
56 <el-select
57 disabled
58 v-model="ruleForm.sldy.djlx"
59 filterable
60 clearable
61 placeholder="请选择登记类型">
62 <el-option
63 v-for="item in dictData['A21']"
64 :key="item.dcode"
65 :label="item.dname"
66 :value="item.dcode"></el-option>
67 </el-select>
68 </el-form-item>
69 </el-col>
70 <el-col :span="8">
71 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记情形:" prop="slsq.djqx">
72 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
73 </el-form-item>
74 </el-col>
75 </el-row>
76 <div class="slxx_title title-block">
77 查封不动产情况
78 <div class="triangle"></div>
79 </div>
80
81 <el-row :gutter="10">
82 <el-col :span="8">
83 <el-form-item :class="flag ? 'marginBot0' : ''" label="权利类型:">
84 <el-input disabled v-model="ruleForm.ztQlxx.qllxmc"></el-input>
85 </el-form-item>
86 </el-col>
87
88 <el-col :span="8">
89 <el-form-item :class="flag ? 'marginBot0' : ''" label="不动产权证号:" prop="qlxx.bdcqzh">
90 <el-input disabled v-model="ruleForm.ztQlxx.bdcqzh"></el-input>
91 </el-form-item>
92 </el-col>
93 <el-col :span="8">
94 <el-form-item :class="flag ? 'marginBot0' : ''" label="共有情况:">
95 <el-input disabled v-model="ruleForm.ztQlxx.gyqk"></el-input>
96 </el-form-item>
97 </el-col>
98 </el-row>
99 <el-row :gutter="10">
100 <el-col :span="8">
101 <el-form-item :class="flag ? 'marginBot0' : ''" label="被执行人:" prop="qlxx.qlrmc">
102 <el-input disabled v-model="ruleForm.ztQlxx.qlrmc"></el-input>
103 </el-form-item>
104 </el-col>
105 <el-col :span="8">
106 <el-form-item :class="flag ? 'marginBot0' : ''" label="证件种类:">
107 <el-input disabled v-model="ruleForm.ztQlxx.qlrzjzl"></el-input>
108 </el-form-item>
109 </el-col>
110 <el-col :span="8">
111 <el-form-item :class="flag ? 'marginBot0' : ''" label="证件号:">
112 <el-input disabled v-model="ruleForm.ztQlxx.qlrzjhm"></el-input>
113 </el-form-item>
114 </el-col>
115 </el-row>
116 <el-row :gutter="10">
117 <el-col :span="8">
118 <el-form-item :class="flag ? 'marginBot0' : ''" label="不动产单元号:" prop="qlxx.bdcdyh">
119 <el-input disabled v-model="ruleForm.ztQlxx.bdcdyh"></el-input>
120 </el-form-item>
121 </el-col>
122 <el-col :span="16">
123 <el-form-item :class="flag ? 'marginBot0' : ''" label="坐落:">
124 <el-input disabled v-model="ruleForm.ztQlxx.zl"></el-input>
125 </el-form-item>
126 </el-col>
127 </el-row>
128 <el-row :gutter="10">
129 <el-col :span="8">
130 <el-form-item :class="flag ? 'marginBot0' : ''" label="权利性质">
131 <el-input disabled v-model="ruleForm.ztQlxx.qlxzmc"></el-input>
132 </el-form-item>
133 </el-col>
134 <el-col :span="8">
135 <el-form-item :class="flag ? 'marginBot0' : ''" label="用途:">
136 <el-input disabled v-model="ruleForm.ztQlxx.qlytmc"></el-input>
137 </el-form-item>
138 </el-col>
139 <el-col :span="8">
140 <el-form-item :class="flag ? 'marginBot0' : ''" label="面积:">
141 <el-input disabled v-model="ruleForm.ztQlxx.qlmjmc"></el-input>
142 </el-form-item>
143 </el-col>
144 </el-row>
145
146 <div class="slxx_title title-block">
147 查封信息
148 <div class="triangle"></div>
149 </div>
150 <el-row :gutter="10">
151 <el-col :span="8">
152 <el-form-item :class="flag ? 'marginBot0' : ''" label="原告:" prop="cfdj.cfwh">
153 <el-input
154 v-model="ruleForm.cfdj.yg"
155 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
156 </el-form-item>
157 </el-col>
158 <el-col :span="8">
159 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封文号:" prop="cfdj.cfwh">
160 <el-input
161 v-model="ruleForm.cfdj.cfwh"
162 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
163 </el-form-item>
164 </el-col>
165 <el-col :span="8">
166 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封机关:" prop="cfdj.cfjg">
167 <el-input
168 v-model="ruleForm.cfdj.cfjg"
169 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
170 </el-form-item>
171 </el-col>
172 </el-row>
173 <el-row :gutter="10">
174 <el-col :span="8">
175 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封类型:" prop="cfdj.cflxmc">
176 <el-input v-model="ruleForm.cfdj.cflxmc" disabled></el-input>
177 </el-form-item>
178 </el-col>
179 <el-col :span="16">
180 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封文件:" prop="cfdj.cfwj">
181 <el-input
182 v-model="ruleForm.cfdj.cfwj"
183 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
184 </el-form-item>
185 </el-col>
186 </el-row>
187 <el-row :gutter="10">
188 <el-col :span="8">
189 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封期限:" prop="cfdj.cfqx">
190 <el-input
191 v-model="ruleForm.cfdj.cfqx"
192 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
193 </el-form-item>
194 </el-col>
195 <el-col :span="8">
196 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封起始时间:" prop="cfdj.cfqssj">
197 <el-date-picker
198 v-model="ruleForm.cfdj.cfqssj"
199 class="width100"
200 type="date"
201 placeholder="选择日期"
202 value-format="yyyy-MM-dd"
203 :disabled="!viewEdit || ableEdit || isJfOperation"></el-date-picker>
204 </el-form-item>
205 </el-col>
206 <el-col :span="8">
207 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封结束时间:" prop="cfdj.cfjssj">
208 <el-date-picker
209 v-model="ruleForm.cfdj.cfjssj"
210 class="width100"
211 :disabled="!viewEdit || ableEdit || isJfOperation"
212 type="date"
213 placeholder="选择日期"
214 value-format="yyyy-MM-dd"></el-date-picker>
215 </el-form-item>
216 </el-col>
217 </el-row>
218
219 <el-row :gutter="10">
220 <el-col :span="24">
221 <el-form-item :class="flag ? 'marginBot0' : ''" label="查封范围:" prop="cfdj.cffw">
222 <el-input
223 v-model="ruleForm.cfdj.cffw"
224 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
225 </el-form-item>
226 </el-col>
227 </el-row>
228 <el-row :gutter="10">
229 <el-col :span="24">
230 <el-form-item :class="flag ? 'marginBot0' : ''" label="附记:" prop="cfdj.fj">
231 <el-input
232 v-model="ruleForm.cfdj.fj"
233 type="textarea"
234 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
235 </el-form-item>
236 </el-col>
237 </el-row>
238 <el-row :gutter="10">
239 <el-col>
240 <el-form-item :class="flag ? 'marginBot0' : ''" label="登记原因:" prop="cfdj.djyy">
241 <el-input
242 class="textArea"
243 type="textarea"
244 v-model="ruleForm.cfdj.djyy"
245 :disabled="!viewEdit || ableEdit || isJfOperation"></el-input>
246 </el-form-item>
247 </el-col>
248 </el-row>
249 <div v-if="propsParam.djlx == '400'">
250 <div class="slxx_title title-block">
251 解封信息
252 <div class="triangle"></div>
253 </div>
254 <el-row :gutter="10">
255 <el-col :span="8">
256 <el-form-item :class="flag ? 'marginBot0' : ''" label="解封机关:" prop="cfdj.jfjg">
257 <el-input
258 v-model="ruleForm.cfdj.jfjg"
259 :disabled="!viewEdit || ableEdit"></el-input>
260 </el-form-item>
261 </el-col>
262 <el-col :span="8">
263 <el-form-item :class="flag ? 'marginBot0' : ''" label="解封文件:" prop="cfdj.jfwj">
264 <el-input
265 v-model="ruleForm.cfdj.jfwj"
266 :disabled="!viewEdit || ableEdit"></el-input>
267 </el-form-item>
268 </el-col>
269 <el-col :span="8">
270 <el-form-item :class="flag ? 'marginBot0' : ''" label="解封文号:" prop="cfdj.jfwh">
271 <el-input
272 v-model="ruleForm.cfdj.jfwh"
273 :disabled="!viewEdit || ableEdit"></el-input>
274 </el-form-item>
275 </el-col>
276 </el-row>
277 </div>
278 </div>
279 <el-row class="btn" v-if="viewEdit && !ableEdit">
280 <el-form-item :class="flag ? 'marginBot0' : ''">
281 <el-button type="primary" @click="onSubmit">保存</el-button>
282 </el-form-item>
283 </el-row>
284 </el-form>
285 </div>
286 </template>
287 <script>
288 import sqrViewTable from "@/views/workflow/components/sqrViewTable";
289 import { Init, saveData } from "@/api/workflow/cfdjFlow.js";
290 import { mapGetters } from "vuex";
291 export default {
292 data () {
293 return {
294 // 键名转换,方法默认是label和children进行树状渲染
295 normalizer (node) {
296 //方法
297 if (node.children == null || node.children == "null") {
298 delete node.children;
299 }
300 return {
301 id: node.dcode,
302 label: node.dname,
303 };
304 },
305 //表单是否可操作
306 viewEdit: false,
307 disabled: true,
308 flagTop: this.flag ? "top" : "",
309 rules: {
310 'cfdj.djyy': [
311 { required: true, message: '请输入登记原因', trigger: 'blur' }
312 ]
313 },
314 //传递参数
315 propsParam: {},
316 //页面数据
317 ruleForm: {},
318 //是否可编辑
319 ableEdit: false,
320 //是否为解封
321 isJfOperation: false,
322 };
323 },
324 async created () {
325 this.propsParam = this.$attrs;
326 this.ableEdit = this.$parent.showBatch;
327 this.viewEdit = this.$parent.currentSelectTab.ableOperation
328 if (this.propsParam.djlx == "400") {
329 this.isJfOperation = true;
330 }
331 var formdata = new FormData();
332 formdata.append("bsmSldy", this.propsParam.bsmSldy);
333 formdata.append("djlx", this.propsParam.djlx);
334 formdata.append("isEdit", this.viewEdit);
335 Init(formdata).then((res) => {
336 if (res.code === 200 && res.result) {
337 this.ruleForm = res.result;
338 } else {
339 this.$message.error(res.message);
340 }
341 });
342 },
343 watch: {},
344 components: { sqrViewTable },
345 props: {
346 flag: {
347 type: Boolean,
348 default: false,
349 },
350 fetch: {
351 type: Boolean,
352 default: false,
353 },
354 },
355 computed: {
356 ...mapGetters(["dictData"])
357 },
358
359 methods: {
360 /**
361 * @description: onSubmit
362 * @author: renchao
363 */
364 onSubmit () {
365 this.$refs['ruleForm'].validate((valid) => {
366 if (valid) {
367 saveData(this.ruleForm).then((res) => {
368 if (res.code === 200) {
369 this.$message.success("保存成功");
370 }
371 })
372 } else {
373 this.$message({
374 showClose: true,
375 message: "请输入登记原因",
376 type: "error"
377 })
378 return false
379 }
380 })
381 },
382 /**
383 * @description: changeCflx
384 * @param {*} e
385 * @author: renchao
386 */
387 changeCflx (e) {
388 let cflxItem = {};
389 cflxItem = this.dictData["A32"].find((item) => {
390 return item.dcode == e;
391 });
392 this.ruleForm.cfdj.cflxmc = cflxItem.dname
393 }
394 }
395 }
396 </script>
397 <style scoped lang='scss'>
398 @import "~@/styles/public.scss";
399 @import "~@/styles/slxx/slxx.scss";
400 </style>
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form
5 :model="ruleForm"
6 v-Loading="loading"
7 :label-position="flag ? 'top' : ''"
8 :inline="flag"
9 ref="ruleForm"
10 label-width="140px">
11 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
12 <div class="slxx_title title-block">
13 申请业务信息
14 <div class="triangle"></div>
15 </div>
16 <el-row :gutter="10" v-if="ruleForm.flow">
17 <el-col :span="8">
18 <el-form-item label="业务号:">
19 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
20 </el-form-item>
21 </el-col>
22 <el-col :span="8">
23 <el-form-item label="受理人员:">
24 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理时间:">
29 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
30 </el-form-item>
31 </el-col>
32 </el-row>
33 <el-row :gutter="10" v-if="ruleForm.sldyList">
34 <el-col :span="8">
35 <el-form-item label="权利类型:">
36 <el-input
37 disabled
38 v-model="ruleForm.sldyList[0].qllxmc"></el-input>
39 </el-form-item>
40 </el-col>
41 <el-col :span="8">
42 <el-form-item label="登记类型:">
43 <el-input
44 disabled
45 v-model="ruleForm.sldyList[0].djlxmc"></el-input>
46 </el-form-item>
47 </el-col>
48 <el-col :span="8">
49 <el-form-item label="登记情形:">
50 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
51 </el-form-item>
52 </el-col>
53 </el-row>
54
55 <div
56 class="slxx_title title-block"
57 v-if="ruleForm.slsq.djywbm.includes('400')">
58 在抵押权信息列表({{ ruleForm.diyaqDetailList.length }} 个)
59 <div class="triangle"></div>
60 <dyaqTable :tableData="ruleForm.diyaqDetailList" />
61 </div>
62 <div
63 class="slxx_title title-block"
64 v-else>
65 抵押不动产列表信息({{ ruleForm.ztQlxxList.length }} 个)
66 <div class="triangle"></div>
67 <cfBdcdyTable :tableData="ruleForm.ztQlxxList" />
68 </div>
69 <div class="slxx_title title-block" v-if="!ruleForm.slsq.djywbm.includes('400')">
70 抵押信息
71 <div class="triangle"></div>
72 </div>
73 <el-row
74 :gutter="10"
75 v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
76 <el-col :span="8">
77 <el-form-item label="抵押方式:">
78 <el-radio-group disabled v-model="ruleForm.diyaqList[0].dyfs">
79 <el-radio label="1">一般抵押</el-radio>
80 <el-radio label="2">最高额抵押</el-radio>
81 </el-radio-group>
82 </el-form-item>
83 </el-col>
84 <el-col :span="8">
85 <el-form-item label="抵押金额类型:">
86 <el-radio-group
87 v-model="ruleForm.diyaqList[0].dyjelx"
88 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
89 <el-radio label="0">独立抵押</el-radio>
90 <el-radio label="1">整体抵押</el-radio>
91 </el-radio-group>
92 </el-form-item>
93 </el-col>
94 <el-col :span="8">
95 <el-form-item
96 label="是否存在禁止或者限制转让抵押不动产的约定:"
97 label-width="300px">
98 <el-radio-group
99 v-model="ruleForm.diyaqList[0].sfczjzhxz"
100 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
101 <el-radio label="1">启用</el-radio>
102 <el-radio label="0">禁用</el-radio>
103 </el-radio-group>
104 </el-form-item>
105 </el-col>
106 </el-row>
107 <el-row
108 :gutter="10"
109 v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
110 <el-col :span="8" v-show="ruleForm.diyaqList[0].dyfs == 1">
111 <el-form-item label="被担保主债权数额:">
112 <div style="display: flex">
113 <el-input
114 v-model="ruleForm.diyaqList[0].bdbzzqse"
115 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
116 <el-select
117 style="width: 68px"
118 v-model="ruleForm.diyaqList[0].jedw"
119 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
120 <el-option
121 v-for="item in dictData['A57']"
122 :key="item.dcode"
123 :label="item.dname"
124 :value="item.dcode">
125 </el-option>
126 </el-select>
127 </div>
128 </el-form-item>
129 </el-col>
130
131 <el-col :span="8" v-show="ruleForm.diyaqList[0].dyfs == 2">
132 <el-form-item label="最高债权额:">
133 <el-input
134 v-model="ruleForm.diyaqList[0].zgzqse"
135 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
136 <el-select
137 v-model="ruleForm.diyaqList[0].jedw"
138 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
139 <el-option
140 v-for="item in dictData['A57']"
141 :key="item.dcode"
142 :label="item.dname"
143 :value="item.dcode">
144 </el-option>
145 </el-select>
146 </el-form-item>
147 </el-col>
148
149 <el-col :span="8">
150 <el-form-item label="债务履行起始时间:">
151 <el-date-picker
152 v-model="ruleForm.diyaqList[0].zwlxqssj"
153 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"
154 type="date">
155 </el-date-picker>
156 </el-form-item>
157 </el-col>
158 <el-col :span="8">
159 <el-form-item label="债务履行结束时间:">
160 <el-date-picker
161 v-model="ruleForm.diyaqList[0].zwlxjssj"
162 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"
163 type="date">
164 </el-date-picker>
165 </el-form-item>
166 </el-col>
167 </el-row>
168 <el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
169 <el-col :span="24">
170 <el-form-item label="担保范围:">
171 <el-input
172 v-model="ruleForm.diyaqList[0].dbfw"
173 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
174 </el-form-item>
175 </el-col>
176 </el-row>
177 <el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
178 <el-col :span="24">
179 <el-form-item label="最高债权确定事实和数额:">
180 <el-input
181 v-model="ruleForm.diyaqList[0].zgzqqdss"
182 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
183 </el-form-item>
184 </el-col>
185 </el-row>
186 <el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0 && !ruleForm.slsq.djywbm.includes('400')">
187 <el-col>
188 <el-form-item label="附记:" prop="fj">
189 <el-input
190 type="textarea"
191 maxlength="500"
192 show-word-limit
193 v-model="ruleForm.diyaqList[0].fj"
194 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
195 </el-form-item>
196 </el-col>
197 </el-row>
198
199 <div class="slxx_title title-block">
200 抵押权人信息
201 <div class="triangle"></div>
202 </div>
203 <el-row
204 :gutter="10"
205 v-if="ruleForm.sldyList && ruleForm.sldyList.length > 0">
206 <el-col :span="14">
207 <el-form-item label="共有方式:">
208 <el-radio-group
209 :disabled="!viewEdit"
210 v-model="ruleForm.sldyList[0].gyfs">
211 <el-radio label="0">单独所有</el-radio>
212 <el-radio label="1">共同共有</el-radio>
213 <el-radio label="2">按份所有</el-radio>
214 <el-radio label="3">其它共有</el-radio>
215 </el-radio-group>
216 </el-form-item>
217 </el-col>
218 <el-col :span="5" v-show="ruleForm.sldyList[0].gyfs != '0'">
219 <el-form-item label="是否分别持证:">
220 <el-radio-group
221 v-model="ruleForm.sldyList[0].sqfbcz"
222 :disabled="!viewEdit"
223 @input="updaterow()">
224 <el-radio :label="1"></el-radio>
225 <el-radio :label="0"></el-radio>
226 </el-radio-group>
227 </el-form-item>
228 </el-col>
229 <el-col
230 :span="5"
231 v-show="
232 ruleForm.sldyList[0].gyfs != '0' &&
233 ruleForm.sldyList[0].sqfbcz == '0'
234 ">
235 <el-form-item label="持证人:">
236 <el-select
237 v-model="czr"
238 placeholder="持证人"
239 :disabled="!viewEdit">
240 <el-option
241 v-for="(item,index) in czrOptions"
242 :key="index"
243 :label="item.sqrmc"
244 :value="item.id">
245 </el-option>
246 </el-select>
247 </el-form-item>
248 </el-col>
249 </el-row>
250 <qlrCommonTable
251 v-if="ruleForm.sldyList && ruleForm.sldyList.length > 0"
252 :tableData="ruleForm.qlrList"
253 @upDateQlrxxList="upDateQlrxxList"
254 :disabled="viewEdit"
255 :gyfs="ruleForm.sldyList[0].gyfs" />
256 <div class="slxx_title title-block">
257 抵押人信息
258 <div class="triangle"></div>
259 </div>
260 <qlrCommonTable
261 :tableData="ruleForm.ywrList"
262 @upDateQlrxxList="upDateYwrxxList"
263 :disabled="viewEdit" />
264
265 <div class="slxx_title title-block">
266 登记原因
267 <div class="triangle"></div>
268 </div>
269 <el-row
270 :gutter="10"
271 v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
272 <el-col>
273 <el-form-item
274 v-if="ruleForm.sldyList[0].djlx == '400'"
275 label="注销抵押原因:"
276 prop="djyy">
277 <el-input
278 class="textArea"
279 type="textarea"
280 :disabled="!viewEdit"
281 v-model="ruleForm.diyaqList[0].zxdyyy">
282 </el-input>
283 </el-form-item>
284 <el-form-item v-else label="登记原因:" prop="diyaqList[0].djyy">
285 <el-input
286 class="textArea"
287 type="textarea"
288 maxlength="500"
289 show-word-limit
290 :disabled="!viewEdit"
291 v-model="ruleForm.diyaqList[0].djyy">
292 </el-input>
293 </el-form-item>
294 </el-col>
295 </el-row>
296 </div>
297 <el-row class="btn" v-if="isSave">
298 <el-form-item>
299 <el-button type="primary" @click="onSubmitClick()">保存</el-button>
300 </el-form-item>
301 </el-row>
302 </el-form>
303 </div>
304 </template>
305 <script>
306 import cfBdcdyTable from "@/views/workflow/components/cfBdcdyTable";
307 import dyaqTable from "@/views/workflow/components/dyaqTable";
308 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
309 import { batchInit, saveBatchData } from "@/api/workflow/diyaqFlow.js";
310 import { mapGetters } from "vuex";
311 export default {
312 mounted () {
313 let that = this
314 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
315 this.propsParam = this.$attrs;
316 var formdata = new FormData();
317
318 this.loading = true
319 formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
320 formdata.append("djlx", this.propsParam.djlx);
321 formdata.append("isEdit", this.viewEdit);
322 batchInit(formdata).then((res) => {
323 setTimeout(() => {
324 that.loading = false
325 }, 200)
326 if (res.code === 200 && res.result) {
327 this.ruleForm = res.result;
328 this.ruleForm.qlrList.forEach((item) => {
329 item.id = item.bsmSqr
330 if (item.sfczr == '1') {
331 that.czr = item.bsmSqr
332 }
333 })
334 that.czrOptions = that.ruleForm.qlrList;
335 that.isSave = that.viewEdit
336 } else {
337 that.isSave = false
338 that.$confirm(res.message, '提示', {
339 cancelButtonText: '取消',
340 showConfirmButton: false,
341 type: 'warning'
342 })
343 }
344 }).catch(() => {
345 this.loading = false
346 })
347 },
348 components: { qlrCommonTable, cfBdcdyTable,dyaqTable },
349 computed: {
350 ...mapGetters(["dictData", "flag"]),
351 },
352 data () {
353 return {
354 isSave: true,
355 loading: false,
356 //表单是否可操作
357 viewEdit: true,
358 disabled: true,
359 czrOptions: [],
360 czr: "",
361 ruleForm: {},
362 //传递参数
363 propsParam: {},
364 rules: {
365 'diyaqList[0].djyy': [
366 { required: true, message: '请输入登记原因', trigger: 'blur' }
367 ]
368 },
369 tableData: [],
370 };
371 },
372 methods: {
373 /**
374 * @description: onSubmitClick
375 * @author: renchao
376 */
377 onSubmitClick () {
378 let that = this;
379 if (this.ruleForm.qlrList.length == 0) {
380 this.$message({
381 showClose: true,
382 message: "请确认抵押权人信息",
383 type: "error",
384 });
385 return false;
386 }
387 if (this.ruleForm.sldyList[0].gyfs == "0") {
388 if (this.ruleForm.qlrList.length > 1) {
389 this.$message({
390 showClose: true,
391 message: "共有方式:单独所有,抵押权人只能是一个人",
392 type: "error",
393 });
394 return false;
395 }
396 this.ruleForm.qlrList[0].sfczr = "1";
397 } else {
398 if (this.ruleForm.qlrList.length <= 1) {
399 this.$message({
400 showClose: true,
401 message:
402 "共有方式:共同所有,按份所有,其他所有,抵押权人必须是两个以上",
403 type: "error",
404 });
405 return false;
406 }
407 //是否分别持证
408 if (this.ruleForm.sldyList[0].sqfbcz == "1") {
409 //是
410 this.ruleForm.qlrList.forEach((item, index) => {
411 item.sfczr = "1"
412 })
413 } else {
414 if (that.czr === '') {
415 that.$message({
416 showClose: true,
417 message: "请选择持证人",
418 type: "error",
419 });
420 return false;
421 }
422 this.ruleForm.qlrList.forEach((item, index) => {
423 if (item.id == that.czr) {
424 item.sfczr = "1";
425 } else {
426 item.sfczr = "0";
427 }
428 });
429 }
430 }
431 this.$refs['ruleForm'].validate((valid) => {
432 if (valid) {
433 that.$store.dispatch("user/refreshPage", false);
434 saveBatchData(that.ruleForm, that.propsParam.djlx).then((res) => {
435 if (res.code === 200) {
436 that.$message({
437 showClose: true,
438 message: "保存成功!",
439 type: "success",
440 });
441 that.$store.dispatch("user/refreshPage", true);
442 } else {
443 that.$message({
444 showClose: true,
445 message: res.message,
446 type: "error",
447 });
448 }
449 })
450 } else {
451 that.$message({
452 showClose: true,
453 message: "请输入登记原因",
454 type: "error"
455 })
456 return false
457 }
458 })
459 },
460 /**
461 * @description: 是否持证人变化
462 * @param {*} val
463 * @author: renchao
464 */
465 updaterow () {
466 this.czr = "";
467 },
468 /**
469 * @description: 更新抵押权人信息
470 * @param {*} val
471 * @author: renchao
472 */
473 upDateQlrxxList (val) {
474 if (!_.isEqual(val, this.ruleForm.qlrList)) {
475 this.ruleForm.qlrList = _.cloneDeep(val);
476 this.czrOptions = this.ruleForm.qlrList;
477 }
478 this.num = 0
479 this.ruleForm.qlrList.forEach(item => {
480 if (item.id == this.czr) {
481 this.num++
482 }
483 })
484 if (this.num == 0) {
485 this.czr = ''
486 }
487 },
488 /**
489 * @description: 更新义务人信息
490 * @param {*} val
491 * @author: renchao
492 */
493 upDateYwrxxList (val) {
494 if (!_.isEqual(val, this.ruleForm.ywrList)) {
495 this.ruleForm.ywrList = _.cloneDeep(val);
496 }
497 }
498 }
499 }
500 </script>
501 <style scoped lang="scss">
502 @import "~@/styles/public.scss";
503 @import "~@/styles/slxx/slxx.scss";
504 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-31 09:38:51
5 -->
6 <template>
7 <!-- 受理信息 -->
8 <div class="slxx">
9 <el-form
10 :model="ruleForm"
11 :rules="rules"
12 v-Loading="loading"
13 ref="ruleForm"
14 :label-position="flag ? 'top' : ''"
15 :inline="flag"
16 label-width="180px">
17 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
18 <div class="slxx_title title-block">
19 申请业务信息
20 <div class="triangle"></div>
21 </div>
22 <el-row :gutter="10">
23 <el-col :span="8">
24 <el-form-item label="业务号:">
25 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理人员:">
30 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
31 </el-form-item>
32 </el-col>
33 <el-col :span="8">
34 <el-form-item label="受理时间:">
35 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
36 </el-form-item>
37 </el-col>
38 </el-row>
39 <el-row :gutter="10">
40 <el-col :span="8">
41 <el-form-item label="权利类型:" prop="qllx">
42 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
43 </el-form-item>
44 </el-col>
45 <el-col :span="8">
46 <el-form-item label="登记类型:" prop="djlx">
47 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
48 </el-form-item>
49 </el-col>
50 <el-col :span="8">
51 <el-form-item label="登记情形:" prop="djqx">
52 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
53 </el-form-item>
54 </el-col>
55 </el-row>
56 <div class="slxx_title title-block">
57 抵押不动产情况
58 <div class="triangle"></div>
59 </div>
60
61 <el-row :gutter="10">
62 <el-col :span="8">
63 <el-form-item label="权利人:">
64 <el-input disabled v-model="ruleForm.ztQlxx.qlrmc"></el-input>
65 </el-form-item>
66 </el-col>
67 <el-col :span="8">
68 <el-form-item label="证件种类:">
69 <el-input disabled v-model="ruleForm.ztQlxx.qlrzjzl"></el-input>
70 </el-form-item>
71 </el-col>
72 <el-col :span="8">
73 <el-form-item label="证件号:">
74 <el-input disabled v-model="ruleForm.ztQlxx.qlrzjhm"></el-input>
75 </el-form-item>
76 </el-col>
77 </el-row>
78 <el-row :gutter="10">
79 <el-col :span="8">
80 <el-form-item label="权利类型:">
81 <el-input disabled v-model="ruleForm.ztQlxx.qllxmc"></el-input>
82 </el-form-item>
83 </el-col>
84 <el-col :span="8">
85 <el-form-item label="不动产权证号:">
86 <el-input disabled v-model="ruleForm.ztQlxx.bdcqzh"></el-input>
87 </el-form-item>
88 </el-col>
89 <el-col :span="8">
90 <el-form-item label="坐落:">
91 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
92 </el-form-item>
93 </el-col>
94 </el-row>
95 <el-row :gutter="10">
96 <el-col :span="8">
97 <el-form-item label="不动产单元号:">
98 <el-input disabled v-model="ruleForm.ztQlxx.bdcdyh"></el-input>
99 </el-form-item>
100 </el-col>
101 <el-col :span="8">
102 <el-form-item label="权利性质:">
103 <el-input disabled v-model="ruleForm.ztQlxx.qlxzmc"></el-input>
104 </el-form-item>
105 </el-col>
106 <el-col :span="8">
107 <el-form-item label="权利用途:">
108 <el-input disabled v-model="ruleForm.ztQlxx.qlytmc"></el-input>
109 </el-form-item>
110 </el-col>
111 </el-row>
112
113 <div class="slxx_title title-block">
114 抵押信息
115 <div class="triangle"></div>
116 </div>
117
118 <el-row :gutter="10">
119 <el-col :span="8">
120 <el-form-item label="原不动产证号:">
121 <el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
122 </el-form-item>
123 </el-col>
124 <el-col :span="8">
125 <el-form-item label="抵押方式:">
126 <el-radio-group disabled v-model="ruleForm.diyaq.dyfs">
127 <el-radio label="1">一般抵押权</el-radio>
128 <el-radio label="2">最高额抵押权</el-radio>
129 </el-radio-group>
130 </el-form-item>
131 </el-col>
132 <el-col :span="8">
133 <el-form-item label="抵押面积:">
134 <div class="flex">
135 <el-input
136 maxlength="12"
137 v-model="ruleForm.diyaq.dymj"
138 disabled></el-input>
139 <el-select disabled v-model="ruleForm.diyaq.mjdw" style="width: 68px">
140 <el-option
141 v-for="item in dictData['A7']"
142 :key="item.dcode"
143 :label="item.dname"
144 :value="item.dcode">
145 </el-option>
146 </el-select>
147 </div>
148 </el-form-item>
149 </el-col>
150 </el-row>
151 <el-row :gutter="10">
152 <el-col :span="8">
153 <el-form-item
154 label="是否禁止或者限制转让的约定:"
155 label-width="200px">
156 <el-radio-group
157 v-model="ruleForm.diyaq.sfczjzhxz"
158 :disabled="!viewEdit || isJfOperation">
159 <el-radio label="1"></el-radio>
160 <el-radio label="0"></el-radio>
161 </el-radio-group>
162 </el-form-item>
163 </el-col>
164 <el-col :span="8">
165 <el-form-item
166 label="是否预告登记:">
167 <el-radio-group v-model="ruleForm.diyaq.sfygdj" disabled>
168 <el-radio label="1"></el-radio>
169 <el-radio label="0"></el-radio>
170 </el-radio-group>
171 </el-form-item>
172 </el-col>
173 <el-col :span="8">
174 <el-form-item label="债务履行期限:">
175 <el-input
176 v-model="ruleForm.diyaq.dyqx"
177 :disabled="!viewEdit || isJfOperation"></el-input>
178 </el-form-item>
179 </el-col>
180 </el-row>
181
182 <el-row :gutter="10">
183 <el-col :span="8" v-show="ruleForm.diyaq.dyfs == 1">
184 <el-form-item label="被担保主债权数额:">
185 <div style="display: flex">
186 <el-input
187 v-model="ruleForm.diyaq.bdbzzqse"
188 :disabled="!viewEdit || isJfOperation"
189 style="width: 500%"></el-input>
190 <el-select
191 v-model="ruleForm.diyaq.jedw"
192 :disabled="!viewEdit || isJfOperation">
193 <el-option
194 v-for="item in dictData['A57']"
195 :key="item.dcode"
196 :label="item.dname"
197 :value="item.dcode">
198 </el-option>
199 </el-select>
200 </div>
201 </el-form-item>
202 </el-col>
203
204 <el-col :span="8" v-show="ruleForm.diyaq.dyfs == 2">
205 <el-form-item label="最高债权额:">
206 <el-input
207 v-model="ruleForm.diyaq.zgzqse"
208 :disabled="!viewEdit || isJfOperation"></el-input>
209 </el-form-item>
210 </el-col>
211
212 <el-col :span="8">
213 <el-form-item label="债务履行起始时间:">
214 <el-date-picker
215 v-model="ruleForm.diyaq.zwlxqssj"
216 :disabled="!viewEdit || isJfOperation"
217 type="date">
218 </el-date-picker>
219 </el-form-item>
220 </el-col>
221 <el-col :span="8">
222 <el-form-item label="债务履行结束时间:">
223 <el-date-picker class="width100"
224 v-model="ruleForm.diyaq.zwlxjssj"
225 :disabled="!viewEdit || isJfOperation"
226 type="date">
227 </el-date-picker>
228 </el-form-item>
229 </el-col>
230 </el-row>
231 <el-row>
232 <el-col :span="24">
233 <el-form-item label="担保范围:">
234 <el-input
235 v-model="ruleForm.diyaq.dbfw"
236 :disabled="
237 (ruleForm.sldy.djlx == '300' || !viewEdit) || isJfOperation
238 "></el-input>
239 </el-form-item>
240 </el-col>
241 </el-row>
242 <el-row>
243 <el-col :span="24">
244 <el-form-item label="最高债权确定事实和数额:">
245 <el-input
246 v-model="ruleForm.diyaq.zgzqqdss"
247 :disabled="!viewEdit || isJfOperation"></el-input>
248 </el-form-item>
249 </el-col>
250 </el-row>
251 <el-row>
252 <el-col>
253 <el-form-item label="附记:" prop="fj">
254 <el-input
255 type="textarea"
256 maxlength="500"
257 show-word-limit
258 v-model="ruleForm.diyaq.fj"
259 :disabled="!viewEdit || isJfOperation"></el-input>
260 </el-form-item>
261 </el-col>
262 </el-row>
263
264 <div class="slxx_title title-block">
265 抵押权人信息
266 <div class="triangle"></div>
267 </div>
268 <el-row :gutter="10">
269 <el-col :span="12">
270 <el-form-item label="共有方式:">
271 <el-radio-group
272 :disabled="!viewEdit"
273 v-model="ruleForm.sldy.gyfs">
274 <el-radio label="0">单独所有</el-radio>
275 <el-radio label="1">共同共有</el-radio>
276 <el-radio label="2">按份所有</el-radio>
277 <el-radio label="3">其它共有</el-radio>
278 </el-radio-group>
279 </el-form-item>
280 </el-col>
281 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
282 <el-form-item label="是否分别持证:">
283 <el-radio-group
284 v-model="ruleForm.sldy.sqfbcz"
285 :disabled="!viewEdit"
286 @input="updaterow()">
287 <el-radio :label="1"></el-radio>
288 <el-radio :label="0"></el-radio>
289 </el-radio-group>
290 </el-form-item>
291 </el-col>
292 <el-col
293 :span="6"
294 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
295 <el-form-item label="持证人:">
296 <el-select
297 v-model="czr"
298 placeholder="持证人"
299 :disabled="!viewEdit">
300 <el-option
301 v-for="(item,index) in czrOptions"
302 :key="index"
303 :label="item.sqrmc"
304 :value="item.id">
305 </el-option>
306 </el-select>
307 </el-form-item>
308 </el-col>
309 </el-row>
310 <qlrCommonTable
311 :tableData="ruleForm.qlrList"
312 :disabled="viewEdit"
313 @upDateQlrxxList="upDateQlrxxList"
314 :gyfs="ruleForm.sldy.gyfs" />
315 <div class="slxx_title title-block">
316 抵押人信息
317 <div class="triangle"></div>
318 </div>
319 <qlrCommonTable
320 :tableData="ruleForm.ywrList"
321 :disabled="viewEdit"
322 @upDateQlrxxList="upDateYwrxxList" />
323
324 <div class="slxx_title title-block">
325 登记原因
326 <div class="triangle"></div>
327 </div>
328 <el-row :gutter="10">
329 <el-col>
330 <el-form-item
331 v-if="ruleForm.sldy.djlx == '400'"
332 label="注销抵押原因:"
333 prop="djyy">
334 <el-input
335 class="textArea"
336 type="textarea"
337 :disabled="!viewEdit"
338 v-model="ruleForm.diyaq.zxdyyy">
339 </el-input>
340 </el-form-item>
341 <el-form-item v-else label="登记原因:" prop="diyaq.djyy">
342 <el-input
343 class="textArea"
344 type="textarea"
345 maxlength="500"
346 show-word-limit
347 :disabled="!viewEdit"
348 v-model="ruleForm.diyaq.djyy">
349 </el-input>
350 </el-form-item>
351 </el-col>
352 </el-row>
353 </div>
354 <el-row class="btn" v-if="viewEdit">
355 <el-form-item>
356 <el-button type="primary" @click="onSubmitClick()">保存</el-button>
357 </el-form-item>
358 </el-row>
359 </el-form>
360 </div>
361 </template>
362 <script>
363 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
364 import { Init, saveData } from "@/api/workflow/diyaqFlow.js";
365 import { mapGetters } from "vuex";
366 export default {
367 mounted () {
368 let that = this
369 this.loading = true
370 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
371 this.propsParam = this.$attrs;
372 var formdata = new FormData();
373 if (this.propsParam.djlx == "400") {
374 this.isJfOperation = true;
375 }
376 formdata.append("bsmSldy", this.propsParam.bsmSldy);
377 formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
378 formdata.append("djlx", this.propsParam.djlx);
379 formdata.append("isEdit", this.viewEdit);
380 Init(formdata).then((res) => {
381 setTimeout(() => {
382 this.loading = false
383 }, 200)
384 if (res.code === 200 && res.result) {
385 that.ruleForm = res.result;
386 that.ruleForm.qlrList.forEach((item) => {
387 item.id = item.bsmSqr
388 if (item.sfczr == '1') {
389 that.czr = item.bsmSqr
390 }
391 })
392 that.czrOptions = this.ruleForm.qlrList;
393 that.isSave = that.viewEdit
394 } else {
395 that.isSave = false
396 that.$confirm(res.message, '提示', {
397 cancelButtonText: '取消',
398 showConfirmButton: false,
399 type: 'warning'
400 })
401 }
402 }).catch(() => {
403 this.loading = false
404 })
405 },
406 components: { qlrCommonTable },
407 computed: {
408 ...mapGetters(["dictData", "flag"]),
409 },
410 data () {
411 return {
412 isSave: true,
413 // 键名转换,方法默认是label和children进行树状渲染
414 normalizer (node) {
415 //方法
416 if (node.children == null || node.children == "null") {
417 delete node.children;
418 }
419 return {
420 id: node.dcode,
421 label: node.dname,
422 };
423 },
424 loading: false,
425 //表单是否可操作
426 viewEdit: true,
427 disabled: true,
428 czrOptions: [],
429 czr: "",
430 ruleForm: {
431 slsq: {},
432 ssQlxx: {},
433 diyaq: {},
434 gyfs: "",
435 },
436 isJfOperation: false,
437 //传递参数
438 propsParam: {},
439 rules: {
440 'diyaq.djyy': [
441 { required: true, message: '请输入登记原因', trigger: 'blur' }
442 ]
443 }
444 }
445 },
446 methods: {
447 /**
448 * @description: onSubmitClick
449 * @author: renchao
450 */
451 onSubmitClick () {
452 let that = this;
453 if (this.ruleForm.qlrList.length == 0) {
454 this.$message({
455 showClose: true,
456 message: "请确认抵押权人信息",
457 type: "error",
458 });
459 return false;
460 }
461 if (this.ruleForm.sldy.gyfs == "0") {
462 if (this.ruleForm.qlrList.length > 1) {
463 this.$message({
464 showClose: true,
465 message: "共有方式:单独所有,权利人只能是一个人",
466 type: "error",
467 });
468 return false;
469 }
470 this.ruleForm.qlrList[0].sfczr = "1";
471 } else {
472 if (this.ruleForm.qlrList.length <= 1) {
473 this.$message({
474 showClose: true,
475 message:
476 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
477 type: "error",
478 });
479 return false;
480 }
481 //是否分别持证
482 if (this.ruleForm.sldy.sqfbcz == "1") {
483 //是
484 this.ruleForm.qlrList.forEach((item, index) => {
485 item.sfczr = "1";
486 });
487 } else {
488 if (that.czr === '') {
489 that.$message({
490 showClose: true,
491 message: "请选择持证人",
492 type: "error"
493 });
494 return false;
495 }
496 this.ruleForm.qlrList.forEach((item, index) => {
497 if (item.id == that.czr) {
498 item.sfczr = "1"
499 } else {
500 item.sfczr = "0"
501 }
502 })
503 }
504 }
505
506 this.$refs['ruleForm'].validate((valid) => {
507 if (valid) {
508 that.$store.dispatch("user/refreshPage", false);
509 saveData(that.ruleForm, that.propsParam.djlx).then((res) => {
510 if (res.code === 200) {
511 that.$message({
512 showClose: true,
513 message: "保存成功!",
514 type: "success",
515 });
516 that.$store.dispatch("user/refreshPage", true);
517 } else {
518 that.$message({
519 showClose: true,
520 message: res.message,
521 type: "error",
522 });
523 }
524 })
525
526 } else {
527 this.$message({
528 showClose: true,
529 message: "请输入登记原因",
530 type: "error"
531 })
532 return false
533 }
534 })
535 },
536 /**
537 * @description: 更新权利人信息
538 * @param {*} val
539 * @author: renchao
540 */
541 upDateQlrxxList (val) {
542 if (!_.isEqual(val, this.ruleForm.qlrList)) {
543 this.ruleForm.qlrList = _.cloneDeep(val);
544 this.czrOptions = this.ruleForm.qlrList;
545 }
546 this.num = 0
547 this.ruleForm.qlrList.forEach(item => {
548 if (item.id == this.czr) {
549 this.num++
550 }
551 })
552 if (this.num == 0) {
553 this.czr = ''
554 }
555
556 },
557 /**
558 * @description: 是否持证人变化
559 * @author: renchao
560 */
561 updaterow () {
562 this.czr = "";
563 },
564 /**
565 * @description: 更新义务人信息
566 * @param {*} val
567 * @author: renchao
568 */
569 upDateYwrxxList (val) {
570 if (!_.isEqual(val, this.ruleForm.ywrList)) {
571 this.ruleForm.ywrList = _.cloneDeep(val);
572 }
573 },
574 },
575 };
576 </script>
577 <style scoped lang="scss">
578 @import "~@/styles/public.scss";
579 @import "~@/styles/slxx/slxx.scss";
580 </style>
1 <!--
2 * @Description: 房屋多幢受理信息
3 * @Autor: ssq
4 * @LastEditTime: 2024-01-31 10:11:41
5 -->
6 <template>
7 <div class="slxx">
8 <el-form
9 :model="ruleForm"
10 :rules="rules"
11 ref="ruleForm"
12 :label-position="flag ? 'top' : ''"
13 :inline="flag"
14 v-Loading="loading"
15 label-width="120px">
16 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
17 <div class="slxx_title title-block">
18 申请业务信息
19 <div class="triangle"></div>
20 </div>
21 <el-row :gutter="10" v-if="ruleForm.slsq">
22 <el-col :span="8">
23 <el-form-item label="业务号:">
24 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理人员:">
29 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
30 </el-form-item>
31 </el-col>
32 <el-col :span="8">
33 <el-form-item label="受理时间:">
34 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
35 </el-form-item>
36 </el-col>
37 </el-row>
38 <el-row :gutter="10" v-if="ruleForm.slsq">
39 <el-col :span="8">
40 <el-form-item label="权利类型:">
41 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
42 </el-form-item>
43 </el-col>
44 <el-col :span="8">
45 <el-form-item label="登记类型:">
46 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
47 </el-form-item>
48 </el-col>
49 <el-col :span="8">
50 <el-form-item label="登记情形:">
51 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
52 </el-form-item>
53 </el-col>
54 </el-row>
55 <div class="slxx_title title-block">
56 <el-row>
57 <el-col :span="20">
58 不动产单元情况
59 </el-col>
60 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
61 <el-form-item label="是否创建证书:" style="height:24px">
62 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
63 <el-radio label="1"></el-radio>
64 <el-radio label="0"></el-radio>
65 </el-radio-group>
66 </el-form-item>
67 </el-col>
68 </el-row>
69 <div class="triangle"></div>
70 </div>
71 <el-row :gutter="10" v-if="ruleForm.qlxx">
72 <el-col :span="8">
73 <el-form-item label="原不动产权证号:">
74 <el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
75 </el-form-item>
76 </el-col>
77 <el-col :span="8">
78 <el-form-item label="不动产单元号:">
79 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
80 </el-form-item>
81 </el-col>
82 <el-col :span="8">
83 <el-form-item label="坐落:">
84 <el-input maxlength="100" disabled v-model="ruleForm.sldy.zl"></el-input>
85 </el-form-item>
86 </el-col>
87 </el-row>
88 <el-row :gutter="10" v-if="ruleForm.fdcq1">
89 <el-col :span="8">
90 <el-form-item label="宗地面积:">
91 <div class="flex">
92 <el-input disabled v-model="ruleForm.zdjbxx.zdmj"></el-input>
93 <el-select
94 disabled
95 v-model="ruleForm.zdjbxx.mjdw"
96 style="width: 20%">
97 <el-option
98 v-for="item in dictData['A7']"
99 :key="item.dcode"
100 :label="item.dname"
101 :value="item.dcode"></el-option>
102 </el-select>
103 </div>
104 </el-form-item>
105 </el-col>
106 <el-col :span="8">
107 <el-form-item label="土地性质:">
108 <el-input disabled v-model="ruleForm.zdjbxx.qlxzmc"></el-input>
109 </el-form-item>
110 </el-col>
111 <el-col :span="8">
112 <el-form-item label="土地使用权人:">
113 <el-input disabled v-model="ruleForm.fdcq1.tdsyqr"></el-input>
114 </el-form-item>
115 </el-col>
116 </el-row>
117 <el-row :gutter="10" v-if="ruleForm.fdcq1">
118 <el-col :span="8">
119 <el-form-item label="独用土地面积:">
120 <div class="flex">
121 <el-input
122 maxlength="12"
123 v-model="ruleForm.fdcq1.dytdmj"
124 :disabled="!viewEdit"
125 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
126 <el-select disabled v-model="mjdw" style="width: 68px">
127 <el-option
128 v-for="item in dictData['A7']"
129 :key="item.dcode"
130 :label="item.dname"
131 :value="item.dcode">
132 </el-option>
133 </el-select>
134 </div>
135 </el-form-item>
136 </el-col>
137 <el-col :span="8">
138 <el-form-item label="分摊土地面积:">
139 <div class="flex">
140 <el-input
141 maxlength="12"
142 v-model="ruleForm.fdcq1.fttdmj"
143 :disabled="!viewEdit"
144 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
145 <el-select disabled v-model="mjdw" style="width: 68px">
146 <el-option
147 v-for="item in dictData['A7']"
148 :key="item.dcode"
149 :label="item.dname"
150 :value="item.dcode">
151 </el-option>
152 </el-select>
153 </div>
154 </el-form-item>
155 </el-col>
156 <el-col :span="8">
157
158 <el-form-item label="房地产交易价格:">
159 <div class="flex">
160 <el-input
161 maxlength="11"
162 :disabled="!viewEdit"
163 v-model="ruleForm.fdcq1.fdcjyjg"
164 style="width: 500%"
165 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
166 <el-select :disabled="!viewEdit" v-model="ruleForm.fdcq1.jedw">
167 <el-option
168 v-for="item in dictData['A57']"
169 :key="item.dcode"
170 :label="item.dname"
171 :value="item.dcode"></el-option>
172 </el-select>
173 </div>
174 </el-form-item>
175 </el-col>
176 </el-row>
177 <el-row :gutter="10">
178 <el-col :span="24">
179 <el-form-item label="附记:">
180 <el-input
181 :disabled="!viewEdit"
182 v-model="ruleForm.fdcq1.fj"
183 type="textarea"
184 maxlength="500"
185 show-word-limit></el-input>
186 </el-form-item>
187 </el-col>
188 </el-row>
189 <div class="slxx_title title-block">
190 房屋多幢明细
191 <div class="triangle"></div>
192 <fdcqxmTable
193 :ableOperation="viewEdit"
194 :tableData="ruleForm.fdcqxm"
195 @updateFdcwxmList="updateFdcwxmList" />
196 <div class="slxx_title title-block">
197 土地用途
198 <div class="triangle"></div>
199 </div>
200 <tdytTable
201 :ableOperation="viewEdit"
202 :tableData="ruleForm.tdytqxList"
203 @upDateTdytxxList="upDateTdytxxList" />
204 <div class="slxx_title title-block">
205 权利人信息
206 <div class="triangle"></div>
207 </div>
208 <el-row :gutter="10">
209 <el-col :span="14" v-if="ruleForm.qlxx">
210 <el-form-item label="共有方式:">
211 <el-radio-group
212 :disabled="!viewEdit"
213 v-model="ruleForm.sldy.gyfs">
214 <el-radio label="0">单独所有</el-radio>
215 <el-radio label="1">共同共有</el-radio>
216 <el-radio label="2">按份所有</el-radio>
217 <el-radio label="3">其它共有</el-radio>
218 </el-radio-group>
219 </el-form-item>
220 </el-col>
221 <el-col :span="5" v-show="ruleForm.sldy.gyfs != '0'">
222 <el-form-item label="是否分别持证:">
223 <el-radio-group
224 v-model="ruleForm.sldy.sqfbcz"
225 :disabled="!viewEdit"
226 @input="updaterow()">
227 <el-radio :label="1"></el-radio>
228 <el-radio :label="0"></el-radio>
229 </el-radio-group>
230 </el-form-item>
231 </el-col>
232 <el-col
233 :span="5"
234 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
235 <el-form-item label="持证人:">
236 <el-select
237 v-model="czr"
238 placeholder="持证人"
239 :disabled="!viewEdit">
240 <el-option
241 v-for="(item,index) in czrOptions"
242 :key="index"
243 :label="item.sqrmc"
244 :value="item.id"></el-option>
245 </el-select>
246 </el-form-item>
247 </el-col>
248 </el-row>
249 <qlrCommonTable
250 @upDateQlrxxList="upDateQlrxxList"
251 :disabled="viewEdit"
252 :tableData="ruleForm.qlrList"
253 :gyfs="ruleForm.sldy.gyfs" />
254
255 <div v-if="ruleForm.qlxx.djlx == '200'">
256 <div class="slxx_title title-block">
257 义务人信息
258 <div class="triangle"></div>
259 </div>
260 <ywrCommonTable
261 v-if="ruleForm.qlxx"
262 :disabled="viewEdit"
263 @upDateQlrxxList="upDateYwrxxList"
264 :tableData="ruleForm.ywrList"
265 :gyfs="ruleForm.qlxx.gyfs" />
266
267 </div>
268 <div class="slxx_title title-block">
269 登记原因
270 <div class="triangle"></div>
271 </div>
272 <el-row :gutter="10">
273 <el-col>
274 <el-form-item v-if="ruleForm.sldy" label="登记原因:" prop="fdcq1.djyy">
275 <el-input
276 class="textArea"
277 type="textarea"
278 maxlength="500"
279 show-word-limit
280 :disabled="!viewEdit"
281 v-model="ruleForm.fdcq1.djyy"></el-input>
282 </el-form-item>
283 </el-col>
284 </el-row>
285 </div>
286 </div>
287 <el-row class="btn" v-if="isSave">
288 <el-form-item>
289 <el-button type="primary" @click="onSubmit">保存</el-button>
290 </el-form-item>
291 </el-row>
292 </el-form>
293 </div>
294 </template>
295 <script>
296 import ywmix from "@/views/ywbl/mixin/index";
297 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
298 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
299 import fdcqxmTable from "@/views/workflow/components/fdcqxmTable";
300 import tdytTable from "@/views/workflow/components/tdytTable";
301 import { Init, saveData } from "@/api/workflow/fwsyq1Flow.js";
302 import { mapGetters } from "vuex";
303 export default {
304 mixins: [ywmix],
305 mounted () {
306 let that = this
307 this.loading = true
308 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
309 this.propsParam = this.$attrs;
310 var formdata = new FormData();
311 formdata.append("bsmSldy", this.propsParam.bsmSldy);
312 formdata.append("djlx", this.propsParam.djlx);
313 formdata.append("isEdit", this.viewEdit);
314 Init(formdata).then((res) => {
315 setTimeout(() => {
316 this.loading = false
317 }, 200)
318 if (res.code === 200 && res.result) {
319 that.ruleForm = {
320 ...res.result,
321 ...res.result.qlxxdatas,
322 };
323 that.ruleForm.qlrList.forEach((item) => {
324 item.id = item.bsmSqr
325 if (item.sfczr == '1') {
326 that.czr = item.bsmSqr
327 }
328 });
329 that.czrOptions = that.ruleForm.qlrList;
330 that.isSave = this.viewEdit
331 } else {
332 that.isSave = false
333 that.$confirm(res.message, '提示', {
334 cancelButtonText: '取消',
335 showConfirmButton: false,
336 type: 'warning'
337 })
338 }
339 }).catch(() => {
340 this.loading = false
341 })
342 },
343 components: { qlrCommonTable, tdytTable, fdcqxmTable, ywrCommonTable },
344 computed: {
345 ...mapGetters(["dictData", "flag"]),
346 },
347 data () {
348 return {
349 isSave: true,
350 loading: false,
351 disabled: true,
352 tdytOption: [],
353 czrOptions: [],
354 mjdw: "1",
355 czr: "",
356 ruleForm: {
357 flow: {
358 ywh: "",
359 },
360 qlxx: {
361 mj: "",
362 },
363 sldy: {
364 gyfs: "",
365 },
366 slsq: {},
367 fdcq1: {
368 zyjzmj: "",
369 ftjzmj: "",
370 },
371 zdjbxx: {
372 ghytmc: "",
373 },
374 },
375 //传递参数
376 propsParam: this.$attrs,
377 //表单是否可操作
378 viewEdit: false,
379 rules: {
380 'fdcq1.djyy': [
381 { required: true, message: '请输入登记原因', trigger: 'blur' }
382 ]
383 }
384 }
385 },
386 methods: {
387 /**
388 * @description: updateFdcwxmList
389 * @author: renchao
390 */
391 updateFdcwxmList (val) {
392 this.ruleForm.fdcqxm && (this.ruleForm.fdcqxm = _.cloneDeep(val));
393 this.key++;
394 },
395 /**
396 * @description: 更新土地用途信息
397 * @param {*} val
398 * @author: renchao
399 */
400 upDateTdytxxList (val) {
401 this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
402 this.key++;
403 },
404 /**
405 * @description: 更新权利人信息
406 * @param {*} val
407 * @author: renchao
408 */
409 upDateQlrxxList (val) {
410 if (!_.isEqual(val, this.ruleForm.qlrList)) {
411 this.ruleForm.qlrList = _.cloneDeep(val);
412 this.czrOptions = this.ruleForm.qlrList;
413 }
414 this.num = 0
415 this.ruleForm.qlrList.forEach(item => {
416 if (item.id == this.czr) {
417 this.num++
418 }
419 })
420 if (this.num == 0) {
421 this.czr = ''
422 }
423 },
424 /**
425 * @description: 是否持证人变化
426 * @param {*} val
427 * @author: renchao
428 */
429 updaterow () {
430 this.czr = "";
431 },
432 /**
433 * @description: 更新权利人信息
434 * @param {*} val
435 * @author: renchao
436 */
437 upDateYwrxxList (val) {
438 this.ruleForm.ywrList = _.cloneDeep(val);
439 },
440 /**
441 * @description: onSubmit
442 * @author: renchao
443 */
444 onSubmit () {
445 let that = this;
446 let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
447
448 let jzmjArr = this.ruleForm.fdcqxm.filter((item) => {
449 return item.jzmj && item.jzmj !== '';
450 });
451 if (jzmjArr.length < this.ruleForm.fdcqxm.length) {
452 this.$message({
453 showClose: true,
454 message: "请检查房屋多幢明细建筑面积",
455 type: "error",
456 });
457 return false;
458 }
459 if (arr.length > 0) {
460 this.$message({
461 showClose: true,
462 message: "土地用途不能为空",
463 type: "error",
464 });
465 return false;
466 }
467 if (this.ruleForm.qlrList.length == 0) {
468 this.$message({
469 showClose: true,
470 message: "请确认权利人信息",
471 type: "error",
472 });
473 return false;
474 }
475 if (this.ruleForm.sldy.gyfs == "0") {
476 if (this.ruleForm.qlrList.length > 1) {
477 this.$message({
478 showClose: true,
479 message: "共有方式:单独所有,权利人只能是一个人",
480 type: "error",
481 });
482 return false;
483 }
484 this.ruleForm.qlrList[0].sfczr = "1";
485 } else {
486 if (this.ruleForm.qlrList.length <= 1) {
487 this.$message({
488 showClose: true,
489 message:
490 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
491 type: "error",
492 });
493 return false;
494 }
495 //是否分别持证
496 if (this.ruleForm.sldy.sqfbcz == "1") {
497 //是
498 this.ruleForm.qlrList.forEach((item, index) => {
499 item.sfczr = "1";
500 });
501 } else {
502 if (that.czr === '') {
503 that.$message({
504 showClose: true,
505 message: "请选择持证人",
506 type: "error",
507 });
508 return false;
509 }
510 this.ruleForm.qlrList.forEach(item => {
511 if (item.id == that.czr) {
512 item.sfczr = "1"
513 } else {
514 item.sfczr = "0"
515 }
516 })
517 }
518 }
519
520 this.$refs['ruleForm'].validate((valid) => {
521 if (valid) {
522 that.$store.dispatch("user/refreshPage", false);
523 saveData(this.ruleForm).then((res) => {
524 if (res.code === 200) {
525 this.$message({
526 showClose: true,
527 message: "保存成功!",
528 type: "success",
529 });
530 that.$store.dispatch("user/refreshPage", true);
531 } else {
532 that.$message({
533 showClose: true,
534 message: res.message,
535 type: "error"
536 })
537 }
538 })
539 } else {
540 that.$message({
541 showClose: true,
542 message: "请输入登记原因",
543 type: "error"
544 })
545 return false
546 }
547 })
548 }
549 }
550 }
551 </script>
552 <style scoped lang="scss">
553 @import "~@/styles/public.scss";
554 @import "~@/styles/slxx/slxx.scss";
555 </style>
1 <!--
2 * @Description: 受理信息
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-31 10:09:01
5 -->
6 <template>
7 <div class="slxx">
8 <el-form
9 :model="ruleForm"
10 :rules="rules"
11 ref="ruleForm"
12 v-Loading="loading"
13 :label-position="flag ? 'top' : ''"
14 :inline="flag"
15 label-width="120px">
16 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
17 <div class="slxx_title title-block">
18 申请业务信息
19 <div class="triangle"></div>
20 </div>
21 <el-row :gutter="10" v-if="ruleForm.slsq">
22 <el-col :span="8">
23 <el-form-item label="业务号:">
24 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理人员:">
29 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
30 </el-form-item>
31 </el-col>
32 <el-col :span="8">
33 <el-form-item label="受理时间:">
34 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
35 </el-form-item>
36 </el-col>
37 </el-row>
38 <el-row :gutter="10" v-if="ruleForm.slsq">
39 <el-col :span="8">
40 <el-form-item label="权利类型:">
41 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
42 </el-form-item>
43 </el-col>
44 <el-col :span="8">
45 <el-form-item label="登记类型:">
46 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
47 </el-form-item>
48 </el-col>
49 <el-col :span="8">
50 <el-form-item label="登记情形:">
51 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
52 </el-form-item>
53 </el-col>
54 </el-row>
55 <div class="slxx_title title-block">
56 <el-row>
57 <el-col :span="20">
58 不动产单元情况
59 </el-col>
60 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
61 <el-form-item label="是否创建证书:" style="height:24px">
62 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
63 <el-radio label="1"></el-radio>
64 <el-radio label="0"></el-radio>
65 </el-radio-group>
66 </el-form-item>
67 </el-col>
68 </el-row>
69 <div class="triangle"></div>
70 </div>
71 <el-row :gutter="10" v-if="ruleForm.qlxx">
72 <el-col :span="8">
73 <el-form-item label="原不动产权证号:">
74 <el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
75 </el-form-item>
76 </el-col>
77 <el-col :span="8">
78 <el-form-item label="不动产单元号:">
79 <el-input disabled v-model="ruleForm.sldy.bdcdyh"></el-input>
80 </el-form-item>
81 </el-col>
82 <el-col :span="8">
83 <el-form-item label="坐落:">
84 <el-input maxlength="100" :disabled="!viewEdit" v-model="ruleForm.sldy.zl"></el-input>
85 </el-form-item>
86 </el-col>
87 </el-row>
88 <el-row :gutter="10" v-if="ruleForm.fdcq2">
89 <el-col :span="8">
90 <el-form-item label="宗地面积:">
91 <div class="flex">
92 <el-input :disabled="!viewEdit" v-model="ruleForm.zdjbxx.zdmj"></el-input>
93 <el-select
94 disabled
95 v-model="ruleForm.zdjbxx.mjdw"
96 style="width: 68px">
97 <el-option
98 v-for="item in dictData['A7']"
99 :key="item.dcode"
100 :label="item.dname"
101 :value="item.dcode">
102 </el-option>
103 </el-select>
104 </div>
105 </el-form-item>
106 </el-col>
107 <el-col :span="8">
108 <el-form-item label="土地使用权人:">
109 <el-input :disabled="!viewEdit" v-model="ruleForm.fdcq2.tdsyqr"></el-input>
110 </el-form-item>
111 </el-col>
112 <el-col :span="8">
113 <el-form-item label="土地性质:">
114 <treeselect
115 :disabled="!viewEdit"
116 v-model="ruleForm.fdcq2.tdxz"
117 noOptionsText="暂无数据"
118 placeholder=""
119 :normalizer="normalizer"
120 :default-expand-level="1"
121 :show-count="true"
122 :options="dictData['A9']" />
123 </el-form-item>
124 </el-col>
125 </el-row>
126 <el-row :gutter="10" v-if="ruleForm.qlxx">
127 <el-col :span="8">
128 <el-form-item label="独用土地面积:">
129 <div class="flex">
130 <el-input
131 maxlength="12"
132 v-model="ruleForm.fdcq2.dytdmj"
133 :disabled="!viewEdit"
134 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
135 <el-select disabled v-model="mjdw" style="width: 68px">
136 <el-option
137 v-for="item in dictData['A7']"
138 :key="item.dcode"
139 :label="item.dname"
140 :value="item.dcode">
141 </el-option>
142 </el-select>
143 </div>
144 </el-form-item>
145 </el-col>
146 <el-col :span="8">
147 <el-form-item label="分摊土地面积:">
148 <div class="flex">
149 <el-input
150 maxlength="12"
151 v-model="ruleForm.fdcq2.fttdmj"
152 :disabled="!viewEdit"
153 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
154 <el-select disabled v-model="mjdw" style="width: 68px">
155 <el-option
156 v-for="item in dictData['A7']"
157 :key="item.dcode"
158 :label="item.dname"
159 :value="item.dcode">
160 </el-option>
161 </el-select>
162 </div>
163 </el-form-item>
164 </el-col>
165 <el-col :span="8">
166 <el-form-item label="房屋性质:">
167 <el-select v-model="ruleForm.fdcq2.fwxz" :disabled="!viewEdit">
168 <el-option
169 v-for="item in dictData['A19']"
170 :key="item.dcode"
171 :label="item.dname"
172 :value="item.dcode">
173 </el-option>
174 </el-select>
175 </el-form-item>
176 </el-col>
177 </el-row>
178 <el-row :gutter="10" v-if="ruleForm.qlxx">
179 <el-col :span="8">
180 <el-form-item label="房屋用途:">
181 <treeselect
182 v-model="ruleForm.fdcq2.ghyt"
183 :disabled="!viewEdit"
184 noOptionsText=""
185 placeholder=""
186 :normalizer="normalizer"
187 :show-count="true"
188 :options="dictData['A17']" />
189 </el-form-item>
190 </el-col>
191 <el-col :span="8">
192 <el-form-item label="房屋结构:">
193 <el-select v-model="ruleForm.fdcq2.fwjg" :disabled="!viewEdit">
194 <el-option
195 v-for="item in dictData['A46']"
196 :key="item.dcode"
197 :label="item.dname"
198 :value="item.dcode">
199 </el-option>
200 </el-select>
201 </el-form-item>
202 </el-col>
203 <el-col :span="8">
204 <el-form-item label="竣工时间:">
205 <el-date-picker
206 v-model="ruleForm.fdcq2.jgsj"
207 class="width100"
208 type="date"
209 placeholder="选择日期"
210 value-format="yyyy-MM-dd"
211 :disabled="!viewEdit"></el-date-picker>
212 </el-form-item>
213 </el-col>
214 </el-row>
215 <el-row :gutter="10" v-if="ruleForm.qlxx">
216 <el-col :span="8">
217 <el-form-item label="所在层:">
218 <el-input
219 maxlength="20"
220 v-model="ruleForm.fdcq2.szc"
221 :disabled="!viewEdit"></el-input>
222 </el-form-item>
223 </el-col>
224 <el-col :span="8">
225 <el-form-item label="总层数:">
226 <el-input
227 maxlength="4"
228 :disabled="!viewEdit"
229 v-model.number="ruleForm.fdcq2.zcs"
230 oninput="value=value.replace(/[^0-9]/g,'')"></el-input>
231 </el-form-item>
232 </el-col>
233 <el-col :span="8">
234 <el-form-item label="房地产交易价格:">
235 <div class="flex">
236 <el-input
237 maxlength="11"
238 v-model="ruleForm.fdcq2.fdcjyjg"
239 style="width: 500%"
240 :disabled="!viewEdit"
241 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
242 <el-select v-model="ruleForm.fdcq2.jedw" :disabled="!viewEdit">
243 <el-option
244 v-for="item in dictData['A57']"
245 :key="item.dcode"
246 :label="item.dname"
247 :value="item.dcode">
248 </el-option>
249 </el-select>
250 </div>
251 </el-form-item>
252 </el-col>
253 </el-row>
254 <el-row :gutter="10" v-if="ruleForm.fdcq2">
255 <el-col :span="8">
256 <el-form-item label="建筑面积:">
257 <div class="flex">
258 <el-input
259 maxlength="12"
260 v-model="ruleForm.fdcq2.jzmj"
261 :disabled="!viewEdit"
262 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
263 <el-select disabled v-model="mjdw" style="width: 68px">
264 <el-option
265 v-for="item in dictData['A7']"
266 :key="item.dcode"
267 :label="item.dname"
268 :value="item.dcode">
269 </el-option>
270 </el-select>
271 </div>
272 </el-form-item>
273 </el-col>
274 <el-col :span="8">
275 <el-form-item label="专有建筑面积:">
276 <div class="flex">
277 <el-input
278 maxlength="12"
279 v-model="ruleForm.fdcq2.zyjzmj"
280 :disabled="!viewEdit"
281 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
282 <el-select disabled v-model="mjdw" style="width: 68px">
283 <el-option
284 v-for="item in dictData['A7']"
285 :key="item.dcode"
286 :label="item.dname"
287 :value="item.dcode">
288 </el-option>
289 </el-select>
290 </div>
291 </el-form-item>
292 </el-col>
293 <el-col :span="8">
294 <el-form-item label="分摊建筑面积:">
295 <div class="flex">
296 <el-input
297 maxlength="12"
298 v-model="ruleForm.fdcq2.ftjzmj"
299 :disabled="!viewEdit"
300 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
301 <el-select disabled v-model="mjdw" style="width: 68px">
302 <el-option
303 v-for="item in dictData['A7']"
304 :key="item.dcode"
305 :label="item.dname"
306 :value="item.dcode">
307 </el-option>
308 </el-select>
309 </div>
310 </el-form-item>
311 </el-col>
312 </el-row>
313 <el-row :gutter="10">
314 <el-col :span="24">
315 <el-form-item label="附记:">
316 <el-input
317 v-model="ruleForm.fdcq2.fj"
318 type="textarea"
319 maxlength="500"
320 show-word-limit
321 :disabled="!viewEdit"></el-input>
322 </el-form-item>
323 </el-col>
324 </el-row>
325 <div class="slxx_title title-block">
326 土地用途
327 <div class="triangle"></div>
328 </div>
329 <tdytTable
330 :ableOperation="viewEdit"
331 :tableData="ruleForm.tdytqxList"
332 @upDateTdytxxList="upDateTdytxxList" />
333 <div class="slxx_title title-block">
334 权利人信息
335 <div class="triangle"></div>
336 </div>
337 <el-row :gutter="10">
338 <el-col :span="12" v-if="ruleForm.qlxx">
339 <el-form-item label="共有方式:">
340 <el-radio-group
341 :disabled="!viewEdit"
342 v-model="ruleForm.sldy.gyfs">
343 <el-radio label="0">单独所有</el-radio>
344 <el-radio label="1">共同共有</el-radio>
345 <el-radio label="2">按份所有</el-radio>
346 <el-radio label="3">其它共有</el-radio>
347 </el-radio-group>
348 </el-form-item>
349 </el-col>
350 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
351 <el-form-item label="是否分别持证:">
352 <el-radio-group
353 v-model="ruleForm.sldy.sqfbcz"
354 :disabled="!viewEdit"
355 @input="updaterow()">
356 <el-radio :label="1"></el-radio>
357 <el-radio :label="0"></el-radio>
358 </el-radio-group>
359 </el-form-item>
360 </el-col>
361 <el-col
362 :span="6"
363 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
364 <el-form-item label="持证人:">
365 <el-select
366 v-model="czr"
367 placeholder="持证人"
368 :disabled="!viewEdit">
369 <el-option
370 v-for="(item,index) in czrOptions"
371 :key="index"
372 :label="item.sqrmc"
373 :value="item.id">
374 </el-option>
375 </el-select>
376 </el-form-item>
377 </el-col>
378 </el-row>
379 <qlrCommonTable
380 @upDateQlrxxList="upDateQlrxxList"
381 :tableData="ruleForm.qlrList"
382 :disabled="viewEdit"
383 :gyfs="ruleForm.sldy.gyfs" />
384
385 <div v-if="ruleForm.qlxx.djlx == '200'">
386 <div class="slxx_title title-block">
387 义务人信息
388 <div class="triangle"></div>
389 </div>
390 <ywrCommonTable
391 v-if="ruleForm.qlxx"
392 @upDateQlrxxList="upDateYwrxxList"
393 :tableData="ruleForm.ywrList"
394 :disabled="viewEdit" />
395 </div>
396 <div class="slxx_title title-block">
397 登记原因
398 <div class="triangle"></div>
399 </div>
400 <el-row :gutter="10">
401 <el-col>
402 <el-form-item v-if="ruleForm.sldy" label="登记原因:" prop="fdcq2.djyy">
403 <el-input
404 class="textArea"
405 type="textarea"
406 maxlength="500"
407 show-word-limit
408 :disabled="!viewEdit"
409 v-model="ruleForm.fdcq2.djyy">
410 </el-input>
411 </el-form-item>
412 </el-col>
413 </el-row>
414 </div>
415 <el-row class="btn" v-if="isSave">
416 <el-form-item>
417 <el-button type="primary" @click="onSubmit">保存</el-button>
418 </el-form-item>
419 </el-row>
420 </el-form>
421 </div>
422 </template>
423 <script>
424 import ywmix from "@/views/ywbl/mixin/index";
425 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
426 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
427 import tdytTable from "@/views/workflow/components/tdytTable";
428 import { Init, saveData } from "@/api/workflow/fwsyqFlow.js";
429 import { mapGetters } from "vuex";
430 export default {
431 mixins: [ywmix],
432 mounted () {
433 let that = this;
434 this.loading = true
435 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
436 this.propsParam = this.$attrs;
437 var formdata = new FormData();
438 formdata.append("bsmSldy", this.propsParam.bsmSldy);
439 formdata.append("djlx", this.propsParam.djlx);
440 formdata.append("isEdit", this.viewEdit);
441 Init(formdata).then((res) => {
442 setTimeout(() => {
443 this.loading = false
444 }, 200)
445 if (res.code === 200 && res.result) {
446 that.ruleForm = {
447 ...res.result,
448 ...res.result.qlxxdatas,
449 };
450 that.ruleForm.qlrList.forEach((item) => {
451 item.id = item.bsmSqr
452 if (item.sfczr == '1') {
453 that.czr = item.bsmSqr
454 }
455 })
456 that.czrOptions = that.ruleForm.qlrList;
457 that.isSave = that.viewEdit
458 } else {
459 that.isSave = false
460 that.$confirm(res.message, '提示', {
461 cancelButtonText: '取消',
462 showConfirmButton: false,
463 type: 'warning'
464 })
465 }
466 }).catch(() => {
467 this.loading = false
468 })
469 },
470 components: { qlrCommonTable, tdytTable, ywrCommonTable },
471 computed: {
472 ...mapGetters(["dictData", "flag"]),
473 },
474 data () {
475 return {
476 isSave: true,
477 loading: false,
478 mjdw: "1",
479 // 键名转换,方法默认是label和children进行树状渲染
480 normalizer (node) {
481 //方法
482 if (node.children == null || node.children == "null") {
483 delete node.children;
484 }
485 return {
486 id: node.dcode,
487 label: node.dname,
488 };
489 },
490 disabled: true,
491 tdytOption: [],
492 czrOptions: [],
493 czr: "",
494 ruleForm: {
495 flow: {
496 ywh: "",
497 },
498 qlxx: {
499 mj: "",
500 },
501 sldy: {
502 gyfs: "",
503 },
504 slsq: {},
505 fdcq2: {
506 zyjzmj: "",
507 ftjzmj: "",
508 },
509 zdjbxx: {
510 ghytmc: "",
511 },
512 },
513 //传递参数
514 propsParam: this.$attrs,
515 //表单是否可操作
516 viewEdit: true,
517 rules: {
518 'fdcq2.djyy': [
519 { required: true, message: '请输入登记原因', trigger: 'blur' }
520 ]
521 }
522 }
523 },
524 methods: {
525 /**
526 * @description: 更新土地用途信息
527 * @param {*} val
528 * @author: renchao
529 */
530 upDateTdytxxList (val) {
531 this.ruleForm.tdytqxList = _.cloneDeep(val);
532 },
533 /**
534 * @description: 更新权利人信息
535 * @param {*} val
536 * @author: renchao
537 */
538 upDateQlrxxList (val) {
539 if (!_.isEqual(val, this.ruleForm.qlrList)) {
540 this.ruleForm.qlrList = _.cloneDeep(val);
541 this.czrOptions = this.ruleForm.qlrList;
542 }
543 this.num = 0
544 this.ruleForm.qlrList.forEach(item => {
545 if (item.id == this.czr) {
546 this.num++
547 }
548 })
549 if (this.num == 0) {
550 this.czr = ''
551 }
552 },
553 // 是否持证人变化
554 /**
555 * @description: 是否持证人变化
556 * @param {*} val
557 * @author: renchao
558 */
559 updaterow () {
560 this.czr = "";
561 },
562 /**
563 * @description: 更新权利人信息
564 * @param {*} val
565 * @author: renchao
566 */
567 upDateYwrxxList (val) {
568 this.ruleForm.ywrList = _.cloneDeep(val);
569 },
570 /**
571 * @description: onSubmit
572 * @author: renchao
573 */
574 onSubmit () {
575 let that = this;
576 let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
577 if (arr.length > 0) {
578 this.$message({
579 showClose: true,
580 message: "土地用途不能为空",
581 type: "error",
582 });
583 return false;
584 }
585 if (this.ruleForm.qlrList.length == 0) {
586 this.$message({
587 showClose: true,
588 message: "请确认权利人信息",
589 type: "error",
590 });
591 return false;
592 }
593
594 if (this.ruleForm.sldy.gyfs == "0") {
595 if (this.ruleForm.qlrList.length > 1) {
596 this.$message({
597 showClose: true,
598 message: "共有方式:单独所有,权利人只能是一个人",
599 type: "error",
600 });
601 return false;
602 }
603 this.ruleForm.qlrList[0].sfczr = "1";
604 } else {
605 if (this.ruleForm.qlrList.length <= 1) {
606 this.$message({
607 showClose: true,
608 message:
609 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
610 type: "error",
611 });
612 return false;
613 }
614 //是否分别持证
615 if (this.ruleForm.sldy.sqfbcz == "1") {
616 //是
617 this.ruleForm.qlrList.forEach((item, index) => {
618 item.sfczr = "1";
619 });
620 } else {
621 if (that.czr === '') {
622 that.$message({
623 showClose: true,
624 message: "请选择持证人",
625 type: "error",
626 });
627 return false;
628 }
629 this.ruleForm.qlrList.forEach((item, index) => {
630 if (item.id == that.czr) {
631 item.sfczr = "1";
632 } else {
633 item.sfczr = "0";
634 }
635 });
636 }
637 }
638 this.$refs['ruleForm'].validate((valid) => {
639 if (valid) {
640 that.$store.dispatch("user/refreshPage", false);
641 saveData(that.ruleForm).then((res) => {
642 if (res.code === 200) {
643 that.$message({
644 showClose: true,
645 message: "保存成功!",
646 type: "success",
647 });
648 that.$store.dispatch("user/refreshPage", true);
649 } else {
650 that.$message({
651 showClose: true,
652 message: res.message,
653 type: "error"
654 })
655 }
656 })
657 } else {
658 that.$message({
659 showClose: true,
660 message: "请输入登记原因",
661 type: "error"
662 })
663 return false
664 }
665 })
666 }
667 }
668 }
669 </script>
670 <style scoped lang="scss">
671 @import "~@/styles/public.scss";
672
673 /deep/.el-form {
674 display: flex;
675 flex-direction: column;
676 height: calc(100vh - 130px);
677 }
678
679 /deep/.el-form-item__label {
680 padding: 0;
681 }
682
683 /deep/.el-radio {
684 margin-right: 10px;
685 }
686
687 /deep/.el-select {
688 width: 100%;
689 }
690
691 /deep/.el-form-item {
692 margin-bottom: 3px;
693 }
694
695 .marginBot0 {
696 margin-bottom: 0 !important;
697 }
698
699 .slxx {
700 box-sizing: border-box;
701 }
702
703 .slxx_con {
704 flex: 1;
705 height: 100%;
706 background-color: #ffffff;
707 overflow-y: auto;
708 padding-right: 3px;
709 overflow-x: hidden;
710 }
711
712 .submit_btn {
713 height: 50px;
714 }
715
716 .btn {
717 text-align: center;
718 padding-top: 10px;
719 height: 36px;
720 background-color: #ffffff;
721 padding: 5px 0;
722 }
723
724 .textArea {
725 /deep/.el-textarea__inner {
726 min-height: 90px !important;
727 }
728 }
729
730 /deep/.el-form-item__label {
731 padding-bottom: 0px;
732 }
733 </style>
1 <!--
2 * @Description: 受理信息
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-30 16:07:53
5 -->
6 <template>
7 <div class="slxx">
8 <el-form
9 :model="ruleForm"
10 :rules="rules"
11 v-Loading="loading"
12 ref="ruleForm"
13 :label-position="flag ? 'top' : ''"
14 :inline="flag"
15 label-width="120px">
16 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
17 <div class="slxx_title title-block">
18 申请业务信息
19 <div class="triangle"></div>
20 </div>
21 <el-row :gutter="10" v-if="ruleForm.slsq">
22 <el-col :span="8">
23 <el-form-item label="业务号:">
24 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理人员:">
29 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
30 </el-form-item>
31 </el-col>
32 <el-col :span="8">
33 <el-form-item label="受理时间:">
34 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
35 </el-form-item>
36 </el-col>
37 </el-row>
38 <el-row :gutter="10" v-if="ruleForm.slsq">
39 <el-col :span="8">
40 <el-form-item label="权利类型:">
41 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
42 </el-form-item>
43 </el-col>
44 <el-col :span="8">
45 <el-form-item label="登记类型:">
46 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
47 </el-form-item>
48 </el-col>
49 <el-col :span="8">
50 <el-form-item label="登记情形:">
51 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
52 </el-form-item>
53 </el-col>
54 </el-row>
55 <div class="slxx_title title-block">
56 <el-row>
57 <el-col :span="16">
58 不动产单元情况
59 </el-col>
60 <el-col :span="4">
61 <el-button @click="compare">变化情况对比+</el-button>
62 </el-col>
63 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
64 <el-form-item label="是否创建证书:" style="height:24px">
65 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
66 <el-radio label="1"></el-radio>
67 <el-radio label="0"></el-radio>
68 </el-radio-group>
69 </el-form-item>
70 </el-col>
71 </el-row>
72 <div class="triangle"></div>
73
74 </div>
75 <el-row :gutter="10" v-if="ruleForm.qlxx">
76 <el-col :span="8">
77 <el-form-item label="不动产单元号:">
78 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
79 </el-form-item>
80 </el-col>
81 <el-col :span="16">
82 <el-form-item label="坐落:">
83 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
84 </el-form-item>
85 </el-col>
86 </el-row>
87 <el-row :gutter="10" v-if="ruleForm.fdcq2">
88 <el-col :span="8">
89 <el-form-item label="土地用途:">
90 <el-input disabled v-model="ruleForm.fdcq2.yt"></el-input>
91 </el-form-item>
92 </el-col>
93 <el-col :span="8">
94 <el-form-item label="土地使用起止时间:">
95 <el-input disabled v-model="ruleForm.fdcq2.tdsyqzsj"></el-input>
96 </el-form-item>
97 </el-col>
98 <el-col :span="8">
99 <el-form-item label="土地使用期限:">
100 <el-input disabled v-model="ruleForm.fdcq2.tdsyqx"></el-input>
101 </el-form-item>
102 </el-col>
103 </el-row>
104 <el-row :gutter="10" v-if="ruleForm.qlxx">
105 <el-col :span="8">
106 <el-form-item label="规划用途名称:">
107 <el-input disabled v-model="ruleForm.zdjbxx.ghytmc"></el-input>
108 </el-form-item>
109 </el-col>
110 <el-col :span="8">
111 <el-form-item label="房屋性质:">
112 <el-input disabled v-model="ruleForm.fdcq2.fwxzmc"></el-input>
113 </el-form-item>
114 </el-col>
115 <el-col :span="8">
116 <el-form-item label="房屋结构:">
117 <el-input disabled v-model="ruleForm.fdcq2.fwjgmc"></el-input>
118 </el-form-item>
119 </el-col>
120 </el-row>
121 <el-row :gutter="10" v-if="ruleForm.fdcq2">
122 <el-col :span="8">
123 <el-form-item label="所在层:">
124 <el-input disabled v-model="ruleForm.fdcq2.szc"></el-input>
125 </el-form-item>
126 </el-col>
127 <el-col :span="8">
128 <el-form-item label="总层数:">
129 <el-input
130 disabled
131 v-model.number="ruleForm.fdcq2.zcs"
132 oninput="value=value.replace(/[^0-9]/g,'')"></el-input>
133 </el-form-item>
134 </el-col>
135 <el-col :span="8">
136 <el-form-item label="竣工时间:">
137 <el-input disabled v-model="ruleForm.fdcq2.jgsj"></el-input>
138 </el-form-item>
139 </el-col>
140 </el-row>
141 <el-row :gutter="10" v-if="ruleForm.qlxx">
142 <el-col :span="8">
143 <el-form-item label="建筑面积:">
144 <div class="flex">
145 <el-input
146 disabled
147 v-model="ruleForm.qlxx.mj"
148 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
149 <el-select disabled v-model="mjdw" style="width: 68px">
150 <el-option
151 v-for="item in dictData['A7']"
152 :key="item.dcode"
153 :label="item.dname"
154 :value="item.dcode">
155 </el-option>
156 </el-select>
157 </div>
158 </el-form-item>
159 </el-col>
160 <el-col :span="8">
161 <el-form-item label="专有建筑面积:">
162 <div class="flex">
163 <el-input
164 disabled
165 v-model="ruleForm.fdcq2.zyjzmj"
166 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
167 <el-select disabled v-model="mjdw" style="width: 68px">
168 <el-option
169 v-for="item in dictData['A7']"
170 :key="item.dcode"
171 :label="item.dname"
172 :value="item.dcode">
173 </el-option>
174 </el-select>
175 </div>
176 </el-form-item>
177 </el-col>
178 <el-col :span="8">
179 <el-form-item label="分摊建筑面积:">
180 <div class="flex">
181 <el-input
182 disabled
183 v-model="ruleForm.fdcq2.ftjzmj"
184 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
185 <el-select disabled v-model="mjdw" style="width: 68px">
186 <el-option
187 v-for="item in dictData['A7']"
188 :key="item.dcode"
189 :label="item.dname"
190 :value="item.dcode">
191 </el-option>
192 </el-select>
193 </div>
194 </el-form-item>
195 </el-col>
196 </el-row>
197 <div class="slxx_title title-block">
198 土地用途
199 <div class="triangle"></div>
200 </div>
201 <tdytTable
202 :ableOperation="viewEdit"
203 :tableData="ruleForm.tdytqxList"
204 @upDateTdytxxList="upDateTdytxxList" />
205 <div class="slxx_title title-block">
206 权利人信息
207 <div class="triangle"></div>
208 </div>
209 <el-row :gutter="10">
210 <el-col :span="12">
211 <el-form-item label="共有方式:">
212 <el-radio-group
213 :disabled="!viewEdit"
214 v-model="ruleForm.sldy.gyfs">
215 <el-radio label="0">单独所有</el-radio>
216 <el-radio label="1">共同共有</el-radio>
217 <el-radio label="2">按份所有</el-radio>
218 <el-radio label="3">其它共有</el-radio>
219 </el-radio-group>
220 </el-form-item>
221 </el-col>
222 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
223 <el-form-item label="是否分别持证:">
224 <el-radio-group
225 v-model="ruleForm.sldy.sqfbcz"
226 :disabled="!viewEdit"
227 @input="updaterow()">
228 <el-radio :label="1"></el-radio>
229 <el-radio :label="0"></el-radio>
230 </el-radio-group>
231 </el-form-item>
232 </el-col>
233 <el-col
234 :span="6"
235 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
236 <el-form-item label="持证人:">
237 <el-select
238 v-model="czr"
239 placeholder="持证人"
240 :disabled="!viewEdit">
241 <el-option
242 v-for="(item,index) in czrOptions"
243 :key="index"
244 :label="item.sqrmc"
245 :value="item.id">
246 </el-option>
247 </el-select>
248 </el-form-item>
249 </el-col>
250 </el-row>
251 <qlrCommonTable
252 @upDateQlrxxList="upDateQlrxxList"
253 :disabled="!viewEdit"
254 :tableData="ruleForm.qlrList"
255 :gyfs="ruleForm.sldy.gyfs" />
256 <div class="slxx_title title-block">
257 登记原因
258 <div class="triangle"></div>
259 </div>
260 <el-row :gutter="10">
261 <el-col>
262 <el-form-item v-if="ruleForm.fdcq2" label="登记原因:" prop="fdcq2.djyy">
263 <el-input
264 class="textArea"
265 type="textarea"
266 maxlength="500"
267 show-word-limit
268 :disabled="!viewEdit"
269 v-model="ruleForm.fdcq2.djyy">
270 </el-input>
271 </el-form-item>
272 </el-col>
273 </el-row>
274 </div>
275 <el-row class="btn" v-if="isSave">
276 <el-form-item>
277 <el-button type="primary" @click="onSubmit">保存</el-button>
278 </el-form-item>
279 </el-row>
280 </el-form>
281 </div>
282 </template>
283 <script>
284 import ywmix from "@/views/ywbl/mixin/index";
285 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
286 import tdytTable from "@/views/workflow/components/tdytTable";
287 import { Init, saveData } from "@/api/workflow/fwsyqFlow.js";
288 import { mapGetters } from "vuex";
289 export default {
290 mixins: [ywmix],
291 mounted () {
292 let that = this
293 this.loading = true
294 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
295 this.propsParam = this.$attrs;
296 var formdata = new FormData();
297 formdata.append("bsmSldy", this.propsParam.bsmSldy);
298 formdata.append("djlx", this.propsParam.djlx);
299 formdata.append("isEdit", this.viewEdit);
300 Init(formdata).then((res) => {
301 setTimeout(() => {
302 this.loading = false
303 }, 200)
304 if (res.code === 200 && res.result) {
305 that.ruleForm = {
306 ...res.result,
307 ...res.result.zdjbxxdatas,
308 ...res.result.qlxxdatas,
309 ...res.result.jsydsyqdatas,
310 };
311 that.ruleForm.qlrList.forEach((item) => {
312 item.id = item.bsmSqr
313 if (item.sfczr == '1') {
314 that.czr = item.bsmSqr
315 }
316 })
317 that.czrOptions = that.ruleForm.qlrList;
318 that.isSave = that.viewEdit
319 } else {
320 that.isSave = false
321 that.$confirm(res.message, '提示', {
322 cancelButtonText: '取消',
323 showConfirmButton: false,
324 type: 'warning'
325 })
326 }
327 }).catch(() => {
328 this.loading = false
329 this.isSave = false
330 })
331 },
332 components: { qlrCommonTable, tdytTable },
333 computed: {
334 ...mapGetters(["dictData", "flag"]),
335 },
336 data () {
337 return {
338 isSave: true,
339 loading: false,
340 mjdw: "1",
341 //表单是否可操作
342 viewEdit: false,
343 disabled: true,
344 tdytOption: [],
345 czrOptions: [],
346 czr: "",
347 ruleForm: {
348 flow: {
349 ywh: "",
350 },
351 slry: "",
352 slsj: "",
353 qllx: "",
354 djlx: "",
355 djqx: "",
356 sldy: {
357 gyfs: "",
358 },
359 // 宗地代码
360 zddm: "",
361 bdcdyh: "",
362 qlxzmc: "",
363 qlrxx: [],
364 // 自然幢号
365 zrzh: "",
366 // 户不动产单元号
367 hbdcdyh: "",
368 djzt: "",
369 // 图幅丘幢号
370 tfqzh: "",
371 zl: "",
372 // 房屋用途
373 fwyt: "",
374 fwxz: "",
375 fwjg: "",
376 // 权利人信息
377 // 是否分别持证
378 sffbcz: "",
379 // 持证人
380 czr: "",
381 djyy: "",
382 // 规划用途名称
383 zdjbxx: {
384 ghytmc: "",
385 },
386 fdcq2: {
387 fwxzmc: "",
388 },
389 slsq: {
390 gyfs: "",
391 },
392 },
393 //传递参数
394 propsParam: {},
395 rules: {
396 'fdcq2.djyy': [
397 { required: true, message: '请输入登记原因', trigger: 'blur' }
398 ]
399 }
400 }
401 },
402 methods: {
403 /**
404 * @description: dataSelectClick
405 * @author: renchao
406 */
407 dataSelectClick () {
408 this.$popup(
409 "房屋所有权",
410 this.BASE_API.SERVERAPI + "/rest/ywbl/fdcq2/slxxCompareDetai",
411 {
412 formData: {
413 bsmSldy: this.propsParam.bsmSldy,
414 qllx: this.propsParam.qllx,
415 },
416 }
417 );
418 },
419 /**
420 * @description: 更新土地用途信息
421 * @param {*} val
422 * @author: renchao
423 */
424 upDateTdytxxList (val) {
425 this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
426 this.key++;
427 },
428 /**
429 * @description: 是否持证人变化
430 * @param {*} val
431 * @author: renchao
432 */
433 updaterow () {
434 this.czr = "";
435 },
436 /**
437 * @description: 更新权利人信息
438 * @param {*} val
439 * @author: renchao
440 */
441 upDateQlrxxList (val) {
442 if (!_.isEqual(val, this.ruleForm.qlrList)) {
443 this.ruleForm.qlrList = _.cloneDeep(val);
444 this.czrOptions = this.ruleForm.qlrList;
445 }
446 this.num = 0
447 this.ruleForm.qlrList.forEach(item => {
448 if (item.id == this.czr) {
449 this.num++
450 }
451 })
452 if (this.num == 0) {
453 this.czr = ''
454 }
455 },
456 /**
457 * @description: 更新权利人信息
458 * @param {*} val
459 * @author: renchao
460 */
461 upDateYwrxxList (val) {
462 this.ruleForm.ywrList = _.cloneDeep(val);
463 },
464 /**
465 * @description: onSubmit
466 * @author: renchao
467 */
468 onSubmit () {
469 let that = this;
470 let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
471 if (arr.length > 0) {
472 this.$message({
473 showClose: true,
474 message: "土地用途不能为空",
475 type: "error",
476 });
477 return false;
478 }
479 if (this.ruleForm.qlrList.length == 0) {
480 this.$message({
481 showClose: true,
482 message: "请确认权利人信息",
483 type: "error",
484 });
485 return false;
486 }
487
488 if (this.ruleForm.sldy.gyfs == "0") {
489 if (this.ruleForm.qlrList.length > 1) {
490 this.$message({
491 showClose: true,
492 message: "共有方式:单独所有,权利人只能是一个人",
493 type: "error",
494 });
495 return false;
496 }
497 this.ruleForm.qlrList[0].sfczr = "1";
498 } else {
499 if (this.ruleForm.qlrList.length <= 1) {
500 this.$message({
501 showClose: true,
502 message:
503 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
504 type: "error",
505 });
506 return false;
507 }
508 //是否分别持证
509 if (this.ruleForm.sldy.sqfbcz == "1") {
510 //是
511 this.ruleForm.qlrList.forEach((item, index) => {
512 item.sfczr = "1";
513 });
514 } else {
515 if (that.czr === '') {
516 that.$message({
517 showClose: true,
518 message: "请选择持证人",
519 type: "error"
520 });
521 return false;
522 }
523 this.ruleForm.qlrList.forEach(item => {
524 if (item.id == that.czr) {
525 item.sfczr = "1"
526 } else {
527 item.sfczr = "0"
528 }
529 })
530 }
531 }
532 this.$refs['ruleForm'].validate((valid) => {
533 if (valid) {
534 that.$store.dispatch("user/refreshPage", false);
535 saveData(that.ruleForm).then((res) => {
536 if (res.code === 200) {
537 that.$message({
538 showClose: true,
539 message: "保存成功!",
540 type: "success",
541 });
542 that.$store.dispatch("user/refreshPage", true);
543 } else {
544 that.$message({
545 showClose: true,
546 message: res.message,
547 type: "error",
548 });
549 }
550 })
551
552 } else {
553 that.$message({
554 showClose: true,
555 message: "请输入登记原因",
556 type: "error"
557 })
558 return false
559 }
560 })
561 },
562 /**
563 * @description: compare
564 * @author: renchao
565 */
566 compare () {
567 this.$popupDialog(
568 this.ruleForm.qlxx.qllxmc,
569 "registerBook/comparison",
570 {
571 bsmQlxx: this.ruleForm.qlxx.bsmQlxx,
572 dqqllx: "FDCQ2",
573 },
574 "80%",
575 true
576 );
577 },
578 },
579 };
580 </script>
581 <style scoped lang="scss">
582 @import "~@/styles/public.scss";
583 @import "~@/styles/slxx/slxx.scss";
584 /deep/.el-form {
585 display: flex;
586 flex-direction: column;
587 height: calc(100vh - 130px);
588 }
589
590 /deep/.el-form-item__label {
591 padding: 0;
592 }
593
594 /deep/.el-radio {
595 margin-right: 10px;
596 }
597
598 /deep/.el-select {
599 width: 100%;
600 }
601
602 /deep/.el-form-item {
603 margin-bottom: 3px;
604 }
605
606 .marginBot0 {
607 margin-bottom: 0 !important;
608 }
609
610 .slxx {
611 box-sizing: border-box;
612 }
613
614 .slxx_con {
615 flex: 1;
616 height: 100%;
617 background-color: #ffffff;
618 overflow-y: auto;
619 padding-right: 3px;
620 overflow-x: hidden;
621 }
622
623 .submit_btn {
624 height: 50px;
625 }
626
627 .btn {
628 text-align: center;
629 padding-top: 10px;
630 height: 36px;
631 background-color: #ffffff;
632 padding: 5px 0;
633 }
634
635 .textArea {
636 /deep/.el-textarea__inner {
637 min-height: 90px !important;
638 }
639 }
640
641 /deep/.el-form-item__label {
642 padding-bottom: 0px;
643 }
644 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2023-08-24 16:15:50
5 -->
6 <template>
7 <div class="djxxTable" :style="{'max-height': this.timeLineHeight + 'px' }"
8 style="overflow-y:scroll;">
9 <div class="tableBox">
10 <div class="title">
11 <span>{{ title }}</span>
12 </div>
13 <div class="xxTableBox">
14 <table class="xxTable">
15 <tr>
16 <td></td>
17 <td>变更前</td>
18 <td>变更后</td>
19 </tr>
20 <tr v-for="(item, colindex) in columns" :key="colindex">
21 <td>
22 {{ item.label }}
23 </td>
24 <td
25 v-for="(row, index) in tableData"
26 :key="index"
27 :class="[
28 row.qszt == '2' ? 'lishi' : '',
29 row.qszt == '0' ? 'linshi' : '',
30 row.qlzt == '4' ? 'linshi' : '',
31
32 item.prop == 'qszt' && row.qlzt == '3' ? 'linshiIcon' : '',
33 item.prop == 'qszt' && row.qlzt == '2' ? 'linshiIcon' : '',
34 item.prop == 'qszt' && row.qlzt == '1' ? 'xianshiIcon' : '',
35 item.prop == 'qszt' && row.qlzt == '4' ? 'zhuxiaoIcon' : ''
36 ]">
37 <div class="icon" v-if="item.prop == 'qszt' &&row.qlzt == '1'">
38 有效
39 </div>
40 <div class="icon" v-if="item.prop == 'qszt' && row.qlzt == '2'">
41 正在补录
42 </div>
43 <div class="icon" v-if="item.prop == 'qszt' && row.qlzt == '3'">
44 正在申请
45 </div>
46 <div class="icon" v-if="item.prop == 'qszt' && row.qlzt == '4'">
47 正在注销
48 </div>
49
50 <p v-if="!['djyy','fj'].includes(item.prop)">
51 <span v-if="item.prop == 'qszt'">
52 {{ getQsztName(row[item.prop]) }}
53 </span>
54 <span v-else>{{ row[item.prop] }}</span>
55 </p>
56
57 <el-tooltip v-else effect="dark" :content="row[item.prop]" placement="top" popper-class="tooltip-width">
58 <span class="ellipsis-line">
59 {{ row[item.prop] }}
60 </span>
61 </el-tooltip>
62 </td>
63 </tr>
64 </table>
65 </div>
66 </div>
67 </div>
68 </template>
69
70 <script>
71 import { getFdcqLSInfo } from "@/api/djbDetail.js";
72 import { datas } from "@/views/registerBook/qlxxFormData.js";
73
74 export default {
75 data () {
76 return {
77 title: "房地产权登记信息(独幢、层、套、间房屋)",
78 qsztList: datas.columns().qsztList,
79 checkList: datas.columns().checkList,
80 //传递参数
81 propsParam: this.$attrs,
82 //列表数据
83 tableData: [],
84 //空列值个数
85 emptycolNum: 1,
86 //列名称对象
87 columns: datas.columns().FDCQ2,
88 tdColumns: datas.columns().JSYDSYQ
89
90 };
91 },
92 created () {
93 this.loadData();
94 },
95 mounted () {
96 this.timeLineHeight = document.documentElement.clientHeight - 210;
97 window.onresize = () => {
98 this.timeLineHeight = document.documentElement.clientHeight - 210;
99 };
100 },
101 methods: {
102 /**
103 * @description: loadData
104 * @author: renchao
105 */
106 loadData () {
107 var formdata = new FormData();
108 formdata.append("bsmSldy", this.propsParam.formData.bsmSldy);
109 formdata.append("qllx", this.propsParam.formData.qllx);
110 formdata.append("isEdit", this.ableOperation);
111 getFdcqLSInfo(formdata).then((res) => {
112 if (res.code === 200) {
113 this.tableData = res.result;
114 if (this.tableData.length < datas.columns().emptycolNum) {
115 this.emptycolNum =
116 datas.columns().emptycolNum - this.tableData.length;
117 } else {
118 this.emptycolNum = 0;
119 }
120 }
121 });
122 },
123 /**
124 * @description: checkChange
125 * @author: renchao
126 */
127 checkChange () {
128 if (this.checkList.length === 0) {
129 this.tableData = [];
130 this.emptycolNum = datas.columns().emptycolNum;
131 } else {
132 this.loadData();
133 }
134 },
135 /**
136 * @description: getQsztName
137 * @param {*} code
138 * @author: renchao
139 */
140 getQsztName (code) {
141 let name = "";
142 for (let item of this.qsztList) {
143 if (item.value == code) {
144 name = item.label;
145 break;
146 }
147 }
148 return name;
149 },
150 },
151 };
152 </script>
153
154 <style lang="scss" scoped>
155 @import "~@/views/registerBook/qlxxCommon.scss";
156 </style>
1 <!--
2 * @Description: 受理信息
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-24 09:30:19
5 -->
6 <template>
7 <div class="slxx">
8 <el-form
9 :model="ruleForm"
10 :rules="rules"
11 ref="ruleForm"
12 v-Loading="loading"
13 :label-position="flag ? 'top' : ''"
14 :inline="flag"
15 label-width="130px">
16 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
17 <div class="slxx_title title-block">
18 申请业务信息
19 <div class="triangle"></div>
20 </div>
21 <el-row :gutter="10" v-if="ruleForm.slsq">
22 <el-col :span="8">
23 <el-form-item label="业务号:">
24 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理人员:">
29 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
30 </el-form-item>
31 </el-col>
32 <el-col :span="8">
33 <el-form-item label="受理时间:">
34 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
35 </el-form-item>
36 </el-col>
37 </el-row>
38 <el-row :gutter="10" v-if="ruleForm.slsq">
39 <el-col :span="8" v-if="ruleForm.sldyList.length > 0">
40 <el-form-item label="权利类型:">
41 <el-input
42 disabled
43 v-model="ruleForm.sldyList[0].qllxmc"></el-input>
44 </el-form-item>
45 </el-col>
46 <el-col :span="8" v-if="ruleForm.sldyList.length > 0">
47 <el-form-item label="登记类型:">
48 <el-input
49 disabled
50 v-model="ruleForm.sldyList[0].djlxmc"></el-input>
51 </el-form-item>
52 </el-col>
53 <el-col :span="8">
54 <el-form-item label="登记情形:">
55 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
56 </el-form-item>
57 </el-col>
58 </el-row>
59 <div class="slxx_title title-block" v-if="ruleForm.slsq.djywbm.includes('100')">
60 <el-row>
61 <el-col :span="19">
62 <p>房屋信息列表({{ ruleForm.hlist.length }} 户)</p>
63 </el-col>
64 <el-col :span="5">
65 <el-form-item label="发证方式:" :disabled="!viewEdit">
66 <el-radio-group v-model="ruleForm.slsq.fzfs">
67 <el-radio label="2">大证</el-radio>
68 <el-radio label="1">小证</el-radio>
69 </el-radio-group>
70 </el-form-item>
71 </el-col>
72 <!-- <div class="triangle"></div> -->
73 </el-row>
74 </div>
75 <qjhTable :tableData="ruleForm.hlist" v-if="ruleForm.slsq.djywbm.includes('100')"/>
76 <cfBdcdyTable :tableData="ruleForm.qlxxList" v-if="ruleForm.slsq.djywbm.includes('400')"/>
77 <div class="slxx_title title-block" v-if="ruleForm.slsq.djywbm.includes('100')">
78 权利人信息
79 <div class="triangle"></div>
80 </div>
81 <el-row :gutter="10" v-if="ruleForm.slsq.djywbm.includes('100')">
82 <el-col :span="12" v-if="ruleForm.sldyList.length > 0">
83 <el-form-item label="共有方式:">
84 <el-radio-group
85 :disabled="!viewEdit"
86 v-model="ruleForm.sldyList[0].gyfs">
87 <el-radio label="0">单独所有</el-radio>
88 <el-radio label="1">共同共有</el-radio>
89 <el-radio label="2">按份所有</el-radio>
90 <el-radio label="3">其它共有</el-radio>
91 </el-radio-group>
92 </el-form-item>
93 </el-col>
94
95 <el-col :span="6" v-if="ruleForm.sldyList[0].gyfs != 0">
96 <el-form-item label="是否分别持证:">
97 <el-radio-group
98 v-model="ruleForm.sldyList[0].sqfbcz"
99 :disabled="!viewEdit"
100 @input="updaterow()">
101 <el-radio :label="1"></el-radio>
102 <el-radio :label="0"></el-radio>
103 </el-radio-group>
104 </el-form-item>
105 </el-col>
106 <el-col
107 :span="6"
108 v-if="
109 ruleForm.sldyList[0].gyfs != 0 &&
110 ruleForm.sldyList[0].sqfbcz == '0'
111 ">
112 <el-form-item label="持证人:">
113 <el-select
114 v-model="czr"
115 placeholder="持证人"
116 :disabled="!viewEdit">
117 <el-option
118 v-for="(item,index) in czrOptions"
119 :key="index"
120 :label="item.sqrmc"
121 :value="item.id"></el-option>
122 </el-select>
123 </el-form-item>
124 </el-col>
125 </el-row>
126 <qlrCommonTable
127 :disabled="viewEdit"
128 @upDateQlrxxList="upDateQlrxxList"
129 :tableData="ruleForm.qlrList"
130 :gyfs="ruleForm.sldyList[0].gyfs" v-if="ruleForm.slsq.djywbm.includes('100')" />
131 <div class="slxx_title title-block">
132 登记原因
133 <div class="triangle"></div>
134 </div>
135 <el-row :gutter="10">
136 <el-col v-if="ruleForm.fdcq2List.length > 0">
137 <el-form-item v-if="ruleForm.slsq" label="登记原因:" prop="djyy">
138 <el-input
139 class="textArea"
140 type="textarea"
141 maxlength="500"
142 show-word-limit
143 :disabled="!viewEdit"
144 v-model="ruleForm.fdcq2List[0].djyy">
145 </el-input>
146 </el-form-item>
147 </el-col>
148 </el-row>
149 </div>
150 <el-row class="btn" v-if="isSave">
151 <el-form-item>
152 <el-button type="primary" @click="onSubmit">保存</el-button>
153 </el-form-item>
154 </el-row>
155 </el-form>
156 </div>
157 </template>
158 <script>
159 import ywmix from "@/views/ywbl/mixin/index";
160 import cfBdcdyTable from "@/views/workflow/components/cfBdcdyTable";
161 import qjhTable from "@/views/workflow/components/qjhTable";
162 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
163 import {
164 BatchInit,
165 Init,
166 saveBatchData,
167 saveData,
168 } from "@/api/workflow/fwsyqFlow.js";
169 import { mapGetters } from "vuex";
170 export default {
171 mixins: [ywmix],
172 computed: {
173 ...mapGetters(["dictData", "flag"])
174 },
175 components: { qlrCommonTable, cfBdcdyTable,qjhTable},
176 data () {
177 return {
178 isSave: true,
179 loading: false,
180 disabled: true,
181 tdytOption: [],
182 ruleForm: {
183 cfdjList: [], //查封登记
184 diyaqList: [], //抵押权
185 fdcq2List: [], //房屋信息集合
186 qlrList: [], //权利人
187 ywrList: [], //义务人
188 qlxxList: [], //权利信息集合
189 sldyList: [], //受理不动产单元集合
190 slsq: {}, //受理申请流程明细
191 flow: {}, //受理申请流程明细
192 sqrList: [], //申请人
193 ssQlxxList: [], //上手权利信息
194 user: {}, //用户
195 zdjbxx: {}, //宗地基本信息
196 },
197 czrOptions: [],
198 czr: "",
199 //传递参数
200 propsParam: this.$attrs,
201 //表单是否可操作
202 viewEdit: true,
203 rules: {},
204 gyfs: "",
205 bsmSlsq: this.$route.query.bsmSlsq, //受理申请标识码
206 };
207 },
208 mounted (callbackfn, thisArg) {
209 let that = this
210 this.loading = true
211 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
212 this.propsParam = this.$attrs;
213 var formdata = new FormData();
214 formdata.append("bsmSldy", this.propsParam.bsmSldy);
215 formdata.append("djlx", this.propsParam.djlx);
216 formdata.append("bsmSlsq", this.bsmSlsq);
217 formdata.append("isEdit", this.viewEdit);
218 BatchInit(formdata).then((res) => {
219 setTimeout(() => {
220 this.loading = false
221 }, 200)
222 if (res.code == 200) {
223 this.ruleForm = res.result;
224 this.czrOptions = this.ruleForm.qlrList;
225 this.gyfs = this.ruleForm.sldyList[0].gyfs;
226 this.ruleForm.qlrList.forEach((item) => {
227 item.id = item.bsmSqr
228 if (item.sfczr == '1') {
229 that.czr = item.bsmSqr
230 }
231 })
232 that.isSave = this.viewEdit
233
234 } else {
235 that.isSave = false
236 that.$confirm(res.message, '提示', {
237 cancelButtonText: '取消',
238 showConfirmButton: false,
239 type: 'warning'
240 })
241 }
242 }).catch(() => {
243 this.loading = false
244 })
245 },
246 methods: {
247 /**
248 * @description: 更新权利人信息
249 * @param {*} val
250 * @author: renchao
251 */
252 upDateQlrxxList (val) {
253 if (!_.isEqual(val, this.ruleForm.qlrList)) {
254 this.ruleForm.qlrList = _.cloneDeep(val);
255 this.czrOptions = this.ruleForm.qlrList;
256 }
257 this.num = 0
258 this.ruleForm.qlrList.forEach(item => {
259 if (item.id == this.czr) {
260 this.num++
261 }
262 })
263 if (this.num == 0) {
264 this.czr = ''
265 }
266 },
267 /**
268 * @description: 是否持证人变化
269 * @param {*} val
270 * @author: renchao
271 */
272 updaterow () {
273 this.czr = "";
274 },
275 // 更新义务人信息
276 /**
277 * @description: 更新义务人信息
278 * @param {*} val
279 * @author: renchao
280 */
281 upDateYwrxxList (val) {
282 this.ruleForm.ywrList = _.cloneDeep(val);
283 },
284 /**
285 * @description: onSubmit
286 * @author: renchao
287 */
288 onSubmit () {
289 let that = this;
290 if (this.ruleForm.qlrList.length == 0) {
291 this.$message({
292 showClose: true,
293 message: "请确认权利人信息",
294 type: "error",
295 });
296 return false;
297 }
298 if (this.ruleForm.sldyList[0].gyfs == "0") {
299 if (this.ruleForm.qlrList.length > 1) {
300 this.$message({
301 showClose: true,
302 message: "共有方式:单独所有,权利人只能是一个人",
303 type: "error",
304 });
305 return false;
306 }
307 this.ruleForm.qlrList[0].sfczr = "1";
308 } else {
309 if (this.ruleForm.qlrList.length <= 1) {
310 this.$message({
311 showClose: true,
312 message:
313 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
314 type: "error",
315 });
316 return false;
317 }
318 //是否分别持证
319 if (this.ruleForm.sldyList[0].sqfbcz == "1") {
320 //是
321 this.ruleForm.qlrList.forEach((item, index) => {
322 item.sfczr = "1";
323 });
324 } else {
325 if (that.czr === '') {
326 that.$message({
327 showClose: true,
328 message: "请选择持证人",
329 type: "error"
330 });
331 return false;
332 }
333 this.ruleForm.qlrList.forEach((item, index) => {
334 if (item.id == that.czr) {
335 item.sfczr = "1"
336 } else {
337 item.sfczr = "0"
338 }
339 })
340 }
341 }
342 saveBatchData(this.ruleForm).then((res) => {
343 if (res.code === 200) {
344 this.$message({
345 showClose: true,
346 message: "保存成功!",
347 type: "success",
348 });
349 this.$store.dispatch("user/refreshPage", true);
350 } else {
351 this.$message({
352 showClose: true,
353 message: res.message,
354 type: "error"
355 })
356 }
357 })
358 }
359 }
360 }
361 </script>
362 <style scoped lang="scss">
363 @import "~@/styles/public.scss";
364
365 /deep/.el-form {
366 display: flex;
367 flex-direction: column;
368 height: calc(100vh - 130px);
369 }
370
371 /deep/.el-form-item__label {
372 padding: 0;
373 }
374
375 /deep/.el-radio {
376 margin-right: 10px;
377 }
378
379 /deep/.el-select {
380 width: 100%;
381 }
382
383 /deep/.el-form-item {
384 margin-bottom: 3px;
385 }
386
387 .marginBot0 {
388 margin-bottom: 0 !important;
389 }
390
391 .slxx {
392 box-sizing: border-box;
393 }
394
395 .slxx_con {
396 flex: 1;
397 height: 100%;
398 background-color: #ffffff;
399 overflow-y: auto;
400 padding-right: 3px;
401 overflow-x: hidden;
402 }
403
404 .submit_btn {
405 height: 50px;
406 }
407
408 .btn {
409 text-align: center;
410 padding-top: 10px;
411 height: 36px;
412 background-color: #ffffff;
413 padding: 5px 0;
414 }
415
416 .textArea {
417 /deep/.el-textarea__inner {
418 min-height: 90px !important;
419 }
420 }
421
422 /deep/.el-form-item__label {
423 padding-bottom: 0px;
424 }
425 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-31 10:13:28
5 -->
6 <template>
7 <!-- 受理信息 -->
8 <div class="slxx">
9 <el-form
10 :model="ruleForm"
11 :rules="rules"
12 ref="ruleForm"
13 v-Loading="loading"
14 :label-position="flag ? 'top' : ''"
15 :inline="flag"
16 label-width="120px">
17 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
18 <div class="slxx_title title-block">
19 申请业务信息
20 <div class="triangle"></div>
21 </div>
22 <el-row :gutter="10">
23 <el-col :span="8">
24 <el-form-item label="业务号:" prop="ywh">
25 <el-input disabled v-model="ruleForm.ywh"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理人员:" prop="slry">
30 <el-input disabled v-model="ruleForm.slry"></el-input>
31 </el-form-item>
32 </el-col>
33 <el-col :span="8">
34 <el-form-item label="受理时间:" prop="slsj">
35 <el-input disabled v-model="ruleForm.slsj"></el-input>
36 </el-form-item>
37 </el-col>
38 </el-row>
39 <el-row :gutter="10">
40 <el-col :span="8">
41 <el-form-item label="权利类型:" prop="qllx">
42 <el-select
43 disabled
44 v-model="ruleForm.qllx"
45 filterable
46 clearable
47 placeholder="请选择权利类型">
48 <el-option
49 v-for="item in dictData['A8']"
50 :key="item.dcode"
51 :label="item.dname"
52 :value="item.dcode">
53 </el-option>
54 </el-select>
55 </el-form-item>
56 </el-col>
57 <el-col :span="8">
58 <el-form-item label="登记类型:" prop="djlx">
59 <el-select
60 disabled
61 v-model="ruleForm.djlx"
62 filterable
63 clearable
64 placeholder="请选择登记类型">
65 <el-option
66 v-for="item in dictData['A21']"
67 :key="item.dcode"
68 :label="item.dname"
69 :value="item.dcode">
70 </el-option>
71 </el-select>
72 </el-form-item>
73 </el-col>
74 <el-col :span="8">
75 <el-form-item label="登记情形:" prop="djqx">
76 <el-input disabled v-model="ruleForm.djqxmc"></el-input>
77 </el-form-item>
78 </el-col>
79 </el-row>
80 <div class="slxx_title title-block">
81 <el-row>
82 <el-col :span="20">
83 不动产单元情况
84 </el-col>
85 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
86 <el-form-item label="是否创建证书:" style="height:24px">
87 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
88 <el-radio label="1"></el-radio>
89 <el-radio label="0"></el-radio>
90 </el-radio-group>
91 </el-form-item>
92 </el-col>
93 </el-row>
94 <div class="triangle"></div>
95 </div>
96 <el-row :gutter="10">
97 <el-col :span="8">
98 <el-form-item label="宗地代码:" prop="zddm">
99 <el-input disabled v-model="ruleForm.bdcdyh"></el-input>
100 </el-form-item>
101 </el-col>
102 <el-col :span="8">
103 <el-form-item label="不动产单元号:" prop="bdcdyh">
104 <el-input disabled v-model="ruleForm.bdcdyh"></el-input>
105 </el-form-item>
106 </el-col>
107 <el-col :span="8">
108 <el-form-item label="权利性质:" prop="qlxzmc">
109 <el-input disabled v-model="ruleForm.qlxzmc"></el-input>
110 </el-form-item>
111 </el-col>
112 </el-row>
113 <el-row :gutter="10">
114 <el-col :span="8">
115 <el-form-item label="自然幢号:" prop="zrzh">
116 <el-input disabled v-model="ruleForm.zrzDetail.zrzh"></el-input>
117 </el-form-item>
118 </el-col>
119 <el-col :span="8">
120 <el-form-item label="户不动产单元号:" prop="ghytmc">
121 <el-input disabled v-model="ruleForm.ghytmc"></el-input>
122 </el-form-item>
123 </el-col>
124 <el-col :span="8">
125 <el-form-item label="登记状态:" prop="djzt">
126 <el-select disabled v-model="ruleForm.djzt" filterable clearable>
127 <el-option
128 v-for="item in djztList"
129 :key="item.value"
130 :label="item.label"
131 :value="item.value">
132 </el-option>
133 </el-select>
134 </el-form-item>
135 </el-col>
136 </el-row>
137 <el-row :gutter="10">
138 <el-col :span="8">
139 <el-form-item label="图幅丘幢号:" prop="tfqzh">
140 <el-input disabled v-model="ruleForm.tfqzh"></el-input>
141 </el-form-item>
142 </el-col>
143
144 <el-col :span="16">
145 <el-form-item label="坐落:" prop="zl">
146 <el-input disabled v-model="ruleForm.zl"></el-input>
147 </el-form-item>
148 </el-col>
149 </el-row>
150 <el-row :gutter="10">
151 <el-col :span="8">
152 <el-form-item label="房屋用途:">
153 <el-input disabled v-model="ruleForm.ytmc"></el-input>
154 </el-form-item>
155 </el-col>
156 <el-col :span="8">
157 <el-form-item label="房屋性质:">
158 <el-input disabled v-model="ruleForm.fwxz"></el-input>
159 </el-form-item>
160 </el-col>
161 <el-col :span="8">
162 <el-form-item label="房屋结构:">
163 <el-input disabled v-model="ruleForm.fwjg"></el-input>
164 </el-form-item>
165 </el-col>
166 </el-row>
167 <div class="slxx_title title-block">
168 土地用途
169 <div class="triangle"></div>
170 </div>
171 <tdytTable
172 :ableOperation="viewEdit"
173 :tableData="ruleForm.tdytqxList"
174 @upDateTdytxxList="upDateTdytxxList" />
175 <div class="slxx_title title-block">
176 权利人信息
177 <div class="triangle"></div>
178 </div>
179 <el-row :gutter="10">
180 <el-col :span="14">
181 <el-form-item label="共有方式:">
182 <el-radio-group :disabled="!viewEdit" v-model="ruleForm.gyfs">
183 <el-radio label="1">单独所有</el-radio>
184 <el-radio label="2">共同共有</el-radio>
185 <el-radio label="3">按份所有</el-radio>
186 </el-radio-group>
187 </el-form-item>
188 </el-col>
189
190 <el-col :span="5" v-show="ruleForm.gyfs != '1'">
191 <el-form-item label="是否分别持证:">
192 <el-radio-group
193 v-model="ruleForm.sffbcz"
194 :disabled="!viewEdit"
195 @input="updaterow()">
196 <el-radio label="1"></el-radio>
197 <el-radio label="0"></el-radio>
198 </el-radio-group>
199 </el-form-item>
200 </el-col>
201 <el-col
202 :span="5"
203 v-show="ruleForm.gyfs != '0' && ruleForm.sffbcz == '0'">
204 <el-form-item label="持证人:">
205 <el-select
206 v-model="czr"
207 placeholder="持证人"
208 :disabled="!viewEdit">
209 <el-option
210 v-for="(item,index) in czrOptions"
211 :key="index"
212 :label="item.sqrmc"
213 :value="item.id">
214 </el-option>
215 </el-select>
216 </el-form-item>
217 </el-col>
218 </el-row>
219 <qlrCommonTable
220 :tableData="ruleForm.qlrList"
221 @upDateQlrxxList="upDateQlrxxList"
222 :gyfs="ruleForm.gyfs"
223 :disabled="viewEdit" />
224 <div class="slxx_title title-block">
225 登记原因
226 <div class="triangle"></div>
227 </div>
228 <el-row :gutter="10">
229 <el-col>
230 <el-form-item label="登记原因:" prop="djyy">
231 <el-input
232 class="textArea"
233 type="textarea"
234 maxlength="500"
235 show-word-limit
236 :disabled="!viewEdit"
237 v-model="ruleForm.djyy">
238 </el-input>
239 </el-form-item>
240 </el-col>
241 </el-row>
242 </div>
243 <el-row class="btn" v-if="isSave">
244 <el-form-item>
245 <el-button type="primary" @click="onSubmit">保存</el-button>
246 </el-form-item>
247 </el-row>
248 </el-form>
249 </div>
250 </template>
251 <script>
252 import ywmix from "@/views/ywbl/mixin/index";
253 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
254 import tdytTable from "@/views/workflow/components/tdytTable";
255 import { Init } from "@/api/workflow/fwsyqFlow.js";
256 import { mapGetters } from "vuex";
257 export default {
258 mixins: [ywmix],
259 mounted () {
260 let that = this
261 this.loading = true
262 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
263 this.propsParam = this.$attrs;
264 var formdata = new FormData();
265 formdata.append("bsmSldy", this.propsParam.bsmSldy);
266 Init(formdata).then((res) => {
267 setTimeout(() => {
268 this.loading = false
269 }, 200)
270 if (res.code === 200 && res.result) {
271 this.ruleForm = {
272 ...res.result,
273 ...res.result.zdjbxxdatas,
274 ...res.result.qlxxdatas,
275 ...res.result.jsydsyqdatas,
276 };
277 this.ruleForm.qlrList.forEach((item) => {
278 item.id = item.bsmSqr
279 if (item.sfczr == '1') {
280 that.czr = item.bsmSqr
281 }
282 });
283 this.czrOptions = this.ruleForm.qlrList;
284 that.isSave = this.viewEdit
285 } else {
286 that.isSave = false
287 that.$confirm(res.message, '提示', {
288 cancelButtonText: '取消',
289 showConfirmButton: false,
290 type: 'warning'
291 })
292 }
293 }).catch(() => {
294 this.loading = false
295 this.isSave = false
296 })
297 },
298 components: { qlrCommonTable, tdytTable },
299 computed: {
300 ...mapGetters(["dictData", "flag"]),
301 },
302 data () {
303 return {
304 isSave: true,
305 // 键名转换,方法默认是label和children进行树状渲染
306 normalizer (node) {
307 //方法
308 if (node.children == null || node.children == "null") {
309 delete node.children;
310 }
311 return {
312 id: node.dcode,
313 label: node.dname,
314 };
315 },
316 loading: false,
317 //表单是否可操作
318 viewEdit: false,
319 disabled: true,
320 tdytOption: [],
321 czrOptions: [],
322 czr: "",
323 ruleForm: {
324 ywh: "",
325 slry: "",
326 slsj: "",
327 qllx: "",
328 djlx: "",
329 djqx: "",
330 // 宗地代码
331 zddm: "",
332 bdcdyh: "",
333 qlxzmc: "",
334 qlrxx: [],
335 // 自然幢号
336 zrzh: "",
337 // 户不动产单元号
338 ghytmc: "",
339 djzt: "",
340 // 图幅丘幢号
341 tfqzh: "",
342 zl: "",
343 // 房屋用途
344 fwyt: "",
345 fwxz: "",
346 fwjg: "",
347 // 权利人信息
348 gyfs: "1",
349 // 是否分别持证
350 sffbcz: "",
351 // 持证人
352 czr: "",
353 djyy: "",
354 },
355 //传递参数
356 propsParam: {},
357 rules: {
358 djyy: [
359 { required: true, message: '请输入登记原因', trigger: 'blur' }
360 ]
361 }
362 }
363 },
364 methods: {
365 /**
366 * @description: 更新土地用途信息
367 * @param {*} val
368 * @author: renchao
369 */
370 upDateTdytxxList (val) {
371 this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
372 this.czrOptions = this.ruleForm.qlrData;
373 this.key++;
374 },
375 /**
376 * @description: 更新权利人信息
377 * @param {*} val
378 * @author: renchao
379 */
380 upDateQlrxxList (val) {
381 if (!_.isEqual(val, this.ruleForm.qlrList)) {
382 this.ruleForm.qlrList = _.cloneDeep(val);
383 this.czrOptions = this.ruleForm.qlrList;
384 }
385 this.num = 0
386 this.ruleForm.qlrList.forEach(item => {
387 if (item.id == this.czr) {
388 this.num++
389 }
390 })
391 if (this.num == 0) {
392 this.czr = ''
393 }
394 },
395 /**
396 * @description: 是否持证人变化
397 * @param {*} val
398 * @author: renchao
399 */
400 updaterow () {
401 this.czr = "";
402 },
403 /**
404 * @description: list
405 * @param {*} bsmSldy
406 * @author: renchao
407 */
408 list (bsmSldy) {
409 var formdata = new FormData();
410 formdata.append("bsmSldy", bsmSldy);
411 formdata.append("isEdit", this.viewEdit);
412 Init(formdata).then((res) => {
413 if (res.code === 200 && res.result) {
414 this.ruleForm = {
415 ...res.result,
416 ...res.result.zdjbxxdatas,
417 ...res.result.qlxxdatas,
418 ...res.result.jsydsyqdatas,
419 };
420 } else {
421 this.$message.error(res.message);
422 }
423 });
424 },
425 /**
426 * @description: onSubmit
427 * @author: renchao
428 */
429 onSubmit () {
430 let that = this;
431 let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
432 if (arr.length > 0) {
433 this.$message({
434 showClose: true,
435 message: "土地用途不能为空",
436 type: "error",
437 });
438 return false;
439 }
440 if (this.ruleForm.qlrList.length == 0) {
441 this.$message({
442 showClose: true,
443 message: "请确认权利人信息",
444 type: "error",
445 });
446 return false;
447 }
448
449 if (this.ruleForm.gyfs == "0") {
450 if (this.ruleForm.qlrList.length > 1) {
451 this.$message({
452 showClose: true,
453 message: "共有方式:单独所有,权利人只能是一个人",
454 type: "error",
455 });
456 return false;
457 }
458 this.ruleForm.qlrList[0].sfczr = "1";
459 } else {
460 if (this.ruleForm.qlrList.length <= 1) {
461 this.$message({
462 showClose: true,
463 message:
464 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
465 type: "error",
466 });
467 return false;
468 }
469 //是否分别持证
470 if (this.ruleForm.sqfbcz == "1") {
471 //是
472 this.ruleForm.qlrList.forEach((item, index) => {
473 item.sfczr = "1";
474 });
475 } else {
476 if (that.czr === '') {
477 that.$message({
478 showClose: true,
479 message: "请选择持证人",
480 type: "error"
481 })
482 return false;
483 }
484 this.ruleForm.qlrList.forEach((item, index) => {
485 if (item.id == that.czr) {
486 item.sfczr = "1"
487 } else {
488 item.sfczr = "0"
489 }
490 })
491 }
492 }
493 fristReg(this.ruleForm).then((res) => {
494 if (res.code === 200 && res.result) {
495 console.log(res);
496 //this.ruleForm = { ...res.result, ...res.result.zdjbxxdatas, ...res.result.qlxxdatas, ...res.result.jsydsyqdatas }
497 }
498 });
499 },
500 },
501 };
502 </script>
503 <style scoped lang="scss">
504 @import "~@/styles/public.scss";
505
506 /deep/.el-form {
507 display: flex;
508 flex-direction: column;
509 height: calc(100vh - 130px);
510 }
511
512 /deep/.el-form-item__label {
513 padding: 0;
514 }
515
516 /deep/.el-radio {
517 margin-right: 10px;
518 }
519
520 /deep/.el-select {
521 width: 100%;
522 }
523
524 /deep/.el-form-item {
525 margin-bottom: 3px;
526 }
527
528 .marginBot0 {
529 margin-bottom: 0 !important;
530 }
531
532 .slxx {
533 box-sizing: border-box;
534 }
535
536 .slxx_con {
537 flex: 1;
538 height: 100%;
539 background-color: #ffffff;
540 overflow-y: auto;
541 padding-right: 3px;
542 overflow-x: hidden;
543 }
544
545 .submit_btn {
546 height: 50px;
547 }
548
549 .btn {
550 text-align: center;
551 padding-top: 10px;
552 height: 36px;
553 background-color: #ffffff;
554 padding: 5px 0;
555 }
556
557 .textArea {
558 /deep/.el-textarea__inner {
559 min-height: 90px !important;
560 }
561 }
562
563 /deep/.el-form-item__label {
564 padding-bottom: 0px;
565 }
566 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-31 10:14:06
5 -->
6 <template>
7 <!-- 受理信息 -->
8 <div class="slxx">
9 <el-form
10 :model="ruleForm"
11 :rules="rules"
12 :class="{ readonly: editDisabled }"
13 v-Loading="loading"
14 ref="ruleForm"
15 :label-position="flag ? 'top' : ''"
16 :inline="flag"
17 label-width="120px">
18 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
19 <div class="slxx_title title-block">
20 申请业务信息
21 <div class="triangle"></div>
22 </div>
23 <el-row :gutter="10">
24 <el-col :span="8">
25 <el-form-item label="业务号:">
26 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
27 </el-form-item>
28 </el-col>
29 <el-col :span="8">
30 <el-form-item label="受理人员:">
31 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
32 </el-form-item>
33 </el-col>
34 <el-col :span="8">
35 <el-form-item label="受理时间:">
36 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
37 </el-form-item>
38 </el-col>
39 </el-row>
40 <el-row :gutter="10">
41 <el-col :span="8">
42 <el-form-item label="权利类型:">
43 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
44 </el-form-item>
45 </el-col>
46 <el-col :span="8">
47 <el-form-item label="登记类型:">
48 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
49 </el-form-item>
50 </el-col>
51 <el-col :span="8">
52 <el-form-item label="登记情形:">
53 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
54 </el-form-item>
55 </el-col>
56 </el-row>
57 <div class="slxx_title title-block">
58 <el-row>
59 <el-col :span="20">
60 不动产单元情况
61 </el-col>
62 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
63 <el-form-item label="是否创建证书:" style="height:24px">
64 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
65 <el-radio label="1"></el-radio>
66 <el-radio label="0"></el-radio>
67 </el-radio-group>
68 </el-form-item>
69 </el-col>
70 </el-row>
71 <div class="triangle"></div>
72 </div>
73 <el-row :gutter="10">
74 <el-col :span="8">
75 <el-form-item label="宗地代码:">
76 <el-input v-model="ruleForm.zdjbxx.zddm" disabled></el-input>
77 </el-form-item>
78 </el-col>
79 <el-col :span="8">
80 <el-form-item label="不动产单元号:">
81 <el-input v-model="ruleForm.sldy.bdcdyh" disabled></el-input>
82 </el-form-item>
83 </el-col>
84 <el-col :span="8">
85 <el-form-item label="权利性质:">
86 <treeselect
87 v-model="ruleForm.zdjbxx.qlxz"
88 noOptionsText="暂无数据"
89 :default-expand-level="1"
90 :disabled="!viewEdit"
91 placeholder=""
92 :normalizer="normalizer"
93 :show-count="true"
94 :options="dictData['A9']" />
95 </el-form-item>
96 </el-col>
97 </el-row>
98 <el-row :gutter="10">
99 <el-col :span="8">
100 <el-form-item label="使用权面积:">
101 <div class="flex">
102 <el-input
103 maxlength="12"
104 :disabled="!viewEdit"
105 v-model="ruleForm.jsydsyq.syqmj"
106 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
107 <el-select disabled v-model="mjdw" style="width: 68px">
108 <el-option
109 v-for="item in dictData['A7']"
110 :key="item.dcode"
111 :label="item.dname"
112 :value="item.dcode">
113 </el-option>
114 </el-select>
115 </div>
116 </el-form-item>
117 </el-col>
118 <el-col :span="8">
119 <el-form-item label="权利设定方式:">
120 <el-select v-model="ruleForm.zdjbxx.qlsdfs" :disabled="!viewEdit">
121 <el-option
122 v-for="item in dictData['A10']"
123 :key="item.dcode"
124 :label="item.dname"
125 :value="item.dcode">
126 </el-option>
127 </el-select>
128 </el-form-item>
129 </el-col>
130 <el-col :span="8">
131 <el-form-item label="取得价格:">
132 <div style="display: flex">
133 <el-input
134 maxlength="11"
135 :disabled="!viewEdit"
136 v-model="ruleForm.jsydsyq.qdjg"
137 style="width: 500%"
138 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
139 <el-select v-model="ruleForm.jsydsyq.jedw" :disabled="!viewEdit">
140 <el-option
141 v-for="item in dictData['A57']"
142 :key="item.dcode"
143 :label="item.dname"
144 :value="item.dcode">
145 </el-option>
146 </el-select>
147 </div>
148 </el-form-item>
149 </el-col>
150
151 <el-col :span="16">
152 <el-form-item label="坐落:">
153 <el-input maxlength="100" :disabled="!viewEdit" v-model="ruleForm.sldy.zl"></el-input>
154 </el-form-item>
155 </el-col>
156 </el-row>
157 <el-row :gutter="10">
158 <el-col>
159 <el-form-item label="附记:" prop="fj">
160 <el-input
161 type="textarea"
162 maxlength="500"
163 :disabled="!viewEdit"
164 show-word-limit
165 v-model="ruleForm.jsydsyq.fj"></el-input>
166 </el-form-item>
167 </el-col>
168 </el-row>
169 <div class="slxx_title title-block">
170 土地用途
171 <div class="triangle"></div>
172 </div>
173 <tdytTable
174 :ableOperation="viewEdit"
175 :tableData="ruleForm.tdytqxList"
176 @upDateTdytxxList="upDateTdytxxList" />
177 <div class="slxx_title title-block">
178 权利人信息
179 <div class="triangle"></div>
180 </div>
181 <el-row :gutter="10">
182 <el-col :span="12">
183 <el-form-item label="共有方式:">
184 <el-radio-group
185 :disabled="!viewEdit"
186 v-model="ruleForm.sldy.gyfs">
187 <el-radio label="0">单独所有</el-radio>
188 <el-radio label="1">共同共有</el-radio>
189 <el-radio label="2">按份所有</el-radio>
190 <el-radio label="3">其它共有</el-radio>
191 </el-radio-group>
192 </el-form-item>
193 </el-col>
194 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
195 <el-form-item label="是否分别持证:">
196 <el-radio-group
197 v-model="ruleForm.sldy.sqfbcz"
198 :disabled="!viewEdit"
199 @input="updaterow()">
200 <el-radio :label="1"></el-radio>
201 <el-radio :label="0"></el-radio>
202 </el-radio-group>
203 </el-form-item>
204 </el-col>
205 <el-col
206 :span="6"
207 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
208 <el-form-item label="持证人:">
209 <el-select
210 v-model="czr"
211 placeholder="持证人"
212 :disabled="!viewEdit">
213 <el-option
214 v-for="(item, index) in czrOptions"
215 :key="index"
216 :label="item.sqrmc"
217 :value="item.id">
218 </el-option>
219 </el-select>
220 </el-form-item>
221 </el-col>
222 </el-row>
223 <qlrCommonTable
224 :tableData="ruleForm.qlrList"
225 :disabled="viewEdit"
226 @upDateQlrxxList="upDateQlrxxList"
227 :key="key"
228 :gyfs="ruleForm.sldy.gyfs" />
229
230 <div v-if="ruleForm.ywrList && ruleForm.ywrList.length > 0 && ruleForm.qlxx.djlx==200">
231 <div class="slxx_title title-block">
232 义务人信息
233 <div class="triangle"></div>
234 </div>
235 <ywrCommonTable
236 v-if="ruleForm.ywrList"
237 :disabled="viewEdit"
238 :tableData="ruleForm.ywrList"
239 :key="key"
240 @upDateQlrxxList="upDateYwrxxList" />
241 </div>
242
243 <div class="slxx_title title-block">
244 登记原因
245 <div class="triangle"></div>
246 </div>
247 <el-row :gutter="10">
248 <el-col>
249 <el-form-item label="登记原因:" prop="jsydsyq.djyy">
250 <el-input
251 class="textArea"
252 type="textarea"
253 maxlength="500"
254 show-word-limit
255 :disabled="!viewEdit"
256 v-model="ruleForm.jsydsyq.djyy">
257 </el-input>
258 </el-form-item>
259 </el-col>
260 </el-row>
261 </div>
262 <el-row class="btn" v-if="isSave">
263 <el-form-item>
264 <el-button type="primary" @click="onSubmit">保存</el-button>
265 </el-form-item>
266 </el-row>
267 </el-form>
268 </div>
269 </template>
270 <script>
271 import { mapGetters } from "vuex";
272 import ywmix from "@/views/ywbl/mixin/index";
273 import { Init, saveData } from "@/api/workflow/jsydsyqFlow.js";
274 import tdytTable from "@/views/workflow/components/tdytTable";
275 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
276 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
277 export default {
278 mixins: [ywmix],
279 mounted () {
280 let that = this
281 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
282 this.propsParam = this.$attrs;
283 var formdata = new FormData();
284 this.loading = true
285 formdata.append("bsmSldy", this.propsParam.bsmSldy);
286 formdata.append("djlx", this.propsParam.djlx);
287 formdata.append("isEdit", this.viewEdit);
288 Init(formdata).then((res) => {
289 setTimeout(() => {
290 that.loading = false
291 }, 200)
292 if (res.code === 200) {
293 that.ruleForm = res.result;
294 that.ruleForm.qlrList.forEach((item) => {
295 item.id = item.bsmSqr
296 if (item.sfczr == '1') {
297 that.czr = item.bsmSqr
298 }
299 })
300 that.czrOptions = that.ruleForm.qlrList;
301 that.isSave = that.viewEdit
302 } else {
303 that.isSave = false
304 that.$confirm(res.message, '提示', {
305 cancelButtonText: '取消',
306 showConfirmButton: false,
307 type: 'warning'
308 })
309 }
310 }).catch(() => {
311 this.loading = false
312 this.isSave = false
313 })
314 },
315 components: { qlrCommonTable, tdytTable, ywrCommonTable },
316 computed: {
317 ...mapGetters(["dictData", "flag"]),
318 // 根据流程判断表单是否为只读
319 editDisabled () {
320 if (!this.viewEdit) {
321 //只读状态
322 return true;
323 }
324 return false;
325 },
326 },
327 data () {
328 return {
329 isSave: true,
330 // 键名转换,方法默认是label和children进行树状渲染
331 normalizer (node) {
332 //方法
333 if (node.children == null || node.children == "null") {
334 delete node.children;
335 }
336 return {
337 id: node.dcode,
338 label: node.dname,
339 };
340 },
341 loading: false,
342 mjdw: "1",
343 //表单是否可操作
344 viewEdit: true,
345 czr: "",
346 key: 0,
347 disabled: true,
348 czrOptions: [],
349 ruleForm: {},
350 //传递参数
351 propsParam: {},
352 rules: {
353 'jsydsyq.djyy': [
354 { required: true, message: '请输入登记原因', trigger: 'blur' }
355 ]
356 }
357 }
358 },
359 methods: {
360 /**
361 * @description: 更新土地用途信息
362 * @param {*} val
363 * @author: renchao
364 */
365 upDateTdytxxList (val) {
366 this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
367 this.key++;
368 },
369 /**
370 * @description: 更新权利人信息
371 * @param {*} val
372 * @author: renchao
373 */
374 upDateQlrxxList (val) {
375 this.ruleForm.qlrList && (this.ruleForm.qlrList = _.cloneDeep(val));
376 this.czrOptions = this.ruleForm.qlrList;
377 this.num = 0
378 this.ruleForm.qlrList.forEach(item => {
379 if (item.id == this.czr) {
380 this.num++
381 }
382 })
383 if (this.num == 0) {
384 this.czr = ''
385 }
386 },
387 /**
388 * @description: 是否持证人变化
389 * @param {*} val
390 * @author: renchao
391 */
392 updaterow () {
393 this.czr = "";
394 },
395 /**
396 * @description: 更新义务人信息
397 * @param {*} val
398 * @author: renchao
399 */
400 upDateYwrxxList (val) {
401 this.ruleForm.ywrList && (this.ruleForm.ywrList = _.cloneDeep(val));
402 this.key++;
403 },
404 /**
405 * @description: onSubmit
406 * @author: renchao
407 */
408 onSubmit () {
409 let that = this;
410 let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
411 if (arr.length > 0) {
412 this.$message({
413 showClose: true,
414 message: "土地用途不能为空",
415 type: "error",
416 });
417 return false;
418 }
419 if (this.ruleForm.qlrList.length == 0) {
420 this.$message({
421 showClose: true,
422 message: "请确认权利人信息",
423 type: "error",
424 });
425 return false;
426 }
427 if (this.ruleForm.sldy.gyfs == "0") {
428 if (this.ruleForm.qlrList.length > 1) {
429 this.$message({
430 showClose: true,
431 message: "共有方式:单独所有,权利人只能是一个人",
432 type: "error",
433 });
434 return false;
435 }
436 this.ruleForm.qlrList[0].sfczr = "1";
437 } else {
438 if (this.ruleForm.qlrList.length <= 1) {
439 this.$message({
440 showClose: true,
441 message:
442 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
443 type: "error",
444 });
445 return false;
446 }
447 //是否分别持证
448 if (this.ruleForm.sldy.sqfbcz == "1") {
449 //是
450 this.ruleForm.qlrList.forEach((item, index) => {
451 item.sfczr = "1";
452 });
453 } else {
454 if (that.czr === '') {
455 that.$message({
456 showClose: true,
457 message: "请选择持证人",
458 type: "error",
459 });
460 return false;
461 }
462 this.ruleForm.qlrList.forEach((item, index) => {
463 if (item.id == that.czr) {
464 item.sfczr = "1";
465 } else {
466 item.sfczr = "0";
467 }
468 });
469 }
470 }
471 /**
472 * @description: saveData
473 * @author: renchao
474 */
475 this.$refs['ruleForm'].validate((valid) => {
476 if (valid) {
477 that.$store.dispatch("user/refreshPage", false);
478 saveData(that.ruleForm).then((res) => {
479 if (res.code === 200) {
480 that.$message({
481 showClose: true,
482 message: "保存成功!",
483 type: "success"
484 })
485 that.$store.dispatch("user/refreshPage", true);
486 } else {
487 that.$message({
488 showClose: true,
489 message: res.message,
490 type: "error"
491 })
492 }
493 })
494 } else {
495 this.$message({
496 showClose: true,
497 message: "请输入登记原因",
498 type: "error"
499 })
500 return false
501 }
502 })
503 }
504 }
505 }
506 </script>
507 <style scoped lang="scss">
508 @import "~@/styles/public.scss";
509 @import "~@/styles/slxx/slxx.scss";
510 </style>
1 0
2 <!--
3 * @Description:
4 * @Autor: renchao
5 * @LastEditTime: 2024-01-31 10:14:22
6 -->
7 <template>
8 <!-- 受理信息 -->
9 <div class="slxx">
10 <el-form
11 :model="ruleForm"
12 :rules="rules"
13 v-Loading="loading"
14 ref="ruleForm"
15 :label-position="flag ? 'top' : ''"
16 :inline="flag"
17 label-width="120px">
18 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
19 <div class="slxx_title title-block">
20 申请业务信息
21 <div class="triangle"></div>
22 </div>
23 <el-row :gutter="10">
24 <el-col :span="8">
25 <el-form-item label="业务号:">
26 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
27 </el-form-item>
28 </el-col>
29 <el-col :span="8">
30 <el-form-item label="受理人员:">
31 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
32 </el-form-item>
33 </el-col>
34 <el-col :span="8">
35 <el-form-item label="受理时间:">
36 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
37 </el-form-item>
38 </el-col>
39 </el-row>
40 <el-row :gutter="10">
41 <el-col :span="8">
42 <el-form-item label="权利类型:">
43 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
44 </el-form-item>
45 </el-col>
46 <el-col :span="8">
47 <el-form-item label="登记类型:">
48 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
49 </el-form-item>
50 </el-col>
51 <el-col :span="8">
52 <el-form-item label="登记情形:">
53 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
54 </el-form-item>
55 </el-col>
56 </el-row>
57 <div class="slxx_title title-block">
58 <el-row>
59 <el-col :span="16">
60 不动产单元情况
61 </el-col>
62 <el-col :span="4">
63 <el-button @click="compare">变化情况对比+</el-button>
64 </el-col>
65 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
66 <el-form-item label="是否创建证书:" style="height:24px">
67 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
68 <el-radio label="1"></el-radio>
69 <el-radio label="0"></el-radio>
70 </el-radio-group>
71 </el-form-item>
72 </el-col>
73 </el-row>
74 <div class="triangle"></div>
75
76 </div>
77 <el-row :gutter="10">
78 <el-col :span="8">
79 <el-form-item label="原不动产权证号:">
80 <el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
81 </el-form-item>
82 </el-col>
83 <el-col :span="8">
84 <el-form-item label="不动产单元号:">
85 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
86 </el-form-item>
87 </el-col>
88 <el-col :span="8">
89 <el-form-item label="权利性质:">
90 <treeselect
91 :disabled="!viewEdit"
92 v-model="ruleForm.zdjbxx.qlxz"
93 noOptionsText="暂无数据"
94 placeholder=""
95 :normalizer="normalizer"
96 :default-expand-level="1"
97 :show-count="true"
98 :options="dictData['A9']" />
99 </el-form-item>
100 </el-col>
101 </el-row>
102 <el-row :gutter="10">
103 <el-col :span="8">
104 <el-form-item label="权利设定方式:">
105 <el-select v-model="ruleForm.zdjbxx.qlsdfs" :disabled="!viewEdit">
106 <el-option
107 v-for="item in dictData['A10']"
108 :key="item.dcode"
109 :label="item.dname"
110 :value="item.dcode">
111 </el-option>
112 </el-select>
113 </el-form-item>
114 </el-col>
115
116 <el-col :span="8">
117 <el-form-item label="宗地面积:">
118 <el-input :disabled="!viewEdit" v-model="ruleForm.zdjbxx.zdmj"></el-input>
119 </el-form-item>
120 </el-col>
121 <el-col :span="8">
122 <el-form-item label="取得价格:">
123 <div style="display: flex">
124 <el-input
125 maxlength="11"
126 v-model="ruleForm.jsydsyq.qdjg"
127 style="width: 500%"
128 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
129 :disabled="!viewEdit"></el-input>
130 <el-select v-model="ruleForm.jsydsyq.jedw" disabled>
131 <el-option
132 v-for="item in dictData['A57']"
133 :key="item.dcode"
134 :label="item.dname"
135 :value="item.dcode">
136 </el-option>
137 </el-select>
138 </div>
139 </el-form-item>
140 </el-col>
141 </el-row>
142 <el-row :gutter="10">
143 <el-col :span="8">
144 <el-form-item label="土地等级:">
145 <el-select placeholder="" v-model="ruleForm.zdjbxx.dj" :disabled="!viewEdit">
146 <el-option
147 v-for="item in dictData['A50']"
148 :key="item.dcode"
149 :label="item.dname"
150 :value="item.dcode">
151 </el-option>
152 </el-select>
153 </el-form-item>
154 </el-col>
155
156 <el-col :span="8">
157 <el-form-item label="图幅号:">
158 <el-input
159 :disabled="!viewEdit"
160 v-model="ruleForm.zdjbxx.tfh"></el-input>
161 </el-form-item>
162 </el-col>
163 <el-col :span="8">
164 <el-form-item label="地籍号:">
165 <el-input
166 v-model="ruleForm.zdjbxx.djh"
167 :disabled="!viewEdit"></el-input>
168 </el-form-item>
169 </el-col>
170
171 </el-row>
172 <el-row :gutter="10">
173 <el-col :span="8">
174 <el-form-item label="地块代码:">
175 <el-input
176 v-model="ruleForm.zdjbxx.dkdm"
177 :disabled="!viewEdit"></el-input>
178 </el-form-item>
179 </el-col>
180 <el-col :span="16">
181 <el-form-item label="坐落:">
182 <el-input :disabled="!viewEdit" v-model="ruleForm.sldy.zl"></el-input>
183 </el-form-item>
184 </el-col>
185 </el-row>
186 <el-row :gutter="10">
187 <el-col>
188 <el-form-item label="附记:" prop="fj">
189 <el-input
190 type="textarea"
191 maxlength="500"
192 show-word-limit
193 v-model="ruleForm.jsydsyq.fj"
194 :disabled="!viewEdit"></el-input>
195 </el-form-item>
196 </el-col>
197 </el-row>
198 <div class="slxx_title title-block">
199 土地用途
200 <div class="triangle"></div>
201 </div>
202 <tdytTable
203 :tableData="ruleForm.tdytqxList"
204 :ableOperation="viewEdit"
205 @upDateTdytxxList="upDateTdytxxList" />
206 <div class="slxx_title title-block">
207 权利人信息
208 <div class="triangle"></div>
209 </div>
210 <el-row :gutter="10">
211 <el-col :span="12">
212 <el-form-item label="共有方式:">
213 <el-radio-group
214 :disabled="!viewEdit"
215 v-model="ruleForm.sldy.gyfs">
216 <el-radio label="0">单独所有</el-radio>
217 <el-radio label="1">共同共有</el-radio>
218 <el-radio label="2">按份所有</el-radio>
219 <el-radio label="3">其它共有</el-radio>
220 </el-radio-group>
221 </el-form-item>
222 </el-col>
223 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
224 <el-form-item label="是否分别持证:">
225 <el-radio-group
226 v-model="ruleForm.sldy.sqfbcz"
227 :disabled="!viewEdit"
228 @input="updaterow()">
229 <el-radio :label="1"></el-radio>
230 <el-radio :label="0"></el-radio>
231 </el-radio-group>
232 </el-form-item>
233 </el-col>
234 <el-col
235 :span="6"
236 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
237 <el-form-item label="持证人:">
238 <el-select
239 v-model="czr"
240 placeholder="持证人"
241 :disabled="!viewEdit">
242 <el-option
243 v-for="item in czrOptions"
244 :key="item.id"
245 :label="item.sqrmc"
246 :value="item.id">
247 </el-option>
248 </el-select>
249 </el-form-item>
250 </el-col>
251 </el-row>
252 <qlrCommonTable
253 :tableData="ruleForm.qlrList"
254 :disabled="viewEdit"
255 @upDateQlrxxList="upDateQlrxxList"
256 :gyfs="ruleForm.sldy.gyfs" />
257
258 <div v-if="ruleForm.ywrList && ruleForm.ywrList.length > 0 && ruleForm.qlxx.djlx==200">
259 <div class="slxx_title title-block">
260 义务人信息
261 <div class="triangle"></div>
262 </div>
263 <ywrCommonTable
264 v-if="ruleForm.ywrList"
265 :disabled="viewEdit"
266 :tableData="ruleForm.ywrList"
267 :key="key"
268 @upDateQlrxxList="upDateYwrxxList" />
269 </div>
270
271 <div class="slxx_title title-block">
272 登记原因
273 <div class="triangle"></div>
274 </div>
275 <el-row :gutter="10">
276 <el-col>
277 <el-form-item label="登记原因:" prop="jsydsyq.djyy">
278 <el-input
279 class="textArea"
280 type="textarea"
281 maxlength="500"
282 show-word-limit
283 :disabled="!viewEdit"
284 v-model="ruleForm.jsydsyq.djyy">
285 </el-input>
286 </el-form-item>
287 </el-col>
288 </el-row>
289 </div>
290 <el-row class="btn" v-if="isSave">
291 <el-form-item>
292 <el-button type="primary" @click="onSubmit">保存</el-button>
293 </el-form-item>
294 </el-row>
295 </el-form>
296 </div>
297 </template>
298 <script>
299 import { mapGetters } from "vuex";
300 import ywmix from "@/views/ywbl/mixin/index";
301 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
302 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
303 import tdytTable from "@/views/workflow/components/tdytTable";
304 import { Init, saveData } from "@/api/workflow/jsydsyqFlow.js";
305 export default {
306 mixins: [ywmix],
307 mounted () {
308 let that = this;
309 this.loading = true
310 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
311 this.propsParam = this.$attrs;
312 var formdata = new FormData();
313 formdata.append("bsmSldy", this.propsParam.bsmSldy);
314 formdata.append("djlx", this.propsParam.djlx);
315 formdata.append("isEdit", this.viewEdit);
316 Init(formdata).then((res) => {
317 setTimeout(() => {
318 this.loading = false
319 }, 200)
320 if (res.code === 200 && res.result) {
321 that.ruleForm = res.result;
322 that.ruleForm.qlrList.forEach((item) => {
323 item.id = item.bsmSqr
324 if (item.sfczr == '1') {
325 that.czr = item.bsmSqr
326 }
327 })
328 that.czrOptions = that.ruleForm.qlrList;
329 that.isSave = that.viewEdit
330 } else {
331 that.isSave = false
332 that.$confirm(res.message, '提示', {
333 cancelButtonText: '取消',
334 showConfirmButton: false,
335 type: 'warning'
336 })
337 }
338 }).catch(() => {
339 this.loading = false
340 this.isSave = false
341 })
342 },
343 components: { qlrCommonTable, tdytTable, ywrCommonTable },
344 computed: {
345 ...mapGetters(["dictData", "flag"]),
346 },
347 data () {
348 return {
349 key: 0,
350 isSave: true,
351 loading: false,
352 // 键名转换,方法默认是label和children进行树状渲染
353 normalizer (node) {
354 //方法
355 if (node.children == null || node.children == "null") {
356 delete node.children;
357 }
358 return {
359 id: node.dcode,
360 label: node.dname,
361 };
362 },
363 //表单是否可操作
364 viewEdit: false,
365 disabled: true,
366 czrOptions: [],
367 czr: "",
368 ruleForm: {
369 slywxx: {},
370 qlxx: {},
371 zdjbxx: {},
372 jsydsyq: {},
373 },
374 //传递参数
375 propsParam: {},
376 rules: {
377 'jsydsyq.djyy': [
378 { required: true, message: '请输入登记原因', trigger: 'blur' }
379 ]
380 }
381 };
382 },
383 methods: {
384 /**
385 * @description: 更新土地用途信息
386 * @param {*} val
387 * @author: renchao
388 */
389 upDateTdytxxList (val) {
390 this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
391 this.key++;
392 },
393 /**
394 * @description: 更新权利人信息
395 * @param {*} val
396 * @author: renchao
397 */
398 upDateQlrxxList (val) {
399 if (!_.isEqual(val, this.ruleForm.qlrList)) {
400 this.ruleForm.qlrList = _.cloneDeep(val);
401 this.czrOptions = this.ruleForm.qlrList;
402 }
403 this.num = 0
404 this.ruleForm.qlrList.forEach(item => {
405 if (item.id == this.czr) {
406 this.num++
407 }
408 })
409 if (this.num == 0) {
410 this.czr = ''
411 }
412 },
413 /**
414 * @description: 是否持证人变化
415 * @param {*} val
416 * @author: renchao
417 */
418 updaterow () {
419 this.czr = "";
420 },
421 /**
422 * @description: onSubmit
423 * @author: renchao
424 */
425 onSubmit () {
426 let that = this;
427 let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
428 if (arr.length > 0) {
429 this.$message({
430 showClose: true,
431 message: "土地用途不能为空",
432 type: "error",
433 });
434 return false;
435 }
436 if (this.ruleForm.qlrList.length == 0) {
437 this.$message({
438 showClose: true,
439 message: "请确认权利人信息",
440 type: "error",
441 });
442 return false;
443 }
444
445 if (this.ruleForm.sldy.gyfs == "0") {
446 if (this.ruleForm.qlrList.length > 1) {
447 this.$message({
448 showClose: true,
449 message: "共有方式:单独所有,权利人只能是一个人",
450 type: "error",
451 });
452 return false;
453 }
454 this.ruleForm.qlrList[0].sfczr = "1";
455 } else {
456 if (this.ruleForm.qlrList.length <= 1) {
457 this.$message({
458 showClose: true,
459 message:
460 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
461 type: "error",
462 });
463 return false;
464 }
465 //是否分别持证
466 if (this.ruleForm.sldy.sqfbcz == "1") {
467 //是
468 this.ruleForm.qlrList.forEach((item, index) => {
469 item.sfczr = "1";
470 });
471 } else {
472 if (that.czr === '') {
473 that.$message({
474 showClose: true,
475 message: "请选择持证人",
476 type: "error",
477 });
478 return false;
479 }
480 this.ruleForm.qlrList.forEach((item, index) => {
481 if (item.id == that.czr) {
482 item.sfczr = "1";
483 } else {
484 item.sfczr = "0";
485 }
486 })
487 }
488 }
489 this.$refs['ruleForm'].validate((valid) => {
490 if (valid) {
491 that.$store.dispatch("user/refreshPage", false)
492 saveData(this.ruleForm).then((res) => {
493 if (res.code === 200) {
494 that.$message({
495 showClose: true,
496 message: "保存成功!",
497 type: "success"
498 })
499 that.$store.dispatch("user/refreshPage", true)
500 } else {
501 that.$message({
502 showClose: true,
503 message: res.message,
504 type: "error"
505 })
506 }
507 })
508 } else {
509 this.$message({
510 showClose: true,
511 message: "请输入登记原因",
512 type: "error"
513 })
514 return false
515 }
516 })
517 },
518 /**
519 * @description: compare
520 * @author: renchao
521 */
522 compare () {
523 this.$popupDialog(
524 this.ruleForm.qlxx.qllxmc,
525 "registerBook/comparison",
526 {
527 bsmQlxx: this.ruleForm.qlxx.bsmQlxx,
528 dqqllx: "JSYDSYQ",
529 },
530 "80%",
531 true
532 );
533 },
534 },
535 };
536 </script>
537 <style scoped lang="scss">
538 @import "~@/styles/public.scss";
539 @import "~@/styles/slxx/slxx.scss";
540 </style>
1 <!--
2 * @Description: 房屋多幢受理信息
3 * @Autor: ssq
4 * @LastEditTime: 2024-01-31 10:15:25
5 -->
6 <template>
7 <div class="slxx">
8 <el-form
9 :model="ruleForm"
10 :rules="rules"
11 v-Loading="loading"
12 ref="ruleForm"
13 :label-position="flag ? 'top' : ''"
14 :inline="flag"
15 label-width="190px">
16 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
17 <div class="slxx_title title-block">
18 申请业务信息
19 <div class="triangle"></div>
20 </div>
21 <el-row :gutter="10" v-if="ruleForm.slsq">
22 <el-col :span="8">
23 <el-form-item label="业务号:">
24 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理人员:">
29 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
30 </el-form-item>
31 </el-col>
32 <el-col :span="8">
33 <el-form-item label="受理时间:">
34 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
35 </el-form-item>
36 </el-col>
37 </el-row>
38 <el-row :gutter="10" v-if="ruleForm.slsq">
39 <el-col :span="8">
40 <el-form-item label="权利类型:">
41 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
42 </el-form-item>
43 </el-col>
44 <el-col :span="8">
45 <el-form-item label="登记类型:">
46 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
47 </el-form-item>
48 </el-col>
49 <el-col :span="8">
50 <el-form-item label="登记情形:">
51 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
52 </el-form-item>
53 </el-col>
54 </el-row>
55 <div class="slxx_title title-block">
56 <el-row>
57 <el-col :span="20">
58 不动产单元情况
59 </el-col>
60 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
61 <el-form-item label="是否创建证书:" style="height:24px">
62 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
63 <el-radio label="1"></el-radio>
64 <el-radio label="0"></el-radio>
65 </el-radio-group>
66 </el-form-item>
67 </el-col>
68 </el-row>
69 <div class="triangle"></div>
70 </div>
71 <el-row :gutter="10" v-if="ruleForm.qlxx">
72 <el-col :span="8">
73 <el-form-item label="不动产单元号:">
74 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
75 </el-form-item>
76 </el-col>
77 <el-col :span="16">
78 <el-form-item label="坐落:">
79 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
80 </el-form-item>
81 </el-col>
82 </el-row>
83 <el-row :gutter="10">
84 <el-col :span="8">
85 <el-form-item label="发包方:">
86 <el-input v-model="ruleForm.lq.fbf" :disabled="!viewEdit"></el-input>
87 </el-form-item>
88 </el-col>
89 <el-col :span="8">
90 <el-form-item label="发包方代码:">
91 <el-input v-model="ruleForm.lq.fbfdm" :disabled="!viewEdit"></el-input>
92 </el-form-item>
93 </el-col>
94 <el-col :span="8">
95 <el-form-item label="使用权(承包)面积:">
96 <el-input v-model="ruleForm.lq.syqmj" :disabled="!viewEdit"></el-input>
97 </el-form-item>
98 </el-col>
99 </el-row>
100 <el-row :gutter="10">
101 <el-col :span="8">
102 <el-form-item label="林地所有权性质:">
103 <el-select v-model="ruleForm.lq.ldsyqxz" :disabled="!viewEdit">
104 <el-option
105 v-for="item in dictData['A45']"
106 :key="item.dcode"
107 :label="item.dname"
108 :value="item.dcode">
109 </el-option>
110 </el-select>
111 </el-form-item>
112 </el-col>
113 <el-col :span="8">
114 <el-form-item label="森林类别:">
115 <el-input v-model="ruleForm.lq.sllb" :disabled="!viewEdit"></el-input>
116 </el-form-item>
117 </el-col>
118 <el-col :span="8">
119 <el-form-item label="主要树种:">
120 <el-input v-model="ruleForm.lq.zysz" :disabled="!viewEdit"></el-input>
121 </el-form-item>
122 </el-col>
123 </el-row>
124 <el-row :gutter="10">
125 <el-col :span="8">
126 <el-form-item label="株数:">
127 <el-input v-model="ruleForm.lq.zs" :disabled="!viewEdit"></el-input>
128 </el-form-item>
129 </el-col>
130 <el-col :span="8">
131 <el-form-item label="林种:">
132 <el-select v-model="ruleForm.lq.lz" :disabled="!viewEdit">
133 <el-option
134 v-for="item in dictData['A26']"
135 :key="item.dcode"
136 :label="item.dname"
137 :value="item.dcode">
138 </el-option>
139 </el-select>
140 </el-form-item>
141 </el-col>
142 <el-col :span="8">
143 <el-form-item label="起源:">
144 <el-select v-model="ruleForm.lq.qy" :disabled="!viewEdit">
145 <el-option
146 v-for="item in dictData['A52']"
147 :key="item.dcode"
148 :label="item.dname"
149 :value="item.dcode">
150 </el-option>
151 </el-select>
152 </el-form-item>
153 </el-col>
154 </el-row>
155 <el-row :gutter="10">
156 <el-col :span="8">
157 <el-form-item label="造林年度:">
158 <el-date-picker
159 class="width100"
160 value-format="yyyy"
161 v-model="ruleForm.lq.zlnd"
162 :disabled="!viewEdit"
163 type="year">
164 </el-date-picker>
165 </el-form-item>
166 </el-col>
167 <el-col :span="8">
168 <el-form-item label="林班:">
169 <el-input v-model="ruleForm.lq.lb" :disabled="!viewEdit"></el-input>
170 </el-form-item>
171 </el-col>
172 <el-col :span="8">
173 <el-form-item label="小班:">
174 <el-input v-model="ruleForm.lq.xb" :disabled="!viewEdit"></el-input>
175 </el-form-item>
176 </el-col>
177 </el-row>
178 <el-row :gutter="10">
179 <el-col :span="8">
180 <el-form-item label="小地名:">
181 <el-input v-model="ruleForm.lq.xdm" :disabled="!viewEdit"></el-input>
182 </el-form-item>
183 </el-col>
184 <el-col :span="8">
185 <el-form-item label="林地使用(承包)起始时间:">
186 <el-date-picker
187 class="width100"
188 value-format="yyyy-MM-dd HH:mm:ss"
189 v-model="ruleForm.lq.ldsyqssj"
190 :disabled="!viewEdit"
191 type="date"></el-date-picker>
192 </el-form-item>
193 </el-col>
194 <el-col :span="8">
195 <el-form-item label="林地使用(承包)结束时间:">
196 <el-date-picker
197 class="width100"
198 value-format="yyyy-MM-dd HH:mm:ss"
199 v-model="ruleForm.lq.ldsyjssj"
200 :disabled="!viewEdit"
201 type="date"></el-date-picker>
202 </el-form-item>
203 </el-col>
204 </el-row>
205 <el-row :gutter="10">
206 <el-col :span="8">
207 <el-form-item label="林地使用 (承包)期限:">
208 <el-input v-model="ruleForm.lq.ldsyqx" :disabled="!viewEdit"></el-input>
209 </el-form-item>
210 </el-col>
211 </el-row>
212 <el-row :gutter="10">
213 <el-col :span="24">
214 <el-form-item label="附记:">
215 <el-input
216 v-model="ruleForm.lq.fj"
217 :disabled="!viewEdit"
218 type="textarea"
219 maxlength="500"
220 show-word-limit></el-input>
221 </el-form-item>
222 </el-col>
223 </el-row>
224 <div class="slxx_title title-block">
225 权利人信息
226 <div class="triangle"></div>
227 </div>
228 <el-row :gutter="10">
229 <el-col :span="12" v-if="ruleForm.qlxx">
230 <el-form-item label="共有方式:">
231 <el-radio-group
232 :disabled="!viewEdit"
233 v-model="ruleForm.sldy.gyfs">
234 <el-radio label="0">单独所有</el-radio>
235 <el-radio label="1">共同共有</el-radio>
236 <el-radio label="2">按份所有</el-radio>
237 <el-radio label="3">其它共有</el-radio>
238 </el-radio-group>
239 </el-form-item>
240 </el-col>
241 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
242 <el-form-item label="是否分别持证:">
243 <el-radio-group
244 v-model="ruleForm.sldy.sqfbcz"
245 :disabled="!viewEdit"
246 @input="updaterow()">
247 <el-radio :label="1"></el-radio>
248 <el-radio :label="0"></el-radio>
249 </el-radio-group>
250 </el-form-item>
251 </el-col>
252 <el-col
253 :span="6"
254 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
255 <el-form-item label="持证人:">
256 <el-select
257 v-model="czr"
258 placeholder="持证人"
259 :disabled="!viewEdit">
260 <el-option
261 v-for="(item, index) in czrOptions"
262 :key="index"
263 :label="item.sqrmc"
264 :value="item.id">
265 </el-option>
266 </el-select>
267 </el-form-item>
268 </el-col>
269 </el-row>
270 <qlrCommonTable
271 @upDateQlrxxList="upDateQlrxxList"
272 :tableData="ruleForm.qlrList"
273 :disabled="viewEdit"
274 :gyfs="ruleForm.sldy.gyfs" />
275
276 <div v-if="ruleForm.ywrList && ruleForm.sldy.djlx == '200'">
277 <div class="slxx_title title-block">
278 义务人信息
279 <div class="triangle"></div>
280 </div>
281 <ywrCommonTable
282 v-if="ruleForm.qlxx"
283 :disabled="viewEdit"
284 @upDateQlrxxList="upDateYwrxxList"
285 :tableData="ruleForm.ywrList"
286 :gyfs="ruleForm.sldy.gyfs" />
287 </div>
288 <div class="slxx_title title-block">
289 登记原因
290 <div class="triangle"></div>
291 </div>
292 <el-row :gutter="10">
293 <el-col>
294 <el-form-item v-if="ruleForm.sldy" label="登记原因:" prop="lq.djyy">
295 <el-input
296 class="textArea"
297 type="textarea"
298 maxlength="500"
299 show-word-limit
300 :disabled="!viewEdit"
301 v-model="ruleForm.lq.djyy">
302 </el-input>
303 </el-form-item>
304 </el-col>
305 </el-row>
306 </div>
307 <el-row class="btn" v-if="isSave">
308 <el-form-item>
309 <el-button type="primary" @click="onSubmit">保存</el-button>
310 </el-form-item>
311 </el-row>
312 </el-form>
313 </div>
314 </template>
315 <script>
316 import { mapGetters } from "vuex";
317 import ywmix from "@/views/ywbl/mixin/index";
318 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
319 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
320 import tdytTable from "@/views/workflow/components/tdytTable";
321 import { Init, saveData } from "@/api/workflow/lqFlow.js";
322 export default {
323 mixins: [ywmix],
324 mounted () {
325 let that = this;
326 this.loading = true
327 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
328 this.propsParam = this.$attrs;
329 var formdata = new FormData();
330 formdata.append("bsmSldy", this.propsParam.bsmSldy);
331 formdata.append("djlx", this.propsParam.djlx);
332 formdata.append("isEdit", this.viewEdit);
333 Init(formdata).then((res) => {
334 setTimeout(() => {
335 this.loading = false
336 }, 200)
337 if (res.code === 200 && res.result) {
338 that.ruleForm = {
339 ...res.result,
340 ...res.result.qlxxdatas
341 };
342 that.ruleForm.qlrList.forEach(item => {
343 item.id = item.bsmSqr
344 if (item.sfczr == '1') {
345 that.czr = item.bsmSqr
346 }
347 })
348 that.czrOptions = that.ruleForm.qlrList;
349 that.ruleForm.lq.zlnd ? that.$set(that.ruleForm.lq, 'zlnd', that.ruleForm.lq.zlnd.toString()) : that.$set(that.ruleForm.lq, 'zlnd', "")
350 that.isSave = that.viewEdit
351 } else {
352 that.isSave = false
353 that.$confirm(res.message, '提示', {
354 cancelButtonText: '取消',
355 showConfirmButton: false,
356 type: 'warning'
357 })
358 }
359 }).catch(() => {
360 this.loading = false
361 this.isSave = false
362 })
363 },
364 components: { qlrCommonTable, tdytTable, ywrCommonTable },
365 computed: {
366 ...mapGetters(["dictData", "flag"])
367 },
368 data () {
369 return {
370 isSave: true,
371 loading: false,
372 disabled: true,
373 tdytOption: [],
374 czrOptions: [],
375 czr: "",
376 ruleForm: {
377 lq: {
378 },
379 flow: {
380 ywh: "",
381 },
382 qlxx: {
383 mj: "",
384 },
385 sldy: {
386 gyfs: "",
387 },
388 slsq: {},
389 fdcq2: {
390 zyjzmj: "",
391 ftjzmj: "",
392 },
393 zdjbxx: {
394 ghytmc: "",
395 },
396 },
397 //传递参数
398 propsParam: this.$attrs,
399 //表单是否可操作
400 viewEdit: true,
401 rules: {
402 'lq.djyy': [
403 { required: true, message: '请输入登记原因', trigger: 'blur' }
404 ]
405 }
406 };
407 },
408 methods: {
409 /**
410 * @description: 更新土地用途信息
411 * @param {*} val
412 * @author: renchao
413 */
414 upDateTdytxxList (val) {
415 this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
416 },
417 /**
418 * @description: 是否持证人变化
419 * @param {*} val
420 * @author: renchao
421 */
422 updaterow () {
423 this.czr = "";
424 },
425 /**
426 * @description: 更新权利人信息
427 * @param {*} val
428 * @author: renchao
429 */
430 upDateQlrxxList (val) {
431 this.ruleForm.qlrList = _.cloneDeep(val);
432 this.czrOptions = this.ruleForm.qlrList;
433 this.num = 0
434 this.ruleForm.qlrList.forEach(item => {
435 if (item.id == this.czr) {
436 this.num++
437 }
438 })
439 if (this.num == 0) {
440 this.czr = ''
441 }
442 },
443 /**
444 * @description: 更新业务人信息
445 * @param {*} val
446 * @author: renchao
447 */
448 upDateYwrxxList (val) {
449 this.ruleForm.ywrList = _.cloneDeep(val);
450 },
451 /**
452 * @description: onSubmit
453 * @author: renchao
454 */
455 onSubmit () {
456 let that = this;
457 if (this.ruleForm.qlrList.length == 0) {
458 this.$message({
459 showClose: true,
460 message: "请确认权利人信息",
461 type: "error",
462 });
463 return false;
464 }
465
466 if (this.ruleForm.sldy.gyfs == "0") {
467 if (this.ruleForm.qlrList.length > 1) {
468 this.$message({
469 showClose: true,
470 message: "共有方式:单独所有,权利人只能是一个人",
471 type: "error",
472 });
473 return false;
474 }
475 this.ruleForm.qlrList[0].sfczr = "1";
476 } else {
477 if (this.ruleForm.qlrList.length <= 1) {
478 this.$message({
479 showClose: true,
480 message:
481 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
482 type: "error",
483 });
484 return false;
485 }
486 //是否分别持证
487 if (this.ruleForm.sldy.sqfbcz == "1") {
488 //是
489 this.ruleForm.qlrList.forEach((item, index) => {
490 item.sfczr = "1";
491 });
492 } else {
493 if (that.czr === '') {
494 that.$message({
495 showClose: true,
496 message: "请选择持证人",
497 type: "error",
498 });
499 return false;
500 }
501 this.ruleForm.qlrList.forEach(item => {
502 if (item.id == that.czr) {
503 item.sfczr = "1"
504 } else {
505 item.sfczr = "0"
506 }
507 })
508 }
509 }
510 this.$refs['ruleForm'].validate((valid) => {
511 if (valid) {
512 that.$store.dispatch("user/refreshPage", false);
513 saveData(that.ruleForm).then((res) => {
514 if (res.code === 200) {
515 that.$message({
516 showClose: true,
517 message: "保存成功!",
518 type: "success",
519 });
520 that.$store.dispatch("user/refreshPage", true);
521 } else {
522 that.$message({
523 showClose: true,
524 message: res.message,
525 type: "error",
526 });
527 }
528 })
529 } else {
530 this.$message({
531 showClose: true,
532 message: "请输入登记原因",
533 type: "error"
534 })
535 return false
536 }
537 })
538 }
539 }
540 };
541 </script>
542 <style scoped lang="scss">
543 @import "~@/styles/public.scss";
544
545 /deep/.el-form {
546 display: flex;
547 flex-direction: column;
548 height: calc(100vh - 130px);
549 }
550
551 /deep/.el-form-item__label {
552 padding: 0;
553 }
554
555 /deep/.el-radio {
556 margin-right: 10px;
557 }
558
559 /deep/.el-select {
560 width: 100%;
561 }
562
563 /deep/.el-form-item {
564 margin-bottom: 3px;
565 }
566
567 .marginBot0 {
568 margin-bottom: 0 !important;
569 }
570
571 .slxx {
572 box-sizing: border-box;
573 }
574
575 .slxx_con {
576 flex: 1;
577 height: 100%;
578 background-color: #ffffff;
579 overflow-y: auto;
580 padding-right: 3px;
581 overflow-x: hidden;
582 }
583
584 .submit_btn {
585 height: 50px;
586 }
587
588 .btn {
589 text-align: center;
590 padding-top: 10px;
591 height: 36px;
592 background-color: #ffffff;
593 padding: 5px 0;
594 }
595
596 .textArea {
597 /deep/.el-textarea__inner {
598 min-height: 90px !important;
599 }
600 }
601
602 /deep/.el-form-item__label {
603 padding-bottom: 0px;
604 }
605 </style>
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form
5 :model="ruleForm"
6 :rules="rules"
7 v-Loading="loading"
8 ref="ruleForm"
9 :label-position="flag ? 'top' : ''"
10 :inline="flag"
11 label-width="120px">
12 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
13 <div class="slxx_title title-block">
14 申请业务信息
15 <div class="triangle"></div>
16 </div>
17 <el-row :gutter="10">
18 <el-col :span="8">
19 <el-form-item label="业务号:">
20 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
21 </el-form-item>
22 </el-col>
23 <el-col :span="8">
24 <el-form-item label="受理人员:">
25 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理时间:">
30 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
31 </el-form-item>
32 </el-col>
33 </el-row>
34 <el-row :gutter="10">
35 <el-col :span="8">
36 <el-form-item label="权利类型:">
37 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
38 </el-form-item>
39 </el-col>
40 <el-col :span="8">
41 <el-form-item label="登记类型:">
42 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
43 </el-form-item>
44 </el-col>
45 <el-col :span="8">
46 <el-form-item label="登记情形:">
47 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
48 </el-form-item>
49 </el-col>
50 </el-row>
51 <div class="slxx_title title-block">
52 <el-row>
53 <el-col :span="20">
54 不动产单元情况
55 </el-col>
56 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
57 <el-form-item label="是否创建证书:" style="height:24px">
58 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
59 <el-radio label="1"></el-radio>
60 <el-radio label="0"></el-radio>
61 </el-radio-group>
62 </el-form-item>
63 </el-col>
64 </el-row>
65 <div class="triangle"></div>
66 </div>
67 <el-row :gutter="10">
68 <el-col :span="8">
69 <el-form-item label="宗地代码:">
70 <el-input disabled v-model="ruleForm.zdjbxx.zddm"></el-input>
71 </el-form-item>
72 </el-col>
73 <el-col :span="8">
74 <el-form-item label="不动产单元号:">
75 <el-input disabled v-model="ruleForm.zdjbxx.bdcdyh"></el-input>
76 </el-form-item>
77 </el-col>
78 <el-col :span="8">
79 <el-form-item label="权利性质:">
80 <el-input disabled v-model="ruleForm.zdjbxx.qlxzmc"></el-input>
81 </el-form-item>
82 </el-col>
83 </el-row>
84 <el-row :gutter="10">
85 <el-col :span="8">
86 <el-form-item label="宗地面积:">
87 <el-input disabled v-model="ruleForm.zdjbxx.zdmj"></el-input>
88 </el-form-item>
89 </el-col>
90 <el-col :span="8">
91 <el-form-item label="土地用途:">
92 <el-input disabled v-model="ruleForm.zdjbxx.ghytmc"></el-input>
93 </el-form-item>
94 </el-col>
95 <el-col :span="8">
96 <el-form-item label="权利设定方式:">
97 <el-input disabled v-model="ruleForm.zdjbxx.qlsdfsmc"></el-input>
98 </el-form-item>
99 </el-col>
100 </el-row>
101 <el-row :gutter="10">
102 <el-col :span="16">
103 <el-form-item label="坐落:">
104 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
105 </el-form-item>
106 </el-col>
107 </el-row>
108 <el-row :gutter="10">
109 <el-col :span="8">
110 <el-form-item label="发包方名称:">
111 <el-input v-model="ruleForm.nydsyq.fbfmc"></el-input>
112 </el-form-item>
113 </el-col>
114 <el-col :span="8">
115 <el-form-item label="发包方代码:">
116 <el-input v-model="ruleForm.nydsyq.fbfdm"></el-input>
117 </el-form-item>
118 </el-col>
119 <el-col :span="8">
120 <el-form-item label="土地所有权性质:">
121 <el-select
122 v-model="ruleForm.nydsyq.tdsyqxzmc"
123 :disabled="!viewEdit"
124 class="width100"
125 filterable
126 clearable>
127 <el-option
128 v-for="item in dictData['A45']"
129 :key="item.dname"
130 :label="item.dname"
131 :value="item.dname">
132 </el-option>
133 </el-select>
134 </el-form-item>
135 </el-col>
136 </el-row>
137 <el-row :gutter="10">
138 <el-col :span="8">
139 <el-form-item label="承包期限:">
140 <el-input disabled v-model="ruleForm.nydsyq.cbqx"></el-input>
141 </el-form-item>
142 </el-col>
143 <el-col :span="16">
144 <el-form-item label="承包起止时间:">
145 <el-input disabled v-model="ruleForm.nydsyq.cbqzsj"></el-input>
146 </el-form-item>
147 </el-col>
148 </el-row>
149 <el-row :gutter="10">
150 <el-col :span="8">
151 <el-form-item label="水域滩涂类型:">
152 <el-select
153 v-model="ruleForm.nydsyq.syttlx"
154 :disabled="!viewEdit"
155 class="width100"
156 filterable
157 clearable
158 @change="changeSyttlx">
159 <el-option
160 v-for="item in dictData['A23']"
161 :key="item.dcode"
162 :label="item.dname"
163 :value="item.dcode">
164 </el-option>
165 </el-select>
166 </el-form-item>
167 </el-col>
168 <el-col :span="8">
169 <el-form-item label="养殖业方式:">
170 <el-select
171 v-model="ruleForm.nydsyq.yzyfs"
172 :disabled="!viewEdit"
173 class="width100"
174 filterable
175 clearable
176 @change="changeYzyfs">
177 <el-option
178 v-for="item in dictData['A24']"
179 :key="item.dcode"
180 :label="item.dname"
181 :value="item.dcode">
182 </el-option>
183 </el-select>
184 </el-form-item>
185 </el-col>
186 <el-col :span="8">
187 <el-form-item label="草原质量:">
188 <el-input
189 v-model="ruleForm.nydsyq.cyzl"
190 :disabled="!viewEdit"></el-input>
191 </el-form-item>
192 </el-col>
193 </el-row>
194 <el-row :gutter="10">
195 <el-col :span="8">
196 <el-form-item label="适宜载畜量:">
197 <el-input
198 v-model="ruleForm.nydsyq.syzcl"
199 :disabled="!viewEdit"
200 oninput="value=value.replace(/[^\d.]/g,'')"></el-input>
201 </el-form-item>
202 </el-col>
203 <el-col :span="8">
204 <el-form-item label="用地用海分类:">
205 <el-select
206 v-model="ruleForm.nydsyq.ydyhfl"
207 class="width100"
208 :disabled="!viewEdit"
209 filterable
210 clearable
211 @change="changeYdyhfl">
212 <el-option
213 v-for="item in dictData['A51']"
214 :key="item.dcode"
215 :label="item.dname"
216 :value="item.dcode">
217 </el-option>
218 </el-select>
219 </el-form-item>
220 </el-col>
221 <el-col :span="8">
222 <el-form-item label="土地承包合同:">
223 <el-input
224 v-model="ruleForm.nydsyq.tdcbht"
225 :disabled="!viewEdit"></el-input>
226 </el-form-item>
227 </el-col>
228 </el-row>
229 <el-row :gutter="10">
230 <el-col>
231 <el-form-item label="附记:" prop="fj">
232 <el-input
233 type="textarea"
234 maxlength="500"
235 show-word-limit
236 v-model="ruleForm.nydsyq.fj"
237 :disabled="!viewEdit"></el-input>
238 </el-form-item>
239 </el-col>
240 </el-row>
241 <div class="slxx_title title-block">
242 权利人信息
243 <div class="triangle"></div>
244 </div>
245 <el-row :gutter="10">
246 <el-col :span="12">
247 <el-form-item label="共有方式:">
248 <el-radio-group
249 v-model="ruleForm.sldy.gyfs"
250 :disabled="!viewEdit">
251 <el-radio label="0">单独所有</el-radio>
252 <el-radio label="1">共同共有</el-radio>
253 <el-radio label="2">按份所有</el-radio>
254 <el-radio label="3">其它共有</el-radio>
255 </el-radio-group>
256 </el-form-item>
257 </el-col>
258 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
259 <el-form-item label="是否分别持证:">
260 <el-radio-group
261 v-model="ruleForm.sldy.sqfbcz"
262 :disabled="!viewEdit"
263 @input="updaterow()">
264 <el-radio :label="1"></el-radio>
265 <el-radio :label="0"></el-radio>
266 </el-radio-group>
267 </el-form-item>
268 </el-col>
269 <el-col
270 :span="6"
271 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
272 <el-form-item label="持证人:">
273 <el-select
274 v-model="czr"
275 placeholder="持证人"
276 :disabled="!viewEdit">
277 <el-option
278 v-for="(item,index) in czrOptions"
279 :key="index"
280 :label="item.sqrmc"
281 :value="item.id">
282 </el-option>
283 </el-select>
284 </el-form-item>
285 </el-col>
286 </el-row>
287 <qlrCommonTable
288 :tableData="ruleForm.qlrList"
289 @upDateQlrxxList="upDateQlrxxList"
290 :disabled="viewEdit"
291 :gyfs="ruleForm.sldy.gyfs" />
292 <div class="slxx_title title-block">
293 家庭成员
294 <div class="triangle"></div>
295 </div>
296 <JtcyTable
297 :tableData="ruleForm.jtcyList"
298 @upDateJtcyList="upDateJtcyList"
299 :disabled="viewEdit"
300 :gyfs="ruleForm.sldy.gyfs" />
301 <div class="slxx_title title-block">
302 登记原因
303 <div class="triangle"></div>
304 </div>
305 <el-row :gutter="10">
306 <el-col>
307 <el-form-item label="登记原因:" prop="nydsyq.djyy">
308 <el-input
309 class="textArea"
310 type="textarea"
311 maxlength="500"
312 show-word-limit
313 :disabled="!viewEdit"
314 v-model="ruleForm.nydsyq.djyy">
315 </el-input>
316 </el-form-item>
317 </el-col>
318 </el-row>
319 </div>
320 <el-row class="btn" v-if="isSave">
321 <el-form-item>
322 <el-button type="primary" @click="onSubmit">保存</el-button>
323 </el-form-item>
324 </el-row>
325 </el-form>
326 </div>
327 </template>
328 <script>
329 import { mapGetters } from "vuex";
330 import ywmix from "@/views/ywbl/mixin/index";
331 import { Init, saveData } from "@/api/workflow/nydsyqFlow.js";
332 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
333 import JtcyTable from "@/views/workflow/components/JtcyTable";
334 export default {
335 mixins: [ywmix],
336 mounted () {
337 let that = this
338 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
339 this.propsParam = this.$attrs;
340 this.loading = true
341 var formdata = new FormData();
342 formdata.append("bsmSldy", this.propsParam.bsmSldy);
343 formdata.append("djlx", this.propsParam.djlx);
344 formdata.append("isEdit", this.viewEdit);
345 Init(formdata).then((res) => {
346 setTimeout(() => {
347 that.loading = false
348 }, 200)
349 if (res.code === 200) {
350 that.ruleForm = res.result;
351 that.ruleForm.qlrList.forEach((item) => {
352 item.id = item.bsmSqr
353 if (item.sfczr == '1') {
354 that.czr = item.bsmSqr
355 }
356 })
357 that.czrOptions = that.ruleForm.qlrList;
358 that.isSave = that.viewEdit
359 } else {
360 that.isSave = false
361 that.$confirm(res.message, '提示', {
362 cancelButtonText: '取消',
363 showConfirmButton: false,
364 type: 'warning'
365 })
366 }
367 }).catch(() => {
368 this.loading = false
369 this.isSave = false
370 })
371 },
372 components: { qlrCommonTable, JtcyTable },
373 computed: {
374 ...mapGetters(["dictData", "flag"]),
375 },
376 data () {
377 return {
378 isSave: true,
379 // 键名转换,方法默认是label和children进行树状渲染
380 normalizer (node) {
381 //方法
382 if (node.children == null || node.children == "null") {
383 delete node.children;
384 }
385 return {
386 id: node.dcode,
387 label: node.dname,
388 };
389 },
390 loading: false,
391 disabled: true,
392 //持证人选项
393 czrOptions: [],
394 czr: "",
395 ruleForm: {
396 zdjbxx: {
397 ghytmc: "",
398 },
399 },
400 //传递参数
401 propsParam: {},
402 //表单是否可操作
403 viewEdit: true,
404 rules: {
405 'nydsyq.djyy': [
406 { required: true, message: '请输入登记原因', trigger: 'blur' }
407 ]
408 },
409 };
410 },
411 methods: {
412 /**
413 * @description: onSubmit
414 * @author: renchao
415 */
416 onSubmit () {
417 let that = this;
418 if (this.ruleForm.qlrList.length == 0) {
419 this.$message({
420 showClose: true,
421 message: "请确认权利人信息",
422 type: "error",
423 });
424 return false;
425 }
426
427 if (this.ruleForm.sldy.gyfs == "0") {
428 if (this.ruleForm.qlrList.length > 1) {
429 this.$message({
430 showClose: true,
431 message: "共有方式:单独所有,权利人只能是一个人",
432 type: "error",
433 });
434 return false;
435 }
436 this.ruleForm.qlrList[0].sfczr = "1";
437 } else {
438 if (this.ruleForm.qlrList.length <= 1) {
439 this.$message({
440 showClose: true,
441 message:
442 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
443 type: "error",
444 });
445 return false;
446 }
447 //是否分别持证
448 if (this.ruleForm.sldy.sqfbcz == "1") {
449 //是
450 this.ruleForm.qlrList.forEach((item, index) => {
451 item.sfczr = "1";
452 });
453 } else {
454 if (that.czr === '') {
455 that.$message({
456 showClose: true,
457 message: "请选择持证人",
458 type: "error",
459 })
460 return false;
461 }
462 this.ruleForm.qlrList.forEach((item, index) => {
463 if (item.id == that.czr) {
464 item.sfczr = "1";
465 } else {
466 item.sfczr = "0";
467 }
468 });
469 }
470 }
471 this.$refs['ruleForm'].validate((valid) => {
472 if (valid) {
473 that.$store.dispatch("user/refreshPage", false);
474 saveData(that.ruleForm).then((res) => {
475 if (res.code === 200) {
476 that.$message({
477 showClose: true,
478 message: "保存成功!",
479 type: "success",
480 });
481 that.$store.dispatch("user/refreshPage", true);
482 } else {
483 that.$message({
484 showClose: true,
485 message: res.message,
486 type: "error",
487 });
488 }
489 })
490 } else {
491 this.$message({
492 showClose: true,
493 message: "请输入登记原因",
494 type: "error"
495 })
496 return false
497 }
498 })
499
500 },
501 /**
502 * @description: upDateQlrxxList
503 * @param {*} val
504 * @author: renchao
505 */
506 upDateQlrxxList (val) {
507 if (!_.isEqual(val, this.ruleForm.qlrList)) {
508 this.ruleForm.qlrList = _.cloneDeep(val);
509 this.czrOptions = this.ruleForm.qlrList;
510 }
511 this.num = 0
512 this.ruleForm.qlrList.forEach(item => {
513 if (item.id == this.czr) {
514 this.num++
515 }
516 })
517 if (this.num == 0) {
518 this.czr = ''
519 }
520 },
521 /**
522 * @description: 是否持证人变化
523 * @param {*} val
524 * @author: renchao
525 */
526 updaterow () {
527 this.czr = "";
528 },
529 /**
530 * @description: upDateJtcyList
531 * @param {*} val
532 * @author: renchao
533 */
534 upDateJtcyList (val) {
535 this.ruleForm.jtcyList = _.cloneDeep(val);
536 },
537 // 是否持证人变化
538 /**
539 * @description: 是否持证人变化
540 * @param {*} val
541 * @author: renchao
542 */
543 updaterow () {
544 this.czr = "";
545 },
546
547 /**
548 * @description: 水域滩涂类型变化事件
549 * @param {*} e
550 * @author: renchao
551 */
552 changeSyttlx (e) {
553 let itemLx = {};
554 itemLx = this.dictData["A23"].find((item) => {
555 return item.dcode == e;
556 });
557 this.ruleForm.nydsyq.syttlxmc = itemLx.dname;
558 },
559 /**
560 * @description: 养殖业方式变化事件
561 * @param {*} e
562 * @author: renchao
563 */
564 changeYzyfs (e) {
565 let itemLx = {};
566 itemLx = this.dictData["A24"].find((item) => {
567 return item.dcode == e;
568 });
569 this.ruleForm.nydsyq.yzyfsmc = itemLx.dname;
570 },
571 /**
572 * @description: 用地用海变化事件
573 * @param {*} e
574 * @author: renchao
575 */
576 changeYdyhfl (e) {
577 let itemLx = {};
578 itemLx = this.dictData["A51"].find((item) => {
579 return item.dcode == e;
580 });
581 this.ruleForm.nydsyq.ydyhflmc = itemLx.dname;
582 },
583 },
584 };
585 </script>
586 <style scoped lang="scss">
587 @import "~@/styles/public.scss";
588 @import "~@/styles/slxx/slxx.scss";
589 </style>
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form
5 :model="ruleForm"
6 :rules="rules"
7 v-Loading="loading"
8 ref="ruleForm"
9 :label-position="flag ? 'top' : ''"
10 :inline="flag"
11 label-width="120px">
12 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
13 <div class="slxx_title title-block">
14 申请业务信息
15 <div class="triangle"></div>
16 </div>
17 <el-row :gutter="10">
18 <el-col :span="8">
19 <el-form-item label="业务号:">
20 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
21 </el-form-item>
22 </el-col>
23 <el-col :span="8">
24 <el-form-item label="受理人员:">
25 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理时间:">
30 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
31 </el-form-item>
32 </el-col>
33 </el-row>
34 <el-row :gutter="10">
35 <el-col :span="8">
36 <el-form-item label="权利类型:">
37 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
38 </el-form-item>
39 </el-col>
40 <el-col :span="8">
41 <el-form-item label="登记类型:">
42 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
43 </el-form-item>
44 </el-col>
45 <el-col :span="8">
46 <el-form-item label="登记情形:">
47 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
48 </el-form-item>
49 </el-col>
50 </el-row>
51 <div class="slxx_title title-block">
52 <el-row>
53 <el-col :span="20">
54 不动产单元情况
55 </el-col>
56 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
57 <el-form-item label="是否创建证书:" style="height:24px">
58 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
59 <el-radio label="1"></el-radio>
60 <el-radio label="0"></el-radio>
61 </el-radio-group>
62 </el-form-item>
63 </el-col>
64 </el-row>
65 <div class="triangle"></div>
66 </div>
67 <el-row :gutter="10">
68 <el-col :span="8">
69 <el-form-item label="宗地代码:">
70 <el-input disabled v-model="ruleForm.zdjbxx.zddm"></el-input>
71 </el-form-item>
72 </el-col>
73 <el-col :span="8">
74 <el-form-item label="不动产单元号:">
75 <el-input disabled v-model="ruleForm.zdjbxx.bdcdyh"></el-input>
76 </el-form-item>
77 </el-col>
78 <el-col :span="8">
79 <el-form-item label="权利性质:">
80 <el-input disabled v-model="ruleForm.zdjbxx.qlxzmc"></el-input>
81 </el-form-item>
82 </el-col>
83 </el-row>
84 <el-row :gutter="10">
85 <el-col :span="8">
86 <el-form-item label="宗地面积:">
87 <el-input disabled v-model="ruleForm.zdjbxx.zdmj"></el-input>
88 </el-form-item>
89 </el-col>
90 <el-col :span="8">
91 <el-form-item label="土地用途:">
92 <el-input disabled v-model="ruleForm.zdjbxx.ghytmc"></el-input>
93 </el-form-item>
94 </el-col>
95 <el-col :span="8">
96 <el-form-item label="权利设定方式:">
97 <el-input disabled v-model="ruleForm.zdjbxx.qlsdfsmc"></el-input>
98 </el-form-item>
99 </el-col>
100 </el-row>
101 <el-row :gutter="10">
102 <el-col :span="16">
103 <el-form-item label="坐落:">
104 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
105 </el-form-item>
106 </el-col>
107 </el-row>
108 <el-row :gutter="10">
109 <el-col :span="8">
110 <el-form-item label="发包方名称:">
111 <el-input
112 v-model="ruleForm.nydsyq.fbfmc"
113 :disabled="!viewEdit"></el-input>
114 </el-form-item>
115 </el-col>
116 <el-col :span="8">
117 <el-form-item label="发包方代码:">
118 <el-input
119 v-model="ruleForm.nydsyq.fbfdm"
120 :disabled="!viewEdit"></el-input>
121 </el-form-item>
122 </el-col>
123 <el-col :span="8">
124 <el-form-item label="土地所有权性质:">
125 <el-select
126 v-model="ruleForm.nydsyq.tdsyqxzmc"
127 class="width100"
128 :disabled="!viewEdit"
129 filterable
130 clearable>
131 <el-option
132 v-for="item in dictData['A45']"
133 :key="item.dname"
134 :label="item.dname"
135 :value="item.dname">
136 </el-option>
137 </el-select>
138 </el-form-item>
139 </el-col>
140 </el-row>
141 <el-row :gutter="10">
142 <el-col :span="8">
143 <el-form-item label="承包期限:">
144 <el-input disabled v-model="ruleForm.nydsyq.cbqx"></el-input>
145 </el-form-item>
146 </el-col>
147 <el-col :span="16">
148 <el-form-item label="承包起止时间:">
149 <el-input disabled v-model="ruleForm.nydsyq.cbqzsj"></el-input>
150 </el-form-item>
151 </el-col>
152 </el-row>
153 <el-row :gutter="10">
154 <el-col :span="8">
155 <el-form-item label="水域滩涂类型:">
156 <el-select
157 v-model="ruleForm.nydsyq.syttlx"
158 :disabled="!viewEdit"
159 class="width100"
160 filterable
161 clearable
162 @change="changeSyttlx">
163 <el-option
164 v-for="item in dictData['A23']"
165 :key="item.dcode"
166 :label="item.dname"
167 :value="item.dcode">
168 </el-option>
169 </el-select>
170 </el-form-item>
171 </el-col>
172 <el-col :span="8">
173 <el-form-item label="养殖业方式:">
174 <el-select
175 v-model="ruleForm.nydsyq.yzyfs"
176 :disabled="!viewEdit"
177 class="width100"
178 filterable
179 clearable
180 @change="changeYzyfs">
181 <el-option
182 v-for="item in dictData['A24']"
183 :key="item.dcode"
184 :label="item.dname"
185 :value="item.dcode">
186 </el-option>
187 </el-select>
188 </el-form-item>
189 </el-col>
190 <el-col :span="8">
191 <el-form-item label="草原质量:">
192 <el-input
193 v-model="ruleForm.nydsyq.cyzl"
194 :disabled="!viewEdit"></el-input>
195 </el-form-item>
196 </el-col>
197 </el-row>
198 <el-row :gutter="10">
199 <el-col :span="8">
200 <el-form-item label="适宜载畜量:">
201 <el-input
202 v-model="ruleForm.nydsyq.syzcl"
203 :disabled="!viewEdit"
204 oninput="value=value.replace(/[^\d.]/g,'')"></el-input>
205 </el-form-item>
206 </el-col>
207 <el-col :span="8">
208 <el-form-item label="用地用海分类:">
209 <el-select
210 v-model="ruleForm.nydsyq.ydyhfl"
211 :disabled="!viewEdit"
212 class="width100"
213 filterable
214 clearable
215 @change="changeYdyhfl">
216 <el-option
217 v-for="item in dictData['A51']"
218 :key="item.dcode"
219 :label="item.dname"
220 :value="item.dcode">
221 </el-option>
222 </el-select>
223 </el-form-item>
224 </el-col>
225 <el-col :span="8">
226 <el-form-item label="土地承包合同:">
227 <el-input
228 v-model="ruleForm.nydsyq.tdcbht"
229 :disabled="!viewEdit"></el-input>
230 </el-form-item>
231 </el-col>
232 </el-row>
233 <el-row :gutter="10">
234 <el-col>
235 <el-form-item label="附记:" prop="fj">
236 <el-input
237 type="textarea"
238 maxlength="500"
239 show-word-limit
240 v-model="ruleForm.nydsyq.fj"
241 :disabled="!viewEdit"></el-input>
242 </el-form-item>
243 </el-col>
244 </el-row>
245 <div class="slxx_title title-block">
246 权利人信息
247 <div class="triangle"></div>
248 </div>
249 <el-row :gutter="10">
250 <el-col :span="12">
251 <el-form-item label="共有方式:">
252 <el-radio-group
253 :disabled="!viewEdit"
254 v-model="ruleForm.sldy.gyfs">
255 <el-radio label="0">单独所有</el-radio>
256 <el-radio label="1">共同共有</el-radio>
257 <el-radio label="2">按份所有</el-radio>
258 <el-radio label="3">其它共有</el-radio>
259 </el-radio-group>
260 </el-form-item>
261 </el-col>
262 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
263 <el-form-item label="是否分别持证:">
264 <el-radio-group
265 v-model="ruleForm.sldy.sqfbcz"
266 :disabled="!viewEdit"
267 @input="updaterow()">
268 <el-radio :label="1"></el-radio>
269 <el-radio :label="0"></el-radio>
270 </el-radio-group>
271 </el-form-item>
272 </el-col>
273 <el-col
274 :span="6"
275 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
276 <el-form-item label="持证人:">
277 <el-select
278 v-model="czr"
279 placeholder="持证人"
280 :disabled="!viewEdit">
281 <el-option
282 v-for="(item,index) in czrOptions"
283 :key="index"
284 :label="item.sqrmc"
285 :value="item.id">
286 </el-option>
287 </el-select>
288 </el-form-item>
289 </el-col>
290 </el-row>
291 <qlrCommonTable
292 :tableData="ruleForm.qlrList"
293 @upDateQlrxxList="upDateQlrxxList"
294 :disabled="viewEdit"
295 :gyfs="ruleForm.sldy.gyfs" />
296 <div class="slxx_title title-block">
297 义务人信息
298 <div class="triangle"></div>
299 </div>
300 <ywrCommonTable
301 :tableData="ruleForm.ywrList"
302 @upDateQlrxxList="upDateYwrxxList"
303 :disabled="viewEdit" />
304 <div class="slxx_title title-block">
305 家庭成员
306 <div class="triangle"></div>
307 </div>
308 <JtcyTable
309 :tableData="ruleForm.jtcyList"
310 :disabled="!viewEdit"
311 @upDateJtcyList="upDateJtcyList"
312 :gyfs="ruleForm.slywxx.gyfs" />
313 <div class="slxx_title title-block">
314 登记原因
315 <div class="triangle"></div>
316 </div>
317 <el-row :gutter="10">
318 <el-col>
319 <el-form-item label="登记原因:" prop="nydsyq.djyy">
320 <el-input
321 class="textArea"
322 type="textarea"
323 maxlength="500"
324 show-word-limit
325 :disabled="!viewEdit"
326 v-model="ruleForm.nydsyq.djyy">
327 </el-input>
328 </el-form-item>
329 </el-col>
330 </el-row>
331 </div>
332 <el-row class="btn" v-if="isSave">
333 <el-form-item>
334 <el-button type="primary" @click="onSubmit">保存</el-button>
335 </el-form-item>
336 </el-row>
337 </el-form>
338 </div>
339 </template>
340 <script>
341 import { mapGetters } from "vuex";
342 import ywmix from "@/views/ywbl/mixin/index";
343 import { Init, saveData } from "@/api/workflow/nydsyqFlow.js";
344 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
345 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
346 import JtcyTable from "@/views/workflow/components/JtcyTable";
347 export default {
348 mixins: [ywmix],
349 mounted () {
350 let that = this
351 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
352 this.propsParam = this.$attrs;
353 var formdata = new FormData();
354 this.loading = true
355 formdata.append("bsmSldy", this.propsParam.bsmSldy);
356 formdata.append("djlx", this.propsParam.djlx);
357 formdata.append("isEdit", this.viewEdit);
358 Init(formdata).then((res) => {
359 setTimeout(() => {
360 that.loading = false
361 }, 200)
362 if (res.code === 200) {
363 that.ruleForm = res.result;
364 that.ruleForm.qlrList.forEach((item) => {
365 item.id = item.bsmSqr
366 if (item.sfczr == '1') {
367 that.czr = item.bsmSqr
368 }
369 })
370 that.czrOptions = that.ruleForm.qlrList
371 that.isSave = that.viewEdit
372 } else {
373 that.isSave = false
374 that.$confirm(res.message, '提示', {
375 cancelButtonText: '取消',
376 showConfirmButton: false,
377 type: 'warning'
378 })
379 }
380 }).catch(() => {
381 this.loading = false
382 this.isSave = false
383 })
384 },
385 components: { qlrCommonTable, JtcyTable, ywrCommonTable },
386 computed: {
387 ...mapGetters(["dictData", "flag"]),
388 },
389 data () {
390 return {
391 isSave: true,
392 loading: false,
393 // 键名转换,方法默认是label和children进行树状渲染
394 normalizer (node) {
395 //方法
396 if (node.children == null || node.children == "null") {
397 delete node.children;
398 }
399 return {
400 id: node.dcode,
401 label: node.dname,
402 };
403 },
404 //表单是否可操作
405 viewEdit: true,
406 disabled: true,
407 czrOptions: [],
408 czr: "",
409 ruleForm: {},
410 //传递参数
411 propsParam: {},
412 rules: {
413 'nydsyq.djyy': [
414 { required: true, message: '请输入登记原因', trigger: 'blur' }
415 ]
416 }
417 }
418 },
419 methods: {
420 /**
421 * @description: onSubmit
422 * @author: renchao
423 */
424 onSubmit () {
425 let that = this;
426 if (this.ruleForm.qlrList.length == 0) {
427 this.$message({
428 showClose: true,
429 message: "请确认权利人信息",
430 type: "error",
431 });
432 return false;
433 }
434
435 if (this.ruleForm.sldy.gyfs == "0") {
436 if (this.ruleForm.qlrList.length > 1) {
437 this.$message({
438 showClose: true,
439 message: "共有方式:单独所有,权利人只能是一个人",
440 type: "error",
441 });
442 return false;
443 }
444 this.ruleForm.qlrList[0].sfczr = "1";
445 } else {
446 if (this.ruleForm.qlrList.length <= 1) {
447 this.$message({
448 showClose: true,
449 message:
450 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
451 type: "error",
452 });
453 return false;
454 }
455 //是否分别持证
456 if (this.ruleForm.sldy.sqfbcz == "1") {
457 //是
458 this.ruleForm.qlrList.forEach((item, index) => {
459 item.sfczr = "1";
460 });
461 } else {
462 if (that.czr === '') {
463 that.$message({
464 showClose: true,
465 message: "请选择持证人",
466 type: "error"
467 });
468 return false;
469 }
470 this.ruleForm.qlrList.forEach((item, index) => {
471 if (item.id == that.czr) {
472 item.sfczr = "1"
473 } else {
474 item.sfczr = "0"
475 }
476 })
477 }
478 }
479 this.$refs['ruleForm'].validate((valid) => {
480 if (valid) {
481 that.$store.dispatch("user/refreshPage", false);
482 saveData(that.ruleForm).then((res) => {
483 if (res.code === 200) {
484 that.$message({
485 showClose: true,
486 message: "保存成功!",
487 type: "success",
488 });
489 that.$store.dispatch("user/refreshPage", true);
490 } else {
491 that.$message({
492 showClose: true,
493 message: res.message,
494 type: "error",
495 });
496 }
497 })
498 } else {
499 this.$message({
500 showClose: true,
501 message: "请输入登记原因",
502 type: "error"
503 })
504 return false
505 }
506 })
507 },
508 /**
509 * @description: 权利人更新
510 * @param {*} val
511 * @author: renchao
512 */
513 upDateQlrxxList (val) {
514 this.ruleForm.qlrList = _.cloneDeep(val);
515 this.czrOptions = this.ruleForm.qlrList;
516 this.num = 0
517 this.ruleForm.qlrList.forEach(item => {
518 if (item.id == this.czr) {
519 this.num++
520 }
521 })
522 if (this.num == 0) {
523 this.czr = ''
524 }
525 },
526 /**
527 * @description: 是否持证人变化
528 * @param {*} val
529 * @author: renchao
530 */
531 updaterow () {
532 this.czr = "";
533 },
534 /**
535 * @description: 更新义务人信息
536 * @param {*} val
537 * @author: renchao
538 */
539 upDateYwrxxList (val) {
540 this.ruleForm.ywrList = _.cloneDeep(val);
541 },
542 //家庭成员更新
543 /**
544 * @description: 家庭成员更新
545 * @param {*} val
546 * @author: renchao
547 */
548 upDateJtcyList (val) {
549 this.ruleForm.jtcyList = _.cloneDeep(val);
550 },
551 //水域滩涂类型变化事件
552 /**
553 * @description: 水域滩涂类型变化事件
554 * @param {*} e
555 * @author: renchao
556 */
557 changeSyttlx (e) {
558 let itemLx = {};
559 itemLx = this.dictData["A23"].find((item) => {
560 return item.dcode == e;
561 });
562 this.ruleForm.nydsyq.syttlxmc = itemLx.dname;
563 },
564 //养殖业方式变化事件
565 /**
566 * @description: 养殖业方式变化事件
567 * @param {*} e
568 * @author: renchao
569 */
570 changeYzyfs (e) {
571 let itemLx = {};
572 itemLx = this.dictData["A24"].find((item) => {
573 return item.dcode == e;
574 });
575 this.ruleForm.nydsyq.yzyfsmc = itemLx.dname;
576 },
577 //用地用海变化事件
578 /**
579 * @description: 用地用海变化事件
580 * @param {*} e
581 * @author: renchao
582 */
583 changeYdyhfl (e) {
584 let itemLx = {};
585 itemLx = this.dictData["A51"].find((item) => {
586 return item.dcode == e;
587 });
588 this.ruleForm.nydsyq.ydyhflmc = itemLx.dname;
589 },
590 },
591 };
592 </script>
593 <style scoped lang="scss">
594 @import "~@/styles/public.scss";
595 @import "~@/styles/slxx/slxx.scss";
596 </style>
1 <!--
2 * @Description: 房屋多幢受理信息
3 * @Autor: ssq
4 * @LastEditTime: 2024-01-31 10:17:15
5 -->
6 <template>
7 <div class="slxx">
8 <el-form
9 :model="ruleForm"
10 :rules="rules"
11 ref="ruleForm"
12 v-Loading="loading"
13 :label-position="flag ? 'top' : ''"
14 :inline="flag"
15 label-width="190px">
16 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
17 <div class="slxx_title title-block">
18 申请业务信息
19 <div class="triangle"></div>
20 </div>
21 <el-row :gutter="10" v-if="ruleForm.slsq">
22 <el-col :span="8">
23 <el-form-item label="业务号:">
24 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理人员:">
29 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
30 </el-form-item>
31 </el-col>
32 <el-col :span="8">
33 <el-form-item label="受理时间:">
34 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
35 </el-form-item>
36 </el-col>
37 </el-row>
38 <el-row :gutter="10" v-if="ruleForm.slsq">
39 <el-col :span="8">
40 <el-form-item label="权利类型:">
41 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
42 </el-form-item>
43 </el-col>
44 <el-col :span="8">
45 <el-form-item label="登记类型:">
46 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
47 </el-form-item>
48 </el-col>
49 <el-col :span="8">
50 <el-form-item label="登记情形:">
51 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
52 </el-form-item>
53 </el-col>
54 </el-row>
55 <div class="slxx_title title-block">
56 <el-row>
57 <el-col :span="20">
58 不动产单元情况
59 </el-col>
60 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
61 <el-form-item label="是否创建证书:" style="height:24px">
62 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
63 <el-radio label="1"></el-radio>
64 <el-radio label="0"></el-radio>
65 </el-radio-group>
66 </el-form-item>
67 </el-col>
68 </el-row>
69 <div class="triangle"></div>
70 </div>
71 <el-row :gutter="10" v-if="ruleForm.qlxx">
72 <el-col :span="8">
73 <el-form-item label="不动产单元号:">
74 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
75 </el-form-item>
76 </el-col>
77 <el-col :span="16">
78 <el-form-item label="坐落:">
79 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
80 </el-form-item>
81 </el-col>
82 </el-row>
83 <el-row :gutter="10">
84 <el-col :span="8">
85 <el-form-item label="发包方:">
86 <el-input v-model="ruleForm.lq.fbf" :disabled="!viewEdit"></el-input>
87 </el-form-item>
88 </el-col>
89 <el-col :span="8">
90 <el-form-item label="发包方代码:">
91 <el-input v-model="ruleForm.lq.fbfdm" :disabled="!viewEdit"></el-input>
92 </el-form-item>
93 </el-col>
94 <el-col :span="8">
95 <el-form-item label="使用权(承包)面积:">
96 <el-input maxlength="12" v-model="ruleForm.lq.syqmj" :disabled="!viewEdit"></el-input>
97 </el-form-item>
98 </el-col>
99 </el-row>
100 <el-row :gutter="10">
101 <el-col :span="8">
102 <el-form-item label="林地所有权性质:">
103 <el-select v-model="ruleForm.lq.ldsyqxz" :disabled="!viewEdit">
104 <el-option
105 v-for="item in dictData['A45']"
106 :key="item.dcode"
107 :label="item.dname"
108 :value="item.dcode">
109 </el-option>
110 </el-select>
111 </el-form-item>
112 </el-col>
113 <el-col :span="8">
114 <el-form-item label="森林类别:">
115 <el-input v-model="ruleForm.lq.sllb" :disabled="!viewEdit"></el-input>
116 </el-form-item>
117 </el-col>
118 <el-col :span="8">
119 <el-form-item label="主要树种:">
120 <el-input v-model="ruleForm.lq.zysz" :disabled="!viewEdit"></el-input>
121 </el-form-item>
122 </el-col>
123 </el-row>
124 <el-row :gutter="10">
125 <el-col :span="8">
126 <el-form-item label="株数:">
127 <el-input v-model="ruleForm.lq.zs" :disabled="!viewEdit"></el-input>
128 </el-form-item>
129 </el-col>
130 <el-col :span="8">
131 <el-form-item label="林种:">
132 <el-select v-model="ruleForm.lq.lz" :disabled="!viewEdit">
133 <el-option
134 v-for="item in dictData['A26']"
135 :key="item.dcode"
136 :label="item.dname"
137 :value="item.dcode">
138 </el-option>
139 </el-select>
140 </el-form-item>
141 </el-col>
142 <el-col :span="8">
143 <el-form-item label="起源:">
144 <el-select v-model="ruleForm.lq.qy" :disabled="!viewEdit">
145 <el-option
146 v-for="item in dictData['A52']"
147 :key="item.dcode"
148 :label="item.dname"
149 :value="item.dcode">
150 </el-option>
151 </el-select>
152 </el-form-item>
153 </el-col>
154 </el-row>
155 <el-row :gutter="10">
156 <el-col :span="8">
157 <el-form-item label="造林年度:">
158 <!-- <el-input v-model="ruleForm.lq.zlnd"></el-input> -->
159 <el-date-picker
160 class="width100"
161 value-format="yyyy"
162 v-model="ruleForm.lq.zlnd"
163 :disabled="!viewEdit"
164 type="year">
165 </el-date-picker>
166 </el-form-item>
167 </el-col>
168 <el-col :span="8">
169 <el-form-item label="林班:">
170 <el-input v-model="ruleForm.lq.lb" :disabled="!viewEdit"></el-input>
171 </el-form-item>
172 </el-col>
173 <el-col :span="8">
174 <el-form-item label="小班:">
175 <el-input v-model="ruleForm.lq.xb" :disabled="!viewEdit"></el-input>
176 </el-form-item>
177 </el-col>
178 </el-row>
179 <el-row :gutter="10">
180 <el-col :span="8">
181 <el-form-item label="小地名:">
182 <el-input v-model="ruleForm.lq.xdm" :disabled="!viewEdit"></el-input>
183 </el-form-item>
184 </el-col>
185 <el-col :span="8">
186 <el-form-item label="林地使用(承包)起始时间:">
187 <el-date-picker
188 class="width100"
189 value-format="yyyy-MM-dd HH:mm:ss"
190 v-model="ruleForm.lq.ldsyqssj"
191 :disabled="!viewEdit"
192 type="date"></el-date-picker>
193 </el-form-item>
194 </el-col>
195 <el-col :span="8">
196 <el-form-item label="林地使用(承包)结束时间:">
197 <el-date-picker
198 class="width100"
199 value-format="yyyy-MM-dd HH:mm:ss"
200 v-model="ruleForm.lq.ldsyjssj"
201 :disabled="!viewEdit"
202 type="date"></el-date-picker>
203 </el-form-item>
204 </el-col>
205 </el-row>
206 <el-row :gutter="10">
207 <!-- <el-col :span="8">
208 <el-form-item label="土地用途:">
209 <el-input v-model="ruleForm.lq.xdm"></el-input>
210 </el-form-item>
211 </el-col> -->
212 <el-col :span="8">
213 <el-form-item label="林地使用 (承包)期限:">
214 <el-input v-model="ruleForm.lq.ldsyqx" :disabled="!viewEdit"></el-input>
215 </el-form-item>
216 </el-col>
217 </el-row>
218 <el-row :gutter="10">
219 <el-col :span="24">
220 <el-form-item label="附记:">
221 <el-input
222 v-model="ruleForm.lq.fj"
223 :disabled="!viewEdit"
224 type="textarea"
225 maxlength="500"
226 show-word-limit></el-input>
227 </el-form-item>
228 </el-col>
229 </el-row>
230 <!-- <div class="slxx_title title-block">
231 土地用途
232 <div class="triangle"></div>
233 </div> -->
234 <!-- <tdytTable
235 :ableOperation="viewEdit"
236 :tableData="ruleForm.tdytqxList"
237 @upDateTdytxxList="upDateTdytxxList" /> -->
238 <div class="slxx_title title-block">
239 权利人信息
240 <div class="triangle"></div>
241 </div>
242 <el-row :gutter="10">
243 <el-col :span="12" v-if="ruleForm.qlxx">
244 <el-form-item label="共有方式:">
245 <el-radio-group
246 :disabled="!viewEdit"
247 v-model="ruleForm.sldy.gyfs">
248 <el-radio label="0">单独所有</el-radio>
249 <el-radio label="1">共同共有</el-radio>
250 <el-radio label="2">按份所有</el-radio>
251 <el-radio label="3">其它共有</el-radio>
252 </el-radio-group>
253 </el-form-item>
254 </el-col>
255 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
256 <el-form-item label="是否分别持证:">
257 <el-radio-group
258 v-model="ruleForm.sldy.sqfbcz"
259 :disabled="!viewEdit"
260 @input="updaterow()">
261 <el-radio :label="1"></el-radio>
262 <el-radio :label="0"></el-radio>
263 </el-radio-group>
264 </el-form-item>
265 </el-col>
266 <el-col
267 :span="6"
268 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
269 <el-form-item label="持证人:">
270 <el-select
271 v-model="czr"
272 placeholder="持证人"
273 :disabled="!viewEdit">
274 <el-option
275 v-for="(item, index) in czrOptions"
276 :key="index"
277 :label="item.sqrmc"
278 :value="item.id">
279 </el-option>
280 </el-select>
281 </el-form-item>
282 </el-col>
283 </el-row>
284 <qlrCommonTable
285 @upDateQlrxxList="upDateQlrxxList"
286 :tableData="ruleForm.qlrList"
287 :disabled="viewEdit"
288 :gyfs="ruleForm.sldy.gyfs" />
289
290 <div v-if="ruleForm.ywrList && ruleForm.sldy.djlx == '200'">
291 <div class="slxx_title title-block">
292 义务人信息
293 <div class="triangle"></div>
294 </div>
295 <ywrCommonTable
296 v-if="ruleForm.qlxx"
297 :disabled="viewEdit"
298 @upDateQlrxxList="upDateYwrxxList"
299 :tableData="ruleForm.ywrList"
300 :gyfs="ruleForm.sldy.gyfs" />
301 </div>
302 <div class="slxx_title title-block">
303 登记原因
304 <div class="triangle"></div>
305 </div>
306 <el-row :gutter="10">
307 <el-col>
308 <el-form-item v-if="ruleForm.sldy" label="登记原因:" prop="djyy">
309 <el-input
310 class="textArea"
311 type="textarea"
312 maxlength="500"
313 show-word-limit
314 :disabled="!viewEdit"
315 v-model="ruleForm.lq.djyy">
316 </el-input>
317 </el-form-item>
318 </el-col>
319 </el-row>
320 </div>
321 <el-row class="btn" v-if="isSave">
322 <el-form-item>
323 <el-button type="primary" @click="onSubmit">保存</el-button>
324 </el-form-item>
325 </el-row>
326 </el-form>
327 </div>
328 </template>
329 <script>
330 import ywmix from "@/views/ywbl/mixin/index";
331 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
332 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
333 import tdytTable from "@/views/workflow/components/tdytTable";
334 import { Init, saveData } from "@/api/workflow/sllmFlow.js";
335 import { mapGetters } from "vuex";
336 export default {
337 mixins: [ywmix],
338 mounted () {
339 let that = this
340 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
341 this.propsParam = this.$attrs;
342 var formdata = new FormData();
343 this.loading = true
344 formdata.append("bsmSldy", this.propsParam.bsmSldy);
345 formdata.append("djlx", this.propsParam.djlx);
346 formdata.append("isEdit", this.viewEdit);
347 Init(formdata).then((res) => {
348 setTimeout(() => {
349 this.loading = false
350 }, 200)
351 if (res.code === 200 && res.result) {
352 this.ruleForm = {
353 ...res.result,
354 ...res.result.qlxxdatas,
355 };
356 this.ruleForm.qlrList.forEach((item) => {
357 item.id = item.bsmSqr
358 if (item.sfczr == '1') {
359 that.czr = item.bsmSqr
360 }
361 })
362 that.czrOptions = that.ruleForm.qlrList
363 that.isSave = that.viewEdit
364 } else {
365 that.isSave = false
366 that.$confirm(res.message, '提示', {
367 cancelButtonText: '取消',
368 showConfirmButton: false,
369 type: 'warning'
370 })
371 }
372 }).catch(() => {
373 this.loading = false
374 this.isSave = false
375 })
376 },
377 components: { qlrCommonTable, tdytTable, ywrCommonTable },
378 computed: {
379 ...mapGetters(["dictData", "flag"]),
380 },
381 data () {
382 return {
383 isSave: true,
384 loading: false,
385 disabled: true,
386 tdytOption: [],
387 czrOptions: [],
388 czr: "",
389 ruleForm: {
390 lq: {
391 zlnd: "",
392 ldsyqssj: "",
393 ldsyjssj: ""
394 },
395 flow: {
396 ywh: "",
397 },
398 qlxx: {
399 mj: "",
400 },
401 sldy: {
402 gyfs: "",
403 },
404 slsq: {},
405 fdcq2: {
406 zyjzmj: "",
407 ftjzmj: "",
408 },
409 zdjbxx: {
410 ghytmc: "",
411 },
412 },
413 //传递参数
414 propsParam: this.$attrs,
415 //表单是否可操作
416 viewEdit: true,
417 rules: {},
418 };
419 },
420 methods: {
421 /**
422 * @description: 更新土地用途信息
423 * @param {*} val
424 * @author: renchao
425 */
426 upDateTdytxxList (val) {
427 this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
428 },
429 /**
430 * @description: 更新权利人信息
431 * @param {*} val
432 * @author: renchao
433 */
434 upDateQlrxxList (val) {
435 if (!_.isEqual(val, this.ruleForm.qlrList)) {
436 this.ruleForm.qlrList = _.cloneDeep(val);
437 this.czrOptions = this.ruleForm.qlrList;
438 }
439 this.num = 0
440 this.ruleForm.qlrList.forEach(item => {
441 if (item.id == this.czr) {
442 this.num++
443 }
444 })
445 if (this.num == 0) {
446 this.czr = ''
447 }
448 },
449 /**
450 * @description: 是否持证人变化
451 * @param {*} val
452 * @author: renchao
453 */
454 updaterow () {
455 this.czr = "";
456 },
457 /**
458 * @description: 更新业务人信息
459 * @param {*} val
460 * @author: renchao
461 */
462 upDateYwrxxList (val) {
463 this.ruleForm.ywrList = _.cloneDeep(val);
464 },
465 /**
466 * @description: onSubmit
467 * @author: renchao
468 */
469 onSubmit () {
470 let that = this;
471 if (this.ruleForm.qlrList.length == 0) {
472 this.$message({
473 showClose: true,
474 message: "请确认权利人信息",
475 type: "error",
476 });
477 return false;
478 }
479
480 if (this.ruleForm.sldy.gyfs == "0") {
481 if (this.ruleForm.qlrList.length > 1) {
482 this.$message({
483 showClose: true,
484 message: "共有方式:单独所有,权利人只能是一个人",
485 type: "error",
486 });
487 return false;
488 }
489 this.ruleForm.qlrList[0].sfczr = "1";
490 } else {
491 if (this.ruleForm.qlrList.length <= 1) {
492 this.$message({
493 showClose: true,
494 message:
495 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
496 type: "error",
497 });
498 return false;
499 }
500 //是否分别持证
501 if (this.ruleForm.sldy.sqfbcz == "1") {
502 //是
503 this.ruleForm.qlrList.forEach(item => {
504 item.sfczr = "1";
505 });
506 } else {
507 if (that.czr === '') {
508 that.$message({
509 showClose: true,
510 message: "请选择持证人",
511 type: "error",
512 });
513 return false;
514 }
515 this.ruleForm.qlrList.forEach(item => {
516 if (item.id == that.czr) {
517 item.sfczr = "1";
518 } else {
519 item.sfczr = "0";
520 }
521 });
522 }
523 }
524 saveData(this.ruleForm).then((res) => {
525 if (res.code === 200) {
526 this.$message({
527 showClose: true,
528 message: "保存成功!",
529 type: "success",
530 });
531 this.$store.dispatch("user/refreshPage", true);
532 } else {
533 this.$message({
534 showClose: true,
535 message: res.message,
536 type: "error"
537 })
538 }
539 })
540 }
541 }
542 }
543 </script>
544 <style scoped lang="scss">
545 @import "~@/styles/public.scss";
546
547 /deep/.el-form {
548 display: flex;
549 flex-direction: column;
550 height: calc(100vh - 130px);
551 }
552
553 /deep/.el-form-item__label {
554 padding: 0;
555 }
556
557 /deep/.el-radio {
558 margin-right: 10px;
559 }
560
561 /deep/.el-select {
562 width: 100%;
563 }
564
565 /deep/.el-form-item {
566 margin-bottom: 3px;
567 }
568
569 .marginBot0 {
570 margin-bottom: 0 !important;
571 }
572
573 .slxx {
574 box-sizing: border-box;
575 }
576
577 .slxx_con {
578 flex: 1;
579 height: 100%;
580 background-color: #ffffff;
581 overflow-y: auto;
582 padding-right: 3px;
583 overflow-x: hidden;
584 }
585
586 .submit_btn {
587 height: 50px;
588 }
589
590 .btn {
591 text-align: center;
592 padding-top: 10px;
593 height: 36px;
594 background-color: #ffffff;
595 padding: 5px 0;
596 }
597
598 .textArea {
599 /deep/.el-textarea__inner {
600 min-height: 90px !important;
601 }
602 }
603
604 /deep/.el-form-item__label {
605 padding-bottom: 0px;
606 }
607 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-02-04 16:11:40
5 -->
6 <template>
7 <!-- 受理信息 -->
8 <div class="slxx">
9 <el-form
10 :model="ruleForm"
11 :rules="rules"
12 :class="{ readonly: editDisabled }"
13 v-Loading="loading"
14 ref="ruleForm"
15 :label-position="flag ? 'top' : ''"
16 :inline="flag"
17 label-width="140px">
18 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
19 <div class="slxx_title title-block">
20 申请业务信息
21 <div class="triangle"></div>
22 </div>
23 <el-row :gutter="10">
24 <el-col :span="8">
25 <el-form-item label="业务号:">
26 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
27 </el-form-item>
28 </el-col>
29 <el-col :span="8">
30 <el-form-item label="受理人员:">
31 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
32 </el-form-item>
33 </el-col>
34 <el-col :span="8">
35 <el-form-item label="受理时间:">
36 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
37 </el-form-item>
38 </el-col>
39 </el-row>
40 <el-row :gutter="10">
41 <el-col :span="8">
42 <el-form-item label="权利类型:">
43 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
44 </el-form-item>
45 </el-col>
46 <el-col :span="8">
47 <el-form-item label="登记类型:">
48 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
49 </el-form-item>
50 </el-col>
51 <el-col :span="8">
52 <el-form-item label="登记情形:">
53 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
54 </el-form-item>
55 </el-col>
56 </el-row>
57 <div class="slxx_title title-block">
58 <el-row>
59 <el-col :span="20">
60 不动产单元情况
61 </el-col>
62 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
63 <el-form-item label="是否创建证书:" style="height:24px">
64 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
65 <el-radio label="1"></el-radio>
66 <el-radio label="0"></el-radio>
67 </el-radio-group>
68 </el-form-item>
69 </el-col>
70 </el-row>
71 <div class="triangle"></div>
72 </div>
73 <el-row :gutter="10">
74 <el-col :span="8">
75 <el-form-item label="宗地代码:">
76 <el-input v-model="ruleForm.zdjbxx.zddm" disabled></el-input>
77 </el-form-item>
78 </el-col>
79 <el-col :span="8">
80 <el-form-item label="不动产单元号:">
81 <el-input v-model="ruleForm.sldy.bdcdyh" disabled></el-input>
82 </el-form-item>
83 </el-col>
84 <el-col :span="8">
85 <el-form-item label="权利性质:">
86 <treeselect
87 v-model="ruleForm.zdjbxx.qlxz"
88 noOptionsText="暂无数据"
89 :default-expand-level="1"
90 :disabled="!viewEdit"
91 placeholder=""
92 :normalizer="normalizer"
93 :show-count="true"
94 :options="dictData['A9']" />
95 </el-form-item>
96 </el-col>
97 </el-row>
98 <el-row :gutter="10">
99 <el-col :span="8">
100 <el-form-item label="地块代码:">
101 <el-input v-model="ruleForm.tdcbjyq.dkdm" :disabled="!viewEdit"></el-input>
102 </el-form-item>
103 </el-col>
104 <el-col :span="8">
105 <el-form-item label="地块名称:">
106 <el-input v-model="ruleForm.tdcbjyq.dkmc" :disabled="!viewEdit"></el-input>
107 </el-form-item>
108 </el-col>
109 <el-col :span="8">
110 <el-form-item label="承包方式:">
111 <el-input v-model="ruleForm.tdcbjyq.cbfs" :disabled="!viewEdit"></el-input>
112 </el-form-item>
113 </el-col>
114
115 </el-row>
116
117 <el-row :gutter="10">
118 <el-col :span="8">
119 <el-form-item label="发包方代码:">
120 <el-input v-model="ruleForm.tdcbjyq.fbfdm" :disabled="!viewEdit"></el-input>
121 </el-form-item>
122 </el-col>
123 <el-col :span="8">
124 <el-form-item label="发包方全称:">
125 <el-input v-model="ruleForm.tdcbjyq.fbfqc" :disabled="!viewEdit"></el-input>
126 </el-form-item>
127 </el-col>
128 <el-col :span="8">
129 <el-form-item label="发包方负责人:">
130 <el-input v-model="ruleForm.tdcbjyq.fbffzr" :disabled="!viewEdit"></el-input>
131 </el-form-item>
132 </el-col>
133 </el-row>
134
135 <el-row :gutter="10">
136 <el-col :span="8">
137 <el-form-item label="承包起始时间:">
138 <el-date-picker
139 v-model="ruleForm.tdcbjyq.cbqssj"
140 class="width100"
141 type="date"
142 :disabled="!viewEdit"
143 :picker-options="pickerOptionsStart"
144 placeholder="选择日期"
145 value-format="yyyy-MM-dd HH:mm:ss"
146 format="yyyy-MM-dd"></el-date-picker>
147 </el-form-item>
148 </el-col>
149 <el-col :span="8">
150 <el-form-item label="承包结束时间:">
151 <el-date-picker
152 v-model="ruleForm.tdcbjyq.cbjssj"
153 :disabled="!viewEdit"
154 class="width100"
155 type="date"
156 placeholder="选择日期"
157 :picker-options="pickerOptionsEnd"
158 value-format="yyyy-MM-dd HH:mm:ss"
159 format="yyyy-MM-dd"></el-date-picker>
160 </el-form-item>
161 </el-col>
162 <el-col :span="8">
163 <el-form-item label="承包期限:">
164 <el-input v-model="ruleForm.tdcbjyq.cbqx" :disabled="!viewEdit"></el-input>
165 </el-form-item>
166 </el-col>
167 </el-row>
168 <el-row :gutter="10">
169 <el-col :span="8">
170 <el-form-item label="用途:">
171 <treeselect
172 :disabled="!viewEdit"
173 v-model="ruleForm.tdcbjyq.yt"
174 noOptionsText="暂无数据"
175 :default-expand-level="1"
176 placeholder=""
177 :normalizer="normalizer"
178 :show-count="true"
179 :options="dictData['tdyt']" />
180 </el-form-item>
181 </el-col>
182 <el-col :span="8">
183 <el-form-item label="确权面积:">
184 <div class="flex">
185 <el-input
186 :disabled="!viewEdit"
187 v-model="ruleForm.tdcbjyq.qqmj"
188 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
189 <el-select :disabled="!viewEdit" v-model="mjdw" style="width: 68px">
190 <el-option
191 v-for="item in dictData['A7']"
192 :key="item.dcode"
193 :label="item.dname"
194 :value="item.dcode">
195 </el-option>
196 </el-select>
197 </div>
198 </el-form-item>
199 </el-col>
200 <el-col :span="8">
201 <el-form-item label="土地所有权性质:">
202 <el-select clearable v-model="ruleForm.tdcbjyq.tdsyqxz" class="width100" placeholder="请选择" :disabled="!viewEdit">
203 <el-option v-for="item in dictData['A45']" :key="item.dcode" :label="item.dname" :value="item.dcode">
204 </el-option>
205 </el-select>
206 </el-form-item>
207 </el-col>
208 </el-row>
209
210 <el-row :gutter="10">
211 <el-col :span="8">
212 <el-form-item label="是否永久基本农田:">
213 <el-radio-group v-model="ruleForm.tdcbjyq.sfyjjbnt" :disabled="!viewEdit">
214 <el-radio label="1"></el-radio>
215 <el-radio label="0"></el-radio>
216 </el-radio-group>
217 </el-form-item>
218 </el-col>
219 <el-col :span="8">
220 <el-form-item label="是否自留地:">
221 <el-radio-group
222 v-model="ruleForm.tdcbjyq.sfzld"
223 :disabled="!viewEdit">
224 <el-radio label="1"></el-radio>
225 <el-radio label="0"></el-radio>
226 </el-radio-group>
227 </el-form-item>
228 </el-col>
229 <el-col :span="8">
230 <el-form-item label="用地用海分类:">
231 <el-select clearable v-model="ruleForm.tdcbjyq.ydyhfl" class="width100" placeholder="请选择" :disabled="!viewEdit">
232 <el-option v-for="item in dictData['A56']" :key="item.dcode" :label="item.dname" :value="item.dcode">
233 </el-option>
234 </el-select>
235 </el-form-item>
236 </el-col>
237 </el-row>
238
239 <el-row :gutter="10">
240 <el-col :span="8">
241 <el-form-item label="承包经营权取得方式:">
242 <el-select clearable v-model="ruleForm.tdcbjyq.cbjyqqdfs" class="width100" placeholder="请选择" :disabled="!viewEdit">
243 <el-option v-for="item in dictData['A59']" :key="item.dcode" :label="item.dname" :value="item.dcode">
244 </el-option>
245 </el-select>
246 </el-form-item>
247 </el-col>
248 <el-col :span="16">
249 <el-form-item label="附记:">
250 <el-input maxlength="100" :disabled="!viewEdit" v-model="ruleForm.tdcbjyq.fj"></el-input>
251 </el-form-item>
252 </el-col>
253 </el-row>
254
255 <div class="slxx_title title-block">
256 权利人信息
257 <div class="triangle"></div>
258 </div>
259 <el-row :gutter="10">
260 <el-col :span="12">
261 <el-form-item label="共有方式:">
262 <el-radio-group
263 :disabled="!viewEdit"
264 v-model="ruleForm.sldy.gyfs">
265 <el-radio label="0">单独所有</el-radio>
266 <el-radio label="1">共同共有</el-radio>
267 <el-radio label="2">按份所有</el-radio>
268 <el-radio label="3">其它共有</el-radio>
269 </el-radio-group>
270 </el-form-item>
271 </el-col>
272 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
273 <el-form-item label="是否分别持证:">
274 <el-radio-group
275 v-model="ruleForm.sldy.sqfbcz"
276 :disabled="!viewEdit"
277 @input="updaterow()">
278 <el-radio :label="1"></el-radio>
279 <el-radio :label="0"></el-radio>
280 </el-radio-group>
281 </el-form-item>
282 </el-col>
283 <el-col
284 :span="6"
285 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
286 <el-form-item label="持证人:">
287 <el-select
288 v-model="czr"
289 placeholder="持证人"
290 :disabled="!viewEdit">
291 <el-option
292 v-for="(item, index) in czrOptions"
293 :key="index"
294 :label="item.sqrmc"
295 :value="item.id">
296 </el-option>
297 </el-select>
298 </el-form-item>
299 </el-col>
300 </el-row>
301 <qlrCommonTable
302 :tableData="ruleForm.qlrList"
303 :disabled="viewEdit"
304 @upDateQlrxxList="upDateQlrxxList"
305 :key="key"
306 :gyfs="ruleForm.sldy.gyfs" />
307
308 <div v-if="ruleForm.qlxx.djlx == '200'">
309 <div class="slxx_title title-block">
310 义务人信息
311 <div class="triangle"></div>
312 </div>
313 <ywrCommonTable
314 v-if="ruleForm.ywrList"
315 :disabled="viewEdit"
316 :tableData="ruleForm.ywrList"
317 :key="key"
318 @upDateQlrxxList="upDateYwrxxList" />
319 </div>
320 <div class="slxx_title title-block">
321 登记原因
322 <div class="triangle"></div>
323 </div>
324 <el-row :gutter="10">
325 <el-col>
326 <el-form-item label="登记原因:" prop="tdcbjyq.djyy">
327 <el-input
328 class="textArea"
329 maxlength="500"
330 show-word-limit
331 type="textarea"
332 :disabled="!viewEdit"
333 v-model="ruleForm.tdcbjyq.djyy">
334 </el-input>
335 </el-form-item>
336 </el-col>
337 </el-row>
338 </div>
339 <el-row class="btn" v-if="isSave">
340 <el-form-item>
341 <el-button type="primary" @click="onSubmit">保存</el-button>
342 </el-form-item>
343 </el-row>
344 </el-form>
345 </div>
346 </template>
347 <script>
348 import { mapGetters } from "vuex";
349 import ywmix from "@/views/ywbl/mixin/index";
350 import { Init, saveData } from "@/api/workflow/tdcbjyq.js";
351 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
352 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
353 export default {
354 mixins: [ywmix],
355 mounted () {
356 let that = this
357 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
358 this.propsParam = this.$attrs;
359 var formdata = new FormData();
360 this.loading = true
361 formdata.append("bsmSldy", this.propsParam.bsmSldy);
362 formdata.append("djlx", this.propsParam.djlx);
363 formdata.append("isEdit", this.viewEdit);
364 Init(formdata).then((res) => {
365 setTimeout(() => {
366 that.loading = false
367 }, 200)
368 if (res.code === 200) {
369 that.ruleForm = res.result;
370 that.ruleForm.qlrList.forEach((item) => {
371 item.id = item.bsmSqr
372 if (item.sfczr == '1') {
373 that.czr = item.bsmSqr
374 }
375 })
376 that.czrOptions = that.ruleForm.qlrList;
377 that.isSave = that.viewEdit
378 } else {
379 that.isSave = false
380 that.$confirm(res.message, '提示', {
381 cancelButtonText: '取消',
382 showConfirmButton: false,
383 type: 'warning'
384 })
385 }
386 }).catch(() => {
387 this.loading = false
388 this.isSave = false
389 })
390 },
391 components: { qlrCommonTable, ywrCommonTable },
392 computed: {
393 ...mapGetters(["dictData", "flag"]),
394 // 根据流程判断表单是否为只读
395 editDisabled () {
396 if (!this.viewEdit) {
397 //只读状态
398 return true;
399 }
400 return false;
401 },
402 },
403 data () {
404 return {
405 // 开始结束日期限制
406 pickerOptionsStart: {
407 disabledDate: (time) => {
408 if (this.ruleForm.tdcbjyq.cbjssj) {
409 return (
410 time.getTime() >= new Date(this.ruleForm.tdcbjyq.cbjssj).getTime()
411 );
412 }
413 }
414 },
415 // 结束日期限制
416 pickerOptionsEnd: {
417 disabledDate: (time) => {
418 if (this.ruleForm.tdcbjyq.cbqssj) {
419 return (
420 time.getTime() <= new Date(this.ruleForm.tdcbjyq.cbqssj).getTime()
421 );
422 }
423 }
424 },
425 isSave: true,
426 // 键名转换,方法默认是label和children进行树状渲染
427 normalizer (node) {
428 //方法
429 if (node.children == null || node.children == "null") {
430 delete node.children;
431 }
432 return {
433 id: node.dcode,
434 label: node.dname,
435 };
436 },
437 loading: false,
438 mjdw: "1",
439 //表单是否可操作
440 viewEdit: true,
441 czr: "",
442 key: 0,
443 disabled: true,
444 czrOptions: [],
445 ruleForm: {},
446 //传递参数
447 propsParam: {},
448 rules: {
449 'tdcbjyq.djyy': [
450 { required: true, message: '请输入登记原因', trigger: 'blur' }
451 ]
452 }
453 }
454 },
455 methods: {
456 /**
457 * @description: 更新权利人信息
458 * @param {*} val
459 * @author: renchao
460 */
461 upDateQlrxxList (val) {
462 this.ruleForm.qlrList && (this.ruleForm.qlrList = _.cloneDeep(val));
463 this.czrOptions = this.ruleForm.qlrList;
464 this.num = 0
465 this.ruleForm.qlrList.forEach(item => {
466 if (item.id == this.czr) {
467 this.num++
468 }
469 })
470 if (this.num == 0) {
471 this.czr = ''
472 }
473 },
474 /**
475 * @description: 是否持证人变化
476 * @param {*} val
477 * @author: renchao
478 */
479 updaterow () {
480 this.czr = "";
481 },
482 /**
483 * @description: 更新义务人信息
484 * @param {*} val
485 * @author: renchao
486 */
487 upDateYwrxxList (val) {
488 this.ruleForm.ywrList && (this.ruleForm.ywrList = _.cloneDeep(val));
489 this.key++;
490 },
491 /**
492 * @description: onSubmit
493 * @author: renchao
494 */
495 onSubmit () {
496 let that = this;
497 if (this.ruleForm.qlrList.length == 0) {
498 this.$message({
499 showClose: true,
500 message: "请确认权利人信息",
501 type: "error",
502 });
503 return false;
504 }
505 if (this.ruleForm.sldy.gyfs == "0") {
506 if (this.ruleForm.qlrList.length > 1) {
507 this.$message({
508 showClose: true,
509 message: "共有方式:单独所有,权利人只能是一个人",
510 type: "error",
511 });
512 return false;
513 }
514 this.ruleForm.qlrList[0].sfczr = "1";
515 } else {
516 if (this.ruleForm.qlrList.length <= 1) {
517 this.$message({
518 showClose: true,
519 message:
520 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
521 type: "error",
522 });
523 return false;
524 }
525 //是否分别持证
526 if (this.ruleForm.sldy.sqfbcz == "1") {
527 //是
528 this.ruleForm.qlrList.forEach((item, index) => {
529 item.sfczr = "1";
530 });
531 } else {
532 if (that.czr === '') {
533 that.$message({
534 showClose: true,
535 message: "请选择持证人",
536 type: "error",
537 });
538 return false;
539 }
540 this.ruleForm.qlrList.forEach((item, index) => {
541 if (item.id == that.czr) {
542 item.sfczr = "1";
543 } else {
544 item.sfczr = "0";
545 }
546 });
547 }
548 }
549 /**
550 * @description: saveData
551 * @author: renchao
552 */
553
554 this.$refs['ruleForm'].validate((valid) => {
555 if (valid) {
556 that.$store.dispatch("user/refreshPage", false);
557 saveData(that.ruleForm).then((res) => {
558 if (res.code === 200) {
559 that.$message({
560 showClose: true,
561 message: "保存成功!",
562 type: "success",
563 });
564 that.$store.dispatch("user/refreshPage", true);
565 } else {
566 that.$message({
567 showClose: true,
568 message: res.message,
569 type: "error"
570 })
571 }
572 })
573 } else {
574 that.$message({
575 showClose: true,
576 message: "请输入登记原因",
577 type: "error"
578 })
579 return false
580 }
581 })
582 }
583 }
584 }
585 </script>
586 <style scoped lang="scss">
587 @import "~@/styles/public.scss";
588 @import "~@/styles/slxx/slxx.scss";
589 /deep/.el-form-item__error {
590 display: none;
591 }
592 </style>
1 <!--
2 * @Description:
3 * @Autor: renchao
4 * @LastEditTime: 2024-01-31 10:09:50
5 -->
6 <template>
7 <!-- 受理信息 -->
8 <div class="slxx">
9 <el-form
10 :model="ruleForm"
11 :rules="rules"
12 v-Loading="loading"
13 ref="ruleForm"
14 :label-position="flag ? 'top' : ''"
15 :inline="flag"
16 label-width="120px">
17 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
18 <div class="slxx_title title-block">
19 申请业务信息
20 <div class="triangle"></div>
21 </div>
22 <el-row :gutter="10">
23 <el-col :span="8">
24 <el-form-item label="业务号:">
25 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理人员:">
30 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
31 </el-form-item>
32 </el-col>
33 <el-col :span="8">
34 <el-form-item label="受理时间:">
35 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
36 </el-form-item>
37 </el-col>
38 </el-row>
39 <el-row :gutter="10">
40 <el-col :span="8">
41 <el-form-item label="权利类型:">
42 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
43 </el-form-item>
44 </el-col>
45 <el-col :span="8">
46 <el-form-item label="登记类型:">
47 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
48 </el-form-item>
49 </el-col>
50 <el-col :span="8">
51 <el-form-item label="登记情形:">
52 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
53 </el-form-item>
54 </el-col>
55 </el-row>
56 <div class="slxx_title title-block">
57 <el-row>
58 <el-col :span="20">
59 不动产单元情况
60 </el-col>
61 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
62 <el-form-item label="是否创建证书:" style="height:24px">
63 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
64 <el-radio label="1"></el-radio>
65 <el-radio label="0"></el-radio>
66 </el-radio-group>
67 </el-form-item>
68 </el-col>
69 </el-row>
70 <div class="triangle"></div>
71 </div>
72 <el-row :gutter="10">
73 <el-col :span="8">
74 <el-form-item label="宗地代码:">
75 <el-input disabled v-model="ruleForm.zdjbxx.zddm"></el-input>
76 </el-form-item>
77 </el-col>
78 <el-col :span="8">
79 <el-form-item label="不动产单元号:">
80 <el-input disabled v-model="ruleForm.zdjbxx.bdcdyh"></el-input>
81 </el-form-item>
82 </el-col>
83 <el-col :span="8">
84 <el-form-item label="权利性质:">
85 <el-input disabled v-model="ruleForm.zdjbxx.qlxzmc"></el-input>
86 </el-form-item>
87 </el-col>
88 </el-row>
89 <el-row :gutter="10">
90 <el-col :span="8">
91 <el-form-item label="宗地面积:">
92 <el-input :disabled="!viewEdit" v-model="ruleForm.zdjbxx.zdmj"></el-input>
93 </el-form-item>
94 </el-col>
95 <el-col :span="8">
96 <el-form-item label="权利设定方式:">
97 <el-input disabled v-model="ruleForm.zdjbxx.qlsdfsmc"></el-input>
98 </el-form-item>
99 </el-col>
100 <el-col :span="8">
101 <el-form-item label="农用地面积:">
102 <div class="flex">
103 <el-input
104 maxlength="12"
105 v-model="ruleForm.tdsyq.nydmj"
106 :disabled="!viewEdit"
107 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
108 <el-select
109 v-model="mjdw"
110 :disabled="!viewEdit"
111 style="width: 68px">
112 <el-option
113 v-for="item in dictData['A7']"
114 :key="item.dcode"
115 :label="item.dname"
116 :value="item.dcode">
117 </el-option>
118 </el-select>
119 </div>
120 </el-form-item>
121 </el-col>
122 </el-row>
123 <el-row :gutter="10">
124 <el-col :span="8">
125 <el-form-item label="耕地面积:">
126 <div class="flex">
127 <el-input
128 maxlength="12"
129 v-model="ruleForm.tdsyq.gdmj"
130 :disabled="!viewEdit"
131 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
132 <el-select
133 v-model="mjdw"
134 :disabled="!viewEdit"
135 style="width: 68px">
136 <el-option
137 v-for="item in dictData['A7']"
138 :key="item.dcode"
139 :label="item.dname"
140 :value="item.dcode">
141 </el-option>
142 </el-select>
143 </div>
144 </el-form-item>
145 </el-col>
146 <el-col :span="8">
147 <el-form-item label="林地面积:">
148 <div class="flex">
149 <el-input
150 maxlength="12"
151 v-model="ruleForm.tdsyq.ldmj"
152 :disabled="!viewEdit"
153 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
154 <el-select
155 v-model="mjdw"
156 :disabled="!viewEdit"
157 style="width: 68px">
158 <el-option
159 v-for="item in dictData['A7']"
160 :key="item.dcode"
161 :label="item.dname"
162 :value="item.dcode">
163 </el-option>
164 </el-select>
165 </div>
166 </el-form-item>
167 </el-col>
168 <el-col :span="8">
169 <el-form-item label="草地面积:">
170 <div class="flex">
171 <el-input
172 maxlength="12"
173 v-model="ruleForm.tdsyq.cdmj"
174 :disabled="!viewEdit"
175 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
176 <el-select
177 v-model="mjdw"
178 :disabled="!viewEdit"
179 style="width: 68px">
180 <el-option
181 v-for="item in dictData['A7']"
182 :key="item.dcode"
183 :label="item.dname"
184 :value="item.dcode">
185 </el-option>
186 </el-select>
187 </div>
188 </el-form-item>
189 </el-col>
190 </el-row>
191 <el-row :gutter="10">
192 <el-col :span="8">
193 <el-form-item label="其他农用地面积:">
194 <div class="flex">
195 <el-input
196 maxlength="12"
197 v-model="ruleForm.tdsyq.qtnydmj"
198 :disabled="!viewEdit"
199 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
200 <el-select
201 v-model="mjdw"
202 :disabled="!viewEdit"
203 style="width: 68px">
204 <el-option
205 v-for="item in dictData['A7']"
206 :key="item.dcode"
207 :label="item.dname"
208 :value="item.dcode">
209 </el-option>
210 </el-select>
211 </div>
212 </el-form-item>
213 </el-col>
214 <el-col :span="8">
215 <el-form-item label="建筑使用面积:">
216 <div class="flex">
217 <el-input
218 maxlength="12"
219 v-model="ruleForm.tdsyq.jsydmj"
220 :disabled="!viewEdit"
221 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
222 <el-select
223 v-model="mjdw"
224 :disabled="!viewEdit"
225 style="width: 68px">
226 <el-option
227 v-for="item in dictData['A7']"
228 :key="item.dcode"
229 :label="item.dname"
230 :value="item.dcode">
231 </el-option>
232 </el-select>
233 </div>
234 </el-form-item>
235 </el-col>
236 <el-col :span="8">
237 <el-form-item label="未利用地面积:">
238 <div class="flex">
239 <el-input
240 maxlength="12"
241 v-model="ruleForm.tdsyq.wlydmj"
242 :disabled="!viewEdit"
243 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
244 <el-select
245 v-model="mjdw"
246 :disabled="!viewEdit"
247 style="width: 68px">
248 <el-option
249 v-for="item in dictData['A7']"
250 :key="item.dcode"
251 :label="item.dname"
252 :value="item.dcode">
253 </el-option>
254 </el-select>
255 </div>
256 </el-form-item>
257 </el-col>
258 </el-row>
259 <div class="slxx_title title-block">
260 土地用途
261 <div class="triangle"></div>
262 </div>
263 <tdytTable
264 :tableData="ruleForm.tdytqxList"
265 :ableOperation="viewEdit"
266 @upDateTdytxxList="upDateTdytxxList" />
267 <div class="slxx_title title-block">
268 权利人信息
269 <div class="triangle"></div>
270 </div>
271 <el-row :gutter="10">
272 <el-col :span="12">
273 <el-form-item label="共有方式:">
274 <el-radio-group
275 :disabled="!viewEdit"
276 v-model="ruleForm.sldy.gyfs">
277 <el-radio label="0">单独所有</el-radio>
278 <el-radio label="1">共同共有</el-radio>
279 <el-radio label="2">按份所有</el-radio>
280 <el-radio label="3">其它共有</el-radio>
281 </el-radio-group>
282 </el-form-item>
283 </el-col>
284 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
285 <el-form-item label="是否分别持证:">
286 <el-radio-group
287 v-model="ruleForm.sldy.sqfbcz"
288 :disabled="!viewEdit"
289 @input="updaterow()">
290 <el-radio :label="1"></el-radio>
291 <el-radio :label="0"></el-radio>
292 </el-radio-group>
293 </el-form-item>
294 </el-col>
295 <el-col
296 :span="6"
297 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
298 <el-form-item label="持证人:">
299 <el-select
300 v-model="czr"
301 placeholder="持证人"
302 :disabled="!viewEdit">
303 <el-option
304 v-for="(item, index) in czrOptions"
305 :key="index"
306 :label="item.sqrmc"
307 :value="item.id">
308 </el-option>
309 </el-select>
310 </el-form-item>
311 </el-col>
312 </el-row>
313 <qlrCommonTable
314 :tableData="ruleForm.qlrList"
315 :disabled="viewEdit"
316 @upDateQlrxxList="upDateQlrxxList"
317 :key="key"
318 :gyfs="ruleForm.sldy.gyfs" />
319
320 <div v-if="ruleForm.ywrList && ruleForm.ywrList.length > 0">
321 <div class="slxx_title title-block">
322 义务人信息
323 <div class="triangle"></div>
324 </div>
325 <ywrCommonTable
326 v-if="ruleForm.ywrList"
327 :disabled="viewEdit"
328 :tableData="ruleForm.ywrList"
329 :key="key"
330 @upDateQlrxxList="upDateYwrxxList" />
331 </div>
332
333 <div class="slxx_title title-block">
334 登记原因
335 <div class="triangle"></div>
336 </div>
337 <el-row :gutter="10">
338 <el-col>
339 <el-form-item label="登记原因:" prop="tdsyq.djyy">
340 <el-input
341 class="textArea"
342 maxlength="500"
343 show-word-limit
344 type="textarea"
345 :disabled="!viewEdit"
346 v-model="ruleForm.tdsyq.djyy">
347 </el-input>
348 </el-form-item>
349 </el-col>
350 </el-row>
351 </div>
352 <el-row class="btn" v-if="isSave">
353 <el-form-item>
354 <el-button type="primary" @click="onSubmit">保存</el-button>
355 </el-form-item>
356 </el-row>
357 </el-form>
358 </div>
359 </template>
360 <script>
361 import { mapGetters } from "vuex";
362 import ywmix from "@/views/ywbl/mixin/index";
363 import { Init, saveData } from "@/api/workflow/tdsyqFlow.js";
364 import tdytTable from "@/views/workflow/components/tdytTable";
365 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
366 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
367 export default {
368 mixins: [ywmix],
369 components: { qlrCommonTable, tdytTable, ywrCommonTable },
370 mounted () {
371 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
372 this.propsParam = this.$attrs;
373 var formdata = new FormData();
374 let that = this;
375 this.loading = true
376 formdata.append("bsmSldy", this.propsParam.bsmSldy);
377 formdata.append("djlx", this.propsParam.djlx);
378 formdata.append("isEdit", this.viewEdit);
379 Init(formdata).then((res) => {
380 setTimeout(() => {
381 this.loading = false
382 }, 200)
383 if (res.code === 200) {
384 that.ruleForm = res.result;
385 that.ruleForm.qlrList.forEach((item) => {
386 item.id = item.bsmSqr
387 if (item.sfczr == '1') {
388 that.czr = item.bsmSqr
389 }
390 })
391 that.czrOptions = that.ruleForm.qlrList;
392 that.isSave = that.viewEdit
393 } else {
394 this.isSave = false
395 this.$confirm(res.message, '提示', {
396 cancelButtonText: '取消',
397 showConfirmButton: false,
398 type: 'warning'
399 })
400 }
401 }).catch(() => {
402 this.loading = false
403 })
404 },
405 computed: {
406 ...mapGetters(["dictData", "flag"]),
407 },
408 data () {
409 return {
410 isSave: true,
411 loading: false,
412 // 键名转换,方法默认是label和children进行树状渲染
413 normalizer (node) {
414 //方法
415 if (node.children == null || node.children == "null") {
416 delete node.children;
417 }
418 return {
419 id: node.dcode,
420 label: node.dname,
421 };
422 },
423 mjdw: "1",
424 value2: {
425 id: "520000198407304275",
426 user: "史平",
427 },
428 props: {
429 label: "user",
430 value: "id",
431 keyword: "keyword",
432 },
433 //表单是否可操作
434 viewEdit: true,
435 key: 0,
436 disabled: true,
437 czrOptions: [],
438 czr: "",
439 ruleForm: {},
440 //传递参数
441 propsParam: {},
442 rules: {
443 'tdsyq.djyy': [
444 { required: true, message: '请输入登记原因', trigger: 'blur' }
445 ]
446 }
447 }
448 },
449 methods: {
450 /**
451 * @description: 更新土地用途信息
452 * @param {*} val
453 * @author: renchao
454 */
455 upDateTdytxxList (val) {
456 this.ruleForm.tdytqxList && (this.ruleForm.tdytqxList = _.cloneDeep(val));
457 this.key++;
458 },
459 /**
460 * @description: 更新权利人信息
461 * @param {*} val
462 * @author: renchao
463 */
464 upDateQlrxxList (val) {
465 this.ruleForm.qlrList && (this.ruleForm.qlrList = _.cloneDeep(val));
466 this.czrOptions = this.ruleForm.qlrList;
467 this.num = 0
468 this.ruleForm.qlrList.forEach(item => {
469 if (item.id == this.czr) {
470 this.num++
471 }
472 })
473 if (this.num == 0) {
474 this.czr = ''
475 }
476 },
477 /**
478 * @description: 更新义务人信息
479 * @param {*} val
480 * @author: renchao
481 */
482 upDateYwrxxList (val) {
483 this.ruleForm.ywrList && (this.ruleForm.ywrList = _.cloneDeep(val));
484 this.key++;
485 },
486 /**
487 * @description: 是否持证人变化
488 * @param {*} val
489 * @author: renchao
490 */
491 updaterow () {
492 this.czr = "";
493 },
494 /**
495 * @description: onSubmit
496 * @author: renchao
497 */
498 onSubmit () {
499 let that = this;
500 let arr = this.ruleForm.tdytqxList.filter((item) => !item.yt);
501 if (arr.length > 0) {
502 this.$message({
503 showClose: true,
504 message: "土地用途不能为空",
505 type: "error",
506 });
507 return false;
508 }
509 if (this.ruleForm.qlrList.length == 0) {
510 this.$message({
511 showClose: true,
512 message: "请确认权利人信息",
513 type: "error",
514 });
515 return false;
516 }
517
518 if (this.ruleForm.sldy.gyfs == "0") {
519 if (this.ruleForm.qlrList.length > 1) {
520 this.$message({
521 showClose: true,
522 message: "共有方式:单独所有,权利人只能是一个人",
523 type: "error",
524 });
525 return false;
526 }
527 this.ruleForm.qlrList[0].sfczr = "1";
528 } else {
529 if (this.ruleForm.qlrList.length <= 1) {
530 this.$message({
531 showClose: true,
532 message:
533 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
534 type: "error",
535 });
536 return false;
537 }
538 //是否分别持证
539 if (this.ruleForm.sldy.sqfbcz == "1") {
540 //是
541 this.ruleForm.qlrList.forEach((item, index) => {
542 item.sfczr = "1";
543 })
544 } else {
545 if (that.czr === '') {
546 that.$message({
547 showClose: true,
548 message: "请选择持证人",
549 type: "error"
550 })
551 return false
552 }
553 this.ruleForm.qlrList.forEach((item, index) => {
554 if (item.id == that.czr) {
555 item.sfczr = "1"
556 } else {
557 item.sfczr = "0"
558 }
559 })
560 }
561 }
562 /**
563 * @description: saveData
564 * @author: renchao
565 */
566
567 this.$refs['ruleForm'].validate((valid) => {
568 if (valid) {
569 saveData(this.ruleForm).then((res) => {
570 if (res.code === 200) {
571 that.$message({
572 showClose: true,
573 message: "保存成功!",
574 type: "success",
575 });
576 that.$store.dispatch("user/refreshPage", true);
577 } else {
578 that.$message({
579 showClose: true,
580 message: res.message,
581 type: "error"
582 })
583 }
584 })
585 } else {
586 this.$message({
587 showClose: true,
588 message: "请输入登记原因",
589 type: "error"
590 });
591 return false;
592 }
593 });
594 }
595 }
596 }
597 </script>
598 <style scoped lang="scss">
599 @import "~@/styles/public.scss";
600 @import "~@/styles/slxx/slxx.scss";
601 </style>
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form
5 :model="ruleForm"
6 :rules="rules"
7 v-Loading="loading"
8 ref="ruleForm"
9 :label-position="flag ? 'top' : ''"
10 :inline="flag"
11 label-width="120px">
12 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
13 <div class="slxx_title title-block">
14 申请业务信息
15 <div class="triangle"></div>
16 </div>
17 <el-row :gutter="10" v-if="ruleForm.slsq">
18 <el-col :span="8">
19 <el-form-item label="业务号:">
20 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
21 </el-form-item>
22 </el-col>
23 <el-col :span="8">
24 <el-form-item label="受理人员:">
25 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理时间:">
30 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
31 </el-form-item>
32 </el-col>
33 </el-row>
34 <el-row :gutter="10" v-if="ruleForm.slsq">
35 <el-col :span="8">
36 <el-form-item label="权利类型:">
37 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
38 </el-form-item>
39 </el-col>
40 <el-col :span="8">
41 <el-form-item label="登记类型:">
42 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
43 </el-form-item>
44 </el-col>
45 <el-col :span="8">
46 <el-form-item label="登记情形:">
47 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
48 </el-form-item>
49 </el-col>
50 </el-row>
51 <div class="slxx_title title-block">
52 不动产情况
53 <div class="triangle"></div>
54 </div>
55 <el-row :gutter="10" v-if="ruleForm.qlxx">
56 <el-col :span="8">
57 <el-form-item label="原不动产证号:">
58 <el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
59 </el-form-item>
60 </el-col>
61 <el-col :span="8">
62 <el-form-item label="不动产单元号:">
63 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
64 </el-form-item>
65 </el-col>
66 <el-col :span="8">
67 <el-form-item label="坐落:">
68 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
69 </el-form-item>
70 </el-col>
71 </el-row>
72 <el-row :gutter="10">
73 <el-col :span="8">
74 <el-form-item label="预告登记种类:">
75 <el-input disabled v-model="ruleForm.ygdj.ygdjzlmc"></el-input>
76 </el-form-item>
77 </el-col>
78 <el-col :span="8">
79 <el-form-item label="土地使用权人:">
80 <el-input disabled v-model="ruleForm.ygdj.tdsyqr"></el-input>
81 </el-form-item>
82 </el-col>
83 <el-col :span="8">
84 <el-form-item label="房屋性质:">
85 <el-select v-model="ruleForm.ygdj.fwxz" :disabled="!viewEdit">
86 <el-option
87 v-for="item in dictData['A19']"
88 :key="item.dcode"
89 :label="item.dname"
90 :value="item.dcode">
91 </el-option>
92 </el-select>
93 </el-form-item>
94 </el-col>
95 </el-row>
96 <el-row :gutter="10" v-if="ruleForm.qlxx">
97 <el-col :span="8">
98 <el-form-item label="房屋用途:">
99 <el-select v-model="ruleForm.ygdj.ghyt" :disabled="!viewEdit">
100 <el-option
101 v-for="item in dictData['A17']"
102 :key="item.dcode"
103 :label="item.dname"
104 :value="item.dcode">
105 </el-option>
106 </el-select>
107 </el-form-item>
108 </el-col>
109 <el-col :span="8">
110 <el-form-item label="所在层:">
111 <el-input maxlength="20" :disabled="!viewEdit" v-model="ruleForm.ygdj.szc"></el-input>
112 </el-form-item>
113 </el-col>
114 <el-col :span="8">
115 <el-form-item label="总层数:">
116 <el-input
117 :disabled="!viewEdit"
118 maxlength="4"
119 v-model.number="ruleForm.ygdj.zcs"
120 oninput="value=value.replace(/[^0-9]/g,'')"></el-input>
121 </el-form-item>
122 </el-col>
123 </el-row>
124 <el-row :gutter="10" v-if="ruleForm.qlxx">
125 <el-col :span="8">
126 <el-form-item label="房屋结构:">
127 <el-select v-model="ruleForm.ygdj.fwjg" :disabled="!viewEdit">
128 <el-option
129 v-for="item in dictData['A46']"
130 :key="item.dcode"
131 :label="item.dname"
132 :value="item.dcode">
133 </el-option>
134 </el-select>
135 </el-form-item>
136 </el-col>
137
138 <el-col :span="8">
139 <el-form-item label="建筑面积:">
140 <div class="flex">
141 <el-input
142 maxlength="12"
143 v-model="ruleForm.ygdj.jzmj"
144 :disabled="!viewEdit"
145 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
146 <el-select :disabled="!viewEdit" v-model="mjdw" style="width: 68px">
147 <el-option
148 v-for="item in dictData['A7']"
149 :key="item.dcode"
150 :label="item.dname"
151 :value="item.dcode">
152 </el-option>
153 </el-select>
154 </div>
155 </el-form-item>
156 </el-col>
157 <el-col :span="8">
158 <el-form-item label="取得价格:">
159 <div class="flex">
160 <el-input
161 :disabled="!viewEdit"
162 maxlength="11"
163 v-model="ruleForm.ygdj.qdjg"
164 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
165 <el-select
166 v-model="ruleForm.ygdj.jedw"
167 :disabled="!viewEdit"
168 style="width: 68px">
169 <el-option
170 v-for="item in dictData['A57']"
171 :key="item.dcode"
172 :label="item.dname"
173 :value="item.dcode">
174 </el-option>
175 </el-select>
176 </div>
177 </el-form-item>
178 </el-col>
179 </el-row>
180 <el-row :gutter="10">
181 <el-col :span="24">
182 <el-form-item label="附记:">
183 <el-input
184 :disabled="!viewEdit"
185 v-model="ruleForm.ygdj.fj"
186 type="textarea"
187 maxlength="500"
188 show-word-limit></el-input>
189 </el-form-item>
190 </el-col>
191 </el-row>
192 <div class="slxx_title title-block">
193 权利人信息
194 <div class="triangle"></div>
195 </div>
196 <el-row :gutter="10">
197 <el-col :span="12" v-if="ruleForm.qlxx">
198 <el-form-item label="共有方式:">
199 <el-radio-group
200 :disabled="!viewEdit"
201 v-model="ruleForm.sldy.gyfs">
202 <el-radio label="0">单独所有</el-radio>
203 <el-radio label="1">共同共有</el-radio>
204 <el-radio label="2">按份所有</el-radio>
205 <el-radio label="3">其它共有</el-radio>
206 </el-radio-group>
207 </el-form-item>
208 </el-col>
209 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
210 <el-form-item label="是否分别持证:">
211 <el-radio-group
212 v-model="ruleForm.sldy.sqfbcz"
213 :disabled="!viewEdit"
214 @input="updaterow()">
215 <el-radio :label="1"></el-radio>
216 <el-radio :label="0"></el-radio>
217 </el-radio-group>
218 </el-form-item>
219 </el-col>
220 <el-col
221 :span="6"
222 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
223 <el-form-item label="持证人:">
224 <el-select
225 v-model="czr"
226 placeholder="持证人"
227 :disabled="!viewEdit">
228 <el-option
229 v-for="(item,index) in czrOptions"
230 :key="index"
231 :label="item.sqrmc"
232 :value="item.id">
233 </el-option>
234 </el-select>
235 </el-form-item>
236 </el-col>
237 </el-row>
238 <qlrCommonTable
239 @upDateQlrxxList="upDateQlrxxList"
240 :disabled="viewEdit"
241 :tableData="ruleForm.qlrList"
242 :gyfs="ruleForm.sldy.gyfs" />
243 <div class="slxx_title title-block">
244 义务人信息
245 <div class="triangle"></div>
246 </div>
247 <ywrCommonTable
248 @upDateQlrxxList="upDateYwrxxList"
249 :disabled="viewEdit"
250 :tableData="ruleForm.ywrList"
251 :gyfs="ruleForm.sldy.gyfs" />
252 <div class="slxx_title title-block">
253 登记原因
254 <div class="triangle"></div>
255 </div>
256 <el-row :gutter="10">
257 <el-col>
258 <el-form-item v-if="ruleForm.sldy.djlx=='400'" label="注销登记原因:" prop="djyy">
259 <el-input
260 class="textArea"
261 type="textarea"
262 maxlength="500"
263 show-word-limit
264 :disabled="!viewEdit"
265 v-model="ruleForm.ygdj.zxyy">
266 </el-input>
267 </el-form-item>
268 <el-form-item v-else label="登记原因:" prop="ygdj.djyy">
269 <el-input
270 class="textArea"
271 type="textarea"
272 maxlength="500"
273 show-word-limit
274 :disabled="!viewEdit"
275 v-model="ruleForm.ygdj.djyy">
276 </el-input>
277 </el-form-item>
278 </el-col>
279 </el-row>
280 </div>
281 <el-row class="btn" v-if="isSave">
282 <el-form-item>
283 <el-button type="primary" @click="onSubmit">保存</el-button>
284 </el-form-item>
285 </el-row>
286 </el-form>
287 </div>
288 </template>
289 <script>
290 import ywmix from "@/views/ywbl/mixin/index";
291 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
292 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
293 import { Init, saveData } from "@/api/workflow/ygdjFlow.js";
294 import { mapGetters } from "vuex";
295 export default {
296 mixins: [ywmix],
297 mounted () {
298 let that = this
299 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
300 this.propsParam = this.$attrs;
301 this.loading = true
302 var formdata = new FormData();
303 formdata.append("bsmSldy", this.propsParam.bsmSldy);
304 formdata.append("djlx", this.propsParam.djlx);
305 formdata.append("isEdit", this.viewEdit);
306 Init(formdata).then((res) => {
307 setTimeout(() => {
308 this.loading = false
309 }, 200)
310 if (res.code === 200 && res.result) {
311 this.ruleForm = res.result;
312 this.ruleForm.qlrList.forEach((item) => {
313 item.id = item.bsmSqr
314 if (item.sfczr == '1') {
315 that.czr = item.bsmSqr
316 }
317 })
318 that.czrOptions = this.ruleForm.qlrList
319 that.isSave = that.viewEdit
320 } else {
321 that.isSave = false
322 that.$confirm(res.message, '提示', {
323 cancelButtonText: '取消',
324 showConfirmButton: false,
325 type: 'warning'
326 })
327 }
328 }).catch(() => {
329 this.isSave = false
330 this.loading = false
331 })
332 },
333 components: { qlrCommonTable, ywrCommonTable },
334 computed: {
335 ...mapGetters(["dictData", "flag"])
336 },
337 data () {
338 return {
339 isSave: true,
340 loading: false,
341 mjdw: "1",
342 //表单是否可操作
343 viewEdit: true,
344 disabled: true,
345 tdytOption: [],
346 czrOptions: [],
347 czr: "",
348 ruleForm: {
349 qlxx: {},
350 sldy: {},
351 slsq: {},
352 ygdj: {},
353 zdjbxx: {},
354 },
355 //传递参数
356 propsParam: this.$attrs,
357 rules: {
358 'ygdj.djyy': [
359 { required: true, message: '请输入登记原因', trigger: 'blur' }
360 ]
361 }
362 }
363 },
364 methods: {
365 /**
366 * @description: 更新权利人信息
367 * @param {*} val
368 * @author: renchao
369 */
370 upDateQlrxxList (val) {
371 this.ruleForm.qlrList = _.cloneDeep(val);
372 this.czrOptions = this.ruleForm.qlrList;
373 this.num = 0
374 this.ruleForm.qlrList.forEach(item => {
375 if (item.id == this.czr) {
376 this.num++
377 }
378 })
379 if (this.num == 0) {
380 this.czr = ''
381 }
382 },
383 /**
384 * @description: 更新业务人信息
385 * @param {*} val
386 * @author: renchao
387 */
388 upDateYwrxxList (val) {
389 this.ruleForm.ywrList = _.cloneDeep(val);
390 },
391 /**
392 * @description: 是否持证人变化
393 * @param {*} val
394 * @author: renchao
395 */
396 updaterow () {
397 this.czr = "";
398 },
399 /**
400 * @description: onSubmit
401 * @author: renchao
402 */
403 onSubmit () {
404 let that = this;
405 if (this.ruleForm.qlrList.length == 0) {
406 this.$message({
407 showClose: true,
408 message: "请确认权利人信息",
409 type: "error",
410 });
411 return false;
412 }
413
414 if (this.ruleForm.sldy.gyfs == "0") {
415 if (this.ruleForm.qlrList.length > 1) {
416 this.$message({
417 showClose: true,
418 message: "共有方式:单独所有,权利人只能是一个人",
419 type: "error",
420 });
421 return false;
422 }
423 this.ruleForm.qlrList[0].sfczr = "1";
424 } else {
425 if (this.ruleForm.qlrList.length <= 1) {
426 this.$message({
427 showClose: true,
428 message:
429 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
430 type: "error",
431 });
432 return false;
433 }
434 //是否分别持证
435 if (this.ruleForm.sldy.sqfbcz == "1") {
436 //是
437 this.ruleForm.qlrList.forEach((item, index) => {
438 item.sfczr = "1";
439 });
440 } else {
441 if (that.czr === '') {
442 that.$message({
443 showClose: true,
444 message: "请选择持证人",
445 type: "error"
446 });
447 return false;
448 }
449 this.ruleForm.qlrList.forEach((item, index) => {
450 if (item.id == that.czr) {
451 item.sfczr = "1"
452 } else {
453 item.sfczr = "0"
454 }
455 })
456 }
457 }
458 this.$refs['ruleForm'].validate((valid) => {
459 if (valid) {
460 that.$store.dispatch("user/refreshPage", false);
461 saveData(that.ruleForm).then((res) => {
462 if (res.code === 200) {
463 that.$message({
464 showClose: true,
465 message: "保存成功!",
466 type: "success",
467 });
468 that.$store.dispatch("user/refreshPage", true);
469 } else {
470 that.$message({
471 showClose: true,
472 message: res.message,
473 type: "error",
474 });
475 }
476 })
477 } else {
478 that.$message({
479 showClose: true,
480 message: "请输入登记原因",
481 type: "error"
482 })
483 return false
484 }
485 })
486 }
487 }
488 }
489 </script>
490 <style scoped lang="scss">
491 @import "~@/styles/public.scss";
492
493 /deep/.el-form {
494 display: flex;
495 flex-direction: column;
496 height: calc(100vh - 130px);
497 }
498
499 /deep/.el-form-item__label {
500 padding: 0;
501 }
502
503 /deep/.el-radio {
504 margin-right: 10px;
505 }
506
507 /deep/.el-select {
508 width: 100%;
509 }
510
511 /deep/.el-form-item {
512 margin-bottom: 3px;
513 }
514
515 .marginBot0 {
516 margin-bottom: 0 !important;
517 }
518
519 .slxx {
520 box-sizing: border-box;
521 }
522
523 .slxx_con {
524 flex: 1;
525 height: 100%;
526 background-color: #ffffff;
527 overflow-y: auto;
528 padding-right: 3px;
529 overflow-x: hidden;
530 }
531
532 .submit_btn {
533 height: 50px;
534 }
535
536 .btn {
537 text-align: center;
538 padding-top: 10px;
539 height: 36px;
540 background-color: #ffffff;
541 padding: 5px 0;
542 }
543
544 .textArea {
545 /deep/.el-textarea__inner {
546 min-height: 90px !important;
547 }
548 }
549
550 /deep/.el-form-item__label {
551 padding-bottom: 0px;
552 }
553 </style>
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form
5 :model="ruleForm"
6 :rules="rules"
7 v-Loading="loading"
8 ref="ruleForm"
9 :label-position="flag ? 'top' : ''"
10 :inline="flag"
11 label-width="120px">
12 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
13 <div class="slxx_title title-block">
14 申请业务信息
15 <div class="triangle"></div>
16 </div>
17 <el-row :gutter="10" v-if="ruleForm.slsq">
18 <el-col :span="8">
19 <el-form-item label="业务号:">
20 <el-input disabled v-model="ruleForm.slsq.ywh"></el-input>
21 </el-form-item>
22 </el-col>
23 <el-col :span="8">
24 <el-form-item label="受理人员:">
25 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理时间:">
30 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
31 </el-form-item>
32 </el-col>
33 </el-row>
34 <el-row :gutter="10" v-if="ruleForm.slsq">
35 <el-col :span="8">
36 <el-form-item label="权利类型:">
37 <el-input disabled v-model="ruleForm.slsq.qllxmc"></el-input>
38 </el-form-item>
39 </el-col>
40 <el-col :span="8">
41 <el-form-item label="登记类型:">
42 <el-input disabled v-model="ruleForm.slsq.djlxmc"></el-input>
43 </el-form-item>
44 </el-col>
45 <el-col :span="8">
46 <el-form-item label="登记情形:">
47 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
48 </el-form-item>
49 </el-col>
50 </el-row>
51 <div class="slxx_title title-block">
52 <el-row>
53 <el-col :span="16">
54 不动产单元情况
55 </el-col>
56 <el-col :span="4">
57 <el-button @click="compare">变化情况对比+</el-button>
58 </el-col>
59 <el-col :span="4" v-if="ruleForm.sldy.djlx=='500'">
60 <el-form-item label="是否创建证书:" style="height:24px">
61 <el-radio-group v-model="ruleForm.sldy.sfxysczs">
62 <el-radio label="1"></el-radio>
63 <el-radio label="0"></el-radio>
64 </el-radio-group>
65 </el-form-item>
66 </el-col>
67 </el-row>
68 <div class="triangle"></div>
69 </div>
70 <el-row :gutter="10" v-if="ruleForm.qlxx">
71 <el-col :span="8">
72 <el-form-item label="不动产单元号:">
73 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
74 </el-form-item>
75 </el-col>
76 <el-col :span="16">
77 <el-form-item label="坐落:">
78 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
79 </el-form-item>
80 </el-col>
81 </el-row>
82 <el-row :gutter="10">
83 <el-col :span="8">
84 <el-form-item label="预告登记种类:">
85 <el-input disabled v-model="ruleForm.ygdj.ygdjzlmc"></el-input>
86 </el-form-item>
87 </el-col>
88 <el-col :span="8">
89 <el-form-item label="规划用途:">
90 <el-input disabled v-model="ruleForm.ygdj.ytmc"></el-input>
91 </el-form-item>
92 </el-col>
93 <el-col :span="8">
94 <el-form-item label="房屋性质:">
95 <el-input disabled v-model="ruleForm.ygdj.fwxzmc"></el-input>
96 </el-form-item>
97 </el-col>
98 </el-row>
99 <el-row :gutter="10" v-if="ruleForm.qlxx">
100 <el-col :span="8">
101 <el-form-item label="房屋结构:">
102 <el-input disabled v-model="ruleForm.ygdj.fwjgmc"></el-input>
103 </el-form-item>
104 </el-col>
105 <el-col :span="8">
106 <el-form-item label="建筑面积:">
107 <el-input disabled v-model="ruleForm.ygdj.jzmj"></el-input>
108 </el-form-item>
109 </el-col>
110 <el-col :span="8">
111 <el-form-item label="取得价格:">
112 <el-input disabled v-model="ruleForm.ygdj.qdjg"></el-input>
113 </el-form-item>
114 </el-col>
115 </el-row>
116 <el-row :gutter="10">
117 <el-col :span="8">
118 <el-form-item label="所在层:">
119 <el-input disabled v-model="ruleForm.ygdj.szc"></el-input>
120 </el-form-item>
121 </el-col>
122 <el-col :span="8">
123 <el-form-item label="总层数:">
124 <el-input
125 disabled
126 v-model.number="ruleForm.ygdj.zcs"
127 oninput="value=value.replace(/[^0-9]/g,'')"></el-input>
128 </el-form-item>
129 </el-col>
130 </el-row>
131 <div class="slxx_title title-block">
132 权利人信息
133 <div class="triangle"></div>
134 </div>
135 <el-row :gutter="10">
136 <el-col :span="12" v-if="ruleForm.qlxx">
137 <el-form-item label="共有方式:">
138 <el-radio-group
139 :disabled="!viewEdit"
140 v-model="ruleForm.sldy.gyfs">
141 <el-radio label="0">单独所有</el-radio>
142 <el-radio label="1">共同共有</el-radio>
143 <el-radio label="2">按份所有</el-radio>
144 <el-radio label="3">其它共有</el-radio>
145 </el-radio-group>
146 </el-form-item>
147 </el-col>
148 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
149 <el-form-item label="是否分别持证:">
150 <el-radio-group
151 v-model="ruleForm.sldy.sqfbcz"
152 :disabled="!viewEdit"
153 @input="updaterow()">
154 <el-radio :label="1"></el-radio>
155 <el-radio :label="0"></el-radio>
156 </el-radio-group>
157 </el-form-item>
158 </el-col>
159 <el-col
160 :span="6"
161 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
162 <el-form-item label="持证人:">
163 <el-select
164 v-model="czr"
165 placeholder="持证人"
166 :disabled="!viewEdit">
167 <el-option
168 v-for="(item,index) in czrOptions"
169 :key="index"
170 :label="item.sqrmc"
171 :value="item.id">
172 </el-option>
173 </el-select>
174 </el-form-item>
175 </el-col>
176 </el-row>
177 <qlrCommonTable
178 @upDateQlrxxList="upDateQlrxxList"
179 :tableData="ruleForm.qlrList"
180 :disabled="viewEdit"
181 :gyfs="ruleForm.sldy.gyfs" />
182 <div class="slxx_title title-block">
183 义务人信息
184 <div class="triangle"></div>
185 </div>
186 <ywrCommonTable
187 @upDateQlrxxList="upDateYwrxxList"
188 :tableData="ruleForm.ywrList"
189 :disabled="viewEdit"
190 :gyfs="ruleForm.sldy.gyfs" />
191 <div class="slxx_title title-block">
192 登记原因
193 <div class="triangle"></div>
194 </div>
195 <el-row :gutter="10">
196 <el-col>
197 <el-form-item label="登记原因:" prop="ygdj.djyy">
198 <el-input
199 class="textArea"
200 type="textarea"
201 maxlength="500"
202 show-word-limit
203 :disabled="!viewEdit"
204 v-model="ruleForm.ygdj.djyy">
205 </el-input>
206 </el-form-item>
207 </el-col>
208 </el-row>
209 </div>
210 <el-row class="btn" v-if="isSave">
211 <el-form-item>
212 <el-button type="primary" @click="onSubmit">保存</el-button>
213 </el-form-item>
214 </el-row>
215 </el-form>
216 </div>
217 </template>
218 <script>
219 import ywmix from "@/views/ywbl/mixin/index";
220 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
221 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
222 import { Init, saveData } from "@/api/workflow/ygdjFlow.js";
223 import { mapGetters } from "vuex";
224 export default {
225 mixins: [ywmix],
226 mounted () {
227 let that = this
228 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
229 this.propsParam = this.$attrs;
230 var formdata = new FormData();
231 this.loading = true
232 formdata.append("bsmSldy", this.propsParam.bsmSldy);
233 formdata.append("djlx", this.propsParam.djlx);
234 formdata.append("isEdit", this.viewEdit);
235 Init(formdata).then((res) => {
236 setTimeout(() => {
237 that.loading = false
238 }, 200)
239 if (res.code === 200 && res.result) {
240 that.ruleForm = res.result;
241 that.ruleForm.qlrList.forEach((item) => {
242 item.id = item.bsmSqr
243 if (item.sfczr == '1') {
244 that.czr = item.bsmSqr
245 }
246 })
247 that.czrOptions = this.ruleForm.qlrList;
248 that.isSave = that.viewEdit
249 } else {
250 that.isSave = false
251 that.$confirm(res.message, '提示', {
252 cancelButtonText: '取消',
253 showConfirmButton: false,
254 type: 'warning'
255 })
256 }
257 }).catch(() => {
258 that.isSave = false
259 that.loading = false
260 })
261 },
262 components: { qlrCommonTable, ywrCommonTable },
263 computed: {
264 ...mapGetters(["dictData", "flag"]),
265 },
266 data () {
267 return {
268 isSave: true,
269 loading: false,
270 //表单是否可操作
271 viewEdit: true,
272 disabled: true,
273 tdytOption: [],
274 czrOptions: [],
275 czr: "",
276 ruleForm: {},
277 //传递参数
278 propsParam: this.$attrs,
279 rules: {
280 'ygdj.djyy': [
281 { required: true, message: '请输入登记原因', trigger: 'blur' }
282 ]
283 }
284 }
285 },
286 methods: {
287 /**
288 * @description: onClick
289 * @author: renchao
290 */
291 onClick () {
292 this.$popup("房屋信息比对", "ywbl/ygdj/slxxCompareDetai", {
293 formData: {
294 bsmSldy: this.propsParam.bsmSldy,
295 qllx: this.propsParam.qllx,
296 },
297 });
298 },
299 /**
300 * @description: 更新权利人信息
301 * @param {*} val
302 * @author: renchao
303 */
304 upDateQlrxxList (val) {
305 this.ruleForm.qlrList = _.cloneDeep(val);
306 this.czrOptions = this.ruleForm.qlrList;
307 this.num = 0
308 this.ruleForm.qlrList.forEach(item => {
309 if (item.id == this.czr) {
310 this.num++
311 }
312 })
313 if (this.num == 0) {
314 this.czr = ''
315 }
316 },
317 /**
318 * @description: 是否持证人变化
319 * @param {*} val
320 * @author: renchao
321 */
322 updaterow () {
323 this.czr = "";
324 },
325 /**
326 * @description: 更新业务人信息
327 * @param {*} val
328 * @author: renchao
329 */
330 upDateYwrxxList (val) {
331 this.ruleForm.ywrList = _.cloneDeep(val);
332 },
333
334 /**
335 * @description: onSubmit
336 * @author: renchao
337 */
338 onSubmit () {
339 let that = this;
340 if (this.ruleForm.qlrList.length == 0) {
341 this.$message({
342 showClose: true,
343 message: "请确认权利人信息",
344 type: "error",
345 });
346 return false;
347 }
348
349 if (this.ruleForm.sldy.gyfs == "0") {
350 if (this.ruleForm.qlrList.length > 1) {
351 this.$message({
352 showClose: true,
353 message: "共有方式:单独所有,权利人只能是一个人",
354 type: "error",
355 });
356 return false;
357 }
358 this.ruleForm.qlrList[0].sfczr = "1";
359 } else {
360 if (this.ruleForm.qlrList.length <= 1) {
361 this.$message({
362 showClose: true,
363 message:
364 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
365 type: "error",
366 });
367 return false;
368 }
369 //是否分别持证
370 if (this.ruleForm.sldy.sqfbcz == "1") {
371 //是
372 this.ruleForm.qlrList.forEach((item, index) => {
373 item.sfczr = "1";
374 });
375 } else {
376 if (that.czr === '') {
377 that.$message({
378 showClose: true,
379 message: "请选择持证人",
380 type: "error"
381 });
382 return false;
383 }
384 this.ruleForm.qlrList.forEach((item, index) => {
385 if (item.id == that.czr) {
386 item.sfczr = "1"
387 } else {
388 item.sfczr = "0"
389 }
390 })
391 }
392 }
393
394
395 this.$refs['ruleForm'].validate((valid) => {
396 if (valid) {
397 that.$store.dispatch("user/refreshPage", false);
398 saveData(that.ruleForm).then((res) => {
399 if (res.code === 200) {
400 that.$message({
401 showClose: true,
402 message: "保存成功!",
403 type: "success",
404 });
405 that.$store.dispatch("user/refreshPage", true);
406 } else {
407 that.$message({
408 showClose: true,
409 message: res.message,
410 type: "error",
411 });
412 }
413 })
414 } else {
415 that.$message({
416 showClose: true,
417 message: "请输入登记原因",
418 type: "error"
419 })
420 return false
421 }
422 })
423
424 },
425 /**
426 * @description: compare
427 * @author: renchao
428 */
429 compare () {
430 this.$popupDialog(
431 this.ruleForm.qlxx.qllxmc,
432 "registerBook/comparison",
433 {
434 bsmQlxx: this.ruleForm.qlxx.bsmQlxx,
435 dqqllx: "YGDJ",
436 },
437 "80%",
438 true
439 );
440 },
441 },
442 };
443 </script>
444 <style scoped lang="scss">
445 @import "~@/styles/public.scss";
446
447 /deep/.el-form {
448 display: flex;
449 flex-direction: column;
450 height: calc(100vh - 130px);
451 }
452
453 /deep/.el-form-item__label {
454 padding: 0;
455 }
456
457 /deep/.el-radio {
458 margin-right: 10px;
459 }
460
461 /deep/.el-select {
462 width: 100%;
463 }
464
465 /deep/.el-form-item {
466 margin-bottom: 3px;
467 }
468
469 .marginBot0 {
470 margin-bottom: 0 !important;
471 }
472
473 .slxx {
474 box-sizing: border-box;
475 }
476
477 .slxx_con {
478 flex: 1;
479 height: 100%;
480 background-color: #ffffff;
481 overflow-y: auto;
482 padding-right: 3px;
483 overflow-x: hidden;
484 }
485
486 .submit_btn {
487 height: 50px;
488 }
489
490 .btn {
491 text-align: center;
492 padding-top: 10px;
493 height: 36px;
494 background-color: #ffffff;
495 padding: 5px 0;
496 }
497
498 .textArea {
499 /deep/.el-textarea__inner {
500 min-height: 90px !important;
501 }
502 }
503
504 /deep/.el-form-item__label {
505 padding-bottom: 0px;
506 }
507 </style>
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form
5 :model="ruleForm"
6 :rules="rules"
7 v-Loading="loading"
8 ref="ruleForm"
9 :label-position="flag ? 'top' : ''"
10 :inline="flag"
11 label-width="140px">
12 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
13 <div class="slxx_title title-block">
14 申请业务信息
15 <div class="triangle"></div>
16 </div>
17 <el-row :gutter="10" v-if="ruleForm.slsq">
18 <el-col :span="8">
19 <el-form-item label="业务号:">
20 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
21 </el-form-item>
22 </el-col>
23 <el-col :span="8">
24 <el-form-item label="受理人员:">
25 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理时间:">
30 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
31 </el-form-item>
32 </el-col>
33 </el-row>
34 <el-row :gutter="10" v-if="ruleForm.slsq">
35 <el-col :span="8">
36 <el-form-item label="权利类型:">
37 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
38 </el-form-item>
39 </el-col>
40 <el-col :span="8">
41 <el-form-item label="登记类型:">
42 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
43 </el-form-item>
44 </el-col>
45 <el-col :span="8">
46 <el-form-item label="登记情形:">
47 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
48 </el-form-item>
49 </el-col>
50 </el-row>
51 <div class="slxx_title title-block">
52 预告买卖登记情况
53 <div class="triangle"></div>
54 </div>
55 <el-row :gutter="10">
56 <el-col :span="8">
57 <el-form-item label="权利类型:">
58 <el-input disabled v-model="ruleForm.ztQlxx.qllxmc"></el-input>
59 </el-form-item>
60 </el-col>
61 <el-col :span="8">
62 <el-form-item label="不动产证明号:">
63 <el-input disabled v-model="ruleForm.ztQlxx.bdcqzh"></el-input>
64 </el-form-item>
65 </el-col>
66 <el-col :span="8">
67 <el-form-item label="不动产单元号:">
68 <el-input disabled v-model="ruleForm.ztQlxx.bdcdyh"></el-input>
69 </el-form-item>
70 </el-col>
71 </el-row>
72 <el-row :gutter="10">
73 <el-col :span="8">
74 <el-form-item label="权利人:">
75 <el-input disabled v-model="ruleForm.ztQlxx.qlrmc"></el-input>
76 </el-form-item>
77 </el-col>
78 <el-col :span="8">
79 <el-form-item label="证件种类:">
80 <el-input disabled v-model="ruleForm.ztQlxx.qlrzjzl"></el-input>
81 </el-form-item>
82 </el-col>
83 <el-col :span="8">
84 <el-form-item label="证件号:">
85 <el-input disabled v-model="ruleForm.ztQlxx.qlrzjhm"></el-input>
86 </el-form-item>
87 </el-col>
88 </el-row>
89 <el-row :gutter="10">
90 <el-col :span="8">
91 <el-form-item label="房屋面积:">
92 <el-input disabled v-model="ruleForm.ztQlxx.qlmjmc"></el-input>
93 </el-form-item>
94 </el-col>
95 <el-col :span="8">
96 <el-form-item label="房屋用途:">
97 <el-input disabled v-model="ruleForm.ztQlxx.qlytmc"></el-input>
98 </el-form-item>
99 </el-col>
100 <el-col :span="8">
101 <el-form-item label="房屋性质:">
102 <el-input disabled v-model="ruleForm.ztQlxx.qlxzmc"></el-input>
103 </el-form-item>
104 </el-col>
105 </el-row>
106 <el-row :gutter="10">
107 <el-col :span="8">
108 <el-form-item label="房屋取得价格:">
109 <el-input disabled v-model="ruleForm.ztQlxx.qdjgmc"></el-input>
110 </el-form-item>
111 </el-col>
112 <el-col :span="16">
113 <el-form-item label="不动产坐落:">
114 <el-input disabled v-model="ruleForm.ztQlxx.zl"></el-input>
115 </el-form-item>
116 </el-col>
117 </el-row>
118 <div class="slxx_title title-block">
119 预告抵押情况
120 <div class="triangle"></div>
121 </div>
122 <el-row :gutter="10">
123 <el-col :span="8">
124 <el-form-item label="原不动产证号:"
125 prop="sldy.ybdcqzsh"
126 :rules="rules.ybdcqzshrules">
127 <el-input disabled v-model="ruleForm.sldy.ybdcqzsh"></el-input>
128 </el-form-item>
129 </el-col>
130 <el-col :span="8">
131 <el-form-item label="预告登记种类:"
132 prop="ygdj.ygdjzlmc"
133 :rules="rules.ygdjzlmcrules">
134 <el-input disabled v-model="ruleForm.ygdj.ygdjzlmc"></el-input>
135 </el-form-item>
136 </el-col>
137 <el-col :span="8">
138 <el-form-item
139 label="是否禁止或者限制转让的约定:"
140 label-width="200px"
141 prop="ygdj.sfczjzhxz"
142 :rules="rules.sfczjzhxzrules">
143 <el-radio-group
144 v-model="ruleForm.ygdj.sfczjzhxz"
145 :disabled="!viewEdit">
146 <el-radio label="1"></el-radio>
147 <el-radio label="0"></el-radio>
148 </el-radio-group>
149 </el-form-item>
150 </el-col>
151 </el-row>
152 <el-row :gutter="10">
153 <el-col :span="8">
154 <el-form-item label="被担保主债权数额:"
155 prop="ygdj.qdjg"
156 :rules="rules.qdjgrules">
157 <div class="flex">
158 <el-input
159 v-model="ruleForm.ygdj.qdjg"
160 :disabled="!viewEdit"></el-input>
161 <el-select
162 v-model="ruleForm.ygdj.jedw"
163 :disabled="!viewEdit"
164 style="width: 68px">
165 <el-option
166 v-for="item in dictData['A57']"
167 :key="item.dcode"
168 :label="item.dname"
169 :value="item.dcode"></el-option>
170 </el-select>
171 </div>
172 </el-form-item>
173 </el-col>
174 <el-col :span="8">
175 <el-form-item label="债务履行起始时间:"
176 prop="ygdj.zwlxqssj"
177 :rules="rules.zwlxqssjrules">
178 <el-date-picker
179 v-model="ruleForm.ygdj.zwlxqssj"
180 :disabled="!viewEdit"
181 type="date"></el-date-picker>
182 </el-form-item>
183 </el-col>
184 <el-col :span="8">
185 <el-form-item label="债务履行结束时间:"
186 prop="ygdj.zwlxjssj"
187 :rules="rules.zwlxjssjrules">
188 <el-date-picker
189 v-model="ruleForm.ygdj.zwlxjssj"
190 :disabled="!viewEdit"
191 type="date"></el-date-picker>
192 </el-form-item>
193 </el-col>
194 </el-row>
195 <el-row :gutter="10">
196 <el-col :span="24">
197 <el-form-item label="担保范围:"
198 prop="ygdj.dbfw"
199 :rules="rules.dbfwrules">
200 <el-input
201 v-model="ruleForm.ygdj.dbfw"
202 :disabled="!viewEdit"></el-input>
203 </el-form-item>
204 </el-col>
205 </el-row>
206 <el-row>
207 <el-col :span="24">
208 <el-form-item label="附记:" prop="fj">
209 <el-input
210 type="textarea"
211 maxlength="500"
212 show-word-limit
213 v-model="ruleForm.ygdj.fj"
214 :disabled="!viewEdit"></el-input>
215 </el-form-item>
216 </el-col>
217 </el-row>
218 <div class="slxx_title title-block">
219 抵押权人信息
220 <div class="triangle"></div>
221 </div>
222 <el-row :gutter="10">
223 <el-col :span="12">
224 <el-form-item label="共有方式:">
225 <el-radio-group
226 :disabled="!viewEdit"
227 v-model="ruleForm.sldy.gyfs">
228 <el-radio label="0">单独所有</el-radio>
229 <el-radio label="1">共同共有</el-radio>
230 <el-radio label="2">按份所有</el-radio>
231 <el-radio label="3">其它共有</el-radio>
232 </el-radio-group>
233 </el-form-item>
234 </el-col>
235 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
236 <el-form-item label="是否分别持证:">
237 <el-radio-group
238 v-model="ruleForm.sldy.sqfbcz"
239 :disabled="!viewEdit"
240 @input="updaterow()">
241 <el-radio :label="1"></el-radio>
242 <el-radio :label="0"></el-radio>
243 </el-radio-group>
244 </el-form-item>
245 </el-col>
246 <el-col
247 :span="6"
248 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
249 <el-form-item label="持证人:">
250 <el-select
251 v-model="czr"
252 placeholder="持证人"
253 :disabled="!viewEdit">
254 <el-option
255 v-for="(item,index) in czrOptions"
256 :key="index"
257 :label="item.sqrmc"
258 :value="item.id"></el-option>
259 </el-select>
260 </el-form-item>
261 </el-col>
262 </el-row>
263 <qlrCommonTable
264 @upDateQlrxxList="upDateQlrxxList"
265 :tableData="ruleForm.qlrList"
266 :disabled="viewEdit"
267 :gyfs="ruleForm.sldy.gyfs" />
268 <div class="slxx_title title-block">
269 抵押人信息
270 <div class="triangle"></div>
271 </div>
272 <ywrCommonTable
273 @upDateQlrxxList="upDateYwrxxList"
274 :tableData="ruleForm.ywrList"
275 :disabled="viewEdit"
276 :gyfs="ruleForm.sldy.gyfs" />
277 <div class="slxx_title title-block">
278 登记原因
279 <div class="triangle"></div>
280 </div>
281 <el-row :gutter="10">
282 <el-col>
283 <el-form-item v-if="ruleForm.sldy.djlx=='400'" label="注销登记原因:" prop="djyy">
284 <el-input
285 class="textArea"
286 type="textarea"
287 maxlength="500"
288 show-word-limit
289 :disabled="!viewEdit"
290 v-model="ruleForm.ygdj.zxyy">
291 </el-input>
292 </el-form-item>
293 <el-form-item v-else label="登记原因:" prop="ygdj.djyy">
294 <el-input
295 class="textArea"
296 type="textarea"
297 maxlength="500"
298 show-word-limit
299 :disabled="!viewEdit"
300 v-model="ruleForm.ygdj.djyy">
301 </el-input>
302 </el-form-item>
303 </el-col>
304 </el-row>
305 </div>
306 <el-row class="btn" v-if="isSave">
307 <el-form-item>
308 <el-button type="primary" @click="onSubmit">保存</el-button>
309 </el-form-item>
310 </el-row>
311 </el-form>
312 </div>
313 </template>
314 <script>
315 import ywmix from "@/views/ywbl/mixin/index";
316 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
317 import ywrCommonTable from "@/views/workflow/components/ywrCommonTable";
318 import { Init, saveData } from "@/api/workflow/ygdyFlow.js";
319 import { mapGetters } from "vuex";
320 export default {
321 mixins: [ywmix],
322 mounted () {
323 let that = this;
324 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
325 this.propsParam = this.$attrs;
326 var formdata = new FormData();
327 this.loading = true;
328 formdata.append("bsmSldy", this.propsParam.bsmSldy);
329 formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
330 formdata.append("djlx", this.propsParam.djlx);
331 formdata.append("isEdit", this.viewEdit);
332 Init(formdata).then((res) => {
333 setTimeout(() => {
334 that.loading = false
335 }, 200)
336 if (res.code === 200 && res.result) {
337 that.ruleForm = res.result;
338 that.ruleForm.qlrList.forEach((item) => {
339 item.id = item.bsmSqr
340 if (item.sfczr == '1') {
341 that.czr = item.bsmSqr
342 }
343 })
344 that.czrOptions = this.ruleForm.qlrList;
345 that.isSave = that.viewEdit
346 } else {
347 that.isSave = false
348 that.$confirm(res.message, '提示', {
349 cancelButtonText: '取消',
350 showConfirmButton: false,
351 type: 'warning'
352 })
353 }
354 }).catch(() => {
355 this.loading = false
356 this.isSave = false
357 })
358 },
359 components: { qlrCommonTable, ywrCommonTable },
360 computed: {
361 ...mapGetters(["dictData", "flag"])
362 },
363 data () {
364 return {
365 isSave: true,
366 //表单是否可操作
367 viewEdit: true,
368 loading: false,
369 disabled: true,
370 tdytOption: [],
371 czrOptions: [],
372 czr: "",
373 ruleForm: {},
374 //传递参数
375 propsParam: this.$attrs,
376 rules: {
377 ybdcqzshrules: [
378 { required: true, message: "原不动产证号", trigger: "blur" },
379 ],
380 ygdjzlmcrules: [
381 { required: true, message: "预告登记种类", trigger: "blur" },
382 ],
383 sfczjzhxzrules: [
384 { required: true, message: "是否禁止或者限制转让的约定:", trigger: "blur" },
385 ],
386 qdjgrules: [{ required: true, message: "被担保主债权数额", trigger: "blur" }],
387 zwlxqssjrules: [{ required: true, message: "债务履行起始时间", trigger: "blur" }],
388 zwlxjssjrules: [{ required: true, message: "债务履行结束时间", trigger: "blur" }],
389 dbfwrules: [{ required: true, message: "担保范围", trigger: "blur" }],
390 'ygdj.djyy': [
391 { required: true, message: '请输入登记原因', trigger: 'blur' }
392 ]
393 }
394 }
395 },
396 methods: {
397 /**
398 * @description: 更新权利人信息
399 * @param {*} val
400 * @author: renchao
401 */
402 upDateQlrxxList (val) {
403 this.ruleForm.qlrList = _.cloneDeep(val);
404 this.czrOptions = this.ruleForm.qlrList;
405 this.num = 0
406 this.ruleForm.qlrList.forEach(item => {
407 if (item.id == this.czr) {
408 this.num++
409 }
410 })
411 if (this.num == 0) {
412 this.czr = ''
413 }
414 },
415 /**
416 * @description: 义务人信息
417 * @param {*} val
418 * @author: renchao
419 */
420 upDateYwrxxList (val) {
421 this.ruleForm.ywrList = _.cloneDeep(val);
422 },
423 /**
424 * @description: 是否持证人变化
425 * @author: renchao
426 */
427 updaterow () {
428 this.czr = "";
429 },
430 /**
431 * @description: onSubmit
432 * @author: renchao
433 */
434 onSubmit () {
435 let that = this;
436 if (this.ruleForm.qlrList.length == 0) {
437 this.$message({
438 showClose: true,
439 message: "请确认权利人信息",
440 type: "error",
441 });
442 return false;
443 }
444
445 if (this.ruleForm.sldy.gyfs == "0") {
446 if (this.ruleForm.qlrList.length > 1) {
447 this.$message({
448 showClose: true,
449 message: "共有方式:单独所有,权利人只能是一个人",
450 type: "error",
451 });
452 return false;
453 }
454 this.ruleForm.qlrList[0].sfczr = "1";
455 } else {
456 if (this.ruleForm.qlrList.length <= 1) {
457 this.$message({
458 showClose: true,
459 message:
460 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
461 type: "error",
462 });
463 return false;
464 }
465 //是否分别持证
466 if (this.ruleForm.sldy.sqfbcz == "1") {
467 //是
468 this.ruleForm.qlrList.forEach((item, index) => {
469 item.sfczr = "1";
470 });
471 } else {
472 if (that.czr === '') {
473 that.$message({
474 showClose: true,
475 message: "请选择持证人",
476 type: "error",
477 });
478 return false;
479 }
480 this.ruleForm.qlrList.forEach((item, index) => {
481 if (item.id == that.czr) {
482 item.sfczr = "1";
483 } else {
484 item.sfczr = "0";
485 }
486 });
487 }
488 }
489 saveData(this.ruleForm).then((res) => {
490 if (res.code === 200) {
491 this.$message({
492 showClose: true,
493 message: "保存成功!",
494 type: "success",
495 });
496 this.$store.dispatch("user/refreshPage", true);
497 } else {
498 this.$message({
499 showClose: true,
500 message: res.message,
501 type: "error"
502 })
503 }
504 })
505 }
506 }
507 }
508 </script>
509 <style scoped lang="scss">
510 @import "~@/styles/public.scss";
511 @import "~@/styles/slxx/slxx.scss";
512 </style>
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form
5 :model="ruleForm"
6 v-Loading="loading"
7 :label-position="flag ? 'top' : ''"
8 :inline="flag"
9 ref="ruleForm"
10 label-width="140px">
11 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
12 <div class="slxx_title title-block">
13 申请业务信息
14 <div class="triangle"></div>
15 </div>
16 <el-row :gutter="10" v-if="ruleForm.flow">
17 <el-col :span="8">
18 <el-form-item label="业务号:">
19 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
20 </el-form-item>
21 </el-col>
22 <el-col :span="8">
23 <el-form-item label="受理人员:">
24 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
25 </el-form-item>
26 </el-col>
27 <el-col :span="8">
28 <el-form-item label="受理时间:">
29 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
30 </el-form-item>
31 </el-col>
32 </el-row>
33 <el-row :gutter="10" v-if="ruleForm.sldyList">
34 <el-col :span="8">
35 <el-form-item label="权利类型:">
36 <el-input
37 disabled
38 v-model="ruleForm.sldyList[0].qllxmc"></el-input>
39 </el-form-item>
40 </el-col>
41 <el-col :span="8">
42 <el-form-item label="登记类型:">
43 <el-input
44 disabled
45 v-model="ruleForm.sldyList[0].djlxmc"></el-input>
46 </el-form-item>
47 </el-col>
48 <el-col :span="8">
49 <el-form-item label="登记情形:">
50 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
51 </el-form-item>
52 </el-col>
53 </el-row>
54
55 <div
56 class="slxx_title title-block"
57 v-if="ruleForm.slsq.djywbm.includes('400')">
58 在建工程抵押信息列表({{ ruleForm.qlxxList.length }} 户)
59 <div class="triangle"></div>
60 </div>
61 <div
62 class="slxx_title title-block"
63 v-else>
64 抵押户信息列表信息({{ ruleForm.hlist.length }} 户)
65 <div class="triangle"></div>
66 </div>
67 <cfBdcdyTable :tableData="ruleForm.qlxxList" v-if="ruleForm.slsq.djywbm.includes('400')" />
68 <qjhTable v-else :tableData="ruleForm.hlist" />
69 <div class="slxx_title title-block">
70 抵押信息
71 <div class="triangle"></div>
72 </div>
73 <el-row
74 :gutter="10"
75 v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
76 <el-col :span="8">
77 <el-form-item label="抵押方式:">
78 <el-radio-group disabled v-model="ruleForm.diyaqList[0].dyfs">
79 <el-radio label="1">一般抵押</el-radio>
80 <el-radio label="2">最高额抵押</el-radio>
81 </el-radio-group>
82 </el-form-item>
83 </el-col>
84 <el-col :span="8">
85 <el-form-item label="抵押金额类型:">
86 <el-radio-group
87 v-model="ruleForm.diyaqList[0].dyjelx"
88 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
89 <el-radio label="0">独立抵押</el-radio>
90 <el-radio label="1">整体抵押</el-radio>
91 </el-radio-group>
92 </el-form-item>
93 </el-col>
94 <el-col :span="8">
95 <el-form-item
96 label="是否存在禁止或者限制转让抵押不动产的约定:"
97 label-width="300px">
98 <el-radio-group
99 v-model="ruleForm.diyaqList[0].sfczjzhxz"
100 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
101 <el-radio label="1">启用</el-radio>
102 <el-radio label="0">禁用</el-radio>
103 </el-radio-group>
104 </el-form-item>
105 </el-col>
106 </el-row>
107 <el-row
108 :gutter="10"
109 v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
110 <el-col :span="8" v-show="ruleForm.diyaqList[0].dyfs == 1">
111 <el-form-item label="被担保主债权数额:">
112 <div style="display: flex">
113 <el-input
114 v-model="ruleForm.diyaqList[0].bdbzzqse"
115 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
116 <el-select
117 style="width: 68px"
118 v-model="ruleForm.diyaqList[0].jedw"
119 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
120 <el-option
121 v-for="item in dictData['A57']"
122 :key="item.dcode"
123 :label="item.dname"
124 :value="item.dcode">
125 </el-option>
126 </el-select>
127 </div>
128 </el-form-item>
129 </el-col>
130
131 <el-col :span="8" v-show="ruleForm.diyaqList[0].dyfs == 2">
132 <el-form-item label="最高债权额:">
133 <el-input
134 v-model="ruleForm.diyaqList[0].zgzqse"
135 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
136 <el-select
137 v-model="ruleForm.diyaqList[0].jedw"
138 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')">
139 <el-option
140 v-for="item in dictData['A57']"
141 :key="item.dcode"
142 :label="item.dname"
143 :value="item.dcode">
144 </el-option>
145 </el-select>
146 </el-form-item>
147 </el-col>
148
149 <el-col :span="8">
150 <el-form-item label="债务履行起始时间:">
151 <el-date-picker
152 v-model="ruleForm.diyaqList[0].zwlxqssj"
153 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"
154 type="date">
155 </el-date-picker>
156 </el-form-item>
157 </el-col>
158 <el-col :span="8">
159 <el-form-item label="债务履行结束时间:">
160 <el-date-picker
161 v-model="ruleForm.diyaqList[0].zwlxjssj"
162 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"
163 type="date">
164 </el-date-picker>
165 </el-form-item>
166 </el-col>
167 </el-row>
168
169 <el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
170 <el-col :span="24">
171 <el-form-item label="担保范围:">
172 <el-input
173 v-model="ruleForm.diyaqList[0].dbfw"
174 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
175 </el-form-item>
176 </el-col>
177 </el-row>
178 <el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
179 <el-col :span="24">
180 <el-form-item label="最高债权确定事实和数额:">
181 <el-input
182 v-model="ruleForm.diyaqList[0].zgzqqdss"
183 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
184 </el-form-item>
185 </el-col>
186 </el-row>
187 <el-row v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
188 <el-col>
189 <el-form-item label="附记:" prop="fj">
190 <el-input
191 type="textarea"
192 maxlength="500"
193 show-word-limit
194 v-model="ruleForm.diyaqList[0].fj"
195 :disabled="!viewEdit || ruleForm.slsq.djywbm.includes('400')"></el-input>
196 </el-form-item>
197 </el-col>
198 </el-row>
199
200 <div class="slxx_title title-block">
201 抵押权人信息
202 <div class="triangle"></div>
203 </div>
204 <el-row
205 :gutter="10"
206 v-if="ruleForm.sldyList && ruleForm.sldyList.length > 0">
207 <el-col :span="14">
208 <el-form-item label="共有方式:">
209 <el-radio-group
210 :disabled="!viewEdit"
211 v-model="ruleForm.sldyList[0].gyfs">
212 <el-radio label="0">单独所有</el-radio>
213 <el-radio label="1">共同共有</el-radio>
214 <el-radio label="2">按份所有</el-radio>
215 <el-radio label="3">其它共有</el-radio>
216 </el-radio-group>
217 </el-form-item>
218 </el-col>
219 <el-col :span="5" v-show="ruleForm.sldyList[0].gyfs != '0'">
220 <el-form-item label="是否分别持证:">
221 <el-radio-group
222 v-model="ruleForm.sldyList[0].sqfbcz"
223 :disabled="!viewEdit"
224 @input="updaterow()">
225 <el-radio :label="1"></el-radio>
226 <el-radio :label="0"></el-radio>
227 </el-radio-group>
228 </el-form-item>
229 </el-col>
230 <el-col
231 :span="5"
232 v-show="
233 ruleForm.sldyList[0].gyfs != '0' &&
234 ruleForm.sldyList[0].sqfbcz == '0'
235 ">
236 <el-form-item label="持证人:">
237 <el-select
238 v-model="czr"
239 placeholder="持证人"
240 :disabled="!viewEdit">
241 <el-option
242 v-for="(item,index) in czrOptions"
243 :key="index"
244 :label="item.sqrmc"
245 :value="item.id">
246 </el-option>
247 </el-select>
248 </el-form-item>
249 </el-col>
250 </el-row>
251 <qlrCommonTable
252 v-if="ruleForm.sldyList && ruleForm.sldyList.length > 0"
253 :tableData="ruleForm.qlrList"
254 @upDateQlrxxList="upDateQlrxxList"
255 :disabled="viewEdit"
256 :gyfs="ruleForm.sldyList[0].gyfs" />
257 <div class="slxx_title title-block">
258 抵押人信息
259 <div class="triangle"></div>
260 </div>
261 <qlrCommonTable
262 :tableData="ruleForm.ywrList"
263 @upDateQlrxxList="upDateYwrxxList"
264 :disabled="viewEdit" />
265
266 <div class="slxx_title title-block">
267 登记原因
268 <div class="triangle"></div>
269 </div>
270 <el-row
271 :gutter="10"
272 v-if="ruleForm.diyaqList && ruleForm.diyaqList.length > 0">
273 <el-col>
274 <el-form-item
275 v-if="ruleForm.sldyList[0].djlx == '400'"
276 label="注销抵押原因:"
277 prop="djyy">
278 <el-input
279 class="textArea"
280 type="textarea"
281 :disabled="!viewEdit"
282 v-model="ruleForm.diyaqList[0].zxdyyy">
283 </el-input>
284 </el-form-item>
285 <el-form-item v-else label="登记原因:" prop="diyaqList[0].djyy">
286 <el-input
287 class="textArea"
288 type="textarea"
289 maxlength="500"
290 show-word-limit
291 :disabled="!viewEdit"
292 v-model="ruleForm.diyaqList[0].djyy">
293 </el-input>
294 </el-form-item>
295 </el-col>
296 </el-row>
297 </div>
298 <el-row class="btn" v-if="isSave">
299 <el-form-item>
300 <el-button type="primary" @click="onSubmitClick()">保存</el-button>
301 </el-form-item>
302 </el-row>
303 </el-form>
304 </div>
305 </template>
306 <script>
307 import qjhTable from "@/views/workflow/components/qjhTable";
308 import cfBdcdyTable from "@/views/workflow/components/cfBdcdyTable";
309 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
310 import { bacthInit, saveBatchData } from "@/api/workflow/zjgcdyFlow.js";
311 import { mapGetters } from "vuex";
312 export default {
313 mounted () {
314 let that = this
315 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
316 this.propsParam = this.$attrs;
317 var formdata = new FormData();
318
319 this.loading = true
320 formdata.append("bsmSlsq", this.$route.query.bsmSlsq);
321 formdata.append("djlx", this.propsParam.djlx);
322 formdata.append("isEdit", this.viewEdit);
323 bacthInit(formdata).then((res) => {
324 setTimeout(() => {
325 that.loading = false
326 }, 200)
327 if (res.code === 200 && res.result) {
328 this.ruleForm = res.result;
329 this.ruleForm.qlrList.forEach((item) => {
330 item.id = item.bsmSqr
331 if (item.sfczr == '1') {
332 that.czr = item.bsmSqr
333 }
334 })
335 that.czrOptions = that.ruleForm.qlrList;
336 that.isSave = that.viewEdit
337 } else {
338 that.isSave = false
339 that.$confirm(res.message, '提示', {
340 cancelButtonText: '取消',
341 showConfirmButton: false,
342 type: 'warning'
343 })
344 }
345 }).catch(() => {
346 this.loading = false
347 })
348 },
349 components: { qlrCommonTable, qjhTable, cfBdcdyTable },
350 computed: {
351 ...mapGetters(["dictData", "flag"]),
352 },
353 data () {
354 return {
355 isSave: true,
356 loading: false,
357 //表单是否可操作
358 viewEdit: true,
359 disabled: true,
360 czrOptions: [],
361 czr: "",
362 ruleForm: {},
363 //传递参数
364 propsParam: {},
365 rules: {
366 'diyaqList[0].djyy': [
367 { required: true, message: '请输入登记原因', trigger: 'blur' }
368 ]
369 },
370 tableData: [],
371 };
372 },
373 methods: {
374 /**
375 * @description: onSubmitClick
376 * @author: renchao
377 */
378 onSubmitClick () {
379 let that = this;
380 if (this.ruleForm.qlrList.length == 0) {
381 this.$message({
382 showClose: true,
383 message: "请确认抵押权人信息",
384 type: "error",
385 });
386 return false;
387 }
388 if (this.ruleForm.sldyList[0].gyfs == "0") {
389 if (this.ruleForm.qlrList.length > 1) {
390 this.$message({
391 showClose: true,
392 message: "共有方式:单独所有,抵押权人只能是一个人",
393 type: "error",
394 });
395 return false;
396 }
397 this.ruleForm.qlrList[0].sfczr = "1";
398 } else {
399 if (this.ruleForm.qlrList.length <= 1) {
400 this.$message({
401 showClose: true,
402 message:
403 "共有方式:共同所有,按份所有,其他所有,抵押权人必须是两个以上",
404 type: "error",
405 });
406 return false;
407 }
408 //是否分别持证
409 if (this.ruleForm.sldyList[0].sqfbcz == "1") {
410 //是
411 this.ruleForm.qlrList.forEach((item, index) => {
412 item.sfczr = "1"
413 })
414 } else {
415 if (that.czr === '') {
416 that.$message({
417 showClose: true,
418 message: "请选择持证人",
419 type: "error",
420 });
421 return false;
422 }
423 this.ruleForm.qlrList.forEach((item, index) => {
424 if (item.id == that.czr) {
425 item.sfczr = "1";
426 } else {
427 item.sfczr = "0";
428 }
429 });
430 }
431 }
432 this.$refs['ruleForm'].validate((valid) => {
433 if (valid) {
434 that.$store.dispatch("user/refreshPage", false);
435 saveBatchData(that.ruleForm, that.propsParam.djlx).then((res) => {
436 if (res.code === 200) {
437 that.$message({
438 showClose: true,
439 message: "保存成功!",
440 type: "success",
441 });
442 that.$store.dispatch("user/refreshPage", true);
443 } else {
444 that.$message({
445 showClose: true,
446 message: res.message,
447 type: "error",
448 });
449 }
450 })
451 } else {
452 that.$message({
453 showClose: true,
454 message: "请输入登记原因",
455 type: "error"
456 })
457 return false
458 }
459 })
460 },
461 /**
462 * @description: 是否持证人变化
463 * @param {*} val
464 * @author: renchao
465 */
466 updaterow () {
467 this.czr = "";
468 },
469 /**
470 * @description: 更新抵押权人信息
471 * @param {*} val
472 * @author: renchao
473 */
474 upDateQlrxxList (val) {
475 if (!_.isEqual(val, this.ruleForm.qlrList)) {
476 this.ruleForm.qlrList = _.cloneDeep(val);
477 this.czrOptions = this.ruleForm.qlrList;
478 }
479 this.num = 0
480 this.ruleForm.qlrList.forEach(item => {
481 if (item.id == this.czr) {
482 this.num++
483 }
484 })
485 if (this.num == 0) {
486 this.czr = ''
487 }
488 },
489 /**
490 * @description: 更新义务人信息
491 * @param {*} val
492 * @author: renchao
493 */
494 upDateYwrxxList (val) {
495 if (!_.isEqual(val, this.ruleForm.ywrList)) {
496 this.ruleForm.ywrList = _.cloneDeep(val);
497 }
498 }
499 }
500 }
501 </script>
502 <style scoped lang="scss">
503 @import "~@/styles/public.scss";
504 @import "~@/styles/slxx/slxx.scss";
505 </style>
1 <template>
2 <!-- 受理信息 -->
3 <div class="slxx">
4 <el-form
5 :model="ruleForm"
6 :rules="rules"
7 v-Loading="loading"
8 ref="ruleForm"
9 :label-position="flag ? 'top' : ''"
10 :inline="flag"
11 label-width="170px">
12 <div class="slxx_con" :class="flag ? 'formMarginBot0' : ''">
13 <div class="slxx_title title-block">
14 申请业务信息
15 <div class="triangle"></div>
16 </div>
17 <el-row :gutter="10">
18 <el-col :span="8">
19 <el-form-item label="业务号:">
20 <el-input disabled v-model="ruleForm.flow.ywh"></el-input>
21 </el-form-item>
22 </el-col>
23 <el-col :span="8">
24 <el-form-item label="受理人员:">
25 <el-input disabled v-model="ruleForm.slsq.slry"></el-input>
26 </el-form-item>
27 </el-col>
28 <el-col :span="8">
29 <el-form-item label="受理时间:">
30 <el-input disabled v-model="ruleForm.slsq.slsj"></el-input>
31 </el-form-item>
32 </el-col>
33 </el-row>
34 <el-row :gutter="10">
35 <el-col :span="8">
36 <el-form-item label="权利类型:" prop="qllx">
37 <el-input disabled v-model="ruleForm.sldy.qllxmc"></el-input>
38 </el-form-item>
39 </el-col>
40 <el-col :span="8">
41 <el-form-item label="登记类型:" prop="djlx">
42 <el-input disabled v-model="ruleForm.sldy.djlxmc"></el-input>
43 </el-form-item>
44 </el-col>
45 <el-col :span="8">
46 <el-form-item label="登记情形:" prop="djqx">
47 <el-input disabled v-model="ruleForm.slsq.djqxmc"></el-input>
48 </el-form-item>
49 </el-col>
50 </el-row>
51 <div class="slxx_title title-block">
52 抵押户信息情况
53 <div class="triangle"></div>
54 </div>
55 <el-row :gutter="10">
56 <el-col :span="8">
57 <el-form-item label="房屋用途:">
58 <el-input disabled v-model="ruleForm.qjh.showfwyt"></el-input>
59 </el-form-item>
60 </el-col>
61 <el-col :span="8">
62 <el-form-item label="房屋性质:">
63 <el-input disabled v-model="ruleForm.qjh.fwxzmc"></el-input>
64 </el-form-item>
65 </el-col>
66 <el-col :span="8">
67 <el-form-item label="房屋结构:">
68 <el-input disabled v-model="ruleForm.qjh.showfwjg"></el-input>
69 </el-form-item>
70 </el-col>
71 </el-row>
72 <el-row :gutter="10">
73 <el-col :span="8">
74 <el-form-item label="建筑面积:">
75 <div class="flex">
76 <el-input
77 maxlength="12"
78 v-model="ruleForm.qjh.jzmj" disabled
79 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
80 <el-select disabled v-model="mjdw" style="width: 68px">
81 <el-option
82 v-for="item in dictData['A7']"
83 :key="item.dcode"
84 :label="item.dname"
85 :value="item.dcode">
86 </el-option>
87 </el-select>
88 </div>
89 </el-form-item>
90 </el-col>
91 <el-col :span="8">
92 <el-form-item label="套内建筑面积:">
93 <div class="flex">
94 <el-input
95 maxlength="12"
96 v-model="ruleForm.qjh.tnjzmj" disabled
97 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
98 <el-select disabled v-model="mjdw" style="width: 68px">
99 <el-option
100 v-for="item in dictData['A7']"
101 :key="item.dcode"
102 :label="item.dname"
103 :value="item.dcode">
104 </el-option>
105 </el-select>
106 </div>
107 </el-form-item>
108 </el-col>
109 <el-col :span="8">
110 <el-form-item label="分摊建筑面积:">
111 <div class="flex">
112 <el-input
113 maxlength="12"
114 v-model="ruleForm.qjh.ftjzmj" disabled
115 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"></el-input>
116 <el-select disabled v-model="mjdw" style="width: 68px">
117 <el-option
118 v-for="item in dictData['A7']"
119 :key="item.dcode"
120 :label="item.dname"
121 :value="item.dcode">
122 </el-option>
123 </el-select>
124 </div>
125 </el-form-item>
126 </el-col>
127 </el-row>
128 <el-row :gutter="10">
129 <el-col :span="8">
130 <el-form-item label="不动产单元号:">
131 <el-input disabled v-model="ruleForm.qlxx.bdcdyh"></el-input>
132 </el-form-item>
133 </el-col>
134 <el-col :span="8">
135 <el-form-item label="室号部位:">
136 <el-input disabled v-model="ruleForm.qjh.shbw"></el-input>
137 </el-form-item>
138 </el-col>
139 <el-col :span="8">
140 <el-form-item label="坐落:">
141 <el-input disabled v-model="ruleForm.sldy.zl"></el-input>
142 </el-form-item>
143 </el-col>
144 </el-row>
145
146 <div class="slxx_title title-block">
147 抵押信息
148 <div class="triangle"></div>
149 </div>
150
151 <el-row :gutter="10">
152 <el-col :span="8">
153 <el-form-item label="抵押方式:">
154 <!-- <el-input disabled v-model="ruleForm.slywxx.djqxmc"></el-input> -->
155 <el-radio-group disabled v-model="ruleForm.diyaq.dyfs">
156 <el-radio label="1">一般抵押</el-radio>
157 <el-radio label="2">最高额抵押</el-radio>
158 </el-radio-group>
159 </el-form-item>
160 </el-col>
161 <el-col :span="16">
162 <el-form-item
163 label="是否存在禁止或者限制转让抵押不动产的约定:"
164 label-width="350px">
165 <el-radio-group
166 v-model="ruleForm.diyaq.sfczjzhxz"
167 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'">
168 <el-radio label="1"></el-radio>
169 <el-radio label="0"></el-radio>
170 </el-radio-group>
171 </el-form-item>
172 </el-col>
173 </el-row>
174
175 <el-row :gutter="10">
176 <el-col :span="8" v-show="ruleForm.diyaq.dyfs == 1">
177 <el-form-item label="被担保主债权数额:">
178 <div style="display:flex">
179 <el-input
180 v-model="ruleForm.diyaq.bdbzzqse"
181 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'"></el-input>
182 <el-select style="width: 68px" v-model="ruleForm.diyaq.jedw"
183 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'">
184 <el-option
185 v-for="item in dictData['A57']"
186 :key="item.dcode"
187 :label="item.dname"
188 :value="item.dcode">
189 </el-option>
190 </el-select>
191 </div>
192 </el-form-item>
193 </el-col>
194
195 <el-col :span="8" v-show="ruleForm.diyaq.dyfs == 2">
196 <el-form-item label="最高债权额:">
197 <div style="display: flex">
198 <el-input
199 v-model="ruleForm.diyaq.zgzqse"
200 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'"></el-input>
201 <el-select v-model="ruleForm.diyaq.jedw" style="width: 68px" :disabled="!viewEdit || ruleForm.sldy.djlx == '400'">
202 <el-option
203 v-for="item in dictData['A57']"
204 :key="item.dcode"
205 :label="item.dname"
206 :value="item.dcode">
207 </el-option>
208 </el-select>
209 </div>
210 </el-form-item>
211 </el-col>
212
213 <el-col :span="8">
214 <el-form-item label="债务履行起始时间:">
215 <el-date-picker
216 v-model="ruleForm.diyaq.zwlxqssj"
217 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'"
218 type="date">
219 </el-date-picker>
220 </el-form-item>
221 </el-col>
222 <el-col :span="8">
223 <el-form-item label="债务履行结束时间:">
224 <el-date-picker
225 v-model="ruleForm.diyaq.zwlxjssj"
226 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'"
227 type="date">
228 </el-date-picker>
229 </el-form-item>
230 </el-col>
231 </el-row>
232
233 <el-row>
234 <el-col :span="24">
235 <el-form-item label="担保范围:">
236 <el-input
237 v-model="ruleForm.diyaq.dbfw"
238 :disabled="(ruleForm.sldy.djlx == '300' && !viewEdit) || ruleForm.sldy.djlx == '400'"></el-input>
239 </el-form-item>
240 </el-col>
241 </el-row>
242 <el-row>
243 <el-col :span="24">
244 <el-form-item label="最高债权确定事实和数额:">
245 <el-input
246 v-model="ruleForm.diyaq.zgzqqdss"
247 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'"></el-input>
248 </el-form-item>
249 </el-col>
250 </el-row>
251 <el-row>
252 <el-col>
253 <el-form-item label="附记:" prop="fj">
254 <el-input
255 type="textarea"
256 maxlength="500"
257 show-word-limit
258 v-model="ruleForm.diyaq.fj"
259 :disabled="!viewEdit || ruleForm.sldy.djlx == '400'"></el-input>
260 </el-form-item>
261 </el-col>
262 </el-row>
263
264 <div class="slxx_title title-block">
265 抵押权人信息
266 <div class="triangle"></div>
267 </div>
268 <el-row :gutter="10">
269 <el-col :span="12">
270 <el-form-item label="共有方式:">
271 <el-radio-group
272 :disabled="!viewEdit"
273 v-model="ruleForm.sldy.gyfs">
274 <el-radio label="0">单独所有</el-radio>
275 <el-radio label="1">共同共有</el-radio>
276 <el-radio label="2">按份所有</el-radio>
277 <el-radio label="3">其它共有</el-radio>
278 </el-radio-group>
279 </el-form-item>
280 </el-col>
281 <el-col :span="6" v-show="ruleForm.sldy.gyfs != '0'">
282 <el-form-item label="是否分别持证:">
283 <el-radio-group
284 v-model="ruleForm.sldy.sqfbcz"
285 :disabled="!viewEdit"
286 @input="updaterow()">
287 <el-radio :label="1"></el-radio>
288 <el-radio :label="0"></el-radio>
289 </el-radio-group>
290 </el-form-item>
291 </el-col>
292 <el-col
293 :span="6"
294 v-show="ruleForm.sldy.sqfbcz == '0' && ruleForm.sldy.gyfs != '0'">
295 <el-form-item label="持证人:">
296 <el-select
297 v-model="czr"
298 placeholder="持证人"
299 :disabled="!viewEdit">
300 <el-option
301 v-for="(item,index) in czrOptions"
302 :key="index"
303 :label="item.sqrmc"
304 :value="item.id">
305 </el-option>
306 </el-select>
307 </el-form-item>
308 </el-col>
309 </el-row>
310 <qlrCommonTable
311 :tableData="ruleForm.qlrList"
312 @upDateQlrxxList="upDateQlrxxList"
313 :disabled="viewEdit"
314 :gyfs="ruleForm.sldy.gyfs" />
315 <div class="slxx_title title-block">
316 抵押人信息
317 <div class="triangle"></div>
318 </div>
319 <qlrCommonTable
320 :tableData="ruleForm.ywrList"
321 @upDateQlrxxList="upDateYwrxxList"
322 :disabled="viewEdit" />
323
324 <div class="slxx_title title-block">
325 登记原因
326 <div class="triangle"></div>
327 </div>
328 <el-row :gutter="10">
329 <el-col>
330 <el-form-item
331 v-if="ruleForm.sldy.djlx == '400'"
332 label="注销抵押原因:"
333 prop="djyy">
334 <el-input
335 class="textArea"
336 type="textarea"
337 :disabled="!viewEdit"
338 v-model="ruleForm.diyaq.zxdyyy">
339 </el-input>
340 </el-form-item>
341 <el-form-item v-else label="登记原因:" prop="diyaq.djyy">
342 <el-input
343 class="textArea"
344 type="textarea"
345 maxlength="500"
346 show-word-limit
347 :disabled="!viewEdit"
348 v-model="ruleForm.diyaq.djyy">
349 </el-input>
350 </el-form-item>
351 </el-col>
352 </el-row>
353 </div>
354 <el-row class="btn" v-if="isSave">
355 <el-form-item>
356 <el-button type="primary" @click="onSubmitClick()">保存</el-button>
357 </el-form-item>
358 </el-row>
359 </el-form>
360 </div>
361 </template>
362 <script>
363 import qlrCommonTable from "@/views/workflow/components/qlrCommonTable";
364 import { Init, saveData } from "@/api/workflow/zjgcdyFlow.js";
365 import { mapGetters } from "vuex";
366 export default {
367 mounted () {
368 let that = this
369 this.viewEdit = this.$parent.currentSelectTab.ableOperation;
370 this.propsParam = this.$attrs;
371 var formdata = new FormData();
372 this.loading = true
373 formdata.append("bsmSldy", this.propsParam.bsmSldy);
374 formdata.append("djlx", this.propsParam.djlx);
375 formdata.append("isEdit", this.viewEdit);
376 Init(formdata).then((res) => {
377 this.loading = false
378 if (res.code === 200 && res.result) {
379 this.ruleForm = res.result;
380 window.djlx = res.result.sldy.djlx
381 this.czrOptions = this.ruleForm.qlrList;
382 this.ruleForm.qlrList.forEach((item) => {
383 item.id = item.bsmSqr
384 if (item.sfczr == '1') {
385 that.czr = item.bsmSqr
386 }
387 })
388 that.czrOptions = that.ruleForm.qlrList;
389 that.isSave = that.viewEdit
390 } else {
391 that.isSave = false
392 that.$confirm(res.message, '提示', {
393 cancelButtonText: '取消',
394 showConfirmButton: false,
395 type: 'warning'
396 })
397 }
398 }).catch(() => {
399 this.loading = false
400 })
401 },
402 components: { qlrCommonTable },
403 computed: {
404 ...mapGetters(["dictData", "flag"]),
405 },
406 data () {
407 return {
408 mjdw: '1',
409 isSave: true,
410 loading: false,
411 //表单是否可操作
412 viewEdit: true,
413 disabled: true,
414 czrOptions: [],
415 czr: "",
416 ruleForm: {},
417 //传递参数
418 propsParam: {},
419 rules: {
420 'diyaq.djyy': [
421 { required: true, message: '请输入登记原因', trigger: 'blur' }
422 ]
423 },
424 // 键名转换,方法默认是label和children进行树状渲染
425 normalizer (node) {
426 //方法
427 if (node.children == null || node.children == "null") {
428 delete node.children;
429 }
430 return {
431 id: node.dcode,
432 label: node.dname,
433 };
434 },
435 };
436 },
437 methods: {
438 /**
439 * @description: onSubmitClick
440 * @author: renchao
441 */
442 onSubmitClick () {
443 let that = this;
444 if (this.ruleForm.qlrList.length == 0) {
445 this.$message({
446 showClose: true,
447 message: "请确认权利人信息",
448 type: "error",
449 });
450 return false;
451 }
452
453 if (this.ruleForm.sldy.gyfs == "0") {
454 if (this.ruleForm.qlrList.length > 1) {
455 this.$message({
456 showClose: true,
457 message: "共有方式:单独所有,权利人只能是一个人",
458 type: "error",
459 });
460 return false;
461 }
462 this.ruleForm.qlrList[0].sfczr = "1";
463 } else {
464 if (this.ruleForm.qlrList.length <= 1) {
465 this.$message({
466 showClose: true,
467 message:
468 "共有方式:共同所有,按份所有,其他所有,权利人必须是两个以上",
469 type: "error",
470 });
471 return false;
472 }
473 //是否分别持证
474 if (this.ruleForm.sldy.sqfbcz == "1") {
475 //是
476 this.ruleForm.qlrList.forEach((item, index) => {
477 item.sfczr = "1";
478 });
479 } else {
480 if (that.czr === '') {
481 that.$message({
482 showClose: true,
483 message: "请选择持证人",
484 type: "error",
485 });
486 return false;
487 }
488 this.ruleForm.qlrList.forEach((item, index) => {
489 if (item.id == that.czr) {
490 item.sfczr = "1";
491 } else {
492 item.sfczr = "0";
493 }
494 });
495 }
496 }
497 this.$refs['ruleForm'].validate((valid) => {
498 if (valid) {
499 that.$store.dispatch("user/refreshPage", false);
500 saveData(that.ruleForm, that.propsParam.djlx).then((res) => {
501 if (res.code === 200) {
502 that.$message({
503 showClose: true,
504 message: "保存成功!",
505 type: "success",
506 });
507 that.$store.dispatch("user/refreshPage", true);
508 } else {
509 that.$message({
510 showClose: true,
511 message: res.message,
512 type: "error",
513 });
514 }
515 })
516 } else {
517 that.$message({
518 showClose: true,
519 message: "请输入登记原因",
520 type: "error"
521 })
522 return false
523 }
524 })
525
526 },
527 /**
528 * @description: 更新权利人信息
529 * @param {*} val
530 * @author: renchao
531 */
532 upDateQlrxxList (val) {
533 if (!_.isEqual(val, this.ruleForm.qlrList)) {
534 this.ruleForm.qlrList = _.cloneDeep(val);
535 this.czrOptions = this.ruleForm.qlrList;
536 }
537 this.num = 0
538 this.ruleForm.qlrList.forEach(item => {
539 if (item.id == this.czr) {
540 this.num++
541 }
542 })
543 if (this.num == 0) {
544 this.czr = ''
545 }
546 },
547 // 是否持证人变化
548 /**
549 * @description: 是否持证人变化
550 * @param {*} val
551 * @author: renchao
552 */
553 updaterow () {
554 this.czr = "";
555 },
556 /**
557 * @description: 更新义务人信息
558 * @param {*} val
559 * @author: renchao
560 */
561 upDateYwrxxList (val) {
562 if (!_.isEqual(val, this.ruleForm.ywrList)) {
563 this.ruleForm.ywrList = _.cloneDeep(val);
564 }
565 }
566 }
567 }
568 </script>
569 <style scoped lang="scss">
570 @import "~@/styles/public.scss";
571 @import "~@/styles/slxx/slxx.scss";
572 </style>
...@@ -15,10 +15,10 @@ class data extends filter { ...@@ -15,10 +15,10 @@ class data extends filter {
15 } 15 }
16 columns () { 16 columns () {
17 return [ 17 return [
18 { 18 // {
19 type: 'selection', 19 // type: 'selection',
20 label: '全选', 20 // label: '全选',
21 }, 21 // },
22 { 22 {
23 label: '序号', 23 label: '序号',
24 type: 'index', 24 type: 'index',
...@@ -32,6 +32,19 @@ class data extends filter { ...@@ -32,6 +32,19 @@ class data extends filter {
32 } 32 }
33 }, 33 },
34 { 34 {
35 prop: "bglx",
36 label: "变化情况",
37 minWidth: '80',
38 render: (h, scope) => {
39 switch (scope.row.bglx) {
40 case '1':
41 return <span>变更前</span>
42 case '2':
43 return <span>变更后</span>
44 }
45 }
46 },
47 {
35 prop: "status", 48 prop: "status",
36 label: "状态", 49 label: "状态",
37 width: '130', 50 width: '130',
......