855d01f9 by tianhaohao@pashanhoo.com

111

1 parent f2e6d2d2
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 '../../../components/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-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 '../../../components/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:
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
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: 2024-01-18 14:13:02
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 style="width: 100%">
16 <el-table-column prop="index" width="50" :render-header="renderHeader">
17 <template slot-scope="scope">
18 <i
19 class="el-icon-minus pointer"
20 @click="deleClick(scope.$index, scope.row)"
21 v-if="ableOperation"></i>
22 <div style="text-align: center" v-else>
23 {{ scope.$index + 1 }}
24 </div>
25 </template>
26 </el-table-column>
27 <el-table-column prop="yt" label="土地用途" min-width="100">
28 <template slot-scope="scope">
29 <treeselect
30 v-model="scope.row.yt"
31 :disabled="!ableOperation"
32 noOptionsText="暂无数据"
33 placeholder=""
34 :show-count="true"
35 :options="dictData['tdyt']"
36 :normalizer="normalizer"
37 :appendToBody="true"
38 z-index="9999"
39 @input="addrow(scope.row)" />
40 </template>
41 </el-table-column>
42 <el-table-column prop="qssj" label="土地使用起始时间" min-width="100">
43 <template slot-scope="scope">
44 <el-date-picker
45 v-model="scope.row.qssj"
46 type="date"
47 :disabled="!ableOperation"
48 :picker-options="scope.row.pickerStart"
49 placeholder="选择日期"
50 value-format="yyyy-MM-dd HH:mm:ss"
51 format="yyyy-MM-dd"
52 @input="startTime(scope.$index)">
53 </el-date-picker>
54 </template>
55 </el-table-column>
56 <el-table-column prop="jssj" label="土地使用结束时间" min-width="100">
57 <template slot-scope="scope">
58 <el-date-picker
59 v-model="scope.row.jssj"
60 type="date"
61 :disabled="!ableOperation"
62 :picker-options="scope.row.pickerEnd"
63 placeholder="选择日期"
64 value-format="yyyy-MM-dd HH:mm:ss"
65 format="yyyy-MM-dd"
66 @input="endTime(scope.$index)">
67 </el-date-picker>
68 </template>
69 </el-table-column>
70 <el-table-column prop="tdsyqx" label="土地使用期限" min-width="100">
71 <template slot-scope="scope">
72 <el-input
73 class="item"
74 :disabled="!ableOperation"
75 v-model="scope.row.tdsyqx"
76 oninput="value = (value.match(/^\d*(\.?\d{0,2})/g)[0]) || null"
77 placeholder="请输入内容"
78 @input="sumTime(scope.$index, scope.row.tdsyqx)">
79 ></el-input>
80 </template>
81 </el-table-column>
82 </el-table>
83 </div>
84 </template>
85 <script>
86 import { mapGetters } from "vuex";
87 export default {
88 computed: {
89 ...mapGetters(["dictData"]),
90 },
91 props: {
92 tableData: {
93 type: Array,
94 default: function () {
95 return [];
96 },
97 },
98 ableOperation: {
99 type: Boolean,
100 default: true,
101 },
102 },
103 data () {
104 return {
105 // 键名转换,方法默认是label和children进行树状渲染
106 key: 0,
107 newdata: {
108 yt: null,
109 qssj: "",
110 jssj: "",
111 tdsyqx: "",
112 },
113 tableDataList: [],
114 // 起始时间选择范围
115 pickerStart: {},
116 pickerEnd: {},
117 normalizer (node) {
118 if (node.children == null || node.children == "null") {
119 delete node.children;
120 }
121 return {
122 id: node.dcode,
123 label: node.dname,
124 children: node.children,
125 };
126 },
127 };
128 },
129 mounted () { },
130 watch: {
131 tableData: {
132 handler: function (val, oldVal) {
133 let that = this;
134 this.$nextTick(() => {
135 if (!val || val.length == 0) {
136 that.tableDataList = _.cloneDeep([
137 {
138 yt: null,
139 qssj: "",
140 jssj: "",
141 tdsyqx: "",
142 },
143 ]);
144 } else {
145 that.tableDataList = _.cloneDeep(val);
146 }
147 });
148 },
149 immediate: true,
150 deep: true,
151 },
152 },
153 methods: {
154 /**
155 * @description: renderHeader
156 * @author: renchao
157 */
158 renderHeader () {
159 return (
160 <div>
161 {" "}
162 {!this.ableOperation ? (
163 "序号"
164 ) : (
165 <i
166 class="el-icon-plus pointer"
167 onClick={() => {
168 this.addClick();
169 }}
170 ></i>
171 )}
172 </div>
173 );
174 },
175 // 修改事件
176 /**
177 * @description: 修改事件
178 * @author: renchao
179 */
180 addrow (a) {
181 // this.tableDataList = this.tableDataList.map((item) => {
182 // return {
183 // ...item,
184 // yt: a.yt,
185 // };
186 // });
187 this.$emit("upDateTdytxxList", this.tableDataList);
188 },
189 /**
190 * @description: startTime
191 * @param {*} index
192 * @author: renchao
193 */
194 startTime (index) {
195 console.log("index", index);
196 // let startTime = this.tableDataList[index].tdsyqssj;
197 let endTime = this.tableDataList[index].jssj;
198 let startTime = this.tableDataList[index].qssj;
199 this.tableDataList[index].pickerEnd = {
200 disabledDate: (time) => {
201 if (Object.keys(startTime).length > 0) {
202 return new Date(startTime).getTime() > time.getTime();
203 } else {
204 return time.getTime() < Date.now();
205 }
206 },
207 };
208 if (startTime && endTime) {
209 let startYear = new Date(startTime).getFullYear();
210 let endYear = new Date(endTime).getFullYear();
211 this.tableDataList[index].tdsyqx = endYear - startYear;
212 }
213 this.$emit("upDateTdytxxList", this.tableDataList);
214 },
215 /**
216 * @description: endTime
217 * @param {*} index
218 * @author: renchao
219 */
220 endTime (index) {
221 // let startTime = this.tableDataList[index].tdsyqssj;
222 let startTime = this.tableDataList[index].qssj;
223 let endTime = this.tableDataList[index].jssj;
224 this.tableDataList[index].pickerStart = {
225 disabledDate: (time) => {
226 if (Object.keys(endTime).length > 0) {
227 return new Date(endTime).getTime() < time.getTime();
228 } else {
229 return time.getTime() > Date.now();
230 }
231 },
232 };
233 if (startTime && endTime) {
234 let startYear = new Date(startTime).getFullYear();
235 let endYear = new Date(endTime).getFullYear();
236 this.tableDataList[index].tdsyqx = endYear - startYear;
237 }
238 this.$emit("upDateTdytxxList", this.tableDataList);
239 },
240 /**
241 * @description: sumTime
242 * @param {*} index
243 * @param {*} tdsyqx
244 * @author: renchao
245 */
246 sumTime (index, tdsyqx) {
247 let startTime = this.tableDataList[index].qssj;
248 this.tableDataList[index].jssj =
249 Number(startTime.substring(0, 4)) +
250 Number(tdsyqx) +
251 startTime.slice(4, 19);
252 this.$emit("upDateTdytxxList", this.tableDataList);
253 },
254 // 新增
255 /**
256 * @description: 新增
257 * @author: renchao
258 */
259 addClick () {
260 // this.tableDataList[this.tableDataList.length] = _.cloneDeep(this.newdata);
261 this.tableDataList.push(_.cloneDeep(this.newdata))
262 this.$emit("upDateTdytxxList", this.tableDataList);
263 },
264
265 // 删除
266 /**
267 * @description: 删除
268 * @param {*} index
269 * @param {*} row
270 * @author: renchao
271 */
272 deleClick (index, row) {
273 this.$confirm("确定要删除吗, 是否继续?", "提示", {
274 confirmButtonText: "确定",
275 cancelButtonText: "取消",
276 type: "warning",
277 })
278 .then(() => {
279 this.tableDataList.splice(index, 1);
280 this.$emit("upDateTdytxxList", this.tableDataList);
281 })
282 .catch(() => { });
283 },
284 },
285 };
286 </script>
287 <style scoped lang="scss">
288 .el-input {
289 border: none !important;
290 }
291 /deep/.el-table__row {
292 border: none !important;
293 }
294 .el-date-editor.el-input {
295 width: 100%;
296 }
297 /deep/.el-table th {
298 height: 30px !important;
299 }
300 /deep/ .el-table--border .el-table__cell:first-child .cell {
301 text-align: center;
302 }
303 /deep/.el-table--small .el-table__cell {
304 padding: 3px 0 !important;
305 }
306 </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>变更前2</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: 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-23 14:07:58
5 */
6 /**
7 * @description: 按钮操作
8 * @param attribute:按钮属性
9 * @param address:地址栏数据
10 * @param sldy:受理单元数据
11 * @author: renchao
12 */
13 export function buttonOnclike(attribute, address, sldy) {
14 //按钮 B0:选择不动产单元 B1:流程图 B2:材料分屏 B3:材料导入 B4:登记簿 B5:证书预览 B6:打印申请书 B7:证书领取 B8:楼盘表 B9:登簿,B10:打印回执 ZSXG: 证书修改
15 //操作按钮 登簿:record 转件:transfer 退回:back 退出:signout
16 let that = this;
17 switch (item.value) {
18 case "B0":
19 btn_add(attribute, address, sldy);
20 break;
21 case "B1":
22 btn_flow(attribute, address, sldy);
23 break;
24 case "B2": //材料分屏按钮
25 btn_clfp(attribute, address, sldy);
26 break;
27 case "B3": //材料导入
28 btn_cldr(attribute, address, sldy);
29 break;
30 case "B4":
31 btn_djb(attribute, address, sldy);
32 break;
33 case "B5":
34 btn_zsyl(attribute, address, sldy);
35 break;
36 case "B-ZSXG":
37 btn_zsxg(attribute, address, sldy);
38 break;
39 case "B6":
40 btn_dysqs(attribute, address, sldy);
41 break;
42 case "B7":
43 btn_zslq(attribute, address, sldy);
44 break;
45 case "B8":
46 btn_houses(attribute, address, sldy);
47 break;
48 // 图形定位
49 case "B-TXDW":
50 btn_map(attribute, address, sldy);
51 break;
52 case "back": //退回按钮
53 btn_back(attribute, address, sldy);
54 break;
55 case "transfer": //转件按钮
56 btn_transfer(attribute, address, sldy);
57 break;
58 case "stop": //终止按钮
59 btn_stop(attribute, address, sldy);
60 break;
61 case "signout":
62 btn_signout(attribute, address, sldy);
63 break;
64 case "B9":
65 btn_record(attribute, address, sldy);
66 break;
67 case "B10":
68 break;
69 case "rm":
70 btn_deleteFlow();
71 break;
72 // 互联网数据共享
73 case "B-HLGXSJ":
74 btn_dataShare(attribute, address, sldy);
75 break;
76 default:
77 console.log("未开发!");
78 break;
79 }
80 }
81 //新增受理单元
82 function btn_add(attribute, address, sldy) {
83 this.openDialog(attribute);
84 }
85 //流程图
86 function btn_flow(attribute, address, sldy) {
87 getWorkFlowImage(this.bsmSlsq, this.bestepid ? this.bestepid : '').then(res => {
88 let { result } = res
89 this.$popupDialog("流程图", "workflow/components/processViewer", {
90 xml: result.xml,
91 finishedInfo: {
92 finishedTaskSet: result.finishedActivityIds,
93 unfinishedTaskSet: result.runningActivityIds,
94 rejectedTaskSet: result.rejectedActivityIds,
95 finishedSequenceFlowSet: result.finishedSequenceFlowIds
96 },
97 handlinglist: result.runningTasks,
98 allCommentList: result.finishedTasks
99 }, '80%', true)
100 })
101 }
102 //材料分屏
103 function btn_clfp(attribute, address, sldy) {
104 this.splitScreen = this.splitScreen ? false : true;
105 this.$store.dispatch("app/settScreen", this.splitScreen);
106 if (this.splitScreen) {
107 //如果当前选项卡为材料信息内容,递减到上一个选项卡内容
108 if (this.tabName == this.clxxTab.value) {
109 this.tabName = this.tabList[this.clxxIndex - 1].value;
110 this.getFromRouter(this.tabList[this.clxxIndex - 1].value);
111 }
112 //删除材料信息选项卡数据
113 this.tabList.splice(this.clxxIndex, 1);
114 } else {
115 //新增材料信息选项卡数据
116 this.tabList.splice(this.clxxIndex, 0, this.clxxTab);
117 }
118 }
119 //材料导入
120 function btn_cldr(attribute, address, sldy) {
121 document.getElementById("cldr").click();
122 }
123 //登记簿
124 function btn_djb(attribute, address, sldy) {
125 this.$popupDialog("登记簿详情", "registerBook/djbFrame", this.currentSelectProps, '80%', true)
126 }
127 //打印申请书
128 function btn_dysqs(attribute, address, sldy) {
129 this.$popupDialog("打印申请书", "workflow/components/dialog/sqs",
130 { bsmSldy: this.currentSelectProps.bsmSldy }, '30%', true
131 )
132 }
133 //证书预览
134 function btn_zsyl(attribute, address, sldy) {
135 this.$popupDialog("证书证明预览", "workflow/components/dialog/zsyl", {
136 bsmSlsq: this.bsmSlsq,
137 entryType: '1'
138 }, '1230px', true)
139 }
140 //证书修改
141 function btn_zsxg(attribute, address, sldy) {
142 this.$popupDialog("证书修改", "workflow/components/dialog/zsxg", { bsmSlsq: this.bsmSlsq, }, '55%', true);
143 }
144 //证书领取
145 function btn_zslq(attribute, address, sldy) {
146 this.$popupDialog("证书领取", "workflow/components/dialog/zslq",
147 { bsmSlsq: this.$route.query.bsmSlsq }, '70%', true
148 )
149 }
150 //楼盘表
151 function btn_houses(attribute, address, sldy) {
152 !window.djlx && getZrzbsmList(this.bsmSlsq).then((res) => {
153 if (res.code === 200) {
154 ywPopupDialog('楼盘表', 'lpb/index', {
155 bsm: res.result[0],
156 onlyShow: false,
157 unitData: window.unitData,
158 bsmSlsq: this.bsmSlsq,
159 showSave: true,
160 djlx: window.djlx
161 }, '85%', true, false)
162 } else {
163 this.$message.error(res.message)
164 }
165 })
166 .catch((err) => {
167 this.$message.error(err)
168 });
169 window.djlx && ywPopupDialog('楼盘表', 'lpb/zjgcdy', {
170 onlyShow: false,
171 unitData: window.unitData,
172 bsmSlsq: this.bsmSlsq,
173 showSave: true,
174 djlx: window.djlx
175 }, '85%', true, false)
176 }
177 //登簿
178 function btn_record(attribute, address, sldy) {
179 var formdata = new FormData();
180 formdata.append("bsmSlsq", this.bsmSlsq);
181 formdata.append("bestepid", this.bestepid ? this.bestepid : '');
182 this.$confirm("请确认是否登簿", "提示", {
183 iconClass: "el-icon-info", //自定义图标样式
184 confirmButtonText: "确认", //确认按钮文字更换
185 cancelButtonText: "取消", //取消按钮文字更换
186 showClose: true, //是否显示右上角关闭按钮
187 type: "warning", //提示类型 success/info/warning/error
188 }).then(function () {
189 record(formdata).then((res) => {
190 if (res.code === 200) {
191 if (res.result.length === 1) {
192 res.result[0].state ? that.$message({
193 message: '登簿成功',
194 type: 'success'
195 }) : ywPopupDialog("登簿错误明细", "workflow/components/dialog/dblist", { result: res.result }, '30%', true)
196 }
197 else {
198 ywPopupDialog("登簿错误明细", "workflow/components/dialog/dblist", { result: res.result }, '30%', true)
199 }
200 } else {
201 that.$message.error(res.message)
202 }
203 })
204 })
205 }
206 //转件
207 function btn_transfer(attribute, address, sldy) {
208 getNextLinkInfo({
209 bsmSlsq: this.bsmSlsq,
210 bestepid: this.bestepid ? this.bestepid : ''
211 }).then((res) => {
212 if (res.code === 200) {
213 if (res.result) {
214 this.sendToNext(res.result);
215 } else {
216 this.sendToEnd();
217 }
218 }
219 });
220 }
221 //退回
222 function btn_back(attribute, address, sldy) {
223 this.$popupDialog("退回", "workflow/components/th", {
224 bsmSlsq: this.bsmSlsq,
225 bestepid: this.bestepid ? this.bestepid : ''
226 }, '800px', true)
227 }
228 //退出
229 function btn_signout(attribute, address, sldy) {
230 window.close();
231 //取消认领
232 unClaimTask(this.bsmSlsq, this.bestepid ? this.bestepid : '')
233 }
234 //终止流程
235 function btn_stop(attribute, address, sldy) {
236 this.$popupDialog("终止", "workflow/components/stop", {
237 bsmSlsq: this.bsmSlsq,
238 bestepid: this.bestepid ? this.bestepid : ''
239 }, '600px', true);
240 }
241 //删除流程
242 function btn_deleteFlow(attribute, address, sldy) {
243 this.del();
244 }
245 //数据共享
246 function btn_dataShare(attribute, address, sldy) {
247 this.$popupDialog("互联网数据共享", "sjgx/gbmhlgxsjgx/gbmhlgxsjgx", {}, '90%', true)
248 }
249 //图形定位
250 function btn_map(attribute, address, sldy) {
251 getZdInfo(this.currentSelectProps.bdcdyid).then(res => {
252 this.bsmZd = res?.result[0]?.bsmZd;
253 this.$popupDialog('图形定位', 'workflow/components/dialog/txdw', { bsmZd: this.bsmZd }, '85%', true)
254 })
255 }
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: 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 <!--
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 import { log } from 'bpmn-js-token-simulation';
95 export default {
96 props: {
97 formData: {
98 type: Object,
99 default: () => {
100 return {}
101 }
102 }
103 },
104 mixins: [table],
105 data () {
106 return {
107 lzrzjlbData: store.getters.dictData['A30'],
108 ruleForm: {
109 fzrmc: '',
110 fzsj: '',
111 fzsl: '',
112 bdcqzList: [],
113 lzrxm: '',
114 lzrzjlb: '',
115 lzrzjh: '',
116 lzrdh: ''
117 },
118 rules: {
119 lzrxm: [
120 { required: true, message: '请输入领证人', trigger: 'blur' }
121 ],
122 lzrzjlb: [
123 { required: true, message: '请选择证件类型', trigger: 'change' }
124 ],
125 lzrzjh: [
126 { required: true, message: '请输入证件号', trigger: 'blur' }
127 ],
128 lzrdh: [
129 { required: true, validator: checkPhone, trigger: ["blur"] }
130 ]
131 },
132 tableData: {
133 total: 0,
134 columns: datas.columns().lzgrid,
135 data: []
136 }
137 }
138 },
139 mounted () {
140 this.$nextTick(() => {
141 this.loadGrid()
142 })
143 },
144 methods: {
145 /**
146 * @description: 身份证打卡器
147 * @author: renchao
148 */
149 readClick () {
150 function getObjectByValue (arrayOfObjects, value) {
151 var name = ''
152 arrayOfObjects.forEach(item => {
153 if (item.dname.includes(value)) name = item.dcode
154 })
155 return name
156 }
157 getIdCardInfo(this.BASE_API.gaopaiyi).then(res => {
158 if (this.BASE_API.gaopaiyi == 'jy') {
159 const {
160 Name,
161 IdNo,
162 } = JSON.parse(res)
163 if (Name) {
164 this.ruleForm.lzrxm = Name;
165 this.ruleForm.lzrzjlb = '1';
166 this.ruleForm.lzrzjh = IdNo;
167 this.$message({
168 message: '读取成功!',
169 type: 'success'
170 })
171 } else {
172 this.$message({
173 message: '请放置身份证',
174 type: 'warning'
175 })
176 }
177 } else {
178 if (res.data.code == 0) {
179 let data = res.data.IDCardInfo
180 this.ruleForm.lzrxm = data.name
181 this.ruleForm.lzrzjlb = '1'
182 this.ruleForm.lzrzjh = data.cardID
183 this.$message({
184 message: '读取成功!',
185 type: 'success'
186 })
187 } else {
188 this.$message({
189 message: res.data.message,
190 type: 'warning'
191 })
192 }
193 }
194 })
195 },
196 /**
197 * @description: 列表初始化
198 * @author: renchao
199 */
200 loadGrid () {
201 let that = this
202 getUnclaimedBdcqz({ bsmSlsq: Vue.prototype.$currentRoute.query.bsmSlsq }).then(res => {
203 if (res.code === 200) {
204 this.tableData.data = res.result.list;
205 this.$nextTick(() => {
206 this.tableData.data.forEach(item => {
207 that.$refs.table.toggleRowSelection(item)
208 })
209 })
210 this.ruleForm.fzrmc = res.result.fzrmc
211 this.ruleForm.fzsj = res.result.fzsj
212 this.ruleForm.fzsl = res.result.fzsl
213 this.ruleForm.bdcqzList = res.result.list;
214 res.result.list.length && this.getQlr(res.result.list[0].bsmBdcqz)
215 }
216 })
217 },
218 /**
219 * @description: 获取权利人信息
220 * @author: renchao
221 */
222 getQlr (bsmBdcqz) {
223 getBdcqzQlr(bsmBdcqz).then(res => {
224 if (res.code === 200) {
225 this.ruleForm.lzrxm = res.result.qlrmc;
226 this.ruleForm.lzrzjlb = res.result.zjzl;
227 this.ruleForm.lzrzjh = res.result.zjh;
228 this.ruleForm.lzrdh = res.result.dh;
229 }
230 })
231 },
232 /**
233 * @description: handleSelectionChange
234 * @param {*} val
235 * @author: renchao
236 */
237 handleSelectionChange (val) {
238 this.ruleForm.bdcqzList = val
239 },
240 /**
241 * @description: handleRowClick
242 * @param {*} row
243 * @author: renchao
244 */
245 handleRowClick (row) {
246 this.$refs.table.toggleRowSelection(row)
247 },
248 /**
249 * @description: handleSubmit
250 * @author: renchao
251 */
252 handleSubmit () {
253 this.$refs.ruleForm.validate(valid => {
254 if (valid) {
255 issueCertificate(this.ruleForm).then(res => {
256 if (res.code == 200) {
257 this.$message.success('保存成功');
258 //刷新列表
259 store.dispatch('user/reWorkFresh', true)
260 this.$popupCacel()
261 } else {
262 this.$message.error(res.message)
263 }
264 })
265 } else {
266 return false;
267 }
268 })
269 }
270 }
271 }
272 </script>
273 <style scoped lang="scss">
274 @import "~@/styles/mixin.scss";
275 </style>
276
277
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>