|
@@ -1,657 +1,330 @@
|
|
|
-<template xmlns:background-color="http://www.w3.org/1999/xhtml">
|
|
|
- <a-row :gutter="10">
|
|
|
- <a-col :md="12" :sm="24">
|
|
|
- <a-card :bordered="false">
|
|
|
+<template>
|
|
|
+ <a-card :bordered="false">
|
|
|
+ <div class="table-page-search-wrapper">
|
|
|
+ <a-form layout="inline">
|
|
|
+ <a-row :gutter="24">
|
|
|
+ <a-col :md="6" :sm="6">
|
|
|
+ <a-form-item label="标签名称">
|
|
|
+ <a-input placeholder="请输入标签名称" v-model="queryParam.tagName"></a-input>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <!-- -->
|
|
|
+ <a-col :md="6" :sm="6">
|
|
|
+ <a-form-item label="标签分类">
|
|
|
+ <a-select v-model="queryParam.tagCategoryId" placeholder="请选择">
|
|
|
+ <a-select-option value="1">形式</a-select-option>
|
|
|
+ <a-select-option value="2">基调</a-select-option>
|
|
|
+ <a-select-option value="3">内容</a-select-option>
|
|
|
+ <a-select-option value="4">场景</a-select-option>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
+ <a-col :md="6" :sm="6">
|
|
|
+ <a-form-item label="标签等级">
|
|
|
+ <a-select v-model="queryParam.level" placeholder="请选择">
|
|
|
+ <a-select-option value="1">一级标签</a-select-option>
|
|
|
+ <a-select-option value="2">二级标签</a-select-option>
|
|
|
+ <a-select-option value="3">三级标签</a-select-option>
|
|
|
+ </a-select>
|
|
|
+ </a-form-item>
|
|
|
+ </a-col>
|
|
|
|
|
|
- <!-- 按钮操作区域 -->
|
|
|
- <a-row style="margin-left: 14px">
|
|
|
- <a-button @click="handleAdd(1)" type="primary">添加部门</a-button>
|
|
|
- <a-button @click="handleAdd(2)" type="primary">添加下级</a-button>
|
|
|
- <a-button type="primary" icon="download" @click="handleExportXls('部门信息')">导出</a-button>
|
|
|
- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
|
|
|
- <a-button type="primary" icon="import">导入</a-button>
|
|
|
- </a-upload>
|
|
|
- <a-button title="删除多条数据" @click="batchDel" type="default">批量删除</a-button>
|
|
|
- <!--<a-button @click="refresh" type="default" icon="reload" :loading="loading">刷新</a-button>-->
|
|
|
- </a-row>
|
|
|
- <div style="background: #fff;padding-left:16px;height: 100%; margin-top: 5px">
|
|
|
- <a-alert type="info" :showIcon="true">
|
|
|
- <div slot="message">
|
|
|
- 当前选择:<span v-if="this.currSelected.title">{{ getCurrSelectedTitle() }}</span>
|
|
|
- <a v-if="this.currSelected.title" style="margin-left: 10px" @click="onClearSelected">取消选择</a>
|
|
|
- </div>
|
|
|
- </a-alert>
|
|
|
- <a-input-search @search="onSearch" style="width:100%;margin-top: 10px" placeholder="请输入部门名称"/>
|
|
|
- <!-- 树-->
|
|
|
- <a-col :md="10" :sm="24">
|
|
|
- <template>
|
|
|
- <a-dropdown :trigger="[this.dropTrigger]" @visibleChange="dropStatus">
|
|
|
- <span>
|
|
|
- <a-tree
|
|
|
- checkable
|
|
|
- multiple
|
|
|
- @select="onSelect"
|
|
|
- @check="onCheck"
|
|
|
- @rightClick="rightHandle"
|
|
|
- :selectedKeys="selectedKeys"
|
|
|
- :checkedKeys="checkedKeys"
|
|
|
- :treeData="departTree"
|
|
|
- :checkStrictly="checkStrictly"
|
|
|
- :expandedKeys="iExpandedKeys"
|
|
|
- :autoExpandParent="autoExpandParent"
|
|
|
- @expand="onExpand"/>
|
|
|
- </span>
|
|
|
- <!--新增右键点击事件,和增加添加和删除功能-->
|
|
|
- <a-menu slot="overlay">
|
|
|
- <a-menu-item @click="handleAdd(3)" key="1">添加</a-menu-item>
|
|
|
- <a-menu-item @click="handleDelete" key="2">删除</a-menu-item>
|
|
|
- <a-menu-item @click="closeDrop" key="3">取消</a-menu-item>
|
|
|
- </a-menu>
|
|
|
- </a-dropdown>
|
|
|
- </template>
|
|
|
+ <a-col :md="6" :sm="6">
|
|
|
+ <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
|
|
|
+ <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
|
|
|
+ <a-button
|
|
|
+ type="primary"
|
|
|
+ @click="searchReset"
|
|
|
+ icon="reload"
|
|
|
+ style="margin-left: 8px"
|
|
|
+ >重置</a-button>
|
|
|
+ </span>
|
|
|
</a-col>
|
|
|
- </div>
|
|
|
- </a-card>
|
|
|
- <!---- author:os_chengtgen -- date:20190827 -- for:切换父子勾选模式 =======------>
|
|
|
- <div class="drawer-bootom-button">
|
|
|
- <a-dropdown :trigger="['click']" placement="topCenter">
|
|
|
- <a-menu slot="overlay">
|
|
|
- <a-menu-item key="1" @click="switchCheckStrictly(1)">父子关联</a-menu-item>
|
|
|
- <a-menu-item key="2" @click="switchCheckStrictly(2)">取消关联</a-menu-item>
|
|
|
- <a-menu-item key="3" @click="checkALL">全部勾选</a-menu-item>
|
|
|
- <a-menu-item key="4" @click="cancelCheckALL">取消全选</a-menu-item>
|
|
|
- <a-menu-item key="5" @click="expandAll">展开所有</a-menu-item>
|
|
|
- <a-menu-item key="6" @click="closeAll">合并所有</a-menu-item>
|
|
|
- </a-menu>
|
|
|
- <a-button>
|
|
|
- 树操作 <a-icon type="up" />
|
|
|
- </a-button>
|
|
|
- </a-dropdown>
|
|
|
- </div>
|
|
|
- <!---- author:os_chengtgen -- date:20190827 -- for:切换父子勾选模式 =======------>
|
|
|
- </a-col>
|
|
|
- <a-col :md="12" :sm="24">
|
|
|
- <a-tabs defaultActiveKey="1">
|
|
|
- <a-tab-pane tab="基本信息" key="1" >
|
|
|
- <a-card :bordered="false" v-if="selectedKeys.length>0">
|
|
|
- <a-form :form="form">
|
|
|
- <a-form-item
|
|
|
- :labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="机构名称">
|
|
|
- <a-input placeholder="请输入机构/部门名称" v-decorator="['departName', validatorRules.departName ]"/>
|
|
|
- </a-form-item>
|
|
|
- <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="上级部门">
|
|
|
- <a-tree-select
|
|
|
- style="width:100%"
|
|
|
- :dropdownStyle="{maxHeight:'200px',overflow:'auto'}"
|
|
|
- :treeData="treeData"
|
|
|
- :disabled="disable"
|
|
|
- v-model="model.parentId"
|
|
|
- placeholder="无">
|
|
|
- </a-tree-select>
|
|
|
- </a-form-item>
|
|
|
- <a-form-item
|
|
|
- :labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="机构编码">
|
|
|
- <a-input disabled placeholder="请输入机构编码" v-decorator="['orgCode', validatorRules.orgCode ]"/>
|
|
|
- </a-form-item>
|
|
|
- <a-form-item
|
|
|
- :labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="机构类型">
|
|
|
- <template v-if="orgCategoryDisabled">
|
|
|
- <a-radio-group v-decorator="['orgCategory',validatorRules.orgCategory]" placeholder="请选择机构类型">
|
|
|
- <a-radio value="1">
|
|
|
- 公司
|
|
|
- </a-radio>
|
|
|
- </a-radio-group>
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <a-radio-group v-decorator="['orgCategory',validatorRules.orgCategory]" placeholder="请选择机构类型">
|
|
|
- <a-radio value="2">
|
|
|
- 部门
|
|
|
- </a-radio>
|
|
|
- <a-radio value="3">
|
|
|
- 岗位
|
|
|
- </a-radio>
|
|
|
- </a-radio-group>
|
|
|
- </template>
|
|
|
- </a-form-item>
|
|
|
- <a-form-item
|
|
|
- :labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="排序">
|
|
|
- <a-input-number v-decorator="[ 'departOrder',{'initialValue':0}]"/>
|
|
|
- </a-form-item>
|
|
|
- <a-form-item
|
|
|
- :labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="手机号">
|
|
|
- <a-input placeholder="请输入手机号" v-decorator="['mobile', {'initialValue':''}]"/>
|
|
|
- </a-form-item>
|
|
|
- <a-form-item
|
|
|
- :labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="地址">
|
|
|
- <a-input placeholder="请输入地址" v-decorator="['address', {'initialValue':''}]"/>
|
|
|
- </a-form-item>
|
|
|
- <a-form-item
|
|
|
- :labelCol="labelCol"
|
|
|
- :wrapperCol="wrapperCol"
|
|
|
- label="备注">
|
|
|
- <a-textarea placeholder="请输入备注" v-decorator="['memo', {'initialValue':''}]"/>
|
|
|
- </a-form-item>
|
|
|
- </a-form>
|
|
|
- <div class="anty-form-btn">
|
|
|
- <a-button @click="emptyCurrForm" type="default" htmlType="button" icon="sync">重置</a-button>
|
|
|
- <a-button @click="submitCurrForm" type="primary" htmlType="button" icon="form">保存</a-button>
|
|
|
- </div>
|
|
|
- </a-card>
|
|
|
- <a-card v-else >
|
|
|
- <a-empty>
|
|
|
- <span slot="description"> 请先选择一个部门! </span>
|
|
|
- </a-empty>
|
|
|
- </a-card>
|
|
|
- </a-tab-pane>
|
|
|
- <a-tab-pane tab="部门权限" key="2" forceRender>
|
|
|
- <depart-auth-modal ref="departAuth"/>
|
|
|
- </a-tab-pane>
|
|
|
- </a-tabs>
|
|
|
+ </a-row>
|
|
|
+ </a-form>
|
|
|
+ </div>
|
|
|
+ <!-- 操作按钮区域 -->
|
|
|
+ <div class="table-operator">
|
|
|
+ <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
|
|
|
+ <!-- <a-button @click="batchDel" v-if="selectedRowKeys.length > 0" ghost type="primary" icon="delete">批量删除
|
|
|
+ </a-button>-->
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- table区域-begin -->
|
|
|
+ <div>
|
|
|
+ <a-table
|
|
|
+ size="middle"
|
|
|
+
|
|
|
+ rowKey="id"
|
|
|
+ :columns="columns"
|
|
|
+ :dataSource="dataSource"
|
|
|
+ :pagination="ipagination"
|
|
|
+ :loading="loading"
|
|
|
+ @change="handleTableChange"
|
|
|
+ >
|
|
|
+ <span slot="tagName" slot-scope="text,record">
|
|
|
+ <span v-if="record.status == 1">{{text}}</span>
|
|
|
+ <span v-else-if="record.status == 0" style="color:red">{{text}}(未审核)</span>
|
|
|
+ <span v-else>{{text}}(已驳回)</span>
|
|
|
+ </span>
|
|
|
+ <span slot="action" slot-scope="text, record">
|
|
|
+ <a href="javascript:;" @click="handleAddSub(record)" :disabled="record.level==3">添加下级</a>
|
|
|
+ <a-divider type="vertical" />
|
|
|
+ <a @click="handleDeleteModel(record)" :disabled="!IsURL(record.model)">查看示例</a>
|
|
|
+ <a-divider type="vertical" />
|
|
|
+ <a-dropdown>
|
|
|
+ <a class="ant-dropdown-link" @click="e => e.preventDefault()">更多</a>
|
|
|
+ <a-menu slot="overlay">
|
|
|
+ <!-- <a-menu-item key="4" :disabled="!IsURL(record.model)">
|
|
|
+ <a style="margin-right:20px" @click="handleDeleteModel(record)">查看示例</a>
|
|
|
+ </a-menu-item>-->
|
|
|
+ <a-menu-item key="0">
|
|
|
+ <a-popconfirm title="确定删除吗?" @confirm="() => handleDeleteElse(record.id)">
|
|
|
+ <a>删除</a>
|
|
|
+ </a-popconfirm>
|
|
|
+ </a-menu-item>
|
|
|
+ <a-menu-item key="1" :disabled="record.status==1">
|
|
|
+ <a
|
|
|
+ href="javascript:;"
|
|
|
+ @click="handleDeleteStatus(record.id,'1')"
|
|
|
+ :disabled="record.status==1"
|
|
|
+ >通过</a>
|
|
|
+ </a-menu-item>
|
|
|
+ <a-menu-item key="3" :disabled="record.status==1">
|
|
|
+ <a
|
|
|
+ style="margin-right:20px"
|
|
|
+ @click="handleDeleteStatus(record.id,'2')"
|
|
|
+ :disabled="record.status==1"
|
|
|
+ >驳回</a>
|
|
|
+ </a-menu-item>
|
|
|
+ </a-menu>
|
|
|
+ </a-dropdown>
|
|
|
+ </span>
|
|
|
+ <!-- 字符串超长截取省略号显示-->
|
|
|
+ <span slot="model" slot-scope="text">
|
|
|
+ <!-- <j-ellipsis :value="text" /> -->
|
|
|
+ <video :src="text" v-if="text" style="width: 100%" controls="controls">您的浏览器不支持 video 标签。</video>
|
|
|
+ <span v-else>-</span>
|
|
|
+ </span>
|
|
|
+ </a-table>
|
|
|
+ </div>
|
|
|
+ <!-- table区域-end -->
|
|
|
|
|
|
- </a-col>
|
|
|
- <depart-modal ref="departModal" @ok="loadTree"></depart-modal>
|
|
|
- </a-row>
|
|
|
+ <permission-modal ref="modalForm" @ok="modalFormOk"></permission-modal>
|
|
|
+ </a-card>
|
|
|
</template>
|
|
|
+
|
|
|
<script>
|
|
|
- import DepartModal from './modules/DepartModal'
|
|
|
- import pick from 'lodash.pick'
|
|
|
- import {queryDepartTreeList, searchByKeywords, deleteByDepartId} from '@/api/api'
|
|
|
- import {httpAction, deleteAction} from '@/api/manage'
|
|
|
- import {JeecgListMixin} from '@/mixins/JeecgListMixin'
|
|
|
- import DepartAuthModal from './modules/DepartAuthModal'
|
|
|
- // 表头
|
|
|
- const columns = [
|
|
|
- {
|
|
|
- title: '机构名称',
|
|
|
- dataIndex: 'departName'
|
|
|
- },
|
|
|
- {
|
|
|
- title: '机构类型',
|
|
|
- align: 'center',
|
|
|
- dataIndex: 'orgType'
|
|
|
- },
|
|
|
- {
|
|
|
- title: '机构编码',
|
|
|
- dataIndex: 'orgCode',
|
|
|
+import PermissionModal from './modules/DepartModal'
|
|
|
+import { getPermissionList } from '@/api/api'
|
|
|
+import { httpAction, deleteAction, getAction } from '@/api/manage'
|
|
|
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
|
|
|
+// import PermissionDataRuleList from './PermissionDataRuleList'
|
|
|
+import JEllipsis from '@/components/jeecg/JEllipsis'
|
|
|
+const columns = [
|
|
|
+
|
|
|
+ {
|
|
|
+ title: '标签名称',
|
|
|
+ dataIndex: 'tagName',
|
|
|
+ key: 'tagName',
|
|
|
+ align: 'left',
|
|
|
+ scopedSlots: {
|
|
|
+ customRender: 'tagName',
|
|
|
},
|
|
|
- {
|
|
|
- title: '手机号',
|
|
|
- dataIndex: 'mobile'
|
|
|
- },
|
|
|
- {
|
|
|
- title: '传真',
|
|
|
- dataIndex: 'fax'
|
|
|
+ },
|
|
|
+ /*{
|
|
|
+ title: '菜单类型',
|
|
|
+ dataIndex: 'menuType',
|
|
|
+ key: 'menuType',
|
|
|
+ customRender: function(text) {
|
|
|
+ if (text == 0) {
|
|
|
+ return '菜单'
|
|
|
+ } else if (text == 1) {
|
|
|
+ return '菜单'
|
|
|
+ } else if (text == 2) {
|
|
|
+ return '按钮/权限'
|
|
|
+ } else {
|
|
|
+ return text
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },*/
|
|
|
+ {
|
|
|
+ title: '标签层级',
|
|
|
+ dataIndex: 'level',
|
|
|
+ key: 'level',
|
|
|
+ customRender: function (text) {
|
|
|
+ if (text == 1) {
|
|
|
+ return '一级标签'
|
|
|
+ } else if (text == 2) {
|
|
|
+ return '二级标签'
|
|
|
+ } else if (text == 3) {
|
|
|
+ return '三级标签'
|
|
|
+ }
|
|
|
},
|
|
|
- {
|
|
|
- title: '地址',
|
|
|
- dataIndex: 'address'
|
|
|
+ align: 'left',
|
|
|
+ },
|
|
|
+ // {
|
|
|
+ // title: '所属一级标签',
|
|
|
+ // dataIndex: 'firstTagId_dictText',
|
|
|
+ // key: 'firstTagId_dictText',
|
|
|
+ // customRender: function (text) {
|
|
|
+ // if (text == null) {
|
|
|
+ // return '-'
|
|
|
+ // } else {
|
|
|
+ // return text
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // align: 'center',
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // title: '所属二级标签',
|
|
|
+ // dataIndex: 'secendTagId_dictText',
|
|
|
+ // key: 'secendTagId_dictText',
|
|
|
+ // customRender: function (text) {
|
|
|
+ // if (text == null) {
|
|
|
+ // return '-'
|
|
|
+ // } else {
|
|
|
+ // return text
|
|
|
+ // }
|
|
|
+ // },
|
|
|
+ // align: 'center',
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ title: '标签分类',
|
|
|
+ dataIndex: 'tagCategoryName',
|
|
|
+ key: 'tagCategoryName',
|
|
|
+ align: 'left',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '描述',
|
|
|
+ dataIndex: 'description',
|
|
|
+ key: 'description',
|
|
|
+ customRender: function (text) {
|
|
|
+ if (text == null) {
|
|
|
+ return '-'
|
|
|
+ } else {
|
|
|
+ return text
|
|
|
+ }
|
|
|
},
|
|
|
- {
|
|
|
- title: '排序',
|
|
|
- align: 'center',
|
|
|
- dataIndex: 'departOrder'
|
|
|
+ align: 'left',
|
|
|
+ width: 400,
|
|
|
+ },
|
|
|
+ // {
|
|
|
+ // title: '标签示例',
|
|
|
+ // dataIndex: 'model',
|
|
|
+ // key: 'model',
|
|
|
+ // scopedSlots: {
|
|
|
+ // customRender: 'model'
|
|
|
+ // },
|
|
|
+ // // customRender: function (text) {
|
|
|
+ // // if (text == null) {
|
|
|
+ // // return '-'
|
|
|
+ // // } else {
|
|
|
+ // // return text
|
|
|
+ // // }
|
|
|
+ // // },
|
|
|
+ // align: 'center',
|
|
|
+ // width: 200
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ title: '操作',
|
|
|
+ dataIndex: 'action',
|
|
|
+ scopedSlots: {
|
|
|
+ customRender: 'action',
|
|
|
},
|
|
|
- {
|
|
|
- title: '操作',
|
|
|
- align: 'center',
|
|
|
- dataIndex: 'action',
|
|
|
- scopedSlots: {customRender: 'action'}
|
|
|
+ align: 'left',
|
|
|
+ width: 250,
|
|
|
+ },
|
|
|
+]
|
|
|
+export default {
|
|
|
+ name: 'label-material',
|
|
|
+ mixins: [JeecgListMixin],
|
|
|
+ components: {
|
|
|
+ PermissionModal,
|
|
|
+ JEllipsis
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ description: '标签管理',
|
|
|
+ // 表头
|
|
|
+ columns: columns,
|
|
|
+ loading: false,
|
|
|
+ // 展开的行,受控属性
|
|
|
+ expandedRowKeys: [],
|
|
|
+ url: {
|
|
|
+ list: '/ctop/tagInfo/treeList',
|
|
|
+ delete: '/ctop/tagInfo/edit',
|
|
|
+ deleteBatch: '/sys/permission/deleteBatch',
|
|
|
+ },
|
|
|
}
|
|
|
- ]
|
|
|
- export default {
|
|
|
- name: 'DepartList',
|
|
|
- mixins: [JeecgListMixin],
|
|
|
- components: {
|
|
|
- DepartAuthModal,
|
|
|
- DepartModal
|
|
|
- },
|
|
|
- data() {
|
|
|
- return {
|
|
|
- iExpandedKeys: [],
|
|
|
- loading: false,
|
|
|
- autoExpandParent: true,
|
|
|
- currFlowId: '',
|
|
|
- currFlowName: '',
|
|
|
- disable: true,
|
|
|
- treeData: [],
|
|
|
- visible: false,
|
|
|
- departTree: [],
|
|
|
- rightClickSelectedKey: '',
|
|
|
- rightClickSelectedOrgCode: '',
|
|
|
- hiding: true,
|
|
|
- model: {},
|
|
|
- dropTrigger: '',
|
|
|
- depart: {},
|
|
|
- columns: columns,
|
|
|
- disableSubmit: false,
|
|
|
- checkedKeys: [],
|
|
|
- selectedKeys: [],
|
|
|
- autoIncr: 1,
|
|
|
- currSelected: {},
|
|
|
-
|
|
|
- allTreeKeys:[],
|
|
|
- checkStrictly: true,
|
|
|
-
|
|
|
- form: this.$form.createForm(this),
|
|
|
- labelCol: {
|
|
|
- xs: {span: 24},
|
|
|
- sm: {span: 5}
|
|
|
- },
|
|
|
- wrapperCol: {
|
|
|
- xs: {span: 24},
|
|
|
- sm: {span: 16}
|
|
|
- },
|
|
|
- graphDatasource: {
|
|
|
- nodes: [],
|
|
|
- edges: []
|
|
|
- },
|
|
|
- validatorRules: {
|
|
|
- departName: {rules: [{required: true, message: '请输入机构/部门名称!'}]},
|
|
|
- orgCode: {rules: [{required: true, message: '请输入机构编码!'}]},
|
|
|
- orgCategory: {rules: [{required: true, message: '请输入机构类型!'}]},
|
|
|
- mobile: {rules: [{validator: this.validateMobile}]}
|
|
|
- },
|
|
|
- url: {
|
|
|
- delete: '/sys/sysDepart/delete',
|
|
|
- edit: '/sys/sysDepart/edit',
|
|
|
- deleteBatch: '/sys/sysDepart/deleteBatch',
|
|
|
- exportXlsUrl: "sys/sysDepart/exportXls",
|
|
|
- importExcelUrl: "sys/sysDepart/importExcel",
|
|
|
- },
|
|
|
- orgCategoryDisabled:false,
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ IsURL(res) {
|
|
|
+ // var strRegex = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/|www\.)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/
|
|
|
+ var strRegex = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+(.+[A-Za-z0-9-~\/])+$/
|
|
|
+ var re = new RegExp(strRegex)
|
|
|
+ // console.log(re.test(res))
|
|
|
+ if (re.test(res)) {
|
|
|
+ return true
|
|
|
+ } else {
|
|
|
+ return false
|
|
|
}
|
|
|
},
|
|
|
- computed: {
|
|
|
- importExcelUrl: function () {
|
|
|
- return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
|
|
|
+ handleDeleteModel(record) {
|
|
|
+ if (record.model) {
|
|
|
+ if (this.IsURL(record.model)) {
|
|
|
+ window.open(record.model, '_blank')
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
- methods: {
|
|
|
- loadData() {
|
|
|
- this.refresh();
|
|
|
- },
|
|
|
- loadTree() {
|
|
|
- var that = this
|
|
|
- that.treeData = []
|
|
|
- that.departTree = []
|
|
|
- queryDepartTreeList().then((res) => {
|
|
|
- if (res.success) {
|
|
|
- //部门全选后,再添加部门,选中数量增多
|
|
|
- this.allTreeKeys = [];
|
|
|
- for (let i = 0; i < res.result.length; i++) {
|
|
|
- let temp = res.result[i]
|
|
|
- that.treeData.push(temp)
|
|
|
- that.departTree.push(temp)
|
|
|
- that.setThisExpandedKeys(temp)
|
|
|
- that.getAllKeys(temp);
|
|
|
- // console.log(temp.id)
|
|
|
- }
|
|
|
- this.loading = false
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- setThisExpandedKeys(node) {
|
|
|
- if (node.children && node.children.length > 0) {
|
|
|
- this.iExpandedKeys.push(node.key)
|
|
|
- for (let a = 0; a < node.children.length; a++) {
|
|
|
- this.setThisExpandedKeys(node.children[a])
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- refresh() {
|
|
|
- this.loading = true
|
|
|
- this.loadTree()
|
|
|
- },
|
|
|
- // 右键操作方法
|
|
|
- rightHandle(node) {
|
|
|
- this.dropTrigger = 'contextmenu'
|
|
|
- console.log(node.node.eventKey)
|
|
|
- this.rightClickSelectedKey = node.node.eventKey
|
|
|
- this.rightClickSelectedOrgCode = node.node.dataRef.orgCode
|
|
|
- },
|
|
|
- onExpand(expandedKeys) {
|
|
|
- console.log('onExpand', expandedKeys)
|
|
|
- // if not set autoExpandParent to false, if children expanded, parent can not collapse.
|
|
|
- // or, you can remove all expanded children keys.
|
|
|
- this.iExpandedKeys = expandedKeys
|
|
|
- this.autoExpandParent = false
|
|
|
- },
|
|
|
- backFlowList() {
|
|
|
- this.$router.back(-1)
|
|
|
- },
|
|
|
- // 右键点击下拉框改变事件
|
|
|
- dropStatus(visible) {
|
|
|
- if (visible == false) {
|
|
|
- this.dropTrigger = ''
|
|
|
- }
|
|
|
- },
|
|
|
- // 右键店家下拉关闭下拉框
|
|
|
- closeDrop() {
|
|
|
- this.dropTrigger = ''
|
|
|
- },
|
|
|
- addRootNode() {
|
|
|
- this.$refs.nodeModal.add(this.currFlowId, '')
|
|
|
- },
|
|
|
- batchDel: function () {
|
|
|
- console.log(this.checkedKeys)
|
|
|
- if (this.checkedKeys.length <= 0) {
|
|
|
- this.$message.warning('请选择一条记录!')
|
|
|
- } else {
|
|
|
- var ids = ''
|
|
|
- for (var a = 0; a < this.checkedKeys.length; a++) {
|
|
|
- ids += this.checkedKeys[a] + ','
|
|
|
- }
|
|
|
- var that = this
|
|
|
- this.$confirm({
|
|
|
- title: '确认删除',
|
|
|
- content: '确定要删除所选中的 ' + this.checkedKeys.length + ' 条数据,以及子节点数据吗?',
|
|
|
- onOk: function () {
|
|
|
- deleteAction(that.url.deleteBatch, {ids: ids}).then((res) => {
|
|
|
- if (res.success) {
|
|
|
- that.$message.success(res.message)
|
|
|
- that.loadTree()
|
|
|
- that.onClearSelected()
|
|
|
- } else {
|
|
|
- that.$message.warning(res.message)
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- },
|
|
|
- onSearch(value) {
|
|
|
- let that = this
|
|
|
- if (value) {
|
|
|
- searchByKeywords({keyWord: value}).then((res) => {
|
|
|
- if (res.success) {
|
|
|
- that.departTree = []
|
|
|
- for (let i = 0; i < res.result.length; i++) {
|
|
|
- let temp = res.result[i]
|
|
|
- that.departTree.push(temp)
|
|
|
- }
|
|
|
- } else {
|
|
|
- that.$message.warning(res.message)
|
|
|
- }
|
|
|
- })
|
|
|
+ handleDeleteStatus(id, status) {
|
|
|
+ httpAction(
|
|
|
+ '/ctop/tagInfo/edit',
|
|
|
+ {
|
|
|
+ id: id,
|
|
|
+ status: status,
|
|
|
+ },
|
|
|
+ 'post'
|
|
|
+ ).then((res) => {
|
|
|
+ if (res.success) {
|
|
|
+ //删除成功后,去除已选中中的数据
|
|
|
+ this.loadData(1)
|
|
|
} else {
|
|
|
- that.loadTree()
|
|
|
- }
|
|
|
-
|
|
|
- },
|
|
|
- nodeModalOk() {
|
|
|
- this.loadTree()
|
|
|
- },
|
|
|
- nodeModalClose() {
|
|
|
- },
|
|
|
- hide() {
|
|
|
- console.log(111)
|
|
|
- this.visible = false
|
|
|
- },
|
|
|
- onCheck(checkedKeys, info) {
|
|
|
- console.log('onCheck', checkedKeys, info)
|
|
|
- this.hiding = false
|
|
|
- //this.checkedKeys = checkedKeys.checked
|
|
|
- // <!---- author:os_chengtgen -- date:20190827 -- for:切换父子勾选模式 =======------>
|
|
|
- if(this.checkStrictly){
|
|
|
- this.checkedKeys = checkedKeys.checked;
|
|
|
- }else{
|
|
|
- this.checkedKeys = checkedKeys
|
|
|
+ this.$message.warning(res.message)
|
|
|
}
|
|
|
- // <!---- author:os_chengtgen -- date:20190827 -- for:切换父子勾选模式 =======------>
|
|
|
- },
|
|
|
- onSelect(selectedKeys, e) {
|
|
|
- console.log('selected', selectedKeys, e)
|
|
|
- this.hiding = false
|
|
|
- let record = e.node.dataRef
|
|
|
- console.log('onSelect-record', record)
|
|
|
- this.currSelected = Object.assign({}, record)
|
|
|
- this.model = this.currSelected
|
|
|
- this.selectedKeys = [record.key]
|
|
|
- this.model.parentId = record.parentId
|
|
|
- this.setValuesToForm(record)
|
|
|
- this.$refs.departAuth.show(record.id);
|
|
|
-
|
|
|
- },
|
|
|
- // 触发onSelect事件时,为部门树右侧的form表单赋值
|
|
|
- setValuesToForm(record) {
|
|
|
- if(record.orgCategory == '1'){
|
|
|
- this.orgCategoryDisabled = true;
|
|
|
- }else{
|
|
|
- this.orgCategoryDisabled = false;
|
|
|
- }
|
|
|
- this.$nextTick(() => {
|
|
|
- this.form.getFieldDecorator('fax', {initialValue: ''})
|
|
|
- this.form.setFieldsValue(pick(record, 'departName','orgCategory', 'orgCode', 'departOrder', 'mobile', 'fax', 'address', 'memo'))
|
|
|
- })
|
|
|
- },
|
|
|
- getCurrSelectedTitle() {
|
|
|
- return !this.currSelected.title ? '' : this.currSelected.title
|
|
|
- },
|
|
|
- onClearSelected() {
|
|
|
- this.hiding = true
|
|
|
- this.checkedKeys = []
|
|
|
- this.currSelected = {}
|
|
|
- this.form.resetFields()
|
|
|
- this.selectedKeys = []
|
|
|
- this.$refs.departAuth.departId = ''
|
|
|
- },
|
|
|
- handleNodeTypeChange(val) {
|
|
|
- this.currSelected.nodeType = val
|
|
|
- },
|
|
|
- notifyTriggerTypeChange(value) {
|
|
|
- this.currSelected.notifyTriggerType = value
|
|
|
- },
|
|
|
- receiptTriggerTypeChange(value) {
|
|
|
- this.currSelected.receiptTriggerType = value
|
|
|
- },
|
|
|
- submitCurrForm() {
|
|
|
- this.form.validateFields((err, values) => {
|
|
|
- if (!err) {
|
|
|
- if (!this.currSelected.id) {
|
|
|
- this.$message.warning('请点击选择要修改部门!')
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- let formData = Object.assign(this.currSelected, values)
|
|
|
- console.log('Received values of form: ', formData)
|
|
|
- httpAction(this.url.edit, formData, 'put').then((res) => {
|
|
|
- if (res.success) {
|
|
|
- this.$message.success('保存成功!')
|
|
|
- this.loadTree()
|
|
|
- } else {
|
|
|
- this.$message.error(res.message)
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- emptyCurrForm() {
|
|
|
- this.form.resetFields()
|
|
|
- },
|
|
|
- nodeSettingFormSubmit() {
|
|
|
- this.form.validateFields((err, values) => {
|
|
|
- if (!err) {
|
|
|
- console.log('Received values of form: ', values)
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- openSelect() {
|
|
|
- this.$refs.sysDirectiveModal.show()
|
|
|
- },
|
|
|
- handleAdd(num) {
|
|
|
- if (num == 1) {
|
|
|
- this.$refs.departModal.add()
|
|
|
- this.$refs.departModal.title = '新增'
|
|
|
- } else if (num == 2) {
|
|
|
- let key = this.currSelected.key
|
|
|
- if (!key) {
|
|
|
- this.$message.warning('请先点击选中上级部门!')
|
|
|
- return false
|
|
|
- }
|
|
|
- this.$refs.departModal.add(this.selectedKeys)
|
|
|
- this.$refs.departModal.title = '新增'
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleDeleteElse(id) {
|
|
|
+ httpAction(
|
|
|
+ '/ctop/tagInfo/edit',
|
|
|
+ {
|
|
|
+ id: id,
|
|
|
+ delFlag: 1,
|
|
|
+ },
|
|
|
+ 'post'
|
|
|
+ ).then((res) => {
|
|
|
+ if (res.success) {
|
|
|
+ //删除成功后,去除已选中中的数据
|
|
|
+ this.loadData(1)
|
|
|
} else {
|
|
|
- this.$refs.departModal.add(this.rightClickSelectedKey)
|
|
|
- this.$refs.departModal.title = '新增'
|
|
|
+ this.$message.warning('删除失败!')
|
|
|
}
|
|
|
- },
|
|
|
- handleDelete() {
|
|
|
- var that = this
|
|
|
- this.$confirm({
|
|
|
- title: '确认删除',
|
|
|
- content: '确定要删除此部门以及子节点数据吗?',
|
|
|
- onOk: function () {
|
|
|
- deleteByDepartId({id: that.rightClickSelectedKey}).then((resp) => {
|
|
|
- if (resp.success) {
|
|
|
- //删除成功后,去除已选中中的数据
|
|
|
- that.checkedKeys.splice(that.checkedKeys.findIndex(key => key === that.rightClickSelectedKey), 1);
|
|
|
- that.$message.success('删除成功!')
|
|
|
- that.loadTree()
|
|
|
- //删除后同步清空右侧基本信息内容
|
|
|
- let orgCode=that.form.getFieldValue("orgCode");
|
|
|
- if(orgCode && orgCode === that.rightClickSelectedOrgCode){
|
|
|
- that.onClearSelected()
|
|
|
- }
|
|
|
- } else {
|
|
|
- that.$message.warning('删除失败!')
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- selectDirectiveOk(record) {
|
|
|
- console.log('选中指令数据', record)
|
|
|
- this.nodeSettingForm.setFieldsValue({directiveCode: record.directiveCode})
|
|
|
- this.currSelected.sysCode = record.sysCode
|
|
|
- },
|
|
|
- getFlowGraphData(node) {
|
|
|
- this.graphDatasource.nodes.push({
|
|
|
- id: node.id,
|
|
|
- text: node.flowNodeName
|
|
|
- })
|
|
|
- if (node.children.length > 0) {
|
|
|
- for (let a = 0; a < node.children.length; a++) {
|
|
|
- let temp = node.children[a]
|
|
|
- this.graphDatasource.edges.push({
|
|
|
- source: node.id,
|
|
|
- target: temp.id
|
|
|
- })
|
|
|
- this.getFlowGraphData(temp)
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- // <!---- author:os_chengtgen -- date:20190827 -- for:切换父子勾选模式 =======------>
|
|
|
- expandAll () {
|
|
|
- this.iExpandedKeys = this.allTreeKeys
|
|
|
- },
|
|
|
- closeAll () {
|
|
|
- this.iExpandedKeys = []
|
|
|
- },
|
|
|
- checkALL () {
|
|
|
- this.checkStriccheckStrictlytly = false
|
|
|
- this.checkedKeys = this.allTreeKeys
|
|
|
- },
|
|
|
- cancelCheckALL () {
|
|
|
- //this.checkedKeys = this.defaultCheckedKeys
|
|
|
- this.checkedKeys = []
|
|
|
- },
|
|
|
- switchCheckStrictly (v) {
|
|
|
- if(v==1){
|
|
|
- this.checkStrictly = false
|
|
|
- }else if(v==2){
|
|
|
- this.checkStrictly = true
|
|
|
- }
|
|
|
- },
|
|
|
- getAllKeys(node) {
|
|
|
- // console.log('node',node);
|
|
|
- this.allTreeKeys.push(node.key)
|
|
|
- if (node.children && node.children.length > 0) {
|
|
|
- for (let a = 0; a < node.children.length; a++) {
|
|
|
- this.getAllKeys(node.children[a])
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- // <!---- author:os_chengtgen -- date:20190827 -- for:切换父子勾选模式 =======------>
|
|
|
-
|
|
|
+ })
|
|
|
},
|
|
|
- created() {
|
|
|
- this.currFlowId = this.$route.params.id
|
|
|
- this.currFlowName = this.$route.params.name
|
|
|
- // this.loadTree()
|
|
|
+ handleAddSub(record) {
|
|
|
+ this.$refs.modalForm.title = '添加子标签'
|
|
|
+ this.$refs.modalForm.edit({
|
|
|
+ status: '1',
|
|
|
+ parentId: record.id,
|
|
|
+ tagCategoryId: record.tagCategoryId,
|
|
|
+ })
|
|
|
},
|
|
|
-
|
|
|
- }
|
|
|
+ handleExpandedRowsChange(expandedRows) {
|
|
|
+ this.expandedRowKeys = expandedRows
|
|
|
+ },
|
|
|
+ },
|
|
|
+}
|
|
|
</script>
|
|
|
<style scoped>
|
|
|
- .ant-card-body .table-operator {
|
|
|
- margin: 15px;
|
|
|
- }
|
|
|
-
|
|
|
- .anty-form-btn {
|
|
|
- width: 100%;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
-
|
|
|
- .anty-form-btn button {
|
|
|
- margin: 0 5px;
|
|
|
- }
|
|
|
-
|
|
|
- .anty-node-layout .ant-layout-header {
|
|
|
- padding-right: 0
|
|
|
- }
|
|
|
-
|
|
|
- .header {
|
|
|
- padding: 0 8px;
|
|
|
- }
|
|
|
-
|
|
|
- .header button {
|
|
|
- margin: 0 3px
|
|
|
- }
|
|
|
-
|
|
|
- .ant-modal-cust-warp {
|
|
|
- height: 100%
|
|
|
- }
|
|
|
-
|
|
|
- .ant-modal-cust-warp .ant-modal-body {
|
|
|
- height: calc(100% - 110px) !important;
|
|
|
- overflow-y: auto
|
|
|
- }
|
|
|
-
|
|
|
- .ant-modal-cust-warp .ant-modal-content {
|
|
|
- height: 90% !important;
|
|
|
- overflow-y: hidden
|
|
|
- }
|
|
|
-
|
|
|
- #app .desktop {
|
|
|
- height: auto !important;
|
|
|
- }
|
|
|
-
|
|
|
- /** Button按钮间距 */
|
|
|
- .ant-btn {
|
|
|
- margin-left: 3px
|
|
|
- }
|
|
|
-
|
|
|
- .drawer-bootom-button {
|
|
|
- /*position: absolute;*/
|
|
|
- bottom: 0;
|
|
|
- width: 100%;
|
|
|
- border-top: 1px solid #e8e8e8;
|
|
|
- padding: 10px 16px;
|
|
|
- text-align: left;
|
|
|
- left: 0;
|
|
|
- background: #fff;
|
|
|
- border-radius: 0 0 2px 2px;
|
|
|
- }
|
|
|
+@import '~@assets/less/common.less';
|
|
|
</style>
|