911 lines
43 KiB
HTML
911 lines
43 KiB
HTML
<!--#
|
|
layout("/layouts/platform.html"){
|
|
#-->
|
|
<style>
|
|
.el-loading-spinner i {
|
|
font-size: 36px;
|
|
}
|
|
|
|
.el-loading-spinner .el-loading-text {
|
|
font-size: 14px;
|
|
}
|
|
|
|
|
|
</style>
|
|
<div id="app" v-cloak>
|
|
<el-row>
|
|
<transition name="el-zoom-in-center">
|
|
<div v-show="!showRyxx" style="width: 100%;position: absolute;top: 0;left: 0">
|
|
<el-row class="header navbar bg-white shadow">
|
|
|
|
<div class="btn-group tool-button mt5">
|
|
<el-input placeholder="请输入内容" clearable v-model="searchForm.searchKeyword"
|
|
@keyup.enter.native="doSearch">
|
|
<el-select v-model="searchForm.searchName" slot="prepend" placeholder="查询类型"
|
|
style="width: 120px;">
|
|
<el-option label="单位名称" value="name"></el-option>
|
|
|
|
</el-select>
|
|
</el-input>
|
|
</div>
|
|
<!-- <div class="btn-group tool-button mt5">-->
|
|
<!-- <el-select v-model="searchForm.searchdj" placeholder="单位级别" clearable="true">-->
|
|
<!-- <el-option-->
|
|
<!-- v-for="item in optionsdj"-->
|
|
<!-- :key="item.value"-->
|
|
<!-- :label="item.label"-->
|
|
<!-- :value="item.value">-->
|
|
<!-- </el-option>-->
|
|
<!-- </el-select>-->
|
|
<!-- </div>-->
|
|
<div class="btn-group tool-button mt5">
|
|
<el-select v-model="searchForm.xqid" placeholder="所在校区" clearable="true">
|
|
<el-option
|
|
v-for="item in xqOption"
|
|
:key="item.dq_id"
|
|
:label="item.dq_name"
|
|
:value="item.dq_id">
|
|
</el-option>
|
|
</el-select>
|
|
</div>
|
|
<div class="btn-group tool-button mt5">
|
|
<el-select v-model="searchForm.classid" placeholder="所属类别" clearable="true">
|
|
<el-option
|
|
v-for="item in classOption"
|
|
:key="item.id"
|
|
:label="item.name"
|
|
:value="item.id">
|
|
</el-option>
|
|
</el-select>
|
|
</div>
|
|
<div class="btn-group tool-button mt5">
|
|
<el-button type="primary" slot="append" icon="el-icon-search"
|
|
@click="doSearch"></el-button>
|
|
</div>
|
|
<!-- <div class="pull-right offscreen-right mt5">-->
|
|
<!-- <el-button size="medium" @click="doplAdd"><i class="ti-plus"></i>批量更新单位</el-button>-->
|
|
<!-- </div>-->
|
|
<div class="pull-right offscreen-right mt5" style="margin-right: 10px;">
|
|
<el-button size="medium" @click="openAdd"><i class="ti-plus"></i> 添加单位</el-button>
|
|
</div>
|
|
<div class="pull-right offscreen-right mt5" style="margin-right: 10px;">
|
|
<el-button size="medium" @click="openSort">
|
|
<i class="el-icon-sort"></i>
|
|
排序
|
|
</el-button>
|
|
</div>
|
|
</el-row>
|
|
<el-row class="el-table-container">
|
|
<el-table :data="tableData" style="width: 100%"
|
|
:highlight-current-row="true" row-key="id" :key="tabKey" lazy
|
|
:load="loadChild" :tree-props="{children: 'children', hasChildren: 'haschildren'}">
|
|
|
|
<el-table-column label="单位名称" header-align="center" prop="name"
|
|
|
|
:show-overflow-tooltip="true" align="left">
|
|
</el-table-column>
|
|
<el-table-column label="单位简称" header-align="center" prop="aliasname"
|
|
:show-overflow-tooltip="true" align="center">
|
|
</el-table-column>
|
|
<el-table-column label="单位等级" header-align="center" prop="unitlevel"
|
|
:show-overflow-tooltip="true" align="center">
|
|
<template slot-scope="scope">
|
|
<el-button v-if="scope.row.unitlevel==1" size="mini" type="success" round
|
|
style=" vertical-align: middle;">1级
|
|
</el-button>
|
|
<el-button v-if="scope.row.unitlevel==2" size="mini" type="warning" round
|
|
style=" vertical-align: middle;">2级
|
|
</el-button>
|
|
<el-button v-if="scope.row.unitlevel==3" size="mini" type="danger" round
|
|
style=" vertical-align: middle;">3级
|
|
</el-button>
|
|
<el-button v-if="scope.row.unitlevel>3" size="mini" type="info" round
|
|
style=" vertical-align: middle;">{{scope.row.unitlevel}}级
|
|
</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column label="所在校区" header-align="center" prop="xqname"
|
|
:show-overflow-tooltip="true" align="center">
|
|
</el-table-column>
|
|
<el-table-column label="类型" header-align="center" prop="classid"
|
|
:show-overflow-tooltip="true" align="center">
|
|
<template slot-scope="scope">
|
|
{{classMap[scope.row.classid]==undefined?'暂无':classMap[scope.row.classid]}}
|
|
</template>
|
|
</el-table-column>
|
|
|
|
<!-- <el-table-column label="所属高校" header-align="center" prop="gxname"-->
|
|
<!-- :show-overflow-tooltip="true" align="center">-->
|
|
<!-- </el-table-column>-->
|
|
|
|
|
|
<el-table-column label="操作" header-align="center" prop="website"
|
|
:show-overflow-tooltip="true" align="center" width="250">
|
|
<template slot-scope="scope">
|
|
<el-button size="mini"
|
|
@click="openRyxx(scope.row.id)">人员信息
|
|
</el-button>
|
|
<el-button size="mini" type="primary"
|
|
@click="dropdownCommand({type:'edit',id:scope.row.id,name:scope.row.name})">
|
|
编辑
|
|
</el-button>
|
|
<el-button size="mini" type="danger"
|
|
@click="dropdownCommand({type:'delete',id:scope.row.id,name:scope.row.name})">
|
|
删除
|
|
</el-button>
|
|
<!-- <el-dropdown @command="dropdownCommand">-->
|
|
<!-- <el-button size="mini">-->
|
|
<!-- <i class="ti-settings"></i>-->
|
|
<!-- <span class="ti-angle-down"></span>-->
|
|
<!-- </el-button>-->
|
|
<!-- <el-dropdown-menu slot="dropdown">-->
|
|
<!-- <el-dropdown-item :command="{type:'edit',id:scope.row.id,name:scope.row.name}">-->
|
|
<!-- 修改-->
|
|
<!-- </el-dropdown-item>-->
|
|
<!-- <el-dropdown-item :command="{type:'delete',id:scope.row.id,name:scope.row.name}"-->
|
|
<!-- v-if="scope.row.path!='0001'">-->
|
|
<!-- 删除-->
|
|
<!-- </el-dropdown-item>-->
|
|
<!-- </el-dropdown-menu>-->
|
|
<!-- </el-dropdown>-->
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-row>
|
|
<!-- 分页-->
|
|
<el-row class="el-pagination-container">
|
|
<el-pagination
|
|
@size-change="pageSizeChange"
|
|
@current-change="pageNumberChange"
|
|
:current-page="searchForm.pageNumber"
|
|
:page-sizes="[10, 20, 30, 50]"
|
|
:page-size="searchForm.pageSize"
|
|
layout="total, sizes, prev, pager, next"
|
|
:total="searchForm.totalCount">
|
|
</el-pagination>
|
|
</el-row>
|
|
</div>
|
|
</transition>
|
|
<transition name="el-zoom-in-center">
|
|
<div v-show="showRyxx" style="width: 100%;position: absolute;top: 0;left: 0">
|
|
<el-row class="header navbar bg-white shadow">
|
|
<div class="btn-group tool-button mt5 mr10">
|
|
<el-button icon="el-icon-back" type="text" @click="showRyxx=!showRyxx">返回</el-button>
|
|
</div>
|
|
<div class="btn-group tool-button mt5">
|
|
<el-input placeholder="请输入内容" clearable v-model="hyPageForm.searchKeyword"
|
|
@keyup.enter.native="hyDoSearch">
|
|
<el-select v-model="hyPageForm.searchName" slot="prepend" placeholder="查询类型"
|
|
style="width: 120px;">
|
|
<el-option label="姓名" value="u.username"></el-option>
|
|
<el-option label="工号" value="u.loginanme"></el-option>
|
|
</el-select>
|
|
</el-input>
|
|
</div>
|
|
|
|
<div class="btn-group tool-button mt5">
|
|
<el-select v-model="hyPageForm.ishy" placeholder="是否会员" clearable="true" style="width: 120px">
|
|
<el-option
|
|
v-for="item in [{lab:'是',val:true},{lab:'否',val:false}]"
|
|
:key="item.val"
|
|
:label="item.lab"
|
|
:value="item.val">
|
|
</el-option>
|
|
</el-select>
|
|
</div>
|
|
|
|
<div class="btn-group tool-button mt5">
|
|
<el-button type="primary" slot="append" icon="el-icon-search"
|
|
@click="hyDoSearch"></el-button>
|
|
</div>
|
|
|
|
<div class="pull-right offscreen-right mt5" style="margin-right: 10px;">
|
|
<el-button type="text" disabled><span style="font-size: 15px">{{unitData.name}}</span>
|
|
</el-button>
|
|
</div>
|
|
|
|
</el-row>
|
|
|
|
<el-row class="el-table-container">
|
|
<el-table :data="hyTableData" size="medium" v-loading="tabloading">
|
|
<el-table-column align="center" header-align="center" label="序号" type="index">
|
|
<template scope="scope"><span>{{scope.$index+(hyPageForm.pageNumber - 1) * hyPageForm.pageSize + 1}} </span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" header-align="center" label="工号" show-overflow-tooltip
|
|
prop="loginname"></el-table-column>
|
|
<el-table-column align="center" header-align="center" label="姓名" show-overflow-tooltip
|
|
prop="username"></el-table-column>
|
|
<el-table-column align="center" header-align="center" label="性别" show-overflow-tooltip
|
|
prop="sex"></el-table-column>
|
|
<el-table-column align="center" header-align="center" label="电话" show-overflow-tooltip
|
|
prop="mobile"></el-table-column>
|
|
<el-table-column align="center" header-align="center" label="是否会员" show-overflow-tooltip
|
|
prop="ishy">
|
|
<template slot-scope="scope">
|
|
<span v-if="scope.row.ishy">是</span>
|
|
<span v-else>否</span>
|
|
</template>
|
|
</el-table-column>
|
|
<el-table-column align="center" header-align="center" label="单位" show-overflow-tooltip
|
|
prop="unitname"></el-table-column>
|
|
<el-table-column align="center" header-align="center" label="院级工会" show-overflow-tooltip
|
|
prop="unionname"></el-table-column>
|
|
</el-table>
|
|
</el-row>
|
|
<el-row class="el-pagination-container">
|
|
<el-pagination
|
|
@size-change="hyPageSizeChange"
|
|
@current-change="hyPageNumberChange"
|
|
:current-page="hyPageForm.pageNumber"
|
|
:page-sizes="[10, 20, 30, 50]"
|
|
:page-size="hyPageForm.pageSize"
|
|
layout="total, sizes, prev, pager, next"
|
|
:total="hyPageForm.totalCount">
|
|
</el-pagination>
|
|
</el-row>
|
|
|
|
</div>
|
|
</transition>
|
|
</el-row>
|
|
|
|
|
|
<el-dialog
|
|
title="添加单位"
|
|
:visible.sync="addDialogVisible"
|
|
width="60%">
|
|
<el-form :model="formData" ref="addForm" :rules="formRules" size="small" label-width="100px">
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item prop="parentId" label="上级单位">
|
|
<el-cascader
|
|
:props="{checkStrictly: true}"
|
|
style="width: 100%"
|
|
tabindex="1"
|
|
:options="options"
|
|
:show-all-levels="false"
|
|
v-model="parentUnit"
|
|
:fetch-suggestions="unitQuery"
|
|
@active-item-change="unitChange"
|
|
@change="unitChange2"
|
|
@select="unitSelect"
|
|
placeholder="不选择则为顶级"
|
|
></el-cascader>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item prop="parentId" label="类  型">
|
|
<el-select v-model="formData.classid" placeholder="类型" style="width: 100%">
|
|
<el-option
|
|
v-for="item in classOption"
|
|
:key="item.id"
|
|
:label="item.name"
|
|
:value="item.id">
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item prop="name" label="单位名称">
|
|
<el-input maxlength="100" placeholder="单位名称"
|
|
v-model="formData.name"
|
|
auto-complete="off" tabindex="2" type="text"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item prop="aliasName" label="单位简称">
|
|
<el-input maxlength="100" placeholder="单位简称"
|
|
v-model="formData.aliasName"
|
|
auto-complete="off" tabindex="3" type="text"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item prop="xqid" label="所在校区">
|
|
<el-select v-model="formData.xqid" clearable placeholder="所在校区" style="width: 100%">
|
|
<el-option
|
|
v-for="item in xqOption"
|
|
:key="item.dq_id"
|
|
:label="item.dq_name"
|
|
:value="item.dq_id">
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
<!-- <el-form-item prop="unitcode" label="机构编码">-->
|
|
<!-- <el-input maxlength="100" disabled placeholder="机构编码"-->
|
|
<!-- v-model="formData.unitcode"-->
|
|
<!-- auto-complete="off" tabindex="4" type="text"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item prop="telephone" label="联系电话">
|
|
<el-input maxlength="100" placeholder="联系电话"
|
|
v-model="formData.telephone"
|
|
auto-complete="off" tabindex="6" type="text"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item prop="email" label="单位邮箱">
|
|
<el-input maxlength="100" placeholder="单位邮箱"
|
|
v-model="formData.email"
|
|
auto-complete="off" tabindex="7" type="text"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item prop="website" label="单位网站">
|
|
<el-input maxlength="100" placeholder="单位网站"
|
|
v-model="formData.website"
|
|
auto-complete="off" tabindex="8" type="text"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-form-item prop="address" label="单位地址">
|
|
<el-input maxlength="100" placeholder="单位地址"
|
|
v-model="formData.address"
|
|
auto-complete="off" tabindex="5" type="text"></el-input>
|
|
</el-form-item>
|
|
<el-form-item prop="note" label="单位介绍">
|
|
<el-input type="textarea" v-model="formData.note"></el-input>
|
|
</el-form-item>
|
|
</el-form>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="addDialogVisible = false">取 消</el-button>
|
|
<el-button type="primary" @click="doAdd">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog
|
|
title="编辑单位"
|
|
:visible.sync="editDialogVisible"
|
|
width="60%">
|
|
<el-form :model="formData" ref="editForm" :rules="formRules" size="small" label-width="100px">
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item prop="parentId" label="上级单位">
|
|
<el-cascader
|
|
:props="{checkStrictly: true}"
|
|
style="width: 100%"
|
|
tabindex="1"
|
|
:options="options"
|
|
:show-all-levels="false"
|
|
v-model="parentUnit"
|
|
:fetch-suggestions="unitQuery"
|
|
@active-item-change="unitChange"
|
|
@change="unitChange2"
|
|
@select="unitSelect"
|
|
placeholder="不选择则为顶级"
|
|
></el-cascader>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item prop="parentId" label="类  型">
|
|
<el-select v-model="formData.classid" placeholder="类型" style="width: 100%">
|
|
<el-option
|
|
v-for="item in classOption"
|
|
:key="item.id"
|
|
:label="item.name"
|
|
:value="item.id">
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item prop="name" label="单位名称">
|
|
<el-input maxlength="100" placeholder="单位名称"
|
|
v-model="formData.name"
|
|
auto-complete="off" tabindex="2" type="text"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item prop="aliasName" label="单位简称">
|
|
<el-input maxlength="100" placeholder="单位简称"
|
|
v-model="formData.aliasName"
|
|
auto-complete="off" tabindex="3" type="text"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item prop="xqid" label="所在校区">
|
|
<el-select v-model="formData.xqid" clearable placeholder="所在校区" style="width: 100%">
|
|
<el-option
|
|
v-for="item in xqOption"
|
|
:key="item.dq_id"
|
|
:label="item.dq_name"
|
|
:value="item.dq_id">
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
<!-- <el-form-item prop="unitcode" label="机构编码">-->
|
|
<!-- <el-input maxlength="100" disabled placeholder="机构编码"-->
|
|
<!-- v-model="formData.unitcode"-->
|
|
<!-- auto-complete="off" tabindex="4" type="text"></el-input>-->
|
|
<!-- </el-form-item>-->
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item prop="telephone" label="联系电话">
|
|
<el-input maxlength="100" placeholder="联系电话"
|
|
v-model="formData.telephone"
|
|
auto-complete="off" tabindex="6" type="text"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item prop="email" label="单位邮箱">
|
|
<el-input maxlength="100" placeholder="单位邮箱"
|
|
v-model="formData.email"
|
|
auto-complete="off" tabindex="7" type="text"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item prop="website" label="单位网站">
|
|
<el-input maxlength="100" placeholder="单位网站"
|
|
v-model="formData.website"
|
|
auto-complete="off" tabindex="8" type="text"></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-form-item prop="address" label="单位地址">
|
|
<el-input maxlength="100" placeholder="单位地址"
|
|
v-model="formData.address"
|
|
auto-complete="off" tabindex="5" type="text"></el-input>
|
|
</el-form-item>
|
|
<el-form-item prop="note" label="单位介绍">
|
|
<el-input type="textarea" v-model="formData.note"></el-input>
|
|
</el-form-item>
|
|
</el-form>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="editDialogVisible = false">取 消</el-button>
|
|
<el-button type="primary" @click="doEdit">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog
|
|
title="单位排序"
|
|
:visible.sync="sortDialogVisible"
|
|
width="50%">
|
|
<el-tree
|
|
ref="sortMenuTree"
|
|
:data="sortMenuData"
|
|
draggable
|
|
:allow-drop="sortAllowDrop"
|
|
node-key="id"
|
|
:props="defaultProps"
|
|
>
|
|
<span class="custom-tree-node" slot-scope="scope">
|
|
<span>{{ scope.node.label }}</span>
|
|
</span>
|
|
</el-tree>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="sortDialogVisible = false">取 消</el-button>
|
|
<el-button type="primary" @click="doSort">确 定</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
</div>
|
|
<script>
|
|
new Vue({
|
|
el: "#app",
|
|
data: function () {
|
|
return {
|
|
tabKey: new Date().getTime(),
|
|
defaultProps: {
|
|
children: 'children',
|
|
label: 'label'
|
|
},
|
|
addDialogVisible: false,
|
|
editDialogVisible: false,
|
|
sortDialogVisible: false,
|
|
sortMenuData: [],
|
|
tableData: [],//后台取出的数据
|
|
classOption: [],
|
|
classMap: {},
|
|
optionsdj: [{
|
|
value: '1',
|
|
label: '一级单位'
|
|
}, {
|
|
value: '2',
|
|
label: '二级单位'
|
|
}, {
|
|
value: '3',
|
|
label: '三级单位'
|
|
}]
|
|
,
|
|
searchForm: {
|
|
pid: "",
|
|
searchName: "name",
|
|
searchKeyword: "",
|
|
searchdj: "",
|
|
pageNumber: 1,
|
|
pageSize: 10,
|
|
totalCount: 0,
|
|
},
|
|
hyPageForm: {
|
|
searchName: "u.username",
|
|
searchKeyword: "",
|
|
pageNumber: 1,
|
|
pageSize: 10,
|
|
totalCount: 0,
|
|
},
|
|
formData: {
|
|
id: "",
|
|
parentId: ""
|
|
},
|
|
formRules: {
|
|
name: [
|
|
{required: true, message: '单位名称', trigger: 'blur'}
|
|
],
|
|
email: [
|
|
{required: false, message: '单位邮箱', trigger: 'blur'},
|
|
{type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change']}
|
|
]
|
|
},
|
|
options: [],
|
|
parentUnit: [],
|
|
xqOption: [],
|
|
showRyxx: false,
|
|
unitData: {},
|
|
hyTableData: [],
|
|
tabloading: false,
|
|
}
|
|
},
|
|
methods: {
|
|
hyDoSearch() {
|
|
this.hyPageForm.pageNumber = 1
|
|
this.hyPageData()
|
|
},
|
|
hyPageOrder(column) {//按字段排序
|
|
this.hyPageForm.pageOrderName = column.prop;
|
|
this.hyPageForm.pageOrderBy = column.order;
|
|
this.hyPageData();
|
|
},
|
|
hyPageNumberChange(val) {//页码更新操作
|
|
this.hyPageForm.pageNumber = val;
|
|
this.hyPageData();
|
|
},
|
|
hyPageSizeChange(val) {//分页大小更新操作
|
|
this.hyPageForm.pageSize = val;
|
|
this.hyPageData();
|
|
},
|
|
hyPageData() {//加载分页数据
|
|
sublime.showLoadingbar();//显示loading
|
|
this.tabloading = true
|
|
$.post(base + "/platform/sys/unit/userPageData", this.hyPageForm, (data) => {
|
|
sublime.closeLoadingbar();//关闭loading
|
|
if (data.code == 0) {
|
|
this.hyTableData = data.data.list;
|
|
this.hyPageForm.totalCount = data.data.totalCount;
|
|
} else {
|
|
this.$message({
|
|
message: data.msg,
|
|
type: 'error'
|
|
});
|
|
}
|
|
this.tabloading = false
|
|
}, "json");
|
|
},
|
|
|
|
openRyxx(id) {
|
|
$.post(base + "/platform/sys/unit/edit/" + id, {}, (data) => {
|
|
if (data.code == 0) {
|
|
this.unitData = data.data;//加载后台表单数据
|
|
this.showRyxx = true;//打开编辑窗口
|
|
this.hyPageForm.unitid = this.unitData.id
|
|
this.hyDoSearch()
|
|
} else {
|
|
this.$message({
|
|
message: data.msg,
|
|
type: 'error'
|
|
});
|
|
}
|
|
}, "json");
|
|
},
|
|
//递归获取所有的ID值
|
|
getTreeIds: function (ids, data) {
|
|
var self = this;
|
|
data.forEach(function (obj) {
|
|
ids.push(obj.id);
|
|
if (obj.children && obj.children.length > 0) {
|
|
self.getTreeIds(ids, obj.children);
|
|
}
|
|
});
|
|
},
|
|
//提交排序后的数据
|
|
doSort: function () {
|
|
var self = this;
|
|
var ids = [];
|
|
self.getTreeIds(ids, self.sortMenuData);
|
|
|
|
var loading = self.$loading({
|
|
lock: true,
|
|
text: '数据正在提交中,请稍后...',
|
|
spinner: 'el-icon-loading',
|
|
background: 'rgba(0, 0, 0, 0.7)'
|
|
});
|
|
|
|
$.post(base + "/platform/sys/unit/sortDo", {ids: ids.toString()}, function (data) {
|
|
if (data.code == 0) {
|
|
self.$message({
|
|
message: data.msg,
|
|
type: 'success'
|
|
});
|
|
self.sortDialogVisible = false;
|
|
self.initTreeTable();
|
|
} else {
|
|
self.$message({
|
|
message: data.msg,
|
|
type: 'error'
|
|
});
|
|
}
|
|
loading.close()
|
|
}, "json");
|
|
},
|
|
//排序树加载
|
|
sortMenuLoad: function () {
|
|
var self = this;
|
|
$.post(base + "/platform/sys/unit/unitAll", {}, function (data) {
|
|
if (data.code == 0) {
|
|
self.sortMenuData = data.data;
|
|
}
|
|
}, "json");
|
|
},
|
|
//排序树控制不可跨级拖拽
|
|
sortAllowDrop: function (moveNode, inNode, type) {
|
|
if (moveNode.data.parentId == inNode.data.parentId) {
|
|
return type == 'prev';
|
|
}
|
|
},
|
|
//打开排序功能
|
|
openSort: function () {
|
|
this.sortDialogVisible = true;
|
|
this.sortMenuLoad();
|
|
},
|
|
pageNumberChange: function (val) {//页码更新操作
|
|
this.searchForm.pageNumber = val;
|
|
this.initTreeTable();
|
|
},
|
|
pageSizeChange: function (val) {//分页大小更新操作
|
|
this.searchForm.pageSize = val;
|
|
this.initTreeTable();
|
|
},
|
|
//级联选择器从后台动态获取下级数据
|
|
loadTree: function (val, cb) {
|
|
var url = base + "/platform/sys/unit/tree";
|
|
$.post(url, {pid: val}, function (data) {
|
|
if (data.code == 0) {
|
|
cb(data.data);
|
|
}
|
|
}, "json");
|
|
},
|
|
unitQuery: function (queryString, cb) {
|
|
cb(this.options);
|
|
},
|
|
unitSelect: function (val) {
|
|
},
|
|
unitTree: function (table, data, pid) {//树形数据的级联查找很是头疼
|
|
var self = this;
|
|
table.findIndex(function (obj) {
|
|
if (pid == obj.value) {
|
|
obj.children = data;
|
|
} else if (obj.children && obj.children.length > 0) {
|
|
self.unitTree(obj.children, data, pid);
|
|
}
|
|
});
|
|
},
|
|
unitChange2: function (val) {
|
|
var self = this;
|
|
if (val[0] == "root") {
|
|
self.parentUnit = [];
|
|
}
|
|
},
|
|
unitChange: function (val) {
|
|
var self = this;
|
|
var pid = val[val.length - 1];
|
|
self.parentUnit = val;
|
|
this.loadTree(pid, function (tree) {
|
|
self.unitTree(self.options, tree, pid);
|
|
});
|
|
},
|
|
doplAdd: function () {
|
|
var self = this;
|
|
self.$confirm('是否确认批量更新单位?', '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning',
|
|
callback: function (a, b) {
|
|
if ("confirm" == a) {//确认后再执行
|
|
var url = base + "/platform/sys/unit/pleditDo";
|
|
self.formData.parentId = self.parentUnit[self.parentUnit.length - 1] || "";
|
|
$.post(url, self.formData, function (data) {
|
|
if (data.code == 0) {
|
|
self.$message({
|
|
message: data.msg,
|
|
type: 'success'
|
|
});
|
|
} else {
|
|
self.$message({
|
|
message: data.msg,
|
|
type: 'error'
|
|
});
|
|
}
|
|
}, "json");
|
|
}
|
|
}
|
|
})
|
|
},
|
|
openAdd: function () {
|
|
var self = this;
|
|
this.addDialogVisible = true;
|
|
this.formData = {};//打开新增窗口,表单先清空
|
|
this.parentUnit = [];
|
|
this.loadTree("", function (val) {
|
|
self.options = val;
|
|
});
|
|
},
|
|
doAdd: function () {
|
|
var self = this;
|
|
var url = base + "/platform/sys/unit/addDo";
|
|
self.$refs["addForm"].validate(function (valid) {
|
|
if (valid) {//表单验证通过
|
|
self.formData.parentId = self.parentUnit[self.parentUnit.length - 1] || "";
|
|
$.post(url, self.formData, function (data) {
|
|
if (data.code == 0) {
|
|
self.$message({
|
|
message: data.msg,
|
|
type: 'success'
|
|
});
|
|
self.addDialogVisible = false;
|
|
self.initTreeTable();
|
|
} else {
|
|
self.$message({
|
|
message: data.msg,
|
|
type: 'error'
|
|
});
|
|
}
|
|
}, "json");
|
|
}
|
|
});
|
|
},
|
|
doEdit: function () {
|
|
var self = this;
|
|
var url = base + "/platform/sys/unit/editDo";
|
|
self.$refs["editForm"].validate(function (valid) {
|
|
if (valid) {//表单验证通过
|
|
self.formData.parentId = self.parentUnit[self.parentUnit.length - 1];
|
|
$.post(url, self.formData, function (data) {
|
|
if (data.code == 0) {
|
|
self.$message({
|
|
message: data.msg,
|
|
type: 'success'
|
|
});
|
|
self.editDialogVisible = false;
|
|
self.initTreeTable();
|
|
self.tabKey = new Date().getTime()
|
|
} else {
|
|
self.$message({
|
|
message: data.msg,
|
|
type: 'error'
|
|
});
|
|
}
|
|
}, "json");
|
|
}
|
|
});
|
|
},
|
|
initTreeTable: function () {
|
|
var self = this;
|
|
var url = base + "/platform/sys/unit/child";
|
|
$.post(url, self.searchForm, function (data) {
|
|
if (data.code == 0) {
|
|
self.tableData = data.data.list;
|
|
self.tableData.forEach(function (v) {
|
|
v.hasChildren = v.haschildren
|
|
}
|
|
)
|
|
self.searchForm.totalCount = data.data.totalCount
|
|
}
|
|
}, "json");
|
|
|
|
},
|
|
loadChild: function (tree, treeNode, resolve) {
|
|
var url = base + "/platform/sys/unit/child";
|
|
$.post(url, {pid: tree.id}, function (data) {
|
|
if (data.code == 0) {
|
|
resolve(data.data.list);
|
|
}
|
|
}, "json");
|
|
}
|
|
,
|
|
doSearch: function () {
|
|
this.searchForm.pageNumber = 1
|
|
this.initTreeTable();
|
|
}
|
|
,
|
|
dropdownCommand: function (command) {//监听下拉框事件
|
|
var self = this;
|
|
if ("edit" == command.type) {
|
|
$.post(base + "/platform/sys/unit/edit/" + command.id, {}, function (data) {
|
|
if (data.code == 0) {
|
|
self.formData = data.data;//加载后台表单数据
|
|
|
|
self.loadTree("", function (val) {
|
|
self.options = val;
|
|
});
|
|
self.parentUnit = [data.data.parentId]
|
|
|
|
self.editDialogVisible = true;//打开编辑窗口
|
|
} else {
|
|
self.$message({
|
|
message: data.msg,
|
|
type: 'error'
|
|
});
|
|
}
|
|
}, "json");
|
|
}
|
|
if ("delete" == command.type) {
|
|
self.$confirm('此操作将删除 ' + command.name, '提示', {
|
|
confirmButtonText: '确定',
|
|
cancelButtonText: '取消',
|
|
type: 'warning',
|
|
callback: function (a, b) {
|
|
if ("confirm" == a) {//确认后再执行
|
|
$.post(base + "/platform/sys/unit/delete/" + command.id, {}, function (data) {
|
|
if (data.code == 0) {
|
|
self.$message({
|
|
message: data.msg,
|
|
type: 'success'
|
|
});
|
|
self.tabKey = new Date().getTime()
|
|
self.initTreeTable();
|
|
} else {
|
|
self.$message({
|
|
message: data.msg,
|
|
type: 'error'
|
|
});
|
|
}
|
|
}, "json");
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
,
|
|
getUnitClass: function () {
|
|
var self = this
|
|
$.get('/platform/sys/unit/getUnitClass', function (data) {
|
|
if (data.code == 0) {
|
|
self.classOption = data.data
|
|
self.classOption.forEach(function (val) {
|
|
self.classMap[val.id] = val.name
|
|
})
|
|
}
|
|
})
|
|
},
|
|
getXqData: function () {
|
|
var self = this
|
|
$.get('/platform/sys/unit/getXqData', function (data) {
|
|
if (data.code == 0) {
|
|
self.xqOption = data.data
|
|
}
|
|
})
|
|
}
|
|
},
|
|
created: function () {
|
|
this.getUnitClass();
|
|
this.getXqData();
|
|
this.initTreeTable();
|
|
}
|
|
})
|
|
;
|
|
</script>
|
|
<!--#
|
|
}
|
|
#--> |