ff6711fb by 任超

style:业务申请

1 parent 457e9f87
......@@ -9,54 +9,30 @@
*/
<template>
<el-table-column v-bind="$attrs"
v-on="$listeners"
:prop="column.prop"
:label="column.label"
:type="column.type"
:index="column.index"
:column-key="column.columnKey"
:width="column.width"
:min-width="column.minWidth"
:fixed="column.fixed"
:scoped-slot="column.renderHeader"
:sortable="column.sortable || false"
:sort-method="column.sortMethod"
:sort-by="column.sortBy"
:sort-orders="column.sortOrders"
:resizable="column.resizable || true"
:formatter="column.formatter"
:show-overflow-tooltip="column.showOverflowTooltip || false"
:align="column.align || align || 'center'"
<el-table-column v-bind="$attrs" v-on="$listeners" :prop="column.prop" :label="column.label" :type="column.type"
:index="column.index" :column-key="column.columnKey" :width="column.width" :min-width="column.minWidth"
:fixed="column.fixed" :scoped-slot="column.renderHeader" :sortable="column.sortable || false"
:sort-method="column.sortMethod" :sort-by="column.sortBy" :sort-orders="column.sortOrders"
:resizable="column.resizable || true" :formatter="column.formatter"
:show-overflow-tooltip="column.showOverflowTooltip || false" :align="column.align || align || 'center'"
:header-align="column.headerAlign || headerAlign || column.align || align || 'center'"
:class-name="column.className"
:label-class-name="column.labelClassName"
:selectable="column.selectable"
:reserve-selection="column.reserveSelection || false"
:filters="column.filters"
:filter-placement="column.filterPlacement"
:filter-multiple="column.filterMultiple"
:filter-method="column.filterMethod"
:filtered-value="column.filteredValue">
<template slot="header"
slot-scope="scope">
<lb-render v-if="column.renderHeader"
:scope="scope"
:render="column.renderHeader">
:class-name="column.className" :label-class-name="column.labelClassName" :selectable="column.selectable"
:reserve-selection="column.reserveSelection || false" :filters="column.filters"
:filter-placement="column.filterPlacement" :filter-multiple="column.filterMultiple"
:filter-method="column.filterMethod" :filtered-value="column.filteredValue">
<template slot="header" slot-scope="scope">
<lb-render v-if="column.renderHeader" :scope="scope" :render="column.renderHeader">
</lb-render>
<span v-else>{{ scope.column.label }}</span>
</template>
<template slot-scope="scope">
<lb-render :scope="scope"
:render="column.render">
<lb-render :scope="scope" :render="column.render">
</lb-render>
</template>
<template v-if="column.children">
<lb-column v-for="(col, index) in column.children"
:key="index"
:column="col">
<lb-column v-for="(col, index) in column.children" :key="index" :column="col">
</lb-column>
</template>
</el-table-column>
......@@ -65,6 +41,7 @@
<script>
import LbRender from './lb-render'
import forced from './forced.js'
import radio from './radio.js'
export default {
name: 'LbColumn',
props: {
......@@ -77,18 +54,21 @@ export default {
},
methods: {
setColumn () {
if (this.column.type) {
if (this.column.type && this.column.type != 'radio') {
this.column.renderHeader = forced[this.column.type].renderHeader
this.column.render = this.column.render || forced[this.column.type].renderCell
}
if (this.column.type == 'radio') {
this.column.render = this.column.render || radio[this.column.type].renderCell
}
if (this.column.formatter) {
this.column.render = (h, scope) => {
return <span>{ scope.column.formatter(scope.row, scope.column, scope.row, scope.$index) }</span>
return <span>{scope.column.formatter(scope.row, scope.column, scope.row, scope.$index)}</span>
}
}
if (!this.column.render) {
this.column.render = (h, scope) => {
return <span>{ scope.row[scope.column.property] }</span>
return <span>{scope.row[scope.column.property]}</span>
}
}
}
......
export default {
radio: {
renderHeader: (h, { store }) => {
return '单选'
},
renderCell: (h, { row, column, store, $index }) => {
return (
<el-radio
nativeOn-click={event => event.stopPropagation()}
value={store.isSelected(row)}
disabled={
column.selectable
? !column.selectable.call(null, row, $index)
: false
}
on-input={() => {
store.commit('rowSelectedChanged', row)
}}
/>
)
},
sortable: false,
resizable: false
},
index: {
renderHeader: (h, scope) => {
return <span>{scope.column.label || '#'}</span>
},
renderCell: (h, { $index, column }) => {
let i = $index + 1
const index = column.index
if (typeof index === 'number') {
i = $index + index
} else if (typeof index === 'function') {
i = index($index)
}
return <div>{i}</div>
},
sortable: false
},
expand: {
renderHeader: (h, scope) => {
return <span>{scope.column.label || ''}</span>
},
renderCell: (h, { row, store }, proxy) => {
const expanded = store.states.expandRows.indexOf(row) > -1
return (
<div
class={
'el-table__expand-icon ' +
(expanded ? 'el-table__expand-icon--expanded' : '')
}
on-click={e => proxy.handleExpandClick(row, e)}
>
<i class='el-icon el-icon-arrow-right' />
</div>
)
},
sortable: false,
resizable: false,
className: 'el-table__expand-column'
}
}
......@@ -9,54 +9,30 @@
*/
<template>
<el-table-column v-bind="$attrs"
v-on="$listeners"
:prop="column.prop"
:label="column.label"
:type="column.type"
:index="column.index"
:column-key="column.columnKey"
:width="column.width"
:min-width="column.minWidth"
:fixed="column.fixed"
:scoped-slot="column.renderHeader"
:sortable="column.sortable || false"
:sort-method="column.sortMethod"
:sort-by="column.sortBy"
:sort-orders="column.sortOrders"
:resizable="column.resizable || true"
:formatter="column.formatter"
:show-overflow-tooltip="column.showOverflowTooltip || false"
:align="column.align || align || 'center'"
<el-table-column v-bind="$attrs" v-on="$listeners" :prop="column.prop" :label="column.label" :type="column.type"
:index="column.index" :column-key="column.columnKey" :width="column.width" :min-width="column.minWidth"
:fixed="column.fixed" :scoped-slot="column.renderHeader" :sortable="column.sortable || false"
:sort-method="column.sortMethod" :sort-by="column.sortBy" :sort-orders="column.sortOrders"
:resizable="column.resizable || true" :formatter="column.formatter"
:show-overflow-tooltip="column.showOverflowTooltip || false" :align="column.align || align || 'center'"
:header-align="column.headerAlign || headerAlign || column.align || align || 'center'"
:class-name="column.className"
:label-class-name="column.labelClassName"
:selectable="column.selectable"
:reserve-selection="column.reserveSelection || false"
:filters="column.filters"
:filter-placement="column.filterPlacement"
:filter-multiple="column.filterMultiple"
:filter-method="column.filterMethod"
:filtered-value="column.filteredValue">
<template slot="header"
slot-scope="scope">
<lb-render v-if="column.renderHeader"
:scope="scope"
:render="column.renderHeader">
:class-name="column.className" :label-class-name="column.labelClassName" :selectable="column.selectable"
:reserve-selection="column.reserveSelection || false" :filters="column.filters"
:filter-placement="column.filterPlacement" :filter-multiple="column.filterMultiple"
:filter-method="column.filterMethod" :filtered-value="column.filteredValue">
<template slot="header" slot-scope="scope">
<lb-render v-if="column.renderHeader" :scope="scope" :render="column.renderHeader">
</lb-render>
<span v-else>{{ scope.column.label }}</span>
</template>
<template slot-scope="scope">
<lb-render :scope="scope"
:render="column.render">
<lb-render :scope="scope" :render="column.render">
</lb-render>
</template>
<template v-if="column.children">
<lb-column v-for="(col, index) in column.children"
:key="index"
:column="col">
<lb-column v-for="(col, index) in column.children" :key="index" :column="col">
</lb-column>
</template>
</el-table-column>
......@@ -65,6 +41,7 @@
<script>
import LbRender from './lb-render'
import forced from './forced.js'
import radio from './radio.js'
export default {
name: 'LbColumn',
props: {
......@@ -77,18 +54,21 @@ export default {
},
methods: {
setColumn () {
if (this.column.type) {
if (this.column.type && this.column.type != 'radio') {
this.column.renderHeader = forced[this.column.type].renderHeader
this.column.render = this.column.render || forced[this.column.type].renderCell
}
if (this.column.type == 'radio') {
this.column.render = this.column.render || radio[this.column.type].renderCell
}
if (this.column.formatter) {
this.column.render = (h, scope) => {
return <span>{ scope.column.formatter(scope.row, scope.column, scope.row, scope.$index) }</span>
return <span>{scope.column.formatter(scope.row, scope.column, scope.row, scope.$index)}</span>
}
}
if (!this.column.render) {
this.column.render = (h, scope) => {
return <span>{ scope.row[scope.column.property] }</span>
return <span>{scope.row[scope.column.property]}</span>
}
}
}
......
......@@ -6,7 +6,8 @@
<el-collapse disabled v-model="activeNames">
<el-collapse-item title="业务申请" name="1">
<ul class="item-list">
<li v-for="(item, index) in sqywQllxList" :key="index" @click="qllxClick(index)" :class="item.check ? 'active' : ''">
<li v-for="(item, index) in sqywQllxList" :key="index" @click="qllxClick(index)"
:class="item.check ? 'active' : ''">
{{ item.nodename }}</li>
</ul>
</el-collapse-item>
......@@ -14,13 +15,13 @@
</div>
<div class="ywsq-right">
<!-- 常办业务 -->
<div v-if="selectType=='collect'" class="right-situation">
<div v-show="selectType == 'collect'" class="right-situation el-card">
<div class="right-title">常办业务列表</div>
<ul>
<li :class="item.selected ? 'cactive' : ''" v-for="(item, index) in collectList" :key="index" @dblclick="dblclick(collectList,index)"
@click="selectSqywClick(collectList,index)">
<p v-if="item.nodetype=='djqx'">{{ item.djywmc }}<br>{{ item.nodename }}</p>
<dt v-else>{{ item.djywmc}}</dt>
<li :class="item.selected ? 'cactive' : ''" v-for="(item, index) in collectList" :key="index"
@dblclick="dblclick(collectList, index)" @click="selectSqywClick(collectList, index)">
<p v-if="item.nodetype == 'djqx'">{{ item.djywmc }}<br>{{ item.nodename }}</p>
<dt v-else>{{ item.djywmc }}</dt>
<p class="active" @click.stop="handleCollection(item)">
<i class="el-icon-star-off"></i>
</p>
......@@ -28,16 +29,16 @@
</ul>
</div>
<!-- 一并申请 -->
<div v-if="selectType=='together'">一并申请</div>
<div v-if="selectType == 'together'" class="right-title">一并申请</div>
<!-- 登记簿补录 -->
<div v-if="selectType=='amend'">登记簿补录</div>
<div v-if="selectType == 'amend'" class="right-title">登记簿补录</div>
<!-- 业务申请 -->
<div v-if="selectType=='apply'" >
<template v-if="selectType == 'apply'">
<div class="right-type el-card box-card is-always-shadow">
<div class="right-title">登记类型</div>
<ul class="type-content">
<li :class="item.selected ? 'cactive' : ''" @dblclick="item.sffqlc == 1 && dblclick(djlxList,index)" @click="selectSqywClick(djlxList,index)"
v-for="(item, index) in djlxList" :key="index">
<li :class="item.selected ? 'cactive' : ''" @dblclick="item.sffqlc == 1 && dblclick(djlxList, index)"
@click="selectSqywClick(djlxList, index)" v-for="(item, index) in djlxList" :key="index">
<p>
{{ item.nodename }}
</p>
......@@ -51,8 +52,8 @@
<div class="right-situation el-card box-card is-always-shadow">
<div class="right-title">登记情形</div>
<ul>
<li :class="item.selected ? 'cactive' : ''" v-for="(item, index) in djqxList" :key="index" @dblclick="dblclick(djqxList,index)"
@click="selectSqywClick(djqxList,index)">
<li :class="item.selected ? 'cactive' : ''" v-for="(item, index) in djqxList" :key="index"
@dblclick="dblclick(djqxList, index)" @click="selectSqywClick(djqxList, index)">
<dt>{{ item.nodename }}</dt>
<p :class="item.userCollect == 1 ? 'active' : ''" @click.stop="handleCollection(item)">
<i class="el-icon-star-off"></i>
......@@ -60,12 +61,12 @@
</li>
</ul>
</div>
</div>
</template>
<div class="submit-button">
<el-button type="primary" :disabled="btnDisabled" @click="dialogClick">选择不动产</el-button>
</div>
</div>
<selectDialog v-model="isDialog" :sqywInfo="selectParam"/>
<selectDialog v-model="isDialog" :sqywInfo="selectParam" />
</div>
</template>
<script>
......@@ -76,24 +77,24 @@ export default {
return {
//申请业务类型集合
sqywlxList: [
{name:"常办业务",type:"collect"},
{name:"一并申请",type:"together"},
{name:"登记簿补录",type:"amend"}
{ name: "常办业务", type: "collect" },
{ name: "一并申请", type: "together" },
{ name: "登记簿补录", type: "amend" }
],
//类型默认选择常办业务
selectType: "collect",
//堆叠框选中第一个
activeNames: ['1'],
//收藏业务集合
collectList :[],
collectList: [],
//申请权利类型集合
sqywQllxList :[],
sqywQllxList: [],
//登记类型集合
djlxList: [],
//申请权利类型集合
djqxList: [],
//选中业务的参数
selectParam:{},
selectParam: {},
//弹框框架显示或隐藏
isDialog: false,
//选择按钮显示或隐藏
......@@ -117,12 +118,12 @@ export default {
});
//获取申请权利信息集合
getleftMenu().then(res => {
this.sqywQllxList=res.result;
this.sqywQllxList = res.result;
})
},
//申请业务类型菜单事件
sqywlxClick (item) {
this.btnDisabled=true;
this.btnDisabled = true;
this.selectType = item.type;
this.sqywQllxList.forEach(item => {
if (item.check) item.check = false;
......@@ -130,40 +131,40 @@ export default {
},
//权利类型菜单事件
qllxClick (index) {
this.btnDisabled=true;
this.btnDisabled = true;
this.sqywQllxList.forEach(item => {
if (item.check) item.check = false;
})
this.sqywQllxList[index].check=true;
this.sqywQllxList[index].check = true;
this.selectType = "apply";
this.djlxList=[];
this.djqxList=[];
this.djlxList = [];
this.djqxList = [];
this.getNextNode(this.sqywQllxList[index].bsmSqyw);
},
//选择申请业务事件
selectSqywClick(data,index){
data.forEach(item=>{
selectSqywClick (data, index) {
data.forEach(item => {
item.selected = false;
});
data[index].selected = true;
if(data[index].sffqlc=="1"){
this.selectParam=data[index];
this.btnDisabled=false;
}else{
this.btnDisabled=true;
if (data[index].sffqlc == "1") {
this.selectParam = data[index];
this.btnDisabled = false;
} else {
this.btnDisabled = true;
this.getNextNode(data[index].bsmSqyw);
}
},
//获取下个节点类型数据
getNextNode (bsmSqyw) {
getNextNode(bsmSqyw).then(res => {
if (res.result.djqx){
if (res.result.djqx) {
this.djqxList = res.result.djqx;
this.djqxList.forEach(item => {
this.$set(item, 'selected', false);
});
}
if (res.result.djlx){
if (res.result.djlx) {
this.djlxList = res.result.djlx;
this.djlxList.forEach(item => {
this.$set(item, 'selected', false);
......@@ -172,12 +173,12 @@ export default {
})
},
//双击事件
dblclick(data,index){
this.selectSqywClick(data,index);
dblclick (data, index) {
this.selectSqywClick(data, index);
this.dialogClick();
},
//打开弹框内容
dialogClick(){
dialogClick () {
this.isDialog = true;
},
//收藏操作
......
......@@ -11,8 +11,9 @@ class data extends filter {
columns () {
return [
{
type: 'selection',
label: '全选'
type: 'radio',
label: '单选',
width: '50'
},
{
label: '序号',
......
<template>
<dialogBox :title="title" width="85%" @closeDialog="closeDialog" v-model="value" :isButton="false">
<component :is="router" :sqywInfo="sqywInfo" @closeDialog="closeDialog" @updateDialog="updateDialog"/>
<component :is="router" :sqywInfo="sqywInfo" @closeDialog="closeDialog" @updateDialog="updateDialog" />
</dialogBox>
</template>
<script>
......@@ -8,16 +8,16 @@ import { queueDjywmc } from "./slectBdcdata.js";
export default {
props: {
value: { type: Boolean, default: true },
sqywInfo: { type: Object, default: () => {} },
sqywInfo: { type: Object, default: () => { } },
},
data() {
data () {
return {
title: "",
router: "",
};
},
watch: {
value(val) {
value (val) {
if (val) {
this.title = "申请业务:" + this.sqywInfo.djywmc;
let view = queueDjywmc(this.sqywInfo.djywbm);
......@@ -26,14 +26,15 @@ export default {
},
},
methods: {
loadView(view) {
loadView (view) {
console.log(view, 'viewviewview');
return (r) =>
require.ensure([], () => r(require(`./components/${view}.vue`)));
},
closeDialog() {
closeDialog () {
this.$emit("input", false);
},
updateDialog() {
updateDialog () {
this.$emit("input", false);
this.$emit("updateDialog", true);
},
......