4bcf4ea0 by 田浩浩

提交文件分类

1 parent c89b862f
1 import filter from '@/utils/filter.js'
2
3 class data extends filter {
4 constructor() {
5 super()
6 }
7 columns () {
8 return [
9 {
10 prop: "qszt",
11 label: "权属状态",
12 },
13 {
14 prop: "qllxmc",
15 label: "权利类型",
16 },
17 {
18 prop: "djlxmc",
19 label: "登记类型",
20 },
21 {
22 prop: "ssywh",
23 label: "上手业务号",
24 },
25 {
26 prop: "dah",
27 label: "档案号",
28 },
29 {
30 prop: "ywh",
31 label: "业务号",
32 },
33 {
34 prop: "bdcdyh",
35 label: "不动产单元号",
36 },
37 {
38 prop: "zl",
39 label: "坐落",
40 },
41 {
42 prop: "qlrlx",
43 label: "权利人类型",
44 },
45 {
46 prop: "qlrmc",
47 label: "权利人",
48 },
49 {
50 prop: "qlrzjzl",
51 label: "证件种类",
52 },
53 {
54 prop: "qlrzjhm",
55 label: "证件号",
56 },
57 {
58 prop: "gyfs",
59 label: "共有情况",
60 },
61 {
62 prop: "mj",
63 label: "使用权面积(m²)",
64 },
65 {
66 prop: "qlxz",
67 label: "权利性质",
68 },
69 {
70 prop: "ytmc",
71 label: "土地用途",
72 },
73 {
74 prop: "syqqzsj",
75 label: "使用权起止时间",
76 },
77 {
78 prop: "tdsyqx",
79 label: "土地使用期限",
80 },
81 {
82 prop: "qdjg",
83 label: "取得价格(万元)",
84 },
85 {
86 prop: "djyy",
87 label: "登记原因",
88 },
89 {
90 prop: "bdcqzh",
91 label: "不动产权证号",
92 },
93 {
94 prop: "djsj",
95 label: "登记时间",
96 },
97 {
98 prop: "dbr",
99 label: "登簿人",
100 },
101 {
102 prop: "fj",
103 label: "附记",
104 },
105 ]
106 }
107 }
108
109 let datas = new data()
110
111 export {
112 datas
113 }
...\ No newline at end of file ...\ No newline at end of file
1 <template>
2 <div class="djxxTable">
3 <div class="tableBox">
4 <div class="title">
5 {{ title }}
6 <div class="checkbox">
7 <el-checkbox-group v-model="checkList" @change="checkChange">
8 <el-checkbox v-for="item in qsztList" :key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
9 </el-checkbox-group>
10 </div>
11 </div>
12 <div class="xxTableBox">
13 <table class="xxTable">
14 <tr v-for="(item, colindex) in columns" :key="colindex">
15 <td>
16 {{ item.label }}
17 </td>
18 <td v-for="(row, index) in tableData" :key="index" :class="[
19 row.qszt == '2' ? 'lishi' : '',
20 row.qszt == '0' ? 'linshi' : '',
21 item.prop == 'qszt' && row.qszt == '0' ? 'linshiIcon' : '',
22 ]">
23 <div class="icon" v-if="item.prop == 'qszt' && row.qszt == '0'">
24 正在办理
25 </div>
26 <span v-if="item.prop == 'qszt'">
27 {{ getQsztName(row[item.prop]) }}
28 </span>
29
30 <span v-else> {{ row[item.prop] }}</span>
31 </td>
32 <td v-for="count in emptycolNum" :key="~count"></td>
33 </tr>
34 </table>
35 </div>
36 </div>
37 </div>
38 </template>
39
40 <script>
41 import { datas } from "./jsydsyq.js";
42 import { getJsydsyqList } from "@/api/zhcx.js";
43 export default {
44 data () {
45 return {
46 qsztList: [
47 {
48 value: "0",
49 label: "临时",
50 },
51 {
52 value: "1",
53 label: "现势",
54 },
55 {
56 value: "2",
57 label: "历史",
58 },
59 ],
60 checkList: ["0", "1", "2"],
61 //传递参数
62 propsParam: {},
63 //列表数据
64 tableData: [],
65 //空列值个数
66 emptycolNum: 0,
67 //列名称对象
68 columns: [],
69 title: "建设用地使用权、宅基地使用权登记信息",
70 };
71 },
72 created () {
73 this.propsParam = this.$attrs;
74 console.log(this.$attrs, 'this.$attrs;');
75 this.columns = datas.columns();
76 this.loadData();
77 // this.$alert(datas.columns());
78 },
79 methods: {
80 loadData () {
81 //this.$alert(this.propsParam.bdcdyh);
82 getJsydsyqList({
83 bdcdyid: this.propsParam.bdcdyid,
84 qllx: this.propsParam.qllx,
85 qszt: this.checkList,
86 }).then((res) => {
87 if (res.code === 200) {
88 this.tableData = res.result;
89 this.emptycolNum = 3 - this.tableData.length;
90 }
91 });
92 },
93 checkChange () {
94 this.loadData();
95 },
96 getQsztName (code) {
97 let name = "";
98 for (let item of this.qsztList) {
99 if (item.value == code) {
100 name = item.label;
101 break;
102 }
103 }
104 return name;
105 },
106 },
107 };
108 </script>
109
110 <style lang="scss" scoped>
111 @import "./qlxxCommon.scss";
112 </style>
1 //流程环节操作按钮
2 export function getForm(tabName) {
3 let form;
4 switch (tabName) {
5 case "slxx":
6 form = require("@/views/ywbl/fqsq/components/slxx.vue");
7 break;
8 case "slxxCfdj":
9 form = require("@/views/ywbl/fqsq/components/slxxCfdj.vue");
10 break;
11 case "clxx":
12 form = require("@/views/ywbl/fqsq/components/clxx.vue");
13 break;
14 case "spyj":
15 form = require("@/views/ywbl/fqsq/components/spyj.vue");
16 break;
17 case "zdjbxx":
18 form = require("@/views/zhcx/djbcx/components/zdxx.vue");
19 break;
20 case "qlxx":
21 form = require("@/views/zhcx/djbcx/components/jsydsyq.vue");
22 break;
23 case "szxx":
24 form = require("@/views/ywbl/fqsq/components/szxx.vue");
25 break;
26 case "fzxx":
27 form = require("@/views/ywbl/fqsq/components/fzxx.vue");
28 break;
29 }
30
31 return (r) => require.ensure([], () => r(form));
32 }
33
1 .containerFrame {
2 height: 100%;
3 width: 100%;
4 position: sticky;
5 top: 80px;
6 border: 1px solid #ebeef5;
7 z-index: 100;
8 @include flex;
9 }
10
11 .leftmenu {
12 width: 0;
13 transition: all 0.3s;
14 border-right: 1px solid #ebeef5;
15 position: relative;
16 box-sizing: border-box;
17 padding-right: 5px;
18
19 .title {
20 line-height: 36px;
21 text-align: center;
22 }
23
24 .title-detail {
25 display: flex;
26 flex-wrap: wrap;
27 width: 100%;
28 }
29
30 ul {
31 position: relative;
32
33 .xian {
34 background: #f2f2f2;
35 padding: 2px;
36 }
37
38 .title {
39 padding: 5px;
40 text-align: center;
41 }
42
43 li {
44 padding: 5px;
45 font-size: 14px;
46 line-height: 20px;
47 cursor: pointer;
48 }
49
50 li:hover {
51 color: #0f93f6;
52 cursor: pointer;
53 }
54 }
55 }
56
57 .animation-map-drawer {
58 width: 260px;
59 }
60
61 /deep/.el-menu-item {
62 padding-left: 5px !important;
63 }
64
65 /deep/.el-tabs__header {
66 margin-bottom: 0 !important;
67 }
68
69 /deep/.el-menu-item.is-active {
70 background-color: #e7f4fe;
71 }
72
73 .leftCon {
74 flex: 1;
75 width: calc(100% - 260px);
76 display: flex;
77 }
78
79 .splitScreen-con {
80 flex: 1;
81 width: 0;
82 }
83
84 .rightContainer {
85 flex: 1;
86 width: 0;
87 height: calc(100vh - 80px);
88 }
89
90 /deep/.el-tabs {
91 box-sizing: border-box;
92 padding: 0 5px;
93 width: 100%;
94 }
95
96 .svg-icon {
97 width: 2.5em;
98 height: 2.5em;
99 }
100
101 .iconName {
102 line-height: 24px;
103 font-size: 12px;
104 }
105
106 .container {
107 width: 100%;
108 height: 100%;
109 padding: 0;
110 box-sizing: border-box;
111 background-color: #ffffff;
112 overflow: hidden;
113 }
114
115 .map-drawer {
116 width: 20px;
117 height: 79px;
118 position: absolute;
119 top: 30%;
120 z-index: 99;
121 cursor: pointer;
122 }
123
124 .map-drawer-expand {
125 background: url("../../../image/right.png");
126 background-size: cover;
127 right: 0%;
128 }
129
130 .map-drawer-click {
131 background: url("../../../image/left.png");
132 background-size: cover;
133 left: 0%;
134 }
135
136
137 .topButton {
138 @include flex;
139 width: 100%;
140 height: 80px;
141 background-color: #3498db;
142 color: #ffffff;
143 justify-content: space-between;
144 padding-left: 15px;
145 position: sticky;
146 top: 0;
147 z-index: 100;
148
149 ul {
150 @include flex;
151
152 li {
153 @include flex-center;
154 cursor: pointer;
155 flex-direction: column;
156 margin-right: 15px;
157 box-sizing: border-box;
158 width: 70px;
159 margin: 0 5px;
160 }
161
162 li:hover {
163 border: 1px solid #ffffff;
164 border-radius: 5px;
165 }
166 }
167 }
...\ No newline at end of file ...\ No newline at end of file
1 <template>
2 <div class="container">
3 <!-- 顶部内容框 -->
4 <div class="topButton">
5 <!-- 左侧业务功能按钮 -->
6 <ul>
7 <li @click="operation(index, item)" v-for="(item, index) in leftButtonList" :key="index">
8 <svg-icon :icon-class="item.icon" />
9 <span class="iconName">{{ item.name }}</span>
10 </li>
11 </ul>
12 <!-- 右侧流程按钮 -->
13 <ul>
14 <li @click="operation(index, item)" v-for="(item, index) in rightButtonList" :key="index">
15 <svg-icon class="icon" :icon-class="item.icon" />
16 <span class="iconName">{{ item.name }}</span>
17 </li>
18 </ul>
19 </div>
20 <!-- 内容框架 -->
21 <div class="containerFrame">
22 <!-- 左侧菜单栏 -->
23 <div class="leftmenu" :class="{ 'animation-map-drawer': isShowdrawer }">
24 <div v-if="this.isShowdrawer">
25 <div class="title">申请单元列表({{ unitData.length }})</div>
26 <el-menu :default-active="activeIndex" @select="unitClick">
27 <el-menu-item v-for="(item, index) in unitData" :index="index.toString()" :key="index">
28 <p>{{ item.bdcdyh }}</p>
29 <p class="title-detail">{{ item.zl }}</p>
30 </el-menu-item>
31 </el-menu>
32 </div>
33 <div class="map-drawer-click map-drawer" v-if="!isShowdrawer" @click="
34 () => {
35 this.isShowdrawer = !this.isShowdrawer;
36 }
37 "></div>
38 <div class="map-drawer-expand map-drawer" v-else @click="
39 () => {
40 this.isShowdrawer = !this.isShowdrawer;
41 }
42 "></div>
43 </div>
44 <div class="leftCon">
45 <!-- 分屏左侧预览 -->
46 <div v-if="splitScreen" class="splitScreen-con">
47 <component :is="clxxForm" v-bind="currentSelectProps" :key="fresh" />
48 </div>
49 <!-- 表单内容区域 -->
50 <div class="rightContainer">
51 <el-tabs v-model="tabName" @tab-click="tabClick">
52 <el-tab-pane :label="item.name" :name="item.value" v-for="(item, index) in tabList" :key="index">
53 </el-tab-pane>
54 </el-tabs>
55 <component :key="fresh" :is="componentTag" v-bind="currentSelectProps" />
56 </div>
57 </div>
58 </div>
59 <dialogBox title="流程图" width="70%" isMain v-model="myValue" :isFullscreen="false" :isButton="false">
60 <img :src="imgSrc" style="margin: 20px 0" />
61 </dialogBox>
62 </div>
63 </template>
64
65 <style scoped lang='scss'>
66 @import "~@/styles/mixin.scss";
67 @import "./workFrame.scss";
68 </style>
69
70 <script>
71 import {
72 leftMenu,
73 stepExpandInfo,
74 record,
75 getNextLinkInfo,
76 completeTask,
77 } from "@/api/fqsq.js";
78 import { getWorkFlowImage } from "@/api/jsydsyqFlow.js"
79 import { getForm } from "./flowform.js";
80 export default {
81 data () {
82 return {
83 // 流程图
84 imgSrc: '',
85 myValue: false,
86 // 折叠
87 isShowdrawer: true,
88 // 默认选中
89 activeIndex: '0',
90 //受理申请标识码
91 bsmSlsq: this.$route.query.bsmSlsq,
92 //当前流程所在环节
93 bestepid: this.$route.query.bestepid,
94 //顶部左侧按钮集合
95 leftButtonList: [],
96 //顶部右侧按钮集合
97 rightButtonList: [],
98 //左侧菜单数据集合
99 unitData: [],
100 //设置那个表单选中
101 tabName: "",
102 //表单集合
103 tabList: [],
104 //选择加载哪一个组件
105 componentTag: "",
106 //设置表单组件是否刷选值
107 fresh: 10,
108 //设置表单传递数据
109 currentSelectProps: {},
110 //是否开启材料分屏
111 splitScreen: false,
112 //材料分屏表单
113 clxxForm: "",
114 //材料信息选择卡索引
115 clxxIndex: "",
116 //材料信息选项卡对象
117 clxxTab: {},
118 };
119 },
120 mounted () {
121 this.loadBdcdylist();
122 this.flowInitParam();
123 },
124 methods: {
125 //加载流程初始参数
126 flowInitParam () {
127 var formdata = new FormData();
128 formdata.append("bsmSlsq", this.bsmSlsq);
129 formdata.append("bestepid", this.bestepid);
130 stepExpandInfo(formdata).then((res) => {
131 if (res.code === 200) {
132 this.leftButtonList = res.result.button;
133 this.rightButtonList = res.result.operation;
134 this.tabList = res.result.form;
135 //默认选择第一个选项卡内容
136 this.tabName = res.result.form[0].value;
137 let that = this;
138 this.tabList.forEach(function (item, index) {
139 if (item.value == "clxx") {
140 that.clxxIndex = index;
141 that.clxxForm = getForm(item.value);
142 that.clxxTab = item;
143 }
144 });
145 //默认加载第一个选项卡的组件内容
146 this.getFromRouter(res.result.form[0].value);
147 }
148 });
149 },
150 //流程环节操作按钮
151 operation (index, item) {
152 let that = this;
153 switch (item.value) {
154 case "B1":
155 getWorkFlowImage(this.bsmSlsq).then(res => {
156 this.imgSrc = URL.createObjectURL(res)
157 this.myValue = true
158 })
159 break;
160 case "zsyl":
161 this.zsylFlag = true;
162 break;
163 case "clfp": //材料分屏按钮
164 this.splitScreen = this.splitScreen ? false : true;
165 this.$store.dispatch('app/settScreen', this.splitScreen)
166 if (this.splitScreen) {
167 //如果当前选项卡为材料信息内容,递减到上一个选项卡内容
168 if (this.tabName == this.clxxTab.value) {
169 this.tabName = this.tabList[this.clxxIndex - 1].value;
170 this.getFromRouter(this.tabList[this.clxxIndex - 1].value);
171 }
172 this.tabList.splice(this.clxxIndex, 1);
173 } else {
174 this.tabList.splice(this.clxxIndex, 1, this.clxxTab);
175 }
176 break;
177 case "th": //退回按钮
178 break;
179 case "zc": //转件按钮
180 getNextLinkInfo({
181 bsmSlsq: this.bsmSlsq,
182 bestepid: this.bestepid,
183 }).then((res) => {
184 if (res.code === 200) {
185 this.send(res.result);
186 }
187 });
188 // this.$alert(res.result);
189 break;
190 case "tc":
191 window.close();
192 break;
193 case "db":
194 var formdata = new FormData();
195 formdata.append("bsmSlsq", this.bsmSlsq);
196 formdata.append("bestepid", this.bestepid);
197 // comMsg;
198 this.$confirm("请确认是否登簿", "提示", {
199 iconClass: "el-icon-question", //自定义图标样式
200 confirmButtonText: "确认", //确认按钮文字更换
201 cancelButtonText: "取消", //取消按钮文字更换
202 showClose: true, //是否显示右上角关闭按钮
203 type: "warning", //提示类型 success/info/warning/error
204 }).then(function () {
205 record(formdata).then((res) => {
206 if (res.code === 200 || res.code === 2002) {
207 that.$alert(res.message);
208 }
209 });
210 });
211 break;
212 }
213 },
214 //读取申请单元信息
215 loadBdcdylist () {
216 var formdata = new FormData();
217 formdata.append("bsmSlsq", this.bsmSlsq);
218 formdata.append("bestepid", this.bestepid);
219 leftMenu(formdata).then((res) => {
220 if (res.code === 200) {
221 this.unitData = res.result;
222 this.currentSelectProps = res.result[0];
223 }
224 })
225 },
226 //申请单元点击事件
227 unitClick (index) {
228 if (this.currentSelectProps.bsmSldy != this.unitData[index].bsmSldy) {
229 this.currentSelectProps = this.unitData[index];
230 this.fresh += 1;
231 }
232 },
233 //表单选项卡事件
234 tabClick (tab, event) {
235 this.getFromRouter(tab.name);
236 },
237 //切换选项卡内容组件
238 getFromRouter (tabname) {
239 this.componentTag = getForm(tabname);
240 },
241 //发送下一个环节
242 send (obj) {
243 const h = this.$createElement;
244 this.$msgbox({
245 title: "您确定转出吗?",
246 message: h("div", { style: "margin: auto" }, [
247 h("span", null, "下个环节名称:"),
248 h("i", { style: "color: teal" }, obj.taskName),
249 h("div", null, ""),
250 h("span", null, "下个环节经办人: "),
251 h("i", { style: "color: teal" }, obj.usernames.join(",")),
252 ]),
253 showCancelButton: true,
254 beforeClose: (action, instance, done) => {
255 if (action === "confirm") {
256 instance.confirmButtonLoading = true;
257 instance.confirmButtonText = "执行中...";
258 completeTask({
259 bsmSlsq: this.bsmSlsq,
260 shyj: "this.bestepid",
261 }).then((res) => {
262 if (res.code === 200) {
263 instance.confirmButtonLoading = false;
264 this.$message.success("转件成功");
265 setTimeout(() => {
266 window.opener = null;
267 window.open("about:blank", "_self");
268 window.close();
269 this.$emit("input", false);
270 }, 1000);
271 }
272 });
273 } else {
274 done();
275 }
276 },
277 }).then((action) => {
278 this.$message({
279 type: "info",
280 message: "action: " + action
281 })
282 })
283 }
284 }
285 }
286 </script>
...\ No newline at end of file ...\ No newline at end of file
1 <template>
2 <dialogBox title="新建材料信息" width="20%" isMain v-model="myValue" @closeDialog="closeDialog" @submitForm="handleSubmit"
3 :isFullscreen="false">
4 <el-form :model="ruleForm" ref="ruleForm" label-width="70px">
5 <el-row>
6 <el-col :span="24">
7 <el-form-item label="材料类型">
8 <el-select v-model="ruleForm.cllx" class="width100" placeholder="请选择">
9 <el-option v-for="item in dictData['A40']" :key="item.dcode" :label="item.dname" :value="item.dcode">
10 </el-option>
11 </el-select>
12 </el-form-item>
13 </el-col>
14 </el-row>
15 <el-row :gutter="20">
16 <el-col :span="24">
17 <el-form-item label="材料名称">
18 <el-input v-model="ruleForm.clmc"></el-input>
19 </el-form-item>
20 </el-col>
21 </el-row>
22 </el-form>
23 </dialogBox>
24 </template>
25
26 <script>
27 import { mapGetters } from "vuex";
28 export default {
29 props: {
30 value: { type: Boolean, default: false },
31 },
32 data () {
33 return {
34 myValue: this.value,
35 ruleForm: {
36 cllx: "",
37 clmc: "",
38 },
39 };
40 },
41 computed: {
42 ...mapGetters(["dictData"]),
43 },
44 watch: {
45 value (val) {
46 this.myValue = val;
47 },
48 },
49 methods: {
50 closeDialog () {
51 this.$emit("input", false);
52 },
53 handleSubmit () {
54 this.$parent.addSave(this.ruleForm);
55 this.$emit("input", false);
56 },
57 },
58 };
59 </script>
60 <style scoped lang="scss">
61 .submit-button {
62 text-align: center;
63 height: 52px;
64 padding-top: 10px;
65 background-color: #fff;
66 }
67 </style>