rpm vm 等模块的界面优化
This commit is contained in:
parent
f40bee35be
commit
8ef71cf24e
|
|
@ -15,5 +15,19 @@ export default {
|
|||
get: async function(data={}){
|
||||
return await http.get(this.url, data);
|
||||
}
|
||||
}
|
||||
},
|
||||
sms_code: {
|
||||
url: `${config.API_URL}/auth/sms_code/`,
|
||||
name: "获取验证码",
|
||||
req: async function(data={}){
|
||||
return await http.post(this.url, data);
|
||||
}
|
||||
},
|
||||
reset_password: {
|
||||
url: `${config.API_URL}/auth/reset_password/`,
|
||||
name: "重置密码",
|
||||
req: async function(data={}){
|
||||
return await http.post(this.url, data);
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -172,6 +172,40 @@ export default {
|
|||
}
|
||||
}
|
||||
},
|
||||
/*相关方文件 */
|
||||
rfile: {
|
||||
list: {
|
||||
name: "获取",
|
||||
req: async function (data) {
|
||||
return await http.get(
|
||||
`${config.API_URL}/rpm/rfile/`,
|
||||
data
|
||||
);
|
||||
}
|
||||
},
|
||||
read:{
|
||||
name: "详情",
|
||||
req: async function (id) {
|
||||
return await http.get(
|
||||
`${config.API_URL}/rpm/rfile/${id}/`);
|
||||
}
|
||||
},
|
||||
update: {
|
||||
name: "更新",
|
||||
req: async function (id, data) {
|
||||
return await http.put(
|
||||
`${config.API_URL}/rpm/rfile/${id}/`,
|
||||
data);
|
||||
}
|
||||
},
|
||||
delete: {
|
||||
name: "删除",
|
||||
req: async function (id) {
|
||||
return await http.delete(
|
||||
`${config.API_URL}/rpm/rfile/${id}/`);
|
||||
}
|
||||
}
|
||||
},
|
||||
/*相关方入场项目文件 */
|
||||
rpjfile: {
|
||||
list: {
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ export default {
|
|||
},
|
||||
role: {
|
||||
list: {
|
||||
url: `${config.API_URL}/system/role`,
|
||||
url: `${config.API_URL}/system/role/`,
|
||||
name: "获取角色列表",
|
||||
req: async function(data){
|
||||
return await http.get(this.url, data);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,386 @@
|
|||
<template>
|
||||
<div style="display:flex;row nowrap">
|
||||
<!-- <el-tag
|
||||
v-for="user in userData"
|
||||
:key="user.id"
|
||||
>
|
||||
{{ user.name }}
|
||||
</el-tag>-->
|
||||
<el-button
|
||||
v-if="selectable"
|
||||
type="primary"
|
||||
circle
|
||||
size="mini"
|
||||
icon="el-icon-plus"
|
||||
@click="showDialog()"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<el-dialog
|
||||
title="选择人员"
|
||||
width="70%"
|
||||
v-model="dialoguser"
|
||||
:before-close="handleClose"
|
||||
:append-to-body="true"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-row :gutter="4">
|
||||
<el-col :md="multiple?18:24" :sm="24">
|
||||
<el-card header="人员列表" shadow="never">
|
||||
<el-row >
|
||||
<!-- <el-col :md="6" :sm="24">
|
||||
<el-select v-model="query.type" placeholder="人员类型" @change="handleTypeChange">
|
||||
<el-option v-for="item in choseTypeOptions" :key="item" :label="item.label"
|
||||
:value="item.value"></el-option>
|
||||
</el-select>
|
||||
</el-col> -->
|
||||
<!-- <el-col :md="8" :sm="24">
|
||||
<el-cascader style="width:90%" v-model="query.depts" :options="deptdata" clearable placeholder="部门/单位" @change="handleQuery" :show-all-levels="false" :props="{emitPath:false}"/>
|
||||
</el-col>
|
||||
<el-col :md="8" :sm="24">
|
||||
<el-cascader style="width:90%" v-model="query.posts" :options="postdata" clearable placeholder="岗位" @change="handleQuery" :show-all-levels="false" :props="{emitPath:false}"/>
|
||||
</el-col> -->
|
||||
<el-col :md="8" :sm="24">
|
||||
<div style="display:flex">
|
||||
<el-input
|
||||
v-model="query.search"
|
||||
placeholder="姓名/身份证号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
></el-input>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
@click="handleQuery"
|
||||
></el-button>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
<scTable
|
||||
ref="table"
|
||||
:apiObj="apiObj"
|
||||
:params="params"
|
||||
row-key="id"
|
||||
@selection-change="selectionChange"
|
||||
stripe
|
||||
hideDo
|
||||
height="400px"
|
||||
@resetQuery="resetQuery"
|
||||
@row-click="rowClick"
|
||||
>
|
||||
<el-table-column type="selection" width="50" v-if="multiple" :reserve-selection="true"></el-table-column>
|
||||
<el-table-column
|
||||
label="#"
|
||||
type="index"
|
||||
width="50"
|
||||
></el-table-column>
|
||||
<el-table-column label="姓名" prop="name"></el-table-column>
|
||||
<el-table-column label="身份证号" prop="id_number"></el-table-column>
|
||||
<el-table-column label="手机号" prop="phone"></el-table-column>
|
||||
<el-table-column label="部门/单位" prop="belong_dept">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.belong_dept_">{{
|
||||
scope.row.belong_dept_.name
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="人员类型" prop="type">
|
||||
<template #default="scope">
|
||||
<span>{{userTypeOptions[scope.row.type]}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :md="6" :sm="24" v-if="multiple">
|
||||
<el-card shadow="never">
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>已选人员</span>
|
||||
<el-button type="danger" @click="clearChose" size="small">清空</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<el-tag v-for="item, index in selection" v-bind:key="item.id" style="margin-right:4px; margin-top: 4px" size="large">{{index+1}}-{{item.name}}</el-tag>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- <el-row>
|
||||
<el-col :md="16" :sm="24">
|
||||
<el-header style="border-bottom: none">
|
||||
<div class="left-panel">
|
||||
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<el-button type="primary" icon="el-icon-plus" @click="addUser" v-if="multiple"
|
||||
>添加选择</el-button>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
</el-main>
|
||||
<el-row style="padding-top: 8px">
|
||||
<el-col :md="16" :sm="24" v-if="multiple">
|
||||
<span style="font-weight:bold">已选人员:</span>{{username}}
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :md="8" :sm="24">
|
||||
<el-main class="nopadding">
|
||||
<el-tabs type="border-card" stretch="true">
|
||||
<el-tab-pane label="按部门分类">
|
||||
<el-input placeholder="输入关键字进行过滤" v-model="filterText">
|
||||
</el-input>
|
||||
|
||||
<el-tree
|
||||
class="filter-tree"
|
||||
style="padding-top: 15px"
|
||||
:data="deptdata"
|
||||
default-expand-all
|
||||
:filter-node-method="filterNode"
|
||||
ref="tree"
|
||||
@node-click="handleNodeClick"
|
||||
>
|
||||
</el-tree>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="按岗位分类">
|
||||
<el-input placeholder="输入关键字进行过滤" v-model="filterTexts">
|
||||
</el-input>
|
||||
|
||||
<el-tree
|
||||
class="filter-tree"
|
||||
style="padding-top: 15px"
|
||||
:data="postdata"
|
||||
default-expand-all
|
||||
:filter-node-method="filterNodes"
|
||||
ref="tree"
|
||||
@node-click="handleNodeClicks"
|
||||
>
|
||||
</el-tree>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-main>
|
||||
</el-col>
|
||||
</el-row> -->
|
||||
<template #footer v-if="multiple">
|
||||
<el-button @click="dialoguser = false"
|
||||
>取消</el-button>
|
||||
<el-button
|
||||
v-if="mode != 'show'"
|
||||
type="primary"
|
||||
:loading="isSaveing"
|
||||
@click="confirm()"
|
||||
>确定</el-button >
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { genTree } from "@/utils/verificate";
|
||||
export default {
|
||||
name: "userChoose",
|
||||
components: {},
|
||||
props: {
|
||||
value: {
|
||||
// 接受外部v-model传入的值
|
||||
type: [String],
|
||||
default: "",
|
||||
},
|
||||
user: {
|
||||
// 接受外部v-model传入的值
|
||||
type: [String],
|
||||
default: "",
|
||||
},
|
||||
closable: {
|
||||
// 是否可以关闭标签
|
||||
type: Boolean,
|
||||
default: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
selectable: {
|
||||
// 是否可选人员
|
||||
type: Boolean,
|
||||
default: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
multiple: {
|
||||
// 是否多选,默认可以多选
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
apiObj: this.$API.hrm.employee.list,
|
||||
params: {},
|
||||
query: {},
|
||||
selection: [],
|
||||
filterText: "",
|
||||
filterTexts: "",
|
||||
deptdata: [],
|
||||
postdata: [],
|
||||
username: [],
|
||||
userData: [],
|
||||
dialoguser: false,
|
||||
dataValue: this.value,
|
||||
choseData: {},
|
||||
// choseType: 'employee',
|
||||
// choseTypeOptions: [
|
||||
// {
|
||||
// value: 'employee',
|
||||
// label: '企业员工'
|
||||
// },
|
||||
// {
|
||||
// value: 'remployee',
|
||||
// label: '相关方'
|
||||
// }
|
||||
// ]
|
||||
userTypeOptions :{
|
||||
'employee': '企业员工',
|
||||
'remployee': '相关方',
|
||||
'visitor': '访客'
|
||||
}
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
// this.getDept();
|
||||
// this.getPost();
|
||||
},
|
||||
watch: {
|
||||
filterText(val) {
|
||||
this.$refs.tree.filter(val);
|
||||
},
|
||||
filterTexts(val) {
|
||||
this.$refs.tree.filter(val);
|
||||
},
|
||||
dataValue(val) {
|
||||
this.$emit("input", val);
|
||||
console.log(val);
|
||||
},
|
||||
userData(val) {
|
||||
if (val) {
|
||||
this.change();
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
showDialog() {
|
||||
this.dialoguser = true;
|
||||
// this.$nextTick(function () {
|
||||
// this.apiObj.map((item) => {
|
||||
// if (item.id === this.user) {
|
||||
// this.$refs.table.toggleRowSelection(item, true);
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
},
|
||||
//加载人员
|
||||
handleQuery() {
|
||||
this.$refs.table.queryData(this.query)
|
||||
},
|
||||
//加载部门树数据
|
||||
async getDept() {
|
||||
let res = await this.$API.system.dept.list.req({ page: 0 });
|
||||
this.deptdata = genTree(res);
|
||||
},
|
||||
//加载岗位树数据
|
||||
async getPost() {
|
||||
let res = await this.$API.system.post.list.req({ page: 0 });
|
||||
this.postdata = genTree(res);
|
||||
},
|
||||
// filterNode(value, data) {
|
||||
// console.log(value);
|
||||
// if (!value) return true;
|
||||
// return data.label.indexOf(value) !== -1;
|
||||
// },
|
||||
// filterNodes(value, data) {
|
||||
// console.log(value);
|
||||
// if (!value) return true;
|
||||
// return data.label.indexOf(value) !== -1;
|
||||
// },
|
||||
// //部门点击显示对应的人员
|
||||
// handleNodeClick(data) {
|
||||
// this.query.depts = data.id
|
||||
// this.handleQuery()
|
||||
// },
|
||||
// //岗位点击显示对应的人员
|
||||
// handleNodeClicks(data) {
|
||||
// this.query.posts = data.id
|
||||
// this.handleQuery()
|
||||
// },
|
||||
rowClick(row, column, event){
|
||||
if(!this.multiple){
|
||||
this.choseData = {'id': row.id, 'name': row.name}
|
||||
this.$emit("submit", this.choseData);
|
||||
this.dialoguser=false
|
||||
}
|
||||
},
|
||||
//表格选择后回调事件
|
||||
selectionChange(selection) {
|
||||
this.selection = selection;
|
||||
},
|
||||
//删除Tag
|
||||
// closeTag(name) {
|
||||
// this.userData.splice(this.userData.indexOf(name), 1);
|
||||
// },
|
||||
|
||||
// addUser() {
|
||||
// this.username = [];
|
||||
// this.userData = [];
|
||||
// if (!this.multiple && this.selection.length > 1) {
|
||||
// this.$message.error("对应的人员只允许选择一人!");
|
||||
|
||||
// return;
|
||||
// }
|
||||
// if (!this.selection || this.selection.length === 0) {
|
||||
// this.msgError("请选择至少一个人员!");
|
||||
// return;
|
||||
// }
|
||||
// this.selection.forEach((item) => {
|
||||
// this.username.push(item.name);
|
||||
|
||||
// this.userData.push({ id: item.id, name: item.name });
|
||||
// });
|
||||
// console.log(this.userData);
|
||||
// },
|
||||
|
||||
// change() {
|
||||
// if (this.tags) {
|
||||
// alert(1);
|
||||
// this.dataValue = this.userData.map((e) => e.id).join(",");
|
||||
// console.log(this.dataValue);
|
||||
// this.$emit("change", this.dataValue);
|
||||
// }
|
||||
// },
|
||||
clearChose() {
|
||||
this.$refs.table.clearSelection()
|
||||
},
|
||||
confirm() {
|
||||
this.dialoguser = false;
|
||||
// this.change(); // 触发值变化
|
||||
// this.dataValue = this.userData.map((e) => e.id).join(",");
|
||||
this.$emit("submit", this.selection);
|
||||
},
|
||||
//权限设置
|
||||
// permission() {
|
||||
// this.dialog.permission = true;
|
||||
// this.$nextTick(() => {
|
||||
// this.$refs.permissionDialog.open();
|
||||
// });
|
||||
// },
|
||||
|
||||
resetQuery() {
|
||||
this.query = {};
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.card-header{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
@ -0,0 +1,390 @@
|
|||
<template>
|
||||
<div style="display:flex;row nowrap">
|
||||
<!-- <el-tag
|
||||
v-for="user in userData"
|
||||
:key="user.id"
|
||||
>
|
||||
{{ user.name }}
|
||||
</el-tag>-->
|
||||
<el-button
|
||||
v-if="selectable"
|
||||
type="primary"
|
||||
circle
|
||||
size="mini"
|
||||
icon="el-icon-plus"
|
||||
@click="showDialog()"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<el-dialog
|
||||
title="选择账号"
|
||||
width="70%"
|
||||
v-model="dialoguser"
|
||||
:before-close="handleClose"
|
||||
:append-to-body="true"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-row :gutter="4">
|
||||
<el-col :md="multiple?18:24" :sm="24">
|
||||
<el-card header="账号列表" shadow="never">
|
||||
<el-row >
|
||||
<!-- <el-col :md="6" :sm="24">
|
||||
<el-select v-model="query.type" placeholder="人员类型" @change="handleTypeChange">
|
||||
<el-option v-for="item in choseTypeOptions" :key="item" :label="item.label"
|
||||
:value="item.value"></el-option>
|
||||
</el-select>
|
||||
</el-col> -->
|
||||
<el-col :md="8" :sm="24">
|
||||
<el-cascader style="width:90%" v-model="query.depts" :options="deptdata" clearable placeholder="部门/单位" @change="handleQuery" :show-all-levels="false" :props="{emitPath:false}"/>
|
||||
</el-col>
|
||||
<el-col :md="8" :sm="24">
|
||||
<el-cascader style="width:90%" v-model="query.posts" :options="postdata" clearable placeholder="岗位" @change="handleQuery" :show-all-levels="false" :props="{emitPath:false}"/>
|
||||
</el-col>
|
||||
<el-col :md="8" :sm="24">
|
||||
<div style="display:flex">
|
||||
<el-input
|
||||
v-model="query.search"
|
||||
placeholder="账户/姓名"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
></el-input>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
@click="handleQuery"
|
||||
></el-button>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
<scTable
|
||||
ref="table"
|
||||
:apiObj="apiObj"
|
||||
:params="params"
|
||||
row-key="id"
|
||||
@selection-change="selectionChange"
|
||||
stripe
|
||||
hideDo
|
||||
height="400px"
|
||||
@resetQuery="resetQuery"
|
||||
@row-click="rowClick"
|
||||
>
|
||||
<el-table-column type="selection" width="50" v-if="multiple" :reserve-selection="true"></el-table-column>
|
||||
<el-table-column
|
||||
label="#"
|
||||
type="index"
|
||||
width="50"
|
||||
></el-table-column>
|
||||
<el-table-column label="姓名" prop="name"></el-table-column>
|
||||
|
||||
<el-table-column label="手机号" prop="phone"></el-table-column>
|
||||
<el-table-column label="部门" prop="belong_dept">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.belong_dept_">{{
|
||||
scope.row.belong_dept_.name
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="账号类型" prop="type">
|
||||
<template #default="scope">
|
||||
<span>{{userTypeOptions[scope.row.type]}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="创建时间"
|
||||
prop="create_time"
|
||||
></el-table-column>
|
||||
</scTable>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :md="6" :sm="24" v-if="multiple">
|
||||
<el-card shadow="never">
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<span>已选人员</span>
|
||||
<el-button type="danger" @click="clearChose" size="small">清空</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<el-tag v-for="item, index in selection" v-bind:key="item.id" style="margin-right:4px; margin-top: 4px" size="large">{{index+1}}-{{item.name}}</el-tag>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!-- <el-row>
|
||||
<el-col :md="16" :sm="24">
|
||||
<el-header style="border-bottom: none">
|
||||
<div class="left-panel">
|
||||
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<el-button type="primary" icon="el-icon-plus" @click="addUser" v-if="multiple"
|
||||
>添加选择</el-button>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
</el-main>
|
||||
<el-row style="padding-top: 8px">
|
||||
<el-col :md="16" :sm="24" v-if="multiple">
|
||||
<span style="font-weight:bold">已选人员:</span>{{username}}
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :md="8" :sm="24">
|
||||
<el-main class="nopadding">
|
||||
<el-tabs type="border-card" stretch="true">
|
||||
<el-tab-pane label="按部门分类">
|
||||
<el-input placeholder="输入关键字进行过滤" v-model="filterText">
|
||||
</el-input>
|
||||
|
||||
<el-tree
|
||||
class="filter-tree"
|
||||
style="padding-top: 15px"
|
||||
:data="deptdata"
|
||||
default-expand-all
|
||||
:filter-node-method="filterNode"
|
||||
ref="tree"
|
||||
@node-click="handleNodeClick"
|
||||
>
|
||||
</el-tree>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="按岗位分类">
|
||||
<el-input placeholder="输入关键字进行过滤" v-model="filterTexts">
|
||||
</el-input>
|
||||
|
||||
<el-tree
|
||||
class="filter-tree"
|
||||
style="padding-top: 15px"
|
||||
:data="postdata"
|
||||
default-expand-all
|
||||
:filter-node-method="filterNodes"
|
||||
ref="tree"
|
||||
@node-click="handleNodeClicks"
|
||||
>
|
||||
</el-tree>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-main>
|
||||
</el-col>
|
||||
</el-row> -->
|
||||
<template #footer v-if="multiple">
|
||||
<el-button @click="dialoguser = false"
|
||||
>取消</el-button>
|
||||
<el-button
|
||||
v-if="mode != 'show'"
|
||||
type="primary"
|
||||
:loading="isSaveing"
|
||||
@click="confirm()"
|
||||
>确定</el-button >
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { genTree } from "@/utils/verificate";
|
||||
export default {
|
||||
name: "userChoose",
|
||||
components: {},
|
||||
props: {
|
||||
value: {
|
||||
// 接受外部v-model传入的值
|
||||
type: [String],
|
||||
default: "",
|
||||
},
|
||||
user: {
|
||||
// 接受外部v-model传入的值
|
||||
type: [String],
|
||||
default: "",
|
||||
},
|
||||
closable: {
|
||||
// 是否可以关闭标签
|
||||
type: Boolean,
|
||||
default: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
selectable: {
|
||||
// 是否可选人员
|
||||
type: Boolean,
|
||||
default: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
multiple: {
|
||||
// 是否多选,默认可以多选
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
apiObj: this.$API.system.user.list,
|
||||
params: {},
|
||||
query: {},
|
||||
selection: [],
|
||||
filterText: "",
|
||||
filterTexts: "",
|
||||
deptdata: [],
|
||||
postdata: [],
|
||||
username: [],
|
||||
userData: [],
|
||||
dialoguser: false,
|
||||
dataValue: this.value,
|
||||
choseData: {},
|
||||
// choseType: 'employee',
|
||||
// choseTypeOptions: [
|
||||
// {
|
||||
// value: 'employee',
|
||||
// label: '企业员工'
|
||||
// },
|
||||
// {
|
||||
// value: 'remployee',
|
||||
// label: '相关方'
|
||||
// }
|
||||
// ]
|
||||
userTypeOptions :{
|
||||
'employee': '企业员工',
|
||||
'remployee': '相关方',
|
||||
'visitor': '访客'
|
||||
}
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getDept();
|
||||
this.getPost();
|
||||
},
|
||||
watch: {
|
||||
filterText(val) {
|
||||
this.$refs.tree.filter(val);
|
||||
},
|
||||
filterTexts(val) {
|
||||
this.$refs.tree.filter(val);
|
||||
},
|
||||
dataValue(val) {
|
||||
this.$emit("input", val);
|
||||
console.log(val);
|
||||
},
|
||||
userData(val) {
|
||||
if (val) {
|
||||
this.change();
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
showDialog() {
|
||||
this.dialoguser = true;
|
||||
// this.$nextTick(function () {
|
||||
// this.apiObj.map((item) => {
|
||||
// if (item.id === this.user) {
|
||||
// this.$refs.table.toggleRowSelection(item, true);
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
},
|
||||
//加载人员
|
||||
handleQuery() {
|
||||
this.$refs.table.queryData(this.query)
|
||||
},
|
||||
//加载部门树数据
|
||||
async getDept() {
|
||||
let res = await this.$API.system.dept.list.req({ page: 0 });
|
||||
this.deptdata = genTree(res);
|
||||
},
|
||||
//加载岗位树数据
|
||||
async getPost() {
|
||||
let res = await this.$API.system.post.list.req({ page: 0 });
|
||||
this.postdata = genTree(res);
|
||||
},
|
||||
// filterNode(value, data) {
|
||||
// console.log(value);
|
||||
// if (!value) return true;
|
||||
// return data.label.indexOf(value) !== -1;
|
||||
// },
|
||||
// filterNodes(value, data) {
|
||||
// console.log(value);
|
||||
// if (!value) return true;
|
||||
// return data.label.indexOf(value) !== -1;
|
||||
// },
|
||||
// //部门点击显示对应的人员
|
||||
// handleNodeClick(data) {
|
||||
// this.query.depts = data.id
|
||||
// this.handleQuery()
|
||||
// },
|
||||
// //岗位点击显示对应的人员
|
||||
// handleNodeClicks(data) {
|
||||
// this.query.posts = data.id
|
||||
// this.handleQuery()
|
||||
// },
|
||||
rowClick(row, column, event){
|
||||
if(!this.multiple){
|
||||
this.choseData = {'id': row.id, 'name': row.name}
|
||||
this.$emit("submit", this.choseData);
|
||||
this.dialoguser=false
|
||||
}
|
||||
},
|
||||
//表格选择后回调事件
|
||||
selectionChange(selection) {
|
||||
this.selection = selection;
|
||||
},
|
||||
//删除Tag
|
||||
// closeTag(name) {
|
||||
// this.userData.splice(this.userData.indexOf(name), 1);
|
||||
// },
|
||||
|
||||
// addUser() {
|
||||
// this.username = [];
|
||||
// this.userData = [];
|
||||
// if (!this.multiple && this.selection.length > 1) {
|
||||
// this.$message.error("对应的人员只允许选择一人!");
|
||||
|
||||
// return;
|
||||
// }
|
||||
// if (!this.selection || this.selection.length === 0) {
|
||||
// this.msgError("请选择至少一个人员!");
|
||||
// return;
|
||||
// }
|
||||
// this.selection.forEach((item) => {
|
||||
// this.username.push(item.name);
|
||||
|
||||
// this.userData.push({ id: item.id, name: item.name });
|
||||
// });
|
||||
// console.log(this.userData);
|
||||
// },
|
||||
|
||||
// change() {
|
||||
// if (this.tags) {
|
||||
// alert(1);
|
||||
// this.dataValue = this.userData.map((e) => e.id).join(",");
|
||||
// console.log(this.dataValue);
|
||||
// this.$emit("change", this.dataValue);
|
||||
// }
|
||||
// },
|
||||
clearChose() {
|
||||
this.$refs.table.clearSelection()
|
||||
},
|
||||
confirm() {
|
||||
this.dialoguser = false;
|
||||
// this.change(); // 触发值变化
|
||||
// this.dataValue = this.userData.map((e) => e.id).join(",");
|
||||
this.$emit("submit", this.selection);
|
||||
},
|
||||
//权限设置
|
||||
// permission() {
|
||||
// this.dialog.permission = true;
|
||||
// this.$nextTick(() => {
|
||||
// this.$refs.permissionDialog.open();
|
||||
// });
|
||||
// },
|
||||
|
||||
resetQuery() {
|
||||
this.query = {};
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.card-header{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
@ -187,7 +187,7 @@
|
|||
<el-card header="作业人员" style="margin-top:8px" shadow="hover">
|
||||
<scTable
|
||||
ref="workerTable"
|
||||
:data="apiworkerObj"
|
||||
:data="workerData"
|
||||
row-key="id"
|
||||
hidePagination
|
||||
stripe
|
||||
|
|
@ -232,7 +232,7 @@
|
|||
<el-card header="气体检测记录" style="margin-top: 8px" shadow="hover">
|
||||
<scTable
|
||||
ref="gasTable"
|
||||
:data="apigasObj"
|
||||
:data="gasData"
|
||||
row-key="id"
|
||||
hidePagination
|
||||
stripe
|
||||
|
|
@ -337,10 +337,10 @@
|
|||
{value: 40, label: "电工"},
|
||||
],
|
||||
certificatesOptions: [],
|
||||
apiworkerObj: [],
|
||||
workerData: [],
|
||||
workerdialog: false,
|
||||
gasdialog: false,
|
||||
apigasObj: [],
|
||||
gasData: [],
|
||||
is_ok_: {
|
||||
true: "正常",
|
||||
false: "不正常",
|
||||
|
|
@ -413,15 +413,15 @@
|
|||
// });
|
||||
// },
|
||||
//作业人员列表
|
||||
getworkerList(id) {
|
||||
this.$API.opm.worker.list.req({opl: id, page: 0}).then((res) => {
|
||||
this.apiworkerObj = res;
|
||||
getworkerList() {
|
||||
this.$API.opm.worker.list.req({opl: this.oplId, page: 0}).then((res) => {
|
||||
this.workerData = res;
|
||||
});
|
||||
},
|
||||
//气体检测记录列表
|
||||
getgasList(id) {
|
||||
this.$API.opm.gas.list.req({opl: id, page: 0}).then((res) => {
|
||||
this.apigasObj = res;
|
||||
getgasList() {
|
||||
this.$API.opm.gas.list.req({opl: this.oplId, page: 0}).then((res) => {
|
||||
this.gasData = res;
|
||||
});
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -232,15 +232,15 @@ const routes = [
|
|||
"component": "wf/ccwork"
|
||||
},
|
||||
{
|
||||
"name": "visitdetail",
|
||||
"path": "/wf/visitdetail",
|
||||
"name": "ticketdetail",
|
||||
"path": "/wf/ticketdetail",
|
||||
"meta": {
|
||||
"title": "工单详情",
|
||||
"icon": "el-icon-menu",
|
||||
"hidden": true,
|
||||
"perms": ["allwork"]
|
||||
},
|
||||
"component": "wf/visitdetail"
|
||||
"component": "wf/ticketdetail"
|
||||
},
|
||||
|
||||
|
||||
|
|
@ -413,7 +413,7 @@ const routes = [
|
|||
"name": "remployee",
|
||||
"path": "/rpm/remployee",
|
||||
"meta": {
|
||||
"title": "相关方人员",
|
||||
"title": "我的人员",
|
||||
"icon": "el-icon-user",
|
||||
"perms": ["remployee"]
|
||||
},
|
||||
|
|
@ -423,7 +423,7 @@ const routes = [
|
|||
"name": "rcertificate",
|
||||
"path": "/rpm/rcertificate",
|
||||
"meta": {
|
||||
"title": "人员证书",
|
||||
"title": "我的证书",
|
||||
"icon": "el-icon-postcard",
|
||||
"perms": ["rcertificate"]
|
||||
},
|
||||
|
|
@ -433,7 +433,7 @@ const routes = [
|
|||
"name": "rfile",
|
||||
"path": "/rpm/rfile",
|
||||
"meta": {
|
||||
"title": "资料库",
|
||||
"title": "我的资料",
|
||||
"icon": "el-icon-shopping-bag",
|
||||
"perms": ["rfile"]
|
||||
},
|
||||
|
|
@ -487,9 +487,9 @@ const routes = [
|
|||
"name": "visitor",
|
||||
"path": "/vm/visitor",
|
||||
"meta": {
|
||||
"title": "来访人员",
|
||||
"title": "我的访客",
|
||||
"icon": "el-icon-user",
|
||||
"perms": ["visitor"]
|
||||
"perms": ["visit"]
|
||||
},
|
||||
"component": "vm/visitor"
|
||||
},{
|
||||
|
|
@ -507,7 +507,7 @@ const routes = [
|
|||
"name": "vistoradd",
|
||||
"path": "/vm/vistoradd",
|
||||
"meta": {
|
||||
"title": "来访项目相关信息",
|
||||
"title": "项目信息",
|
||||
"icon": "el-icon-menu",
|
||||
"hidden": true,
|
||||
"perms": ["visit"]
|
||||
|
|
@ -594,7 +594,7 @@ const routes = [
|
|||
"name": "employee",
|
||||
"path": "/hrm/employee",
|
||||
"meta": {
|
||||
"title": "企业员工",
|
||||
"title": "人员信息",
|
||||
"icon": "el-icon-user",
|
||||
"perms": ["employee"]
|
||||
},
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import tool from '@/utils/tool'
|
|||
export default {
|
||||
successCode: 200, //请求完成代码
|
||||
pageSize: 20, //表格每一页条数
|
||||
pageSizes: [10, 20, 30, 40, 50], //表格可设置的一页条数
|
||||
pageSizes: [1, 10, 20, 30, 40, 50], //表格可设置的一页条数
|
||||
paginationLayout: "total, sizes, prev, pager, next, jumper", //表格分页布局,可设置"total, sizes, prev, pager, next, jumper"
|
||||
parseData: function (res) { //数据分析
|
||||
return {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
import ehsUserSelect from './components/ehsSelect/userselect'
|
||||
import ehsEpSelect from './components/ehsSelect/epselect'
|
||||
export default {
|
||||
install(app) {
|
||||
app.component('ehsUserSelect', ehsUserSelect);
|
||||
app.component('ehsEpSelect', ehsEpSelect);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,327 +0,0 @@
|
|||
<template>
|
||||
<div style="display:flex;row nowrap">
|
||||
<!-- <el-tag
|
||||
v-for="user in userData"
|
||||
:key="user.id"
|
||||
>
|
||||
{{ user.name }}
|
||||
</el-tag>-->
|
||||
<el-button
|
||||
v-if="selectable"
|
||||
type="primary"
|
||||
circle
|
||||
size="mini"
|
||||
icon="el-icon-plus"
|
||||
@click="showDialog()"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<el-dialog
|
||||
title="选择人员"
|
||||
width="80%"
|
||||
height="100px"
|
||||
v-model="dialoguser"
|
||||
:before-close="handleClose"
|
||||
:append-to-body="true"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :md="8" :sm="24">
|
||||
<el-main class="nopadding">
|
||||
<el-tabs type="border-card" stretch="true">
|
||||
<el-tab-pane label="按部门分类">
|
||||
<el-input placeholder="输入关键字进行过滤" v-model="filterText">
|
||||
</el-input>
|
||||
|
||||
<el-tree
|
||||
class="filter-tree"
|
||||
style="padding-top: 15px"
|
||||
:data="deptdata"
|
||||
default-expand-all
|
||||
:filter-node-method="filterNode"
|
||||
ref="tree"
|
||||
@node-click="handleNodeClick"
|
||||
>
|
||||
</el-tree>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="按岗位分类">
|
||||
<el-input placeholder="输入关键字进行过滤" v-model="filterTexts">
|
||||
</el-input>
|
||||
|
||||
<el-tree
|
||||
class="filter-tree"
|
||||
style="padding-top: 15px"
|
||||
:data="postdata"
|
||||
default-expand-all
|
||||
:filter-node-method="filterNodes"
|
||||
ref="tree"
|
||||
@node-click="handleNodeClicks"
|
||||
>
|
||||
</el-tree>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-main>
|
||||
</el-col>
|
||||
<el-col :md="16" :sm="24">
|
||||
<el-header style="border-bottom: none">
|
||||
<div class="left-panel">
|
||||
<el-input
|
||||
v-model="search.keyword"
|
||||
placeholder="姓名"
|
||||
clearable
|
||||
@click="handleQuery"
|
||||
></el-input>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
@click="handleQuery"
|
||||
></el-button>
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<el-button type="primary" icon="el-icon-plus" @click="addUser"
|
||||
>添加选择</el-button
|
||||
>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="table"
|
||||
:data="apiObj"
|
||||
row-key="id"
|
||||
@selection-change="selectionChange"
|
||||
stripe
|
||||
hideDo
|
||||
@resetQuery="resetQuery"
|
||||
>
|
||||
<el-table-column type="selection" width="50"></el-table-column>
|
||||
<el-table-column
|
||||
label="#"
|
||||
type="index"
|
||||
width="50"
|
||||
></el-table-column>
|
||||
<el-table-column label="姓名" prop="name"></el-table-column>
|
||||
|
||||
<el-table-column label="手机号" prop="phone"></el-table-column>
|
||||
<el-table-column label="部门" prop="belong_dept">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.belong_dept_">{{
|
||||
scope.row.belong_dept_.name
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="创建时间"
|
||||
prop="create_time"
|
||||
></el-table-column>
|
||||
</scTable>
|
||||
</el-main>
|
||||
<el-row style="padding-top: 8px">
|
||||
<el-col :md="16" :sm="24">
|
||||
<span style="font-weight:bold">已选人员:</span>{{username}}
|
||||
</el-col>
|
||||
<el-col :md="8" :sm="24" style="text-align:right">
|
||||
<el-button @click="visible = false"
|
||||
>取 消</el-button>
|
||||
<el-button
|
||||
v-if="mode != 'show'"
|
||||
type="primary"
|
||||
:loading="isSaveing"
|
||||
@click="submitfrom()"
|
||||
>提 交</el-button >
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import { genTree } from "@/utils/verificate";
|
||||
export default {
|
||||
name: "employee",
|
||||
components: {},
|
||||
props: {
|
||||
value: {
|
||||
// 接受外部v-model传入的值
|
||||
type: [String],
|
||||
default: "",
|
||||
},
|
||||
user: {
|
||||
// 接受外部v-model传入的值
|
||||
type: [String],
|
||||
default: "",
|
||||
},
|
||||
closable: {
|
||||
// 是否可以关闭标签
|
||||
type: Boolean,
|
||||
default: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
selectable: {
|
||||
// 是否可选人员
|
||||
type: Boolean,
|
||||
default: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
multiple: {
|
||||
// 是否多选,默认可以多选
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
apiObj: [],
|
||||
query: {},
|
||||
selection: [],
|
||||
search: {
|
||||
keyword: null,
|
||||
},
|
||||
filterText: "",
|
||||
filterTexts: "",
|
||||
deptdata: [],
|
||||
postdata: [],
|
||||
username: [],
|
||||
userData: [],
|
||||
dialoguser: false,
|
||||
dataValue: this.value,
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getUser();
|
||||
this.getDept();
|
||||
this.getPost();
|
||||
},
|
||||
watch: {
|
||||
filterText(val) {
|
||||
this.$refs.tree.filter(val);
|
||||
},
|
||||
filterTexts(val) {
|
||||
this.$refs.tree.filter(val);
|
||||
},
|
||||
dataValue(val) {
|
||||
this.$emit("input", val);
|
||||
console.log(val);
|
||||
},
|
||||
userData(val) {
|
||||
if (val) {
|
||||
this.change();
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
showDialog() {
|
||||
this.dialoguser = true;
|
||||
this.$nextTick(function () {
|
||||
this.apiObj.map((item) => {
|
||||
if (item.id === this.user) {
|
||||
this.$refs.table.toggleRowSelection(item, true);
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
//加载人员
|
||||
getUser() {
|
||||
this.$API.system.user.list.req({ page: 0 }).then((res) => {
|
||||
this.apiObj = res;
|
||||
});
|
||||
},
|
||||
handleQuery() {
|
||||
this.$API.system.user.list
|
||||
.req({ name: this.search.keyword, page: 0 })
|
||||
.then((res) => {
|
||||
this.apiObj = res;
|
||||
});
|
||||
},
|
||||
//加载部门树数据
|
||||
async getDept() {
|
||||
let res = await this.$API.system.dept.list.req({ page: 0 });
|
||||
this.deptdata = genTree(res);
|
||||
},
|
||||
//加载部门树数据
|
||||
async getPost() {
|
||||
let res = await this.$API.system.post.list.req({ page: 0 });
|
||||
this.postdata = genTree(res);
|
||||
},
|
||||
filterNode(value, data) {
|
||||
console.log(value);
|
||||
if (!value) return true;
|
||||
return data.label.indexOf(value) !== -1;
|
||||
},
|
||||
filterNodes(value, data) {
|
||||
console.log(value);
|
||||
if (!value) return true;
|
||||
return data.label.indexOf(value) !== -1;
|
||||
},
|
||||
//部门点击显示对应的人员
|
||||
handleNodeClick(data) {
|
||||
this.$API.system.user.list
|
||||
.req({ belong_dept: data.id, page: 0 })
|
||||
.then((res) => {
|
||||
this.apiObj = res;
|
||||
});
|
||||
},
|
||||
//岗位点击显示对应的人员
|
||||
handleNodeClicks(data) {
|
||||
this.$API.system.user.list.req({ post: data.id, page: 0 }).then((res) => {
|
||||
this.apiObj = res;
|
||||
});
|
||||
},
|
||||
//表格选择后回调事件
|
||||
selectionChange(selection) {
|
||||
this.selection = selection;
|
||||
},
|
||||
//删除Tag
|
||||
closeTag(name) {
|
||||
this.userData.splice(this.userData.indexOf(name), 1);
|
||||
},
|
||||
|
||||
addUser() {
|
||||
this.username = [];
|
||||
this.userData = [];
|
||||
if (!this.multiple && this.selection.length > 1) {
|
||||
this.$message.error("对应的人员只允许选择一人!");
|
||||
|
||||
return;
|
||||
}
|
||||
if (!this.selection || this.selection.length === 0) {
|
||||
this.msgError("请选择至少一个人员!");
|
||||
return;
|
||||
}
|
||||
this.selection.forEach((item) => {
|
||||
this.username.push(item.name);
|
||||
|
||||
this.userData.push({ id: item.id, name: item.name });
|
||||
});
|
||||
console.log(this.userData);
|
||||
},
|
||||
|
||||
change() {
|
||||
if (this.tags) {
|
||||
alert(1);
|
||||
this.dataValue = this.userData.map((e) => e.id).join(",");
|
||||
console.log(this.dataValue);
|
||||
this.$emit("change", this.dataValue);
|
||||
}
|
||||
},
|
||||
submitfrom() {
|
||||
this.dialoguser = false;
|
||||
this.change(); // 触发值变化
|
||||
this.dataValue = this.userData.map((e) => e.id).join(",");
|
||||
this.$emit("submit", this.dataValue);
|
||||
},
|
||||
//权限设置
|
||||
permission() {
|
||||
this.dialog.permission = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.permissionDialog.open();
|
||||
});
|
||||
},
|
||||
|
||||
resetQuery() {
|
||||
this.query = {};
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
@ -2,6 +2,7 @@ import ElementPlus from 'element-plus'
|
|||
import 'element-plus/dist/index.css'
|
||||
import 'element-plus/theme-chalk/display.css'
|
||||
import scui from './scui'
|
||||
import ehsui from './ehs'
|
||||
import i18n from './locales'
|
||||
import router from './router'
|
||||
import store from './store'
|
||||
|
|
@ -16,6 +17,7 @@ app.use(router);
|
|||
app.use(ElementPlus);
|
||||
app.use(i18n);
|
||||
app.use(scui);
|
||||
app.use(ehsui);
|
||||
|
||||
//挂载app
|
||||
app.mount('#app');
|
||||
|
|
|
|||
|
|
@ -41,14 +41,14 @@ axios.interceptors.response.use(
|
|||
message: "账户密码错误或已禁用"
|
||||
});
|
||||
}else{
|
||||
ElMessageBox.confirm('当前用户已被登出或无权限访问当前资源,请尝试重新登录后再操作。', '无权限访问', {
|
||||
type: 'error',
|
||||
closeOnClickModal: false,
|
||||
center: true,
|
||||
confirmButtonText: '重新登录'
|
||||
}).then(() => {
|
||||
// ElMessageBox.confirm('当前用户已被登出或无权限访问当前资源,请尝试重新登录后再操作。', '无权限访问', {
|
||||
// type: 'error',
|
||||
// closeOnClickModal: false,
|
||||
// center: true,
|
||||
// confirmButtonText: '重新登录'
|
||||
// }).then(() => {
|
||||
router.replace({path: '/login'});
|
||||
}).catch(() => {})
|
||||
// }).catch(() => {})
|
||||
}
|
||||
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -39,7 +39,6 @@
|
|||
<el-select
|
||||
v-model="form.obj_cate"
|
||||
style="width: 100%"
|
||||
@change="cateChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in cateOptions"
|
||||
|
|
@ -50,7 +49,7 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24" v-show="postshow">
|
||||
<el-col :md="12" :sm="24" v-show="form.obj_cate=='post'">
|
||||
<el-form-item label="关联岗位" prop="post">
|
||||
<el-select v-model="form.post" style="width: 100%">
|
||||
<el-option
|
||||
|
|
@ -62,19 +61,15 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24" v-show="peopleshow">
|
||||
<el-col :md="12" :sm="24" v-show="form.obj_cate=='people'">
|
||||
<el-form-item label="关联人员" prop="employee">
|
||||
<el-select v-model="form.employee" style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in employeeOptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
<span style="display:flex">
|
||||
<el-input readonly v-model="form.employee_name"></el-input>
|
||||
<ehsEpSelect :multiple="false" @submit="getEmployee"/>
|
||||
</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24" v-show="orgshow">
|
||||
<el-col :md="12" :sm="24" v-show="form.obj_cate=='org'">
|
||||
<el-form-item label="关联部门" prop="dept">
|
||||
<el-cascader
|
||||
v-model="form.dept"
|
||||
|
|
@ -108,7 +103,14 @@
|
|||
></el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :md="12" :sm="12" :xs="24">
|
||||
<el-form-item label="排序">
|
||||
<el-input-number
|
||||
v-model="form.sort"
|
||||
controls-position="right"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
|
|
@ -139,7 +141,7 @@ export default {
|
|||
},
|
||||
cateOptions: [
|
||||
{ id: "post", name: "岗位" },
|
||||
{ id: "org", name: "单位" },
|
||||
{ id: "org", name: "部门/单位" },
|
||||
{ id: "people", name: "人员" },
|
||||
],
|
||||
|
||||
|
|
@ -172,7 +174,7 @@ export default {
|
|||
mounted() {
|
||||
this.getArea();
|
||||
this.getPost();
|
||||
this.getEmployee();
|
||||
// this.getEmployee();
|
||||
this.getDept();
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -188,12 +190,16 @@ export default {
|
|||
this.postOptions = res;
|
||||
});
|
||||
},
|
||||
getEmployee(data){
|
||||
this.form.employee=data.id;
|
||||
this.form.employee_name=data.name
|
||||
},
|
||||
//关联人员
|
||||
getEmployee() {
|
||||
this.$API.hrm.employee.list.req({ page: 0 }).then((res) => {
|
||||
this.employeeOptions = res;
|
||||
});
|
||||
},
|
||||
// getEmployee() {
|
||||
// this.$API.hrm.employee.list.req({ page: 0 }).then((res) => {
|
||||
// this.employeeOptions = res;
|
||||
// });
|
||||
// },
|
||||
//关联部门
|
||||
getDept() {
|
||||
this.$API.system.dept.list.req({ page: 0 }).then((res) => {
|
||||
|
|
@ -202,22 +208,22 @@ export default {
|
|||
},
|
||||
|
||||
//
|
||||
cateChange() {
|
||||
if (this.form.obj_cate == 'post') {
|
||||
// cateChange() {
|
||||
// if (this.form.obj_cate == 'post') {
|
||||
|
||||
this.postshow=true;
|
||||
this.peopleshow=false;
|
||||
this.orgshow=false;
|
||||
} else if (this.form.obj_cate == "people") {
|
||||
this.postshow=false;
|
||||
this.peopleshow=true;
|
||||
this.orgshow=false;
|
||||
} else {
|
||||
this.postshow=false;
|
||||
this.peopleshow=false;
|
||||
this.orgshow=true;
|
||||
}
|
||||
},
|
||||
// this.postshow=true;
|
||||
// this.peopleshow=false;
|
||||
// this.orgshow=false;
|
||||
// } else if (this.form.obj_cate == "people") {
|
||||
// this.postshow=false;
|
||||
// this.peopleshow=true;
|
||||
// this.orgshow=false;
|
||||
// } else {
|
||||
// this.postshow=false;
|
||||
// this.peopleshow=false;
|
||||
// this.orgshow=true;
|
||||
// }
|
||||
// },
|
||||
//显示
|
||||
open(mode) {
|
||||
this.mode = mode;
|
||||
|
|
@ -242,6 +248,7 @@ export default {
|
|||
.then((res) => {
|
||||
this.isSaveing = false;
|
||||
this.visible = false;
|
||||
console.log('x')
|
||||
this.$emit("success", this.form, this.mode);
|
||||
this.$message.success("操作成功");
|
||||
return res;
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
<div class="right-panel-search">
|
||||
<el-input
|
||||
v-model="search.keyword"
|
||||
placeholder="姓名/手机号"
|
||||
placeholder="编号/名称"
|
||||
clearable
|
||||
@click="handleQuery"
|
||||
></el-input>
|
||||
|
|
@ -36,6 +36,8 @@
|
|||
stripe
|
||||
@resetQuery="resetQuery"
|
||||
@row-click="rowClick"
|
||||
hidePagination
|
||||
hideDo
|
||||
>
|
||||
<el-table-column
|
||||
label="序号"
|
||||
|
|
@ -53,7 +55,6 @@
|
|||
label="区域名称"
|
||||
prop="name"
|
||||
min-width="150"
|
||||
fixed="left"
|
||||
></el-table-column>
|
||||
<el-table-column label="区域类型" min-width="100">
|
||||
<template #default="scope">{{
|
||||
|
|
@ -105,7 +106,7 @@
|
|||
></el-table-column>
|
||||
<el-table-column
|
||||
label="所属部门"
|
||||
prop="create_time"
|
||||
prop="belong_dept_name"
|
||||
min-width="180"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
|
|
@ -164,7 +165,7 @@
|
|||
@click="handleFormaccess('add')"
|
||||
></el-button>
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<!-- <div class="right-panel">
|
||||
<div class="right-panel-search">
|
||||
<el-input
|
||||
v-model="search.keyword"
|
||||
|
|
@ -178,15 +179,17 @@
|
|||
@click="handleQuery"
|
||||
></el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="accesstable"
|
||||
:data="apiaccessObj"
|
||||
:apiObj="apiObj2"
|
||||
row-key="id"
|
||||
stripe
|
||||
@resetQuery="resetQuery"
|
||||
hidePagination
|
||||
hideDo
|
||||
>
|
||||
<el-table-column
|
||||
label="序号"
|
||||
|
|
@ -212,6 +215,17 @@
|
|||
cate_[scope.row.obj_cate]
|
||||
}}</template></el-table-column
|
||||
>
|
||||
<el-table-column
|
||||
label="对象"
|
||||
prop="post_name"
|
||||
width="160"
|
||||
>
|
||||
<template #default="scope">
|
||||
{{scope.row.post_name}}
|
||||
{{scope.row.dept_name}}
|
||||
{{scope.row.employee_name}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="最短停留时间(分)"
|
||||
prop="stay_minute_min"
|
||||
|
|
@ -222,26 +236,6 @@
|
|||
prop="stay_minute_max"
|
||||
width="160"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="关联区域"
|
||||
prop="area"
|
||||
width="160"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="关联岗位"
|
||||
prop="post_name"
|
||||
width="160"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="关联部门"
|
||||
prop="dept_name"
|
||||
width="160"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="关联人员"
|
||||
prop="employee_name"
|
||||
width="160"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="操作"
|
||||
fixed="right"
|
||||
|
|
@ -328,14 +322,15 @@ export default {
|
|||
20: "一般区域",
|
||||
30: "重点区域",
|
||||
},
|
||||
apiaccessObj: [],
|
||||
apiObj2: null,
|
||||
query2: {},
|
||||
areaId: null,
|
||||
areaName: "",
|
||||
cate_: { post: "岗位", org: "单位", people: "人员" },
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getAccessList();
|
||||
// this.getAccessList();
|
||||
},
|
||||
methods: {
|
||||
//添加/编辑区域
|
||||
|
|
@ -362,10 +357,11 @@ export default {
|
|||
},
|
||||
//点击区域显示进入权限
|
||||
rowClick(row) {
|
||||
this.$API.am.access.list.req({ area: row.id, page: 0 }).then((res) => {
|
||||
this.apiaccessObj = res;
|
||||
});
|
||||
this.area = row.id;
|
||||
if(this.apiObj2 == null){
|
||||
this.apiObj2 = this.$API.am.access.list
|
||||
}
|
||||
this.$refs.accesstable.queryData({area: row.id})
|
||||
},
|
||||
//围栏,添加
|
||||
handleRail(row) {
|
||||
|
|
@ -374,14 +370,16 @@ export default {
|
|||
this.dialog.saveRail = true;
|
||||
},
|
||||
//删除区域
|
||||
async handleDel(row) {
|
||||
await this.$API.am.area.delete.req(row.id).then((res) => {
|
||||
if (res.err_msg) {
|
||||
this.$message.error(res.err_msg);
|
||||
} else {
|
||||
handleDel(row) {
|
||||
this.$API.am.area.delete.req(row.id).then((res) => {
|
||||
this.$refs.table.refresh();
|
||||
this.$message.success("删除成功");
|
||||
}
|
||||
});
|
||||
},
|
||||
handleDelaccess(row) {
|
||||
this.$API.am.access.delete.req(row.id).then(() => {
|
||||
this.$refs.accesstable.refresh();
|
||||
this.$message.success("删除成功");
|
||||
});
|
||||
},
|
||||
//出入权限列表
|
||||
|
|
@ -461,11 +459,7 @@ export default {
|
|||
},
|
||||
//本地更新数据
|
||||
handleSaveSuccessAccess(data, mode) {
|
||||
if (mode == "add") {
|
||||
this.$refs.accesstable.refresh();
|
||||
} else if (mode == "edit") {
|
||||
this.$refs.accesstable.refresh();
|
||||
}
|
||||
this.$refs.accesstable.refresh()
|
||||
},
|
||||
|
||||
resetQuery() {
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@
|
|||
:options="group"
|
||||
:props="groupsProps"
|
||||
clearable
|
||||
:show-all-levels="false"
|
||||
style="width: 100%"
|
||||
>
|
||||
</el-cascader>
|
||||
|
|
@ -69,14 +70,10 @@
|
|||
</el-col>
|
||||
<el-col :md="12" :sm="24">
|
||||
<el-form-item label="区域负责人">
|
||||
<el-select v-model="form.manager" placeholder="选择区域负责人">
|
||||
<el-option
|
||||
v-for="item in useroptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
<span style="display:flex">
|
||||
<el-input readonly v-model="form.manager_name"></el-input>
|
||||
<ehsUserSelect :multiple="false" @submit="getManager"/>
|
||||
</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24">
|
||||
|
|
@ -194,7 +191,7 @@
|
|||
},
|
||||
mounted() {
|
||||
this.getGroup();
|
||||
this.getUser();
|
||||
// this.getUser();
|
||||
},
|
||||
methods: {
|
||||
//加载树数据
|
||||
|
|
@ -203,10 +200,14 @@
|
|||
this.group = genTree(res);
|
||||
},
|
||||
//项目负责人
|
||||
getUser() {
|
||||
this.$API.system.user.list.req({page: 0}).then((res) => {
|
||||
this.useroptions = res;
|
||||
});
|
||||
// getUser() {
|
||||
// this.$API.system.user.list.req({page: 0}).then((res) => {
|
||||
// this.useroptions = res;
|
||||
// });
|
||||
// },
|
||||
getManager(data){
|
||||
this.form.manager=data.id;
|
||||
this.form.manager_name=data.name
|
||||
},
|
||||
//显示
|
||||
open(mode) {
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ export default {
|
|||
form: {
|
||||
algo: "",
|
||||
vchannels: [],
|
||||
always_on: false,
|
||||
always_on: true,
|
||||
},
|
||||
//验证规则
|
||||
rules: {
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
highlightCurrentRow
|
||||
@row-click="rowClick"
|
||||
:hidePagination="true"
|
||||
hideDo
|
||||
>
|
||||
<el-table-column
|
||||
label="#"
|
||||
|
|
@ -108,6 +109,7 @@
|
|||
row-key="id"
|
||||
stripe
|
||||
:hidePagination="true"
|
||||
hideDo
|
||||
>
|
||||
<el-table-column label="#" type="index" fixed="left" width="50"></el-table-column>
|
||||
<el-table-column label="事件名称" prop="event_cate_name" fixed="left" width="100">
|
||||
|
|
@ -169,14 +171,15 @@
|
|||
<el-icon v-else color="red"><CircleCloseFilled /></el-icon>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="微信通知" prop="wechat_enable" width="80">
|
||||
<el-table-column label="排序" prop="sort"/>
|
||||
<!-- <el-table-column label="微信通知" prop="wechat_enable" width="80">
|
||||
<template #default="scope">
|
||||
<el-icon v-if="scope.row.wechat_enable" color="green"
|
||||
><CircleCheckFilled
|
||||
/></el-icon>
|
||||
<el-icon v-else color="red"><CircleCloseFilled /></el-icon>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="操作" fixed="right" align="right">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
|
|
@ -256,7 +259,7 @@ export default {
|
|||
};
|
||||
},
|
||||
mounted() {
|
||||
this.apiObj2 = this.$API.ecm.notify_setting.list;
|
||||
// this.apiObj2 = this.$API.ecm.notify_setting.list;
|
||||
},
|
||||
methods: {
|
||||
rowClick(row) {
|
||||
|
|
@ -265,7 +268,7 @@ export default {
|
|||
};
|
||||
this.apiObj2 = this.$API.ecm.notify_setting.list;
|
||||
this.chosen_cate = row.id;
|
||||
this.$refs.table2.reload(params);
|
||||
this.$refs.table2.queryData(params);
|
||||
},
|
||||
//窗口新增
|
||||
add() {
|
||||
|
|
@ -306,9 +309,11 @@ export default {
|
|||
|
||||
//当然也可以暴力的直接刷新表格
|
||||
this.$refs.table.refresh();
|
||||
this.dialog.save = false;
|
||||
},
|
||||
handleSaveSuccess2() {
|
||||
this.$refs.table2.refresh();
|
||||
this.dialog2.save = false;
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -53,14 +53,12 @@
|
|||
</el-col>
|
||||
<el-col :md="12" :sm="24" v-show="usershow">
|
||||
<el-form-item label="人员" prop="user">
|
||||
<el-select v-model="form.user" style="width: 100%">
|
||||
<el-option
|
||||
v-for="item in user_options"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
<el-input
|
||||
v-model="form.user_name"
|
||||
disabled
|
||||
style="width:200px"
|
||||
></el-input>
|
||||
<ehsUserSelect :multiple="false" @submit="getUser"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24" v-show="variableshow">
|
||||
|
|
@ -232,7 +230,7 @@ export default {
|
|||
},
|
||||
mounted() {
|
||||
this.getPostOptions();
|
||||
this.getUserOptions();
|
||||
// this.getUserOptions();
|
||||
this.getEventCate();
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -275,11 +273,10 @@ export default {
|
|||
this.post_options = res;
|
||||
});
|
||||
},
|
||||
//岗位列表
|
||||
getUserOptions() {
|
||||
this.$API.system.user.list.req({ page: 0 }).then((res) => {
|
||||
this.user_options = res;
|
||||
});
|
||||
getUser(data) {
|
||||
// 子组件调用父组件的方法并传参
|
||||
this.form.user=data.id;
|
||||
this.form.user_name=data.name
|
||||
},
|
||||
//表单提交方法
|
||||
async submit() {
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="table"
|
||||
:data="apiObj"
|
||||
:apiObj="apiObj"
|
||||
row-key="id"
|
||||
|
||||
stripe
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
<el-table-column label="#" fixed="left" type="index" width="50"></el-table-column>
|
||||
<el-table-column label="人员" prop="employee_name"></el-table-column>
|
||||
<el-table-column label="证书名称" fixed="left" prop="name" width="150">
|
||||
<el-table-column label="证书名称" fixed="left" prop="name">
|
||||
<template #default="scope">
|
||||
<el-link
|
||||
v-if="scope.row.file"
|
||||
|
|
@ -52,12 +52,12 @@
|
|||
<span v-else>{{ scope.row.name }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="证书编号" prop="number" width="200"> </el-table-column>
|
||||
<el-table-column label="证书类型" prop="type" width="200"><template #default="scope">{{type_[scope.row.type]}} </template></el-table-column>
|
||||
<el-table-column label="发证日期" prop="issue_date" width="180"></el-table-column>
|
||||
<el-table-column label="有效期" prop="expiration_date" width="200"> </el-table-column>
|
||||
<el-table-column label="下一次复审日期" prop="review_date" width="180"></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="left" width="170">
|
||||
<el-table-column label="证书编号" prop="number"> </el-table-column>
|
||||
<el-table-column label="证书类型" prop="type"><template #default="scope">{{type_[scope.row.type]}} </template></el-table-column>
|
||||
<el-table-column label="发证日期" prop="issue_date"></el-table-column>
|
||||
<el-table-column label="有效期" prop="expiration_date"> </el-table-column>
|
||||
<el-table-column label="下一次复审日期" prop="review_date"></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="left">
|
||||
<template #default="scope">
|
||||
<el-button-group>
|
||||
<el-button
|
||||
|
|
@ -76,24 +76,22 @@
|
|||
</el-main>
|
||||
</el-container>
|
||||
|
||||
<sc-dialog v-model="dialogcart" draggable title="人员证书">
|
||||
<el-dialog v-model="dialogcart" draggable title="人员证书">
|
||||
<el-form
|
||||
ref="dialogForm"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
:disabled="mode === 'show'"
|
||||
label-width="120px"
|
||||
label-width="140px"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :md="24" :sm="24">
|
||||
<el-form-item label="所属人员" prop="employee">
|
||||
<el-input
|
||||
v-model="form.employee_name"
|
||||
disabled
|
||||
style="width:200px"
|
||||
></el-input>
|
||||
<ehsEpSelect :multiple="false" @submit="getEmployee" v-if="mode=='add'"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24">
|
||||
<el-form-item label="证书名称" prop="name">
|
||||
<el-input
|
||||
v-model="form.name"
|
||||
|
|
@ -101,8 +99,6 @@
|
|||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24">
|
||||
<el-form-item label="证书编号" prop="number">
|
||||
<el-input
|
||||
v-model="form.number"
|
||||
|
|
@ -110,8 +106,6 @@
|
|||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24">
|
||||
<el-form-item label="证书类型" prop="type">
|
||||
<el-select v-model="form.type" placeholder="选择证书类型">
|
||||
<el-option
|
||||
|
|
@ -122,9 +116,7 @@
|
|||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="12" :xs="24">
|
||||
<el-form-item label="发证日期">
|
||||
<el-form-item label="发证日期" prop="issue_date">
|
||||
<el-date-picker
|
||||
v-model="form.issue_date"
|
||||
type="date"
|
||||
|
|
@ -132,10 +124,7 @@
|
|||
placeholder="选择发证日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :md="12" :sm="12" :xs="24">
|
||||
<el-form-item label="有效期">
|
||||
<el-form-item label="有效期" prop="expiration_date">
|
||||
<el-date-picker
|
||||
v-model="form.expiration_date"
|
||||
type="date"
|
||||
|
|
@ -143,9 +132,7 @@
|
|||
placeholder="选择有效期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="12" :xs="24">
|
||||
<el-form-item label="下一次复审日期">
|
||||
<el-form-item label="下一次复审日期" prop="review_date">
|
||||
<el-date-picker
|
||||
v-model="form.review_date"
|
||||
type="date"
|
||||
|
|
@ -153,8 +140,6 @@
|
|||
placeholder="选择下一次复审日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="24" :sm="12" :xs="24">
|
||||
<el-form-item label="上传证书">
|
||||
<sc-upload-file
|
||||
v-model="form.file"
|
||||
|
|
@ -166,14 +151,12 @@
|
|||
>
|
||||
</sc-upload-file>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="dialogcart = false">取 消</el-button>
|
||||
<el-button type="primary" @click="submitcert">确 定</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
const defaultform=
|
||||
|
|
@ -187,6 +170,7 @@ export default {
|
|||
components: {},
|
||||
data() {
|
||||
return {
|
||||
apiObj: this.$API.hrm.certificate.list,
|
||||
form:defaultform,
|
||||
typeoptions: [
|
||||
{ id: 10, name: "特种作业证书" },
|
||||
|
|
@ -199,25 +183,37 @@ export default {
|
|||
30: "安全管理人员证书",
|
||||
},
|
||||
dialogcart: false,
|
||||
apiObj:[],
|
||||
query: {},
|
||||
selection: [],
|
||||
search: {
|
||||
keyword: null,
|
||||
},
|
||||
mode: 'add',
|
||||
rules: {
|
||||
employee: [{ required: true, message: "请输入" }],
|
||||
name: [{ required: true, message: "请输入" }],
|
||||
number: [{ required: true, message: "请输入" }],
|
||||
type: [{ required: true, message: "请输入" }],
|
||||
issue_date: [{ required: true, message: "请输入" }],
|
||||
expiration_date: [{ required: true, message: "请输入" }],
|
||||
review_date: [{ required: true, message: "请输入" }]
|
||||
},
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
|
||||
|
||||
this.getcertificatelist();
|
||||
// this.getcertificatelist();
|
||||
},
|
||||
methods: {
|
||||
handleForm(type, row) {
|
||||
if (type === "add") {
|
||||
handleForm(mode, row) {
|
||||
this.mode = mode;
|
||||
if (mode === "add") {
|
||||
// this.form = Object.assign({}, defaultform);
|
||||
this.dialogcart = true;
|
||||
this.form = Object.assign({}, defaultform);
|
||||
|
||||
this.$nextTick(()=>{
|
||||
this.form = Object.assign({}, defaultform);
|
||||
})
|
||||
|
||||
} else {
|
||||
this.dialogcart = true;
|
||||
|
|
@ -225,17 +221,22 @@ export default {
|
|||
|
||||
}
|
||||
},
|
||||
getEmployee(data) {
|
||||
// 子组件调用父组件的方法并传参
|
||||
this.form.employee=data.id;
|
||||
this.form.employee_name=data.name
|
||||
},
|
||||
handleQuery(){
|
||||
this.$refs.table.queryData(this.query)
|
||||
},
|
||||
//证书列表
|
||||
getcertificatelist() {
|
||||
this.$API.hrm.certificate.list
|
||||
.req({ employee:this.$route.query.id, page: 0 })
|
||||
.then((res) => {
|
||||
this.apiObj = res;
|
||||
});
|
||||
},
|
||||
// getcertificatelist() {
|
||||
// this.$API.hrm.certificate.list
|
||||
// .req({ employee:this.$route.query.id, page: 0 })
|
||||
// .then((res) => {
|
||||
// this.apiObj = res;
|
||||
// });
|
||||
// },
|
||||
//人员证书创建
|
||||
submitcert() {
|
||||
this.form.employee = this.$route.query.id;
|
||||
|
|
|
|||
|
|
@ -39,14 +39,14 @@
|
|||
>
|
||||
|
||||
<el-table-column label="#" fixed="left" type="index" width="50"></el-table-column>
|
||||
<el-table-column label="姓名" fixed="left" prop="employee_name" width="150"></el-table-column>
|
||||
<el-table-column label="证书名称" fixed="left" prop="name" width="150"></el-table-column>
|
||||
<el-table-column label="证书编号" prop="number" width="200"> </el-table-column>
|
||||
<el-table-column label="证书类型" prop="type" width="200"><template #default="scope">{{type_[scope.row.type]}} </template></el-table-column>
|
||||
<el-table-column label="发证日期" prop="issue_date" width="180"></el-table-column>
|
||||
<el-table-column label="有效期" prop="expiration_date" width="200"> </el-table-column>
|
||||
<el-table-column label="下一次复审日期" prop="review_date" width="180"></el-table-column>
|
||||
<el-table-column label="证书文件" prop="file" width="180"></el-table-column>
|
||||
<el-table-column label="姓名" fixed="left" prop="employee_name"></el-table-column>
|
||||
<el-table-column label="证书名称" fixed="left" prop="name"></el-table-column>
|
||||
<el-table-column label="证书编号" prop="number"> </el-table-column>
|
||||
<el-table-column label="证书类型" prop="type"><template #default="scope">{{type_[scope.row.type]}} </template></el-table-column>
|
||||
<el-table-column label="发证日期" prop="issue_date"></el-table-column>
|
||||
<el-table-column label="有效期" prop="expiration_date"> </el-table-column>
|
||||
<el-table-column label="下一次复审日期" prop="review_date"></el-table-column>
|
||||
<el-table-column label="证书文件" prop="file"></el-table-column>
|
||||
|
||||
</scTable>
|
||||
</el-main>
|
||||
|
|
|
|||
|
|
@ -1,68 +1,88 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<el-button
|
||||
<el-container>
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<!-- <el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
v-auth="'employee.create'"
|
||||
@click="handleForm('add')"
|
||||
></el-button>
|
||||
<!--
|
||||
></el-button> -->
|
||||
<!--
|
||||
<el-button type="danger" plain icon="el-icon-delete" :disabled="selection.length==0" @click="batch_del"></el-button>
|
||||
<el-button type="primary" plain :disabled="selection.length!=1" @click="permission">权限设置</el-button> -->
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<div class="right-panel-search">
|
||||
<el-input
|
||||
v-model="query.search"
|
||||
placeholder="姓名/手机号"
|
||||
clearable
|
||||
@click="handleQuery"
|
||||
></el-input>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
@click="handleQuery"
|
||||
></el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="table"
|
||||
:apiObj="apiObj"
|
||||
row-key="id"
|
||||
@selection-change="selectionChange"
|
||||
stripe
|
||||
@resetQuery="resetQuery"
|
||||
>
|
||||
<!-- <el-table-column type="selection" width="50"></el-table-column> -->
|
||||
<el-table-column label="#" type="index" width="50"></el-table-column>
|
||||
<el-table-column label="姓名" prop="name"></el-table-column>
|
||||
<el-table-column label="证件照" prop="photo">
|
||||
<template #default="scope">
|
||||
<sc-upload v-if="scope.row.photo" v-model="scope.row.photo" :disabled="true" width="70" height="80"></sc-upload>
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<div class="right-panel-search">
|
||||
<el-input
|
||||
v-model="query.search"
|
||||
placeholder="姓名/手机号"
|
||||
clearable
|
||||
@click="handleQuery"
|
||||
></el-input>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
@click="handleQuery"
|
||||
></el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="table"
|
||||
:apiObj="apiObj"
|
||||
row-key="id"
|
||||
@selection-change="selectionChange"
|
||||
stripe
|
||||
@resetQuery="resetQuery"
|
||||
>
|
||||
<!-- <el-table-column type="selection" width="50"></el-table-column> -->
|
||||
<el-table-column label="#" type="index" width="50"></el-table-column>
|
||||
<el-table-column label="人员类型" prop="type">
|
||||
<template #default="scope">
|
||||
<span>{{ userTypeOptions[scope.row.type] }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="手机号"
|
||||
prop="phone"
|
||||
width="120"
|
||||
></el-table-column>
|
||||
<el-table-column label="部门" prop="belong_dept" width="180">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.belong_dept_">{{scope.row.belong_dept_.name}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="创建时间"
|
||||
prop="create_time"
|
||||
width="180"
|
||||
></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="left" width="170">
|
||||
<template #default="scope">
|
||||
<!-- <el-button
|
||||
</el-table-column>
|
||||
<el-table-column label="姓名" prop="name"></el-table-column>
|
||||
<el-table-column label="证件照" prop="photo">
|
||||
<template #default="scope">
|
||||
<sc-upload
|
||||
v-if="scope.row.photo"
|
||||
v-model="scope.row.photo"
|
||||
:disabled="true"
|
||||
width="70"
|
||||
height="80"
|
||||
></sc-upload>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="手机号"
|
||||
prop="phone"
|
||||
width="120"
|
||||
></el-table-column>
|
||||
<el-table-column label="部门" prop="belong_dept" width="180">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.belong_dept_">{{
|
||||
scope.row.belong_dept_.name
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="定位卡号" prop="blt_">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.blt_">{{
|
||||
scope.row.blt_.code
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="创建时间"
|
||||
prop="create_time"
|
||||
width="180"
|
||||
></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="left" width="170">
|
||||
<template #default="scope">
|
||||
<!-- <el-button
|
||||
link
|
||||
type="primary"
|
||||
size="small"
|
||||
|
|
@ -70,138 +90,143 @@
|
|||
v-auth="'employee.update'"
|
||||
>证书
|
||||
</el-button> -->
|
||||
<el-button
|
||||
link
|
||||
type="success"
|
||||
size="small"
|
||||
@click="handleForm('show', scope.row)"
|
||||
>查看
|
||||
</el-button>
|
||||
<el-button
|
||||
link
|
||||
type="warning"
|
||||
size="small"
|
||||
v-auth="'employee.update'"
|
||||
@click="handleForm('edit', scope.row)"
|
||||
>编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="scope.row.blt_"
|
||||
link
|
||||
type="danger"
|
||||
size="small"
|
||||
@click="handleBindBlt(20, scope.row)"
|
||||
>解绑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
link
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="handleBindBlt(10, scope.row)"
|
||||
>绑卡
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
ref="saveDialog"
|
||||
@success="handleSaveSuccess"
|
||||
@closed="dialog.save = false"
|
||||
></save-dialog>
|
||||
<el-Dialog
|
||||
title="绑定定位卡"
|
||||
v-model="showBindBlt"
|
||||
destroy-on-close
|
||||
@closed="closeDrawer"
|
||||
>
|
||||
<el-form
|
||||
ref="dialogForm"
|
||||
:model="form"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-form-item label="姓名">
|
||||
{{bindBltName}}
|
||||
</el-form-item>
|
||||
<el-form-item label="绑定卡号">
|
||||
<el-select v-model="form.blt" style="width: 100%" :disabled="dis">
|
||||
<el-option
|
||||
v-for="item in bltList"
|
||||
:key="item.id"
|
||||
:label="item.id"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button v-if="form.type===10" type="primary" @click="submitBindBlt">绑定</el-button>
|
||||
<el-button v-if="form.type===20" type="primary" @click="submitBindBlt">解绑</el-button>
|
||||
<el-button @click="showBindBlt = false">取消</el-button>
|
||||
</template>
|
||||
</el-Dialog>
|
||||
<el-button
|
||||
link
|
||||
type="success"
|
||||
size="small"
|
||||
@click="handleForm('show', scope.row)"
|
||||
>查看
|
||||
</el-button>
|
||||
<el-button
|
||||
link
|
||||
type="warning"
|
||||
size="small"
|
||||
v-auth="'employee.update'"
|
||||
@click="handleForm('edit', scope.row)"
|
||||
>编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="scope.row.blt_"
|
||||
link
|
||||
type="danger"
|
||||
size="small"
|
||||
@click="handleBindBlt(20, scope.row)"
|
||||
>解绑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
link
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="handleBindBlt(10, scope.row)"
|
||||
>绑卡
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
ref="saveDialog"
|
||||
@success="handleSaveSuccess"
|
||||
@closed="dialog.save = false"
|
||||
></save-dialog>
|
||||
<el-Dialog
|
||||
title="绑定定位卡"
|
||||
v-model="showBindBlt"
|
||||
destroy-on-close
|
||||
@closed="closeDrawer"
|
||||
>
|
||||
<el-form ref="dialogForm" :model="form" label-width="120px">
|
||||
<el-form-item label="姓名">
|
||||
{{ bindBltName }}
|
||||
</el-form-item>
|
||||
<el-form-item label="绑定卡号">
|
||||
<el-select v-model="form.blt" style="width: 100%" :disabled="dis">
|
||||
<el-option
|
||||
v-for="item in bltList"
|
||||
:key="item.id"
|
||||
:label="item.code"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button v-if="form.type === 10" type="primary" @click="submitBindBlt"
|
||||
>绑定</el-button
|
||||
>
|
||||
<el-button v-if="form.type === 20" type="primary" @click="submitBindBlt"
|
||||
>解绑</el-button
|
||||
>
|
||||
<el-button @click="showBindBlt = false">取消</el-button>
|
||||
</template>
|
||||
</el-Dialog>
|
||||
</template>
|
||||
<script>
|
||||
import saveDialog from "./ep_form.vue";
|
||||
import saveDialog from "./ep_form.vue";
|
||||
|
||||
export default {
|
||||
name: "employee",
|
||||
components: {
|
||||
saveDialog,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialog: {
|
||||
save: false,
|
||||
permission: false,
|
||||
},
|
||||
apiObj: this.$API.hrm.employee.list,
|
||||
query: {},
|
||||
tdevice: [],
|
||||
selection: [],
|
||||
search: {
|
||||
keyword: null,
|
||||
},
|
||||
dis: false,
|
||||
showBindBlt: false,
|
||||
bltList: [],
|
||||
bindBltName: '',
|
||||
form: {
|
||||
type: 10,
|
||||
blt: '',
|
||||
employee: '',
|
||||
},
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getBltList();
|
||||
},
|
||||
methods: {
|
||||
//人员证书添加
|
||||
// Addcertificate(row) {
|
||||
// this.$router.push({
|
||||
// name: "certificate",
|
||||
// query: {
|
||||
// id: row.id,
|
||||
// },
|
||||
// });
|
||||
// },
|
||||
//添加
|
||||
handleForm(type, row) {
|
||||
this.dialog.save = true;
|
||||
this.$nextTick(() => {
|
||||
if (type === "add") {
|
||||
this.$refs.saveDialog.open(type);
|
||||
} else {
|
||||
this.$refs.saveDialog.open(type).setData(row);
|
||||
}
|
||||
});
|
||||
},
|
||||
export default {
|
||||
name: "employee",
|
||||
components: {
|
||||
saveDialog,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialog: {
|
||||
save: false,
|
||||
permission: false,
|
||||
},
|
||||
apiObj: this.$API.hrm.employee.list,
|
||||
query: {},
|
||||
tdevice: [],
|
||||
selection: [],
|
||||
search: {
|
||||
keyword: null,
|
||||
},
|
||||
dis: false,
|
||||
showBindBlt: false,
|
||||
bltList: [],
|
||||
bindBltName: "",
|
||||
form: {
|
||||
type: 10,
|
||||
blt: "",
|
||||
employee: "",
|
||||
},
|
||||
userTypeOptions: {
|
||||
employee: "企业员工",
|
||||
remployee: "相关方",
|
||||
visitor: "访客",
|
||||
},
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getBltList();
|
||||
},
|
||||
methods: {
|
||||
//人员证书添加
|
||||
// Addcertificate(row) {
|
||||
// this.$router.push({
|
||||
// name: "certificate",
|
||||
// query: {
|
||||
// id: row.id,
|
||||
// },
|
||||
// });
|
||||
// },
|
||||
//添加
|
||||
handleForm(type, row) {
|
||||
this.dialog.save = true;
|
||||
this.$nextTick(() => {
|
||||
if (type === "add") {
|
||||
this.$refs.saveDialog.open(type);
|
||||
} else {
|
||||
this.$refs.saveDialog.open(type).setData(row);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/*//添加
|
||||
/*//添加
|
||||
add(){
|
||||
this.dialog.save = true
|
||||
this.$nextTick(() => {
|
||||
|
|
@ -222,121 +247,120 @@
|
|||
this.$refs.saveDialog.open('show').setData(row)
|
||||
})
|
||||
},*/
|
||||
//权限设置
|
||||
permission() {
|
||||
this.dialog.permission = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.permissionDialog.open();
|
||||
});
|
||||
},
|
||||
//删除
|
||||
async table_del(row) {
|
||||
await this.$API.hrm.employee.create.req(row.id).then((res) => {
|
||||
if (res.err_msg) {
|
||||
this.$message.error(res.err_msg);
|
||||
} else {
|
||||
this.$refs.table.refresh();
|
||||
this.$message.success("删除成功");
|
||||
}
|
||||
});
|
||||
},
|
||||
//批量删除
|
||||
async batch_del() {
|
||||
this.$confirm(
|
||||
`确定删除选中的 ${this.selection.length} 项吗?如果删除项中含有子集将会被一并删除`,
|
||||
"提示",
|
||||
{
|
||||
type: "warning",
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
const loading = this.$loading();
|
||||
this.$refs.table.refresh();
|
||||
loading.close();
|
||||
this.$message.success("操作成功");
|
||||
})
|
||||
.catch(() => {
|
||||
});
|
||||
},
|
||||
//表格选择后回调事件
|
||||
selectionChange(selection) {
|
||||
this.selection = selection;
|
||||
},
|
||||
//表格内开关
|
||||
changeSwitch(val, row) {
|
||||
row.status = row.status == "1" ? "0" : "1";
|
||||
row.$switch_status = true;
|
||||
setTimeout(() => {
|
||||
delete row.$switch_status;
|
||||
row.status = val;
|
||||
this.$message.success("操作成功");
|
||||
}, 500);
|
||||
},
|
||||
//搜索
|
||||
handleQuery() {
|
||||
this.$refs.table.queryData(this.query)
|
||||
},
|
||||
//根据ID获取树结构
|
||||
filterTree(id) {
|
||||
var target = null;
|
||||
//权限设置
|
||||
permission() {
|
||||
this.dialog.permission = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.permissionDialog.open();
|
||||
});
|
||||
},
|
||||
//删除
|
||||
async table_del(row) {
|
||||
await this.$API.hrm.employee.create.req(row.id).then((res) => {
|
||||
if (res.err_msg) {
|
||||
this.$message.error(res.err_msg);
|
||||
} else {
|
||||
this.$refs.table.refresh();
|
||||
this.$message.success("删除成功");
|
||||
}
|
||||
});
|
||||
},
|
||||
//批量删除
|
||||
async batch_del() {
|
||||
this.$confirm(
|
||||
`确定删除选中的 ${this.selection.length} 项吗?如果删除项中含有子集将会被一并删除`,
|
||||
"提示",
|
||||
{
|
||||
type: "warning",
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
const loading = this.$loading();
|
||||
this.$refs.table.refresh();
|
||||
loading.close();
|
||||
this.$message.success("操作成功");
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
//表格选择后回调事件
|
||||
selectionChange(selection) {
|
||||
this.selection = selection;
|
||||
},
|
||||
//表格内开关
|
||||
changeSwitch(val, row) {
|
||||
row.status = row.status == "1" ? "0" : "1";
|
||||
row.$switch_status = true;
|
||||
setTimeout(() => {
|
||||
delete row.$switch_status;
|
||||
row.status = val;
|
||||
this.$message.success("操作成功");
|
||||
}, 500);
|
||||
},
|
||||
//搜索
|
||||
handleQuery() {
|
||||
this.$refs.table.queryData(this.query);
|
||||
},
|
||||
//根据ID获取树结构
|
||||
filterTree(id) {
|
||||
var target = null;
|
||||
|
||||
function filter(tree) {
|
||||
tree.forEach((item) => {
|
||||
if (item.id == id) {
|
||||
target = item;
|
||||
}
|
||||
if (item.children) {
|
||||
filter(item.children);
|
||||
}
|
||||
});
|
||||
}
|
||||
function filter(tree) {
|
||||
tree.forEach((item) => {
|
||||
if (item.id == id) {
|
||||
target = item;
|
||||
}
|
||||
if (item.children) {
|
||||
filter(item.children);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
filter(this.$refs.table.tableData);
|
||||
return target;
|
||||
},
|
||||
//本地更新数据
|
||||
handleSaveSuccess(data, mode) {
|
||||
if (mode == "add") {
|
||||
this.$refs.table.refresh();
|
||||
} else if (mode == "edit") {
|
||||
this.$refs.table.refresh();
|
||||
}
|
||||
},
|
||||
resetQuery() {
|
||||
this.query = {};
|
||||
},
|
||||
getBltList() {
|
||||
let that = this;
|
||||
that.$API.third.tdevice.list.req({type: 30, page: 0}).then(res => {
|
||||
that.tdevice = res;
|
||||
that.bltList = res.filter(item => {
|
||||
return item.employee_ === null
|
||||
})
|
||||
;
|
||||
console.log(res);
|
||||
console.log(that.bltList);
|
||||
})
|
||||
},
|
||||
handleBindBlt(type, row) {
|
||||
this.dis = false;
|
||||
this.bindBltName = row.name;
|
||||
this.form.type = type;
|
||||
this.form.employee = row.id;
|
||||
if(type===20){
|
||||
this.dis = true;
|
||||
this.form.blt = row.blt_.id;
|
||||
}
|
||||
this.showBindBlt = true;
|
||||
},
|
||||
submitBindBlt() {
|
||||
let that = this;
|
||||
that.$API.third.tdevice.bltBind.req(this.form).then(res => {
|
||||
if(res.err_msg){}else{
|
||||
that.showBindBlt = false;
|
||||
that.$refs.table.refresh();
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
};
|
||||
filter(this.$refs.table.tableData);
|
||||
return target;
|
||||
},
|
||||
//本地更新数据
|
||||
handleSaveSuccess(data, mode) {
|
||||
if (mode == "add") {
|
||||
this.$refs.table.refresh();
|
||||
} else if (mode == "edit") {
|
||||
this.$refs.table.refresh();
|
||||
}
|
||||
},
|
||||
resetQuery() {
|
||||
this.query = {};
|
||||
},
|
||||
getBltList() {
|
||||
let that = this;
|
||||
that.$API.third.tdevice.list.req({ type: 30, page: 0 }).then((res) => {
|
||||
that.tdevice = res;
|
||||
that.bltList = res.filter((item) => {
|
||||
return item.employee_ === null;
|
||||
});
|
||||
console.log(res);
|
||||
console.log(that.bltList);
|
||||
});
|
||||
},
|
||||
handleBindBlt(type, row) {
|
||||
this.dis = false;
|
||||
this.bindBltName = row.name;
|
||||
this.form.type = type;
|
||||
this.form.employee = row.id;
|
||||
if (type === 20) {
|
||||
this.dis = true;
|
||||
this.form.blt = row.blt_.id;
|
||||
}
|
||||
this.showBindBlt = true;
|
||||
},
|
||||
submitBindBlt() {
|
||||
let that = this;
|
||||
that.$API.third.tdevice.bltBind.req(this.form).then((res) => {
|
||||
if (res.err_msg) {
|
||||
} else {
|
||||
that.showBindBlt = false;
|
||||
that.$refs.table.refresh();
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -45,7 +45,8 @@
|
|||
:options="group"
|
||||
:props="groupsProps"
|
||||
clearable
|
||||
style="width: 100%;">
|
||||
style="width: 100%;"
|
||||
disabled>
|
||||
</el-cascader>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -63,7 +64,9 @@
|
|||
</el-col>
|
||||
<el-col :md="12" :sm="24">
|
||||
<el-form-item label="系统账号">
|
||||
<el-input v-model="form.user" placeholder="请输入系统账号" clearable></el-input>
|
||||
<span v-if="form.user">{{form.user_.username}}</span>
|
||||
<!-- <span></span>
|
||||
<el-input v-model="form.user" placeholder="请输入系统账号" clearable></el-input> -->
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24">
|
||||
|
|
@ -71,11 +74,11 @@
|
|||
<el-input v-model="form.email" placeholder="请输入邮箱" clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24">
|
||||
<!-- <el-col :md="12" :sm="24">
|
||||
<el-form-item label="学历">
|
||||
<el-input v-model="form.qualification" placeholder="学历" clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<el-col :md="12" :sm="24">
|
||||
<el-form-item label="生日">
|
||||
<el-date-picker
|
||||
|
|
@ -85,11 +88,11 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24">
|
||||
<!-- <el-col :md="12" :sm="24">
|
||||
<el-form-item label="在岗状态展示">
|
||||
<el-switch v-model="form.show_atwork"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<el-col :md="12" :sm="24">
|
||||
<el-form-item label="性别">
|
||||
<el-radio-group v-model="form.gender">
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
</el-form-item>
|
||||
<el-form-item style="margin-bottom: 10px">
|
||||
<el-col :span="12" class="login-reg">
|
||||
<el-link @click="visitors">{{$t('login.fangke')}}</el-link>
|
||||
<!-- <el-link @click="visitors">{{$t('login.fangke')}}</el-link> -->
|
||||
</el-col>
|
||||
<el-col :span="12" class="login-forgot">
|
||||
<router-link to="/reset_password"
|
||||
|
|
|
|||
|
|
@ -1,124 +1,152 @@
|
|||
<template>
|
||||
<common-page title="重置密码">
|
||||
<el-steps :active="stepActive" simple finish-status="success">
|
||||
<el-step title="填写新密码" />
|
||||
<el-step title="完成重置" />
|
||||
</el-steps>
|
||||
<el-form v-if="stepActive==0" ref="form" :model="form" :rules="rules" :label-width="120">
|
||||
<el-form-item label="登录账号" prop="user">
|
||||
<common-page title="重置密码">
|
||||
<el-steps :active="stepActive" simple finish-status="success">
|
||||
<el-step title="填写新密码" />
|
||||
<el-step title="完成重置" />
|
||||
</el-steps>
|
||||
<el-form
|
||||
v-if="stepActive == 0"
|
||||
ref="form"
|
||||
:model="form"
|
||||
:rules="rules"
|
||||
:label-width="120"
|
||||
>
|
||||
<!-- <el-form-item label="登录账号" prop="user">
|
||||
<el-input v-model="form.user" placeholder="请输入登录账号"></el-input>
|
||||
<div class="el-form-item-msg">请输入注册时填写的登录账号</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号码" prop="phone">
|
||||
<el-input v-model="form.phone" placeholder="请输入手机号码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="短信验证码" prop="yzm">
|
||||
<div class="yzm">
|
||||
<el-input v-model="form.yzm" placeholder="请输入6位短信验证码"></el-input>
|
||||
<el-button @click="getYzm" :disabled="disabled">获取验证码<span v-if="disabled"> ({{time}})</span></el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="新密码" prop="newpw">
|
||||
<el-input v-model="form.newpw" show-password placeholder="请输入新密码"></el-input>
|
||||
<div class="el-form-item-msg">请输入包含英文、数字的8位以上密码</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="确认新密码" prop="newpw2">
|
||||
<el-input v-model="form.newpw2" show-password placeholder="请再一次输入新密码"></el-input>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="手机号码" prop="phone">
|
||||
<el-input v-model="form.phone" placeholder="请输入手机号码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="短信验证码" prop="code">
|
||||
<div class="code">
|
||||
<el-input
|
||||
v-model="form.code"
|
||||
placeholder="请输入6位短信验证码"
|
||||
></el-input>
|
||||
<el-button @click="getcode" :disabled="disabled"
|
||||
>获取验证码<span v-if="disabled"> ({{ time }})</span></el-button
|
||||
>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="新密码" prop="password">
|
||||
<el-input
|
||||
v-model="form.password"
|
||||
show-password
|
||||
placeholder="请输入新密码"
|
||||
></el-input>
|
||||
<div class="el-form-item-msg">请输入包含英文、数字的8位以上密码</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="确认新密码" prop="password2">
|
||||
<el-input
|
||||
v-model="form.password2"
|
||||
show-password
|
||||
placeholder="请再一次输入新密码"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="save">提交</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-result v-if="stepActive==1" icon="success" title="密码重置成功" sub-title="请牢记自己的新密码,返回登录后使用新密码登录">
|
||||
<template #extra>
|
||||
<el-button type="primary" @click="backLogin">返回登录</el-button>
|
||||
</template>
|
||||
</el-result>
|
||||
</common-page>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="save">提交</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-result
|
||||
v-if="stepActive == 1"
|
||||
icon="success"
|
||||
title="密码重置成功"
|
||||
sub-title="请牢记自己的新密码,返回登录后使用新密码登录"
|
||||
>
|
||||
<template #extra>
|
||||
<el-button type="primary" @click="backLogin">返回登录</el-button>
|
||||
</template>
|
||||
</el-result>
|
||||
</common-page>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import commonPage from './components/commonPage'
|
||||
import commonPage from "./components/commonPage";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
commonPage
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
stepActive: 0,
|
||||
form: {
|
||||
user: "",
|
||||
phone: "",
|
||||
yzm: "",
|
||||
newpw: "",
|
||||
newpw2: ""
|
||||
},
|
||||
rules: {
|
||||
user: [
|
||||
{ required: true, message: '请输入登录账号'}
|
||||
],
|
||||
phone: [
|
||||
{ required: true, message: '请输入手机号'}
|
||||
],
|
||||
yzm: [
|
||||
{ required: true, message: '请输入短信验证码'}
|
||||
],
|
||||
newpw: [
|
||||
{ required: true, message: '请输入新的密码'}
|
||||
],
|
||||
newpw2: [
|
||||
{ required: true, message: '请再次输入新的密码'},
|
||||
{validator: (rule, value, callback) => {
|
||||
if (value !== this.form.newpw) {
|
||||
callback(new Error('两次输入密码不一致'));
|
||||
}else{
|
||||
callback();
|
||||
}
|
||||
}}
|
||||
],
|
||||
},
|
||||
disabled: false,
|
||||
time: 0
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
async getYzm(){
|
||||
var validate = await this.$refs.form.validateField("phone").catch(()=>{})
|
||||
if(!validate){ return false }
|
||||
|
||||
this.$message.success("已发送短信至手机号码")
|
||||
this.disabled = true
|
||||
this.time = 60
|
||||
var t = setInterval(() => {
|
||||
this.time -= 1
|
||||
if(this.time < 1){
|
||||
clearInterval(t)
|
||||
this.disabled = false
|
||||
this.time = 0
|
||||
}
|
||||
},1000)
|
||||
},
|
||||
async save(){
|
||||
var validate = await this.$refs.form.validate().catch(()=>{})
|
||||
if(!validate){ return false }
|
||||
|
||||
this.stepActive = 1
|
||||
},
|
||||
backLogin(){
|
||||
this.$router.push({
|
||||
path: '/login'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
export default {
|
||||
components: {
|
||||
commonPage,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
stepActive: 0,
|
||||
form: {
|
||||
// user: "",
|
||||
phone: "",
|
||||
code: "",
|
||||
password: "",
|
||||
password2: "",
|
||||
},
|
||||
rules: {
|
||||
// user: [
|
||||
// { required: true, message: '请输入登录账号'}
|
||||
// ],
|
||||
phone: [{ required: true, message: "请输入手机号" }],
|
||||
code: [{ required: true, message: "请输入短信验证码" }],
|
||||
password: [{ required: true, message: "请输入新的密码" }],
|
||||
password2: [
|
||||
{ required: true, message: "请再次输入新的密码" },
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
if (value !== this.form.password) {
|
||||
callback(new Error("两次输入密码不一致"));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
disabled: false,
|
||||
time: 0,
|
||||
};
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
async getcode() {
|
||||
var validate = await this.$refs.form
|
||||
.validateField("phone")
|
||||
.catch(() => {});
|
||||
if (!validate) {
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
await this.$API.auth.sms_code.req({ phone: this.form.phone });
|
||||
this.$message.success("已发送短信至手机号码");
|
||||
this.disabled = true;
|
||||
this.time = 60;
|
||||
var t = setInterval(() => {
|
||||
this.time -= 1;
|
||||
if (this.time < 1) {
|
||||
clearInterval(t);
|
||||
this.disabled = false;
|
||||
this.time = 0;
|
||||
}
|
||||
}, 1000);
|
||||
} catch (err) {}
|
||||
},
|
||||
save() {
|
||||
this.$refs.form
|
||||
.validate()
|
||||
.then((valid) => {
|
||||
if (valid) {
|
||||
this.$API.auth.reset_password.req(this.form).then(() => {
|
||||
this.stepActive = 1;
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
backLogin() {
|
||||
this.$router.push({
|
||||
path: "/login",
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
<el-table-column label="操作" fixed="right" align="center" width="200">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
text
|
||||
link
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="editMenu(scope.row, scope.$index)"
|
||||
|
|
@ -52,7 +52,7 @@
|
|||
>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-button
|
||||
text
|
||||
link
|
||||
type="danger"
|
||||
size="small"
|
||||
@click="delMenu(scope.row.id)"
|
||||
|
|
|
|||
|
|
@ -109,12 +109,25 @@
|
|||
label-width="120px"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :md="24" :sm="24" :xs="24">
|
||||
<el-form-item label="选择相关方人员">
|
||||
<el-select v-model="form.remployee" placeholder="选择相关方人员" :disabled="mode != 'add'">
|
||||
<el-option
|
||||
v-for="item in remployeeoptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24">
|
||||
<el-form-item label="证书名称" prop="name">
|
||||
<el-input
|
||||
v-model="form.name"
|
||||
placeholder="请输入证书名称"
|
||||
clearable
|
||||
:disabled="mode != 'add'"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -124,12 +137,13 @@
|
|||
v-model="form.number"
|
||||
placeholder="请输入证书编号"
|
||||
clearable
|
||||
:disabled="mode != 'add'"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24">
|
||||
<el-form-item label="证书类型" prop="type">
|
||||
<el-select v-model="form.type" placeholder="选择证书类型">
|
||||
<el-select v-model="form.type" placeholder="选择证书类型" :disabled="mode != 'add'">
|
||||
<el-option
|
||||
v-for="item in typeoptions"
|
||||
:key="item.id"
|
||||
|
|
@ -170,18 +184,6 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="12" :xs="24">
|
||||
<el-form-item label="选择相关方人员">
|
||||
<el-select v-model="form.remployee" placeholder="选择相关方人员">
|
||||
<el-option
|
||||
v-for="item in remployeeoptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="24" :sm="12" :xs="24">
|
||||
<el-form-item label="上传证书">
|
||||
<sc-upload-file
|
||||
|
|
@ -237,6 +239,7 @@ export default {
|
|||
this.$refs.table.queryData(this.query);
|
||||
},
|
||||
handleForm(type, row) {
|
||||
this.mode = type
|
||||
if (type === "add") {
|
||||
this.dialogcart = true;
|
||||
this.form = Object.assign({}, defaultform);
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
|
||||
>
|
||||
<el-table-column label="#" type="index" width="50"></el-table-column>
|
||||
<el-table-column label="单位" prop="rparty_name" ></el-table-column>
|
||||
<el-table-column label="姓名" prop="name" ></el-table-column>
|
||||
<el-table-column label="手机号" prop="phone" ></el-table-column>
|
||||
<el-table-column label="身份证号" prop="id_number" ></el-table-column>
|
||||
|
|
@ -49,13 +50,13 @@
|
|||
@click="table_show(scope.row, scope.$index)"
|
||||
>查看</el-button
|
||||
>
|
||||
<!-- <el-button
|
||||
<el-button
|
||||
link
|
||||
type="warning"
|
||||
size="small"
|
||||
@click="table_edit(scope.row, scope.$index)"
|
||||
>编辑</el-button
|
||||
>-->
|
||||
>
|
||||
<el-popconfirm
|
||||
title="确定删除吗?"
|
||||
@confirm="table_del(scope.row, scope.$index)"
|
||||
|
|
|
|||
|
|
@ -37,13 +37,13 @@
|
|||
</el-col>
|
||||
<el-col :md="24" :sm="12" :xs="24">
|
||||
<el-form-item label="身份证号">
|
||||
<el-input v-model="form.id_number" type="text" clearable></el-input>
|
||||
<el-input v-model="form.id_number" type="text" clearable :disabled="mode != 'add'"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :md="24" :sm="12" :xs="24">
|
||||
<el-col :md="24" :sm="12" :xs="24" v-if="rparty_show">
|
||||
<el-form-item label="相关方">
|
||||
<el-select v-model="form.rparty" style="width: 100%">
|
||||
<el-select v-model="form.rparty" style="width: 100%" :disabled="mode != 'add'">
|
||||
<el-option
|
||||
v-for="item in rpartyOptions"
|
||||
:key="item.id"
|
||||
|
|
@ -95,14 +95,22 @@ export default {
|
|||
isSaveing: false,
|
||||
selectionFilters: [],
|
||||
setFiltersVisible: false,
|
||||
rpartyOptions: []
|
||||
rpartyOptions: [],
|
||||
rparty_show: false
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getRpartyOptions();
|
||||
this.rpartyShow()
|
||||
},
|
||||
methods: {
|
||||
|
||||
rpartyShow(){
|
||||
var userInfo = this.$TOOL.data.get("USER_INFO");
|
||||
if(userInfo.type=='employee'){
|
||||
this.rparty_show = true
|
||||
this.getRpartyOptions();
|
||||
}
|
||||
|
||||
},
|
||||
//显示
|
||||
open(mode = "add") {
|
||||
this.mode = mode;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,112 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="table"
|
||||
:apiObj="apiObj"
|
||||
row-key="id"
|
||||
hidePagination
|
||||
hideDo
|
||||
stripe
|
||||
|
||||
>
|
||||
<el-table-column label="#" type="index" width="50"></el-table-column>
|
||||
<el-table-column label="单位" prop="rparty" >
|
||||
<template #default="scope">
|
||||
{{scope.row.rparty_.name}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="文件分类" prop="file_cate" >
|
||||
<template #default="scope">
|
||||
{{scope.row.file_cate_.name}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="文件" prop="files" >
|
||||
<template #default="scope">
|
||||
<div v-for="item in scope.row.files_" :key="item.id">
|
||||
<el-link style="font-size:12px" type="primary" :href="item.path" target="_blank">{{item.name}}</el-link>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="操作" fixed="right" align="left" width="170">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="table_show(scope.row, scope.$index)"
|
||||
>查看</el-button
|
||||
>
|
||||
<el-button
|
||||
link
|
||||
type="warning"
|
||||
size="small"
|
||||
@click="table_edit(scope.row, scope.$index)"
|
||||
>编辑</el-button
|
||||
>
|
||||
<el-popconfirm
|
||||
title="确定删除吗?"
|
||||
@confirm="table_del(scope.row, scope.$index)"
|
||||
>
|
||||
<template #reference>
|
||||
<el-button link type="danger" size="small">删除</el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: "remployee",
|
||||
components: {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
apiObj: this.$API.rpm.rfile.list,
|
||||
query: {},
|
||||
selection: [],
|
||||
|
||||
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
|
||||
//查看
|
||||
table_show(row) {
|
||||
this.dialog.save = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.saveDialog.open("show").setData(row);
|
||||
});
|
||||
},
|
||||
|
||||
//权限设置
|
||||
permission() {
|
||||
this.dialog.permission = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.permissionDialog.open();
|
||||
});
|
||||
},
|
||||
//删除
|
||||
async table_del(row) {
|
||||
|
||||
this.$API.rpm.remployee.delete
|
||||
.req(row.id)
|
||||
.then((res) => {
|
||||
this.$message.success("删除成功");
|
||||
|
||||
return res;
|
||||
})
|
||||
.catch((err) => {
|
||||
return err;
|
||||
});
|
||||
},
|
||||
resetQuery() {
|
||||
this.query = {};
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
|
@ -49,7 +49,7 @@
|
|||
width="180"
|
||||
></el-table-column> -->
|
||||
<el-table-column
|
||||
label="账号"
|
||||
label="管理员"
|
||||
prop="admin_username"
|
||||
></el-table-column>
|
||||
|
||||
|
|
@ -91,9 +91,15 @@
|
|||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
<sc-dialog v-model="adminvisible" title="分配相关方账号" @closed="$emit('closed')">
|
||||
<el-dialog v-model="adminvisible" title="分配账号" @closed="$emit('closed')">
|
||||
<el-form ref="ruleForm" :model="adminform" :rules="rules" label-width="100px">
|
||||
<el-form-item label="账户名称" prop="username">
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input v-model="adminform.name"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号" prop="phone">
|
||||
<el-input v-model="adminform.phone"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="账户名称" prop="username">
|
||||
<el-input v-model="adminform.username"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
|
@ -101,7 +107,7 @@
|
|||
<el-button @click="adminvisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="submitAdmin">确 定</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
</el-dialog>
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
ref="saveDialog"
|
||||
|
|
@ -137,9 +143,14 @@ export default {
|
|||
//验证规则
|
||||
rules: {
|
||||
phone: [
|
||||
{required: true, message: '请输入账户名称'}
|
||||
{required: true, message: '请输入'}
|
||||
],
|
||||
name: [
|
||||
{required: true, message: '请输入'}
|
||||
],
|
||||
username: [
|
||||
{required: true, message: '请输入'}
|
||||
],
|
||||
|
||||
},
|
||||
};
|
||||
},
|
||||
|
|
@ -180,6 +191,7 @@ export default {
|
|||
).then((res) => {
|
||||
this.$message.success("账号分配成功");
|
||||
this.adminvisible = false;
|
||||
this.$refs.table.refresh()
|
||||
|
||||
})
|
||||
.catch((err) => {
|
||||
|
|
|
|||
|
|
@ -92,13 +92,9 @@
|
|||
|
||||
<script>
|
||||
import {genTree} from "@/utils/verificate";
|
||||
import selectUser from "@/layout/components/userselect";
|
||||
|
||||
export default {
|
||||
emits: ["success", "closed"],
|
||||
components: {
|
||||
selectUser,
|
||||
},
|
||||
props: {
|
||||
rpjId: {
|
||||
type: String,
|
||||
|
|
|
|||
|
|
@ -1,241 +1,312 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<el-button type="primary" icon="el-icon-plus" @click="addDept" v-auth="'dept.create'"></el-button>
|
||||
<el-button type="danger" plain icon="el-icon-delete" v-auth="'dept.delete'" :disabled="selection.length==0" @click="batch_del"></el-button>
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<div class="right-panel-search">
|
||||
<el-input v-model="query.search" placeholder="部门名称"></el-input>
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<scTable ref="table" :isTree="true" :apiObj="apiObj" row-key="id" @selection-change="selectionChange" stripe default-expand-all hidePagination>
|
||||
<!-- <el-table-column type="selection" width="50"></el-table-column> -->
|
||||
<el-table-column label="#" type="index" width="50"></el-table-column>
|
||||
<el-table-column label="部门名称" prop="name" min-width="200"></el-table-column>
|
||||
<el-table-column label="部门类型" prop="type" min-width="200"></el-table-column>
|
||||
<el-table-column label="创建日期" prop="create_time" min-width="200"></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="center" width="200">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" size="small" @click="editDept(scope.row, scope.$index)" v-auth="'dept.update'">编辑</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-popconfirm title="确定删除吗?" @confirm="delDept(scope.row, scope.$index)">
|
||||
<template #reference>
|
||||
<el-button link type="danger" size="small" v-auth="'dept.delete'">删除</el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
<el-dialog :title="titleMap[type]" v-model="limitedVisible" :width="600">
|
||||
<el-form :model="addForm" :rules="rules" ref="addForm" label-width="100px" label-position="left">
|
||||
<el-form-item label="部门名称" prop="name">
|
||||
<el-input v-model="addForm.name" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="上级部门">
|
||||
<el-cascader
|
||||
v-model="addForm.parent"
|
||||
:options="group"
|
||||
:props="groupsProps"
|
||||
:show-all-levels="false"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
@change="handleChange"
|
||||
></el-cascader>
|
||||
<!--<el-input v-model="addForm.parent" clearable></el-input>-->
|
||||
</el-form-item>
|
||||
<el-form-item label="类型">
|
||||
<el-container>
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
@click="addDept"
|
||||
v-auth="'dept.create'"
|
||||
></el-button>
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
v-auth="'dept.delete'"
|
||||
:disabled="selection.length == 0"
|
||||
@click="batch_del"
|
||||
></el-button>
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<div class="right-panel-search">
|
||||
<el-input v-model="query.search" placeholder="部门名称"></el-input>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
@click="handleQuery"
|
||||
></el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="table"
|
||||
:isTree="true"
|
||||
:apiObj="apiObj"
|
||||
row-key="id"
|
||||
@selection-change="selectionChange"
|
||||
stripe
|
||||
default-expand-all
|
||||
hidePagination
|
||||
>
|
||||
<!-- <el-table-column type="selection" width="50"></el-table-column> -->
|
||||
<el-table-column label="#" type="index" width="50"></el-table-column>
|
||||
<el-table-column
|
||||
label="部门名称"
|
||||
prop="name"
|
||||
min-width="200"
|
||||
></el-table-column>
|
||||
<el-table-column label="部门类型" prop="type" min-width="200">
|
||||
<template #default="scope">
|
||||
{{ deptTypeOptions[scope.row.type] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
label="创建日期"
|
||||
prop="create_time"
|
||||
min-width="200"
|
||||
></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="center" width="200">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="editDept(scope.row, scope.$index)"
|
||||
v-auth="'dept.update'"
|
||||
>编辑</el-button
|
||||
>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-popconfirm
|
||||
title="确定删除吗?"
|
||||
@confirm="delDept(scope.row, scope.$index)"
|
||||
>
|
||||
<template #reference>
|
||||
<el-button
|
||||
link
|
||||
type="danger"
|
||||
size="small"
|
||||
v-auth="'dept.delete'"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
<el-dialog :title="titleMap[type]" v-model="limitedVisible" :width="600">
|
||||
<el-form
|
||||
:model="addForm"
|
||||
:rules="rules"
|
||||
ref="addForm"
|
||||
label-width="100px"
|
||||
label-position="left"
|
||||
>
|
||||
<el-form-item label="部门名称" prop="name">
|
||||
<el-input v-model="addForm.name" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="上级部门">
|
||||
<el-cascader
|
||||
v-model="addForm.parent"
|
||||
:options="group"
|
||||
:props="groupsProps"
|
||||
:show-all-levels="false"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
@change="handleChange"
|
||||
></el-cascader>
|
||||
<!--<el-input v-model="addForm.parent" clearable></el-input>-->
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="类型">
|
||||
<el-select v-model="addForm.type" placeholder="Select" style="width: 100%;">
|
||||
<el-option label="公司" value="company"></el-option>
|
||||
<el-option label="部门" value="dept"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="排序">
|
||||
<el-input-number v-model="addForm.sort" controls-position="right" :min="1" style="width: 100%;"></el-input-number>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="limitedVisible=false" >取 消</el-button>
|
||||
<el-button type="primary" :loading="isSaving" @click="submitHandle()">保 存</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</el-form-item> -->
|
||||
<el-form-item label="排序">
|
||||
<el-input-number
|
||||
v-model="addForm.sort"
|
||||
controls-position="right"
|
||||
:min="1"
|
||||
style="width: 100%"
|
||||
></el-input-number>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="limitedVisible = false">取 消</el-button>
|
||||
<el-button type="primary" :loading="isSaving" @click="submitHandle()"
|
||||
>保 存</el-button
|
||||
>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {genTree} from "@/utils/verificate";
|
||||
export default {
|
||||
name: 'dept',
|
||||
data() {
|
||||
return {
|
||||
dialog: {
|
||||
save: false,
|
||||
permission: false
|
||||
},
|
||||
apiObj: this.$API.system.dept.list,
|
||||
selection: [],
|
||||
query:{},
|
||||
search: {
|
||||
keyword: null
|
||||
},
|
||||
params:{},
|
||||
isSaving: false,
|
||||
limitedVisible : false,
|
||||
type: "add",
|
||||
titleMap: {
|
||||
add: '新增',
|
||||
edit: '编辑',
|
||||
},
|
||||
import { genTree } from "@/utils/verificate";
|
||||
export default {
|
||||
name: "dept",
|
||||
data() {
|
||||
return {
|
||||
dialog: {
|
||||
save: false,
|
||||
permission: false,
|
||||
},
|
||||
apiObj: this.$API.system.dept.list,
|
||||
selection: [],
|
||||
query: {},
|
||||
search: {
|
||||
keyword: null,
|
||||
},
|
||||
params: {},
|
||||
isSaving: false,
|
||||
limitedVisible: false,
|
||||
type: "add",
|
||||
titleMap: {
|
||||
add: "新增",
|
||||
edit: "编辑",
|
||||
},
|
||||
|
||||
//表单数据
|
||||
addForm: {
|
||||
id:"",
|
||||
name: "",
|
||||
type: "dept",
|
||||
sort: 1,
|
||||
parent: "",
|
||||
},
|
||||
//验证规则
|
||||
rules: {
|
||||
name: [
|
||||
{required: true, message: '请输入部门名称'}
|
||||
],
|
||||
},
|
||||
groupsProps: {
|
||||
// value: "id",
|
||||
multiple: false,
|
||||
emitPath: false,
|
||||
checkStrictly: true,
|
||||
},
|
||||
group: [],
|
||||
postList: [],
|
||||
temp:[]
|
||||
}
|
||||
},
|
||||
//表单数据
|
||||
addForm: {
|
||||
id: "",
|
||||
name: "",
|
||||
type: "dept",
|
||||
sort: 1,
|
||||
parent: "",
|
||||
},
|
||||
//验证规则
|
||||
rules: {
|
||||
name: [{ required: true, message: "请输入部门名称" }],
|
||||
},
|
||||
groupsProps: {
|
||||
// value: "id",
|
||||
multiple: false,
|
||||
emitPath: false,
|
||||
checkStrictly: true,
|
||||
},
|
||||
group: [],
|
||||
postList: [],
|
||||
temp: [],
|
||||
deptTypeOptions: {
|
||||
dept: "本部",
|
||||
rparty: "相关方",
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.getGroup();
|
||||
},
|
||||
methods: {
|
||||
handleChange(value) {
|
||||
// this.menu.checked = check.checkedKeys;
|
||||
//debugger;
|
||||
console.log(value);
|
||||
console.log(this.addForm.parent);
|
||||
},
|
||||
//加载树数据
|
||||
async getGroup() {
|
||||
let res = await this.$API.system.dept.list.req({page: 0});
|
||||
this.group = genTree(res);
|
||||
},
|
||||
mounted() {
|
||||
this.getGroup();
|
||||
},
|
||||
methods: {
|
||||
handleChange(value) {
|
||||
// this.menu.checked = check.checkedKeys;
|
||||
//debugger;
|
||||
console.log(value);
|
||||
console.log(this.addForm.parent);
|
||||
},
|
||||
//加载树数据
|
||||
async getGroup() {
|
||||
let res = await this.$API.system.dept.list.req({ page: 0 });
|
||||
this.group = genTree(res);
|
||||
},
|
||||
|
||||
//添加
|
||||
addDept(){
|
||||
this.type='add';
|
||||
this.limitedVisible = true;
|
||||
},
|
||||
//编辑
|
||||
editDept(row){
|
||||
// debugger;
|
||||
this.temp = [];
|
||||
this.type='edit';
|
||||
this.addForm.id=row.id;
|
||||
this.addForm.name=row.name;
|
||||
this.addForm.parent=row.parent;
|
||||
this.addForm.type=row.type+"";
|
||||
this.addForm.sort=row.sort;
|
||||
this.limitedVisible = true;
|
||||
},
|
||||
//添加
|
||||
addDept() {
|
||||
this.type = "add";
|
||||
this.limitedVisible = true;
|
||||
},
|
||||
//编辑
|
||||
editDept(row) {
|
||||
// debugger;
|
||||
this.temp = [];
|
||||
this.type = "edit";
|
||||
this.addForm.id = row.id;
|
||||
this.addForm.name = row.name;
|
||||
this.addForm.parent = row.parent;
|
||||
this.addForm.type = row.type + "";
|
||||
this.addForm.sort = row.sort;
|
||||
this.limitedVisible = true;
|
||||
},
|
||||
|
||||
//删除
|
||||
delDept(row){
|
||||
let id = row.id;
|
||||
let res = this.$API.system.dept.delete.req(id);
|
||||
if(res.err_msg){
|
||||
this.$message.error(res.err_msg)
|
||||
}else{
|
||||
this.$refs.table.refresh();
|
||||
this.$message.success("删除成功")
|
||||
}
|
||||
},
|
||||
submitHandle(){
|
||||
let that = this;
|
||||
this.$refs.addForm.validate( (valid) => {
|
||||
if (valid) {
|
||||
this.isSaveing = true;
|
||||
var res;
|
||||
if(this.type==='add'){
|
||||
res = this.$API.system.dept.create.req(that.addForm);
|
||||
}else{
|
||||
res = this.$API.system.dept.update.req(that.addForm.id,that.addForm);
|
||||
}
|
||||
console.log(res);
|
||||
debugger;
|
||||
if(res.err_msg){
|
||||
this.$message.error(res.err_msg)
|
||||
}else{
|
||||
this.isSaveing = false;
|
||||
this.limitedVisible = false;
|
||||
this.$refs.table.refresh();
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
//表格选择后回调事件
|
||||
selectionChange(selection){
|
||||
this.selection = selection;
|
||||
},
|
||||
//搜索
|
||||
handleQuery(){
|
||||
this.$refs.table.queryData(this.search)
|
||||
},
|
||||
//删除
|
||||
delDept(row) {
|
||||
let id = row.id;
|
||||
let res = this.$API.system.dept.delete.req(id);
|
||||
if (res.err_msg) {
|
||||
this.$message.error(res.err_msg);
|
||||
} else {
|
||||
this.$refs.table.refresh();
|
||||
this.$message.success("删除成功");
|
||||
}
|
||||
},
|
||||
submitHandle() {
|
||||
let that = this;
|
||||
this.$refs.addForm.validate((valid) => {
|
||||
if (valid) {
|
||||
this.isSaveing = true;
|
||||
var res;
|
||||
if (this.type === "add") {
|
||||
res = this.$API.system.dept.create.req(that.addForm);
|
||||
} else {
|
||||
res = this.$API.system.dept.update.req(
|
||||
that.addForm.id,
|
||||
that.addForm
|
||||
);
|
||||
}
|
||||
console.log(res);
|
||||
debugger;
|
||||
if (res.err_msg) {
|
||||
this.$message.error(res.err_msg);
|
||||
} else {
|
||||
this.isSaveing = false;
|
||||
this.limitedVisible = false;
|
||||
this.$refs.table.refresh();
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
//表格选择后回调事件
|
||||
selectionChange(selection) {
|
||||
this.selection = selection;
|
||||
},
|
||||
//搜索
|
||||
handleQuery() {
|
||||
this.$refs.table.queryData(this.search);
|
||||
},
|
||||
|
||||
findParents(arr,parent){
|
||||
let that = this;
|
||||
arr.forEach(item=>{
|
||||
if(item.id===parent){
|
||||
that.temp.push(item.id);
|
||||
if(item.parent!==null){
|
||||
this.findParents(arr,item.parent)
|
||||
}else{
|
||||
return that.temp
|
||||
}
|
||||
}
|
||||
});
|
||||
return that.temp
|
||||
},
|
||||
treeData(postList){
|
||||
let posts = [];
|
||||
postList.forEach(item => {
|
||||
let obj = new Object();
|
||||
obj.id = item.id;
|
||||
obj.sort = item.sort;
|
||||
obj.label = item.name;
|
||||
obj.type = item.type;
|
||||
obj.parent = item.parent;
|
||||
obj.create_time = item.create_time;
|
||||
posts.push(obj)
|
||||
});
|
||||
let obj = posts.reduce((res, v) => (res[v.id] = v , res), {});//Object
|
||||
let arr = [];
|
||||
for (let item of posts) {
|
||||
if (item.parent == null) {
|
||||
arr.push(item);
|
||||
continue
|
||||
}
|
||||
let parent = obj[item.parent];
|
||||
parent.children = parent.children ? parent.children : [];
|
||||
parent.children.push(item);
|
||||
}
|
||||
return arr;
|
||||
},
|
||||
}
|
||||
}
|
||||
findParents(arr, parent) {
|
||||
let that = this;
|
||||
arr.forEach((item) => {
|
||||
if (item.id === parent) {
|
||||
that.temp.push(item.id);
|
||||
if (item.parent !== null) {
|
||||
this.findParents(arr, item.parent);
|
||||
} else {
|
||||
return that.temp;
|
||||
}
|
||||
}
|
||||
});
|
||||
return that.temp;
|
||||
},
|
||||
treeData(postList) {
|
||||
let posts = [];
|
||||
postList.forEach((item) => {
|
||||
let obj = new Object();
|
||||
obj.id = item.id;
|
||||
obj.sort = item.sort;
|
||||
obj.label = item.name;
|
||||
obj.type = item.type;
|
||||
obj.parent = item.parent;
|
||||
obj.create_time = item.create_time;
|
||||
posts.push(obj);
|
||||
});
|
||||
let obj = posts.reduce((res, v) => ((res[v.id] = v), res), {}); //Object
|
||||
let arr = [];
|
||||
for (let item of posts) {
|
||||
if (item.parent == null) {
|
||||
arr.push(item);
|
||||
continue;
|
||||
}
|
||||
let parent = obj[item.parent];
|
||||
parent.children = parent.children ? parent.children : [];
|
||||
parent.children.push(item);
|
||||
}
|
||||
return arr;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style>
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -39,18 +39,20 @@
|
|||
<scTable ref="table" :apiObj="listApi" row-key="id" :params="listApiParams" @selection-change="selectionChange" stripe :paginationLayout="'prev, pager, next'">
|
||||
<!-- <el-table-column type="selection" width="50"></el-table-column> -->
|
||||
<el-table-column label="序号" type="index"></el-table-column>
|
||||
<el-table-column label="名称" prop="name" min-width="150"></el-table-column>
|
||||
<el-table-column label="键值" prop="value" min-width="100"></el-table-column>
|
||||
<el-table-column label="描述" prop="description" min-width="100"></el-table-column>
|
||||
<el-table-column label="是否有效" prop="yx" width="100">
|
||||
<template #default="scope">
|
||||
<el-switch v-if="scope.row.yx" v-model="scope.row.yx" @change="changeSwitch($event, scope.row)" :loading="scope.row.$switch_yx" active-value="1" inactive-value="0"></el-switch>
|
||||
</template>
|
||||
<el-table-column label="名称" prop="name" width="360"></el-table-column>
|
||||
<el-table-column label="标识" prop="code"></el-table-column>
|
||||
<el-table-column label="排序" prop="sort"></el-table-column>
|
||||
<el-table-column label="是否有效" prop="is_used" width="80">
|
||||
<template #default="scope">
|
||||
<el-icon v-if="scope.row.is_used" color="green"
|
||||
><CircleCheckFilled
|
||||
/></el-icon>
|
||||
<el-icon v-else color="red"><CircleCloseFilled /></el-icon>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="center" width="140">
|
||||
<template #default="scope">
|
||||
<el-button link size="small" @click="editDic(scope.row)" v-auth="'dicttype.update'" type="primary">编辑</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-popconfirm title="确定删除吗?" @confirm="delDic(scope.row,scope.$index)">
|
||||
<template #reference>
|
||||
<el-button link size="small" v-auth="'dicttype.delete'" type="danger">删除</el-button>
|
||||
|
|
@ -63,20 +65,20 @@
|
|||
</el-container>
|
||||
</el-container>
|
||||
<el-dialog :title="titleMap[mode]" v-model="visibleDicType" destroy-on-close>
|
||||
<el-form :model="typeForm" :rules="typeRules" ref="dialogTypeForm" label-width="80px" label-position="left">
|
||||
<el-form-item label="编码" prop="code">
|
||||
<el-form :model="typeForm" :rules="typeRules" ref="dialogTypeForm" label-width="80px">
|
||||
<el-form-item label="标识" prop="code">
|
||||
<el-input v-model="typeForm.code" clearable placeholder="字典编码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="字典名称" prop="name">
|
||||
<el-input v-model="typeForm.name" clearable placeholder="字典显示名称"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="父路径" prop="parentId">
|
||||
<!-- <el-form-item label="父路径" prop="parentId">
|
||||
<el-cascader
|
||||
v-model="typeForm.parent"
|
||||
:options="group"
|
||||
:props="dicProps"
|
||||
:show-all-levels="false" clearable></el-cascader>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="visibleDicType=false" >取 消</el-button>
|
||||
|
|
@ -107,7 +109,7 @@
|
|||
<el-input-number v-model="dicForm.sort" style="width: 100%;" clearable></el-input-number>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否有效">
|
||||
<el-switch v-model="dicForm.is_used" active-value="true" inactive-value="false"></el-switch>
|
||||
<el-switch v-model="dicForm.is_used"></el-switch>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
|
|
@ -169,13 +171,13 @@
|
|||
description:'',
|
||||
type:'',
|
||||
sort:'',
|
||||
is_used:'',
|
||||
is_used:true,
|
||||
parent:'',
|
||||
},
|
||||
dicRules:{
|
||||
value: [
|
||||
{required: true, message: '请输入字典值'}
|
||||
],
|
||||
// code: [
|
||||
// {required: true, message: '请输入字典标识'}
|
||||
// ],
|
||||
name: [
|
||||
{required: true, message: '请输入字典名称'}
|
||||
],
|
||||
|
|
@ -385,10 +387,10 @@
|
|||
async delDic(row,index){
|
||||
var delId = row.id;
|
||||
var res = await this.$API.system.dict.delete.req(delId);
|
||||
if(res.err.msg){
|
||||
this.$message.error(res.err.msg)
|
||||
if(res.err_msg){
|
||||
this.$message.error(res.err_msg)
|
||||
}else{
|
||||
this.$refs.table.tableData.splice(index, 1);
|
||||
this.$refs.table.refresh();
|
||||
this.$message.success("删除成功")
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -206,14 +206,14 @@ export default {
|
|||
//新增岗位后更新数据
|
||||
handleSaveSuccess(data, mode) {
|
||||
//为了减少网络请求,直接变更表格内存数据
|
||||
if (mode == "add") {
|
||||
this.$refs.table.unshiftRow(data);
|
||||
} else if (mode == "edit") {
|
||||
this.$refs.table.updateKey(data);
|
||||
}
|
||||
// if (mode == "add") {
|
||||
// this.$refs.table.unshiftRow(data);
|
||||
// } else if (mode == "edit") {
|
||||
// this.$refs.table.updateKey(data);
|
||||
// }
|
||||
|
||||
//当然也可以暴力的直接刷新表格
|
||||
// this.$refs.table.refresh()
|
||||
this.$refs.table.refresh()
|
||||
},
|
||||
//新增岗位关系后更新数据
|
||||
handleSaveRoleSuccess() {
|
||||
|
|
|
|||
|
|
@ -53,8 +53,6 @@
|
|||
show-checkbox
|
||||
:data="menu.list"
|
||||
:props="menu.props"
|
||||
check-strictly="true"
|
||||
:default-checked-keys="menu.checked"
|
||||
@check="handleChange"
|
||||
></el-tree>
|
||||
</div>
|
||||
|
|
@ -138,7 +136,10 @@
|
|||
//添加角色
|
||||
roleAdd(){
|
||||
this.limitedVisible = true;
|
||||
this.addForm = defaultForm;
|
||||
this.$nextTick(()=>{
|
||||
this.$refs.menu.setCheckedKeys([])
|
||||
})
|
||||
this.addForm = Object.assign({}, defaultForm);
|
||||
},
|
||||
/*handleChange(value){
|
||||
debugger;
|
||||
|
|
@ -173,19 +174,20 @@
|
|||
//编辑角色
|
||||
roleEdit(row){
|
||||
this.type='edit';
|
||||
this.menu.checked = null;
|
||||
this.addForm.id=row.id;
|
||||
this.addForm.name=row.name;
|
||||
this.addForm.code=row.code;
|
||||
this.menu.checked = row.perms;
|
||||
this.addForm.description=row.description;
|
||||
this.limitedVisible = true;
|
||||
this.$nextTick(()=>{
|
||||
this.$refs.menu.setCheckedKeys(row.perms)
|
||||
})
|
||||
},
|
||||
|
||||
//删除角色
|
||||
async roleDel(row){
|
||||
var id = row.id;
|
||||
var res = await this.$API.system.roleDel.delete(id);
|
||||
var res = await this.$API.system.role.delete.req(id);
|
||||
if(res.err_msg){
|
||||
this.$message.error(res.err_msg)
|
||||
}else{
|
||||
|
|
|
|||
|
|
@ -1,393 +1,417 @@
|
|||
<template>
|
||||
<el-container>
|
||||
<el-aside width="300px" v-loading="showGrouploading">
|
||||
<el-container>
|
||||
<el-header style="border-bottom: none">
|
||||
<el-input
|
||||
placeholder="输入关键字进行过滤"
|
||||
v-model="groupFilterText"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<el-tree
|
||||
ref="group"
|
||||
class="menu"
|
||||
node-key="id"
|
||||
:data="group"
|
||||
:current-node-key="''"
|
||||
default-expand-all
|
||||
:highlight-current="true"
|
||||
:expand-on-click-node="false"
|
||||
:filter-node-method="groupFilterNode"
|
||||
@node-click="groupClick"
|
||||
></el-tree>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-aside>
|
||||
<el-container>
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
v-auth="'user.create'"
|
||||
@click="add"
|
||||
></el-button>
|
||||
<!-- <el-button
|
||||
<el-container>
|
||||
<el-aside width="300px" v-loading="showGrouploading">
|
||||
<el-container>
|
||||
<el-header style="border-bottom: none">
|
||||
<el-input
|
||||
placeholder="输入关键字进行过滤"
|
||||
v-model="groupFilterText"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<el-tree
|
||||
ref="group"
|
||||
class="menu"
|
||||
node-key="id"
|
||||
:data="group"
|
||||
:current-node-key="''"
|
||||
:default-expanded-keys="idArr"
|
||||
:highlight-current="true"
|
||||
:expand-on-click-node="false"
|
||||
:filter-node-method="groupFilterNode"
|
||||
@node-click="groupClick"
|
||||
></el-tree>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-aside>
|
||||
<el-container>
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
v-auth="'user.create'"
|
||||
@click="add"
|
||||
></el-button>
|
||||
<!-- <el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="el-icon-delete"
|
||||
:disabled="selection.length == 0"
|
||||
@click="batch_del"
|
||||
></el-button> -->
|
||||
<!-- <el-button
|
||||
<!-- <el-button
|
||||
type="primary"
|
||||
plain
|
||||
:disabled="selection.length == 0"
|
||||
>密码重置
|
||||
</el-button> -->
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<div class="right-panel-search">
|
||||
<el-input
|
||||
v-model="query.search"
|
||||
placeholder="登录账号 / 姓名"
|
||||
clearable
|
||||
></el-input>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
@click="handleQuery"
|
||||
></el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="table"
|
||||
:apiObj="apiObj"
|
||||
stripe
|
||||
remoteSort
|
||||
remoteFilter
|
||||
@selection-change="selectionChange"
|
||||
>
|
||||
<!-- <el-table-column
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<div class="right-panel-search">
|
||||
<el-input
|
||||
v-model="query.search"
|
||||
placeholder="登录账号 / 姓名"
|
||||
clearable
|
||||
></el-input>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-search"
|
||||
@click="handleQuery"
|
||||
></el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="table"
|
||||
:apiObj="apiObj"
|
||||
stripe
|
||||
remoteSort
|
||||
remoteFilter
|
||||
@selection-change="selectionChange"
|
||||
>
|
||||
<!-- <el-table-column
|
||||
type="selection"
|
||||
width="50"
|
||||
></el-table-column> -->
|
||||
<el-table-column
|
||||
label="ID"
|
||||
prop="id"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="姓名"
|
||||
prop="name"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="登录账号"
|
||||
prop="username"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="是否启用"
|
||||
prop="is_active"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-tag type="success" v-if="scope.row.is_active">启用</el-tag>
|
||||
<el-tag v-else type="danger">禁用</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!--sortable="custom"-->
|
||||
<el-table-column
|
||||
label="加入时间"
|
||||
prop="create_time"
|
||||
min-width="100"
|
||||
sortable="custom"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="操作"
|
||||
fixed="right"
|
||||
align="center"
|
||||
width="200"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
link
|
||||
size="small"
|
||||
@click="formSetting(scope.row)"
|
||||
v-auth="'user.create'"
|
||||
>
|
||||
设置
|
||||
</el-button>
|
||||
|
||||
|
||||
<el-button
|
||||
link
|
||||
size="small"
|
||||
@click="formEdit(scope.row, '2')"
|
||||
v-auth="'user.update'"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
|
||||
<el-popconfirm
|
||||
title="确定删除吗?"
|
||||
@confirm="table_del(scope.row, scope.$index)"
|
||||
>
|
||||
<template #reference>
|
||||
<el-button link type="danger" size="small" v-auth="'user.delete'">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-container>
|
||||
<el-dialog
|
||||
:title="titleMap[type]"
|
||||
v-model="limitedVisible"
|
||||
:width="600"
|
||||
>
|
||||
<el-form
|
||||
:model="addForm"
|
||||
:rules="rules"
|
||||
ref="addForm"
|
||||
label-width="100px"
|
||||
label-position="left"
|
||||
>
|
||||
<el-form-item label="登录账号" prop="username">
|
||||
<el-input
|
||||
v-model="addForm.username"
|
||||
placeholder="用于登录系统"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名">
|
||||
<el-input
|
||||
v-model="addForm.name"
|
||||
placeholder="请输入完整的真实姓名"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机">
|
||||
<el-input
|
||||
v-model="addForm.phone"
|
||||
placeholder="请输入手机号码"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否在用">
|
||||
<el-switch v-model="addForm.is_active" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="limitedVisible = false">取 消</el-button>
|
||||
<el-button
|
||||
v-if="type !== 'show'"
|
||||
type="primary"
|
||||
:loading="isSaveing"
|
||||
@click="submit()"
|
||||
>保 存
|
||||
</el-button
|
||||
>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<save-dialog v-if="dialog.save" ref="saveDialog" @success="handleSaveSuccess" @closed="dialog.save=false"></save-dialog>
|
||||
|
||||
<el-table-column label="ID" prop="id" width="160"></el-table-column>
|
||||
<el-table-column label="姓名" prop="name"></el-table-column>
|
||||
<el-table-column label="登录账号" prop="username"></el-table-column>
|
||||
<el-table-column label="是否启用" prop="is_active">
|
||||
<template #default="scope">
|
||||
<el-tag type="success" v-if="scope.row.is_active">启用</el-tag>
|
||||
<el-tag v-else type="danger">禁用</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="微信通知" width="80">
|
||||
<template #default="scope">
|
||||
<el-icon v-if="scope.row.wx_openid" color="green"
|
||||
><CircleCheckFilled
|
||||
/></el-icon>
|
||||
<el-icon v-else color="red"><CircleCloseFilled /></el-icon>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="账号类型" prop="type">
|
||||
<template #default="scope">
|
||||
<span>{{userTypeOptions[scope.row.type]}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="小程序" width="80">
|
||||
<template #default="scope">
|
||||
<el-icon v-if="scope.row.wxmp_openid" color="green"
|
||||
><CircleCheckFilled
|
||||
/></el-icon>
|
||||
<el-icon v-else color="red"><CircleCloseFilled /></el-icon>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column
|
||||
label="创建时间"
|
||||
prop="create_time"
|
||||
width="160"
|
||||
sortable="custom"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
label="操作"
|
||||
fixed="right"
|
||||
align="center"
|
||||
width="200"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
type="primary"
|
||||
link
|
||||
size="small"
|
||||
@click="formSetting(scope.row)"
|
||||
v-auth="'user.create'"
|
||||
>
|
||||
设置
|
||||
</el-button>
|
||||
|
||||
<el-button
|
||||
link
|
||||
size="small"
|
||||
@click="formEdit(scope.row, '2')"
|
||||
v-auth="'user.update'"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
|
||||
<!-- <el-popconfirm
|
||||
title="确定删除吗?"
|
||||
@confirm="table_del(scope.row, scope.$index)"
|
||||
>
|
||||
<template #reference>
|
||||
<el-button
|
||||
link
|
||||
type="danger"
|
||||
size="small"
|
||||
v-auth="'user.delete'"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-popconfirm> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-container>
|
||||
<el-dialog :title="titleMap[type]" v-model="limitedVisible" :width="600">
|
||||
<el-form
|
||||
:model="addForm"
|
||||
:rules="rules"
|
||||
ref="addForm"
|
||||
label-width="100px"
|
||||
label-position="left"
|
||||
>
|
||||
<el-form-item label="登录账号" prop="username">
|
||||
<el-input
|
||||
v-model="addForm.username"
|
||||
placeholder="用于登录系统"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名">
|
||||
<el-input
|
||||
v-model="addForm.name"
|
||||
placeholder="请输入完整的真实姓名"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="手机">
|
||||
<el-input
|
||||
v-model="addForm.phone"
|
||||
placeholder="请输入手机号码"
|
||||
clearable
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否在用">
|
||||
<el-switch v-model="addForm.is_active" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="limitedVisible = false">取 消</el-button>
|
||||
<el-button
|
||||
v-if="type !== 'show'"
|
||||
type="primary"
|
||||
:loading="isSaveing"
|
||||
@click="submit()"
|
||||
>保 存
|
||||
</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
ref="saveDialog"
|
||||
@success="handleSaveSuccess"
|
||||
@closed="dialog.save = false"
|
||||
></save-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import baseUrl from "@/config";
|
||||
import {genTree} from "@/utils/verificate";
|
||||
import saveDialog from './user_form.vue'
|
||||
import baseUrl from "@/config";
|
||||
import { genTree } from "@/utils/verificate";
|
||||
import saveDialog from "./user_form.vue";
|
||||
import { CircleCheckFilled, CircleCloseFilled } from "@element-plus/icons-vue";
|
||||
// import certDialog from './cert_form.vue'
|
||||
export default {
|
||||
name: "user",
|
||||
components: {
|
||||
saveDialog,
|
||||
// certDialog,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialog: {
|
||||
save: false,
|
||||
// certSave:false,
|
||||
},
|
||||
query: {},
|
||||
baseUrl : baseUrl.API_URL,
|
||||
type: "add",
|
||||
titleMap: {
|
||||
add: "新增用户",
|
||||
edit: "编辑用户",
|
||||
show: "查看",
|
||||
},
|
||||
//表单数据
|
||||
addForm: {
|
||||
id: "",
|
||||
username: "",
|
||||
name: "",
|
||||
// email: "",
|
||||
phone: "",
|
||||
// belong_dept: [],
|
||||
is_active:true
|
||||
},
|
||||
//验证规则
|
||||
rules: {
|
||||
username: [{required: true, message: "请输入登录账号"}],
|
||||
name: [{required: true, message: "请输入真实姓名"}],
|
||||
group: [{required: true, message: "请选择所属角色"}],
|
||||
},
|
||||
//所需数据选项
|
||||
groups: [],
|
||||
groupsProps: {
|
||||
value: "id",
|
||||
multiple: false,
|
||||
checkStrictly: true,
|
||||
},
|
||||
isSaveing: false,
|
||||
limitedVisible: false,
|
||||
showGrouploading: false,
|
||||
groupFilterText: "",
|
||||
group: [],
|
||||
userList: [],
|
||||
selection: [],
|
||||
search: {
|
||||
name: null,
|
||||
},
|
||||
imageUrl: "",
|
||||
filterParams: {},
|
||||
tableParams: {},
|
||||
apiObj: this.$API.system.user.list,
|
||||
temp:[],
|
||||
postList:[],
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
groupFilterText(val) {
|
||||
this.$refs.group.filter(val);
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.getGroup();
|
||||
},
|
||||
methods: {
|
||||
//加载树数据
|
||||
async getGroup() {
|
||||
let res = await this.$API.system.dept.list.req({page: 0});
|
||||
this.group = genTree(res);
|
||||
},
|
||||
getImgUrl (img) {
|
||||
return 'http://49.232.14.174:2226'+ img;
|
||||
},
|
||||
//添加
|
||||
add() {
|
||||
this.type = "add";
|
||||
this.limitedVisible = true;
|
||||
this.addForm = {};
|
||||
},
|
||||
//编辑
|
||||
formEdit(row,index) {
|
||||
console.log(row);
|
||||
this.limitedVisible = true;
|
||||
if(index==='1'){
|
||||
this.type = "show";
|
||||
}else{
|
||||
this.type = "edit";
|
||||
}
|
||||
this.addForm.id = row.id;
|
||||
this.addForm.name = row.name;
|
||||
this.addForm.username = row.username;
|
||||
this.addForm.phone = row.phone;
|
||||
this.addForm.is_active = row.is_active;
|
||||
},
|
||||
formSetting(row){
|
||||
this.dialog.save = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.saveDialog.open().setData(row)
|
||||
export default {
|
||||
name: "user",
|
||||
components: {
|
||||
saveDialog,
|
||||
// certDialog,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialog: {
|
||||
save: false,
|
||||
// certSave:false,
|
||||
},
|
||||
query: {},
|
||||
baseUrl: baseUrl.API_URL,
|
||||
type: "add",
|
||||
titleMap: {
|
||||
add: "新增用户",
|
||||
edit: "编辑用户",
|
||||
show: "查看",
|
||||
},
|
||||
//表单数据
|
||||
addForm: {
|
||||
id: "",
|
||||
username: "",
|
||||
name: "",
|
||||
// email: "",
|
||||
phone: "",
|
||||
// belong_dept: [],
|
||||
is_active: true,
|
||||
},
|
||||
//验证规则
|
||||
rules: {
|
||||
username: [{ required: true, message: "请输入登录账号" }],
|
||||
name: [{ required: true, message: "请输入真实姓名" }],
|
||||
group: [{ required: true, message: "请选择所属角色" }],
|
||||
},
|
||||
//所需数据选项
|
||||
groups: [],
|
||||
groupsProps: {
|
||||
value: "id",
|
||||
multiple: false,
|
||||
checkStrictly: true,
|
||||
},
|
||||
isSaveing: false,
|
||||
limitedVisible: false,
|
||||
showGrouploading: false,
|
||||
groupFilterText: "",
|
||||
group: [],
|
||||
userList: [],
|
||||
selection: [],
|
||||
search: {
|
||||
name: null,
|
||||
},
|
||||
imageUrl: "",
|
||||
filterParams: {},
|
||||
tableParams: {},
|
||||
apiObj: this.$API.system.user.list,
|
||||
temp: [],
|
||||
postList: [],
|
||||
userTypeOptions :{
|
||||
'employee': '企业员工',
|
||||
'remployee': '相关方',
|
||||
'visitor': '访客'
|
||||
},
|
||||
idArr: []
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
groupFilterText(val) {
|
||||
this.$refs.group.filter(val);
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.getGroup();
|
||||
},
|
||||
methods: {
|
||||
//加载树数据
|
||||
async getGroup() {
|
||||
let res = await this.$API.system.dept.list.req({ page: 0 });
|
||||
this.group = genTree(res);
|
||||
this.group.forEach(m=>{
|
||||
this.idArr.push(m.id)
|
||||
})
|
||||
},
|
||||
getImgUrl(img) {
|
||||
return "http://49.232.14.174:2226" + img;
|
||||
},
|
||||
//添加
|
||||
add() {
|
||||
this.type = "add";
|
||||
this.limitedVisible = true;
|
||||
this.addForm = {};
|
||||
},
|
||||
//编辑
|
||||
formEdit(row, index) {
|
||||
console.log(row);
|
||||
this.limitedVisible = true;
|
||||
if (index === "1") {
|
||||
this.type = "show";
|
||||
} else {
|
||||
this.type = "edit";
|
||||
}
|
||||
this.addForm.id = row.id;
|
||||
this.addForm.name = row.name;
|
||||
this.addForm.username = row.username;
|
||||
this.addForm.phone = row.phone;
|
||||
this.addForm.is_active = row.is_active;
|
||||
},
|
||||
formSetting(row) {
|
||||
this.dialog.save = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.saveDialog.open().setData(row);
|
||||
});
|
||||
},
|
||||
//添加证书
|
||||
//Addcertificate(row){
|
||||
// this.dialog.certSave = true;
|
||||
// this.$nextTick(() => {
|
||||
// this.$refs.certDialog.open().setData(row)
|
||||
|
||||
})
|
||||
},
|
||||
//添加证书
|
||||
//Addcertificate(row){
|
||||
// this.dialog.certSave = true;
|
||||
// this.$nextTick(() => {
|
||||
// this.$refs.certDialog.open().setData(row)
|
||||
// })
|
||||
|
||||
// })
|
||||
// },
|
||||
//查看
|
||||
table_show(row) {
|
||||
this.limitedVisible = true;
|
||||
this.type = "show";
|
||||
this.addForm.id = row.id;
|
||||
},
|
||||
//删除
|
||||
async table_del(row) {
|
||||
let res = await this.$API.system.user.delete.req(row.id);
|
||||
if (res.err_msg) {
|
||||
this.$message.error(res.err_msg);
|
||||
} else {
|
||||
this.$refs.table.refresh();
|
||||
this.$message.success("删除成功");
|
||||
}
|
||||
},
|
||||
//表格选择后回调事件
|
||||
selectionChange(selection) {
|
||||
this.selection = selection;
|
||||
},
|
||||
|
||||
// },
|
||||
//查看
|
||||
table_show(row) {
|
||||
this.limitedVisible = true;
|
||||
this.type = "show";
|
||||
this.addForm.id = row.id;
|
||||
},
|
||||
//删除
|
||||
async table_del(row) {
|
||||
let res = await this.$API.system.user.delete.req(row.id);
|
||||
if (res.err_msg) {
|
||||
this.$message.error(res.err_msg);
|
||||
} else {
|
||||
this.$refs.table.refresh();
|
||||
this.$message.success("删除成功");
|
||||
}
|
||||
},
|
||||
//表格选择后回调事件
|
||||
selectionChange(selection) {
|
||||
this.selection = selection;
|
||||
},
|
||||
//树过滤
|
||||
groupFilterNode(value, data) {
|
||||
if (!value) return true;
|
||||
return data.label.indexOf(value) !== -1;
|
||||
},
|
||||
//树点击事件
|
||||
groupClick(data) {
|
||||
console.log(data);
|
||||
// debugger;
|
||||
let params = { belong_dept: data.id };
|
||||
this.$refs.table.reload(params);
|
||||
},
|
||||
//搜索
|
||||
handleQuery() {
|
||||
this.$refs.table.queryData(this.query);
|
||||
},
|
||||
//表单提交方法
|
||||
submit() {
|
||||
// debugger;
|
||||
this.$refs.addForm.validate(async (valid) => {
|
||||
if (valid) {
|
||||
this.isSaveing = true;
|
||||
let res;
|
||||
if (this.type === "add") {
|
||||
res = await this.$API.system.user.create.req(this.addForm);
|
||||
} else if (this.type === "edit") {
|
||||
res = await this.$API.system.user.update.req(
|
||||
this.addForm.id,
|
||||
this.addForm
|
||||
);
|
||||
}
|
||||
this.isSaveing = false;
|
||||
if (res.err_msg) {
|
||||
this.$message(res.err_msg);
|
||||
} else {
|
||||
this.limitedVisible = false;
|
||||
this.$refs.table.refresh()
|
||||
this.$message.success("操作成功");
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
//树过滤
|
||||
groupFilterNode(value, data) {
|
||||
if (!value) return true;
|
||||
return data.label.indexOf(value) !== -1;
|
||||
},
|
||||
//树点击事件
|
||||
groupClick(data) {
|
||||
console.log(data);
|
||||
// debugger;
|
||||
let params = {belong_dept: data.id};
|
||||
this.$refs.table.reload(params);
|
||||
},
|
||||
//搜索
|
||||
handleQuery() {
|
||||
this.$refs.table.queryData(this.query)
|
||||
},
|
||||
//表单提交方法
|
||||
submit(){
|
||||
// debugger;
|
||||
this.$refs.addForm.validate(async (valid) => {
|
||||
if (valid) {
|
||||
this.isSaveing = true;
|
||||
let res;
|
||||
if(this.type==='add'){
|
||||
res = await this.$API.system.user.create.req(this.addForm);
|
||||
}else if(this.type==='edit'){
|
||||
res = await this.$API.system.user.update.req(this.addForm.id,this.addForm);
|
||||
}
|
||||
this.isSaveing = false;
|
||||
if(res.err_msg){
|
||||
this.$message(res.err_msg);
|
||||
}else{
|
||||
this.limitedVisible = false;
|
||||
this.$message.success("操作成功")
|
||||
}
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
//本地更新数据
|
||||
handleSaveSuccess(){
|
||||
this.$refs.table.refresh()
|
||||
},
|
||||
},
|
||||
};
|
||||
//本地更新数据
|
||||
handleSaveSuccess() {
|
||||
this.$refs.table.refresh();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style></style>
|
||||
|
|
|
|||
|
|
@ -96,12 +96,8 @@
|
|||
|
||||
<script>
|
||||
import { genTree } from "@/utils/verificate";
|
||||
import selectUser from "@/layout/components/userselect";
|
||||
export default {
|
||||
emits: ["success", "closed"],
|
||||
components: {
|
||||
selectUser,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
|
|
|
|||
|
|
@ -64,19 +64,19 @@
|
|||
</el-col>
|
||||
<el-col :md="12" :sm="24" :xs="24">
|
||||
<el-form-item label="接待人">
|
||||
<el-select v-model="form.receptionist" disabled placeholder="选择接待人">
|
||||
<span style="display:flex">
|
||||
<el-input readonly v-model="receptionist_name"></el-input>
|
||||
<!-- <el-select v-model="form.receptionist" disabled placeholder="选择接待人">
|
||||
<el-option
|
||||
v-for="item in receptionistoptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
|
||||
|
||||
<select-user ref="form.receptionist" :user="form.receptionist" :closable="true" :multiple="false" @submit="refresh" >
|
||||
</select-user>
|
||||
|
||||
</el-select> -->
|
||||
<ehsUserSelect :multiple="false" @submit="getReceptionist" >
|
||||
</ehsUserSelect >
|
||||
</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="24" :sm="12" :xs="24">
|
||||
|
|
@ -125,12 +125,8 @@
|
|||
|
||||
<script>
|
||||
import { genTree } from "@/utils/verificate";
|
||||
import selectUser from '@/layout/components/userselect'
|
||||
export default {
|
||||
emits: ["success", "closed"],
|
||||
components: {
|
||||
selectUser,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
|
|
@ -160,22 +156,13 @@ export default {
|
|||
{ id: 40, name: "开会" },
|
||||
],
|
||||
|
||||
receptionistoptions: [],
|
||||
receptionist_name: null,
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
|
||||
this.getUser();
|
||||
|
||||
},
|
||||
methods: {
|
||||
|
||||
|
||||
//访客接待人
|
||||
getUser() {
|
||||
this.$API.system.user.list.req({ page: 0 }).then((res) => {
|
||||
this.receptionistoptions = res;
|
||||
});
|
||||
},
|
||||
|
||||
//显示
|
||||
open(mode = "add") {
|
||||
|
|
@ -186,10 +173,10 @@ export default {
|
|||
|
||||
|
||||
|
||||
refresh(data) {
|
||||
getReceptionist(data) {
|
||||
// 子组件调用父组件的方法并传参
|
||||
console.log(data);
|
||||
this.form.receptionist=data;
|
||||
this.form.receptionist=data.id;
|
||||
this.receptionist_name=data.name
|
||||
},
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<el-header>
|
||||
<el-steps
|
||||
:active="active"
|
||||
style="width: 100%"
|
||||
style="width: 100%;margin-top:16px"
|
||||
:align-center="true"
|
||||
finish-status="success"
|
||||
>
|
||||
|
|
@ -100,40 +100,18 @@
|
|||
</el-col>
|
||||
<el-col :md="8" :sm="24" :xs="24">
|
||||
<el-form-item label="接待人">
|
||||
<el-select
|
||||
v-model="form.receptionist"
|
||||
disabled
|
||||
placeholder="选择接待人"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in receptionistoptions"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
/>
|
||||
</el-select>
|
||||
<select-user
|
||||
ref="form.receptionist"
|
||||
:user="form.receptionist"
|
||||
:closable="true"
|
||||
:multiple="false"
|
||||
@submit="refresh"
|
||||
>
|
||||
</select-user>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :md="24" :sm="12" :xs="24">
|
||||
<el-form-item>
|
||||
<el-button style="margin-top: 12px" @click="handleNextStep"
|
||||
>下一步</el-button
|
||||
>
|
||||
<span style="display:flex">
|
||||
<el-input readonly v-model="form.receptionist_name"></el-input>
|
||||
<ehsUserSelect :multiple="false" @submit="getReceptionist"/>
|
||||
</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div style="margin-top:20px;text-align:center">
|
||||
<el-button style="margin-top: 20px" @click="handleNextStep"
|
||||
type="primary">下一步</el-button>
|
||||
</div>
|
||||
</el-main>
|
||||
|
||||
<!--选择人员!-->
|
||||
|
|
@ -191,7 +169,7 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
<sc-dialog v-model="dialogpeople" draggable title="创建来访人员">
|
||||
<el-dialog v-model="dialogpeople" draggable title="创建来访人员">
|
||||
<el-form
|
||||
ref="dialofrom"
|
||||
:model="formpeople"
|
||||
|
|
@ -201,10 +179,10 @@
|
|||
>
|
||||
<el-row>
|
||||
<el-col :md="12" :sm="24">
|
||||
<el-form-item label="访客姓名" prop="visitor">
|
||||
<el-form-item label="访客" prop="visitor">
|
||||
<el-select
|
||||
v-model="formpeople.visitor"
|
||||
placeholder="选择接待人"
|
||||
placeholder="选择访客"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in visitoroptions"
|
||||
|
|
@ -229,19 +207,19 @@
|
|||
<el-button @click="dialogpeople = false">取 消</el-button>
|
||||
<el-button type="primary" @click="submitpeople">确 定</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
|
||||
<span> <el-button style="margin-top: 20px" @click="handleLastStep"
|
||||
>上一步</el-button
|
||||
> </span>
|
||||
</el-dialog>
|
||||
<div style="margin-top:20px;text-align:center">
|
||||
<el-button @click="handleLastStep"
|
||||
style="margin-right:4px">上一步</el-button
|
||||
>
|
||||
<span v-for=" item in initform.transitions" :key="item.id">
|
||||
<el-button style="margin-top: 20px" @click="submitticket(item.id)"
|
||||
>{{item.name}}</el-button
|
||||
<el-button @click="submitticket(item.id)"
|
||||
style="margin-right:4px" type="primary">{{item.name}}</el-button
|
||||
>
|
||||
|
||||
</span>
|
||||
<span>
|
||||
<el-button style="margin-top: 20px" @click="submitOut">退出</el-button> </span>
|
||||
<el-button @click="submitOut" type="warning">退出</el-button>
|
||||
</div>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</template>
|
||||
|
|
@ -268,7 +246,6 @@
|
|||
</style>
|
||||
<script>
|
||||
import { genTree } from "@/utils/verificate";
|
||||
import selectUser from "@/layout/components/userselect";
|
||||
|
||||
const defaultformworker = {
|
||||
duty: "",
|
||||
|
|
@ -277,7 +254,6 @@ const defaultformworker = {
|
|||
};
|
||||
export default {
|
||||
name: "vistoradd",
|
||||
components: { selectUser },
|
||||
data() {
|
||||
return {
|
||||
active: 0,
|
||||
|
|
@ -315,7 +291,7 @@ export default {
|
|||
mounted() {
|
||||
this.visitid = this.$route.query.visitid; //作业ID
|
||||
this.getRpj();
|
||||
this.getUser();
|
||||
// this.getUser();
|
||||
this.getpeoplelistlist();
|
||||
this.getvisitorlist();
|
||||
},
|
||||
|
|
@ -326,12 +302,17 @@ export default {
|
|||
this.form = res;
|
||||
});
|
||||
},
|
||||
//接待人
|
||||
getUser() {
|
||||
this.$API.system.user.list.req({ page: 0 }).then((res) => {
|
||||
this.receptionistoptions = res;
|
||||
});
|
||||
getReceptionist(data) {
|
||||
// 子组件调用父组件的方法并传参
|
||||
this.form.receptionist=data.id;
|
||||
this.form.receptionist_name=data.name
|
||||
},
|
||||
//接待人
|
||||
// getUser() {
|
||||
// this.$API.system.user.list.req({ page: 0 }).then((res) => {
|
||||
// this.receptionistoptions = res;
|
||||
// });
|
||||
// },
|
||||
//渲染工单提交按钮
|
||||
getInit(){
|
||||
this.$API.wf.workflow.initkey.req('visit').then((res) => {
|
||||
|
|
@ -392,7 +373,7 @@ export default {
|
|||
});
|
||||
},
|
||||
|
||||
//访客接待人
|
||||
//我的访客
|
||||
getvisitorlist() {
|
||||
this.$API.vm.visitor.list.req({ page: 0 }).then((res) => {
|
||||
this.visitoroptions = res;
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@
|
|||
projectId = row.ticket_data.opl;
|
||||
}
|
||||
this.$router.push({
|
||||
name: "visitdetail",
|
||||
name: "ticketdetail",
|
||||
query: {
|
||||
id: row.id,
|
||||
type: 'show',
|
||||
|
|
|
|||
|
|
@ -3,28 +3,32 @@
|
|||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="table"
|
||||
:data="list"
|
||||
:apiObj = "apiObj"
|
||||
:params = "params"
|
||||
row-key="id"
|
||||
stripe
|
||||
highlightCurrentRow
|
||||
hidePagination
|
||||
>
|
||||
<el-table-column label="ID" prop="id"></el-table-column>
|
||||
<el-table-column label="工单标题" prop="title"></el-table-column>
|
||||
<el-table-column label="流水号" prop="sn"></el-table-column>
|
||||
<el-table-column label="当前状态">
|
||||
<el-table-column label="ID" prop="id" width="180"></el-table-column>
|
||||
<el-table-column label="流水号" prop="sn" width="180"></el-table-column>
|
||||
<el-table-column label="工单标题" prop="title" width="180"></el-table-column>
|
||||
|
||||
<el-table-column label="工作流" prop="title">
|
||||
<template #default="scope">
|
||||
{{ scope.row.workflow_.name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="所在节点">
|
||||
<template #default="scope">
|
||||
{{ scope.row.state_.name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="进行状态" prop="sort">
|
||||
<template #default="scope">
|
||||
{{ actstate_[scope.row.act_state] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="关联工作流" prop="title">
|
||||
<template #default="scope">
|
||||
{{ scope.row.workflow_.name }}
|
||||
<el-tag
|
||||
:type="scope.row.act_state===0?'':scope.row.act_state===1?'':scope.row.act_state===2?'danger':scope.row.act_state===3?'danger':scope.row.act_state===5?'danger':scope.row.act_state===4?'success':''"
|
||||
>{{act_states[scope.row.act_state]}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="处理人类型">
|
||||
|
|
@ -32,7 +36,7 @@
|
|||
{{ participant_[scope.row.participant_type] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" prop="create_time"></el-table-column>
|
||||
<el-table-column label="创建时间" prop="create_time" width="150"></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<el-button text size="small" type="primary" @click="handleShow(scope.row)">查看详情</el-button>
|
||||
|
|
@ -48,9 +52,9 @@
|
|||
name: "state",
|
||||
data() {
|
||||
return {
|
||||
list: [],
|
||||
|
||||
actstate_: {
|
||||
apiObj: this.$API.wf.ticket.list,
|
||||
params: {"category": "cc"},
|
||||
act_states: {
|
||||
0: "草稿中",
|
||||
1: "进行中",
|
||||
2: "被退回",
|
||||
|
|
@ -66,14 +70,8 @@
|
|||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
async getList() {
|
||||
let res = await this.$API.wf.ticket.list.req({category: "cc", page: 0});
|
||||
console.log(res);
|
||||
this.list = res;
|
||||
},
|
||||
handleShow(row) {
|
||||
let cateType = row.workflow_.key;
|
||||
let projectId = '', operation = null;
|
||||
|
|
@ -86,7 +84,7 @@
|
|||
projectId = row.ticket_data.opl;
|
||||
}
|
||||
this.$router.push({
|
||||
name: "visitdetail",
|
||||
name: "ticketdetail",
|
||||
query: {
|
||||
id: row.id,
|
||||
type: 'show',
|
||||
|
|
|
|||
|
|
@ -3,28 +3,32 @@
|
|||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="table"
|
||||
:data="list"
|
||||
:apiObj="apiObj"
|
||||
:params="params"
|
||||
row-key="id"
|
||||
stripe
|
||||
highlightCurrentRow
|
||||
hidePagination
|
||||
>
|
||||
<el-table-column label="ID" prop="id"></el-table-column>
|
||||
<el-table-column label="工单标题" prop="title"></el-table-column>
|
||||
<el-table-column label="流水号" prop="sn"></el-table-column>
|
||||
<el-table-column label="当前状态">
|
||||
<el-table-column label="ID" prop="id" width="180"></el-table-column>
|
||||
<el-table-column label="流水号" prop="sn" width="180"></el-table-column>
|
||||
<el-table-column label="工单标题" prop="title" width="180"></el-table-column>
|
||||
|
||||
<el-table-column label="工作流" prop="title">
|
||||
<template #default="scope">
|
||||
{{ scope.row.workflow_.name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="所在节点">
|
||||
<template #default="scope">
|
||||
{{ scope.row.state_.name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="进行状态" prop="sort">
|
||||
<template #default="scope">
|
||||
{{ actstate_[scope.row.act_state] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="关联工作流" prop="title">
|
||||
<template #default="scope">
|
||||
{{ scope.row.workflow_.name }}
|
||||
<el-tag
|
||||
:type="scope.row.act_state===0?'':scope.row.act_state===1?'':scope.row.act_state===2?'danger':scope.row.act_state===3?'danger':scope.row.act_state===5?'danger':scope.row.act_state===4?'success':''"
|
||||
>{{act_states[scope.row.act_state]}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="处理人类型">
|
||||
|
|
@ -32,11 +36,12 @@
|
|||
{{ participant_[scope.row.participant_type] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" prop="create_time"></el-table-column>
|
||||
<el-table-column label="创建时间" prop="create_time" width="150"></el-table-column>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
text
|
||||
link
|
||||
size="small"
|
||||
v-if="(scope.row.act_state===1||scope.row.act_state===3)&&scope.row.state_.type===0"
|
||||
type="primary"
|
||||
@click="handleDetail(scope.row)"
|
||||
|
|
@ -44,15 +49,17 @@
|
|||
处理
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.state_.distribute_type===1&&scope.row.participant_type===2"
|
||||
type="text" size="small" @click="handleAccept(scope.row)">
|
||||
link type="success" size="small" @click="handleAccept(scope.row)">
|
||||
接单
|
||||
</el-button>
|
||||
<el-link
|
||||
<el-button
|
||||
type="success"
|
||||
link
|
||||
size="small"
|
||||
@click="handleLogs(scope.row)"
|
||||
>
|
||||
工单日志
|
||||
</el-link>
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
|
|
@ -73,8 +80,9 @@
|
|||
name: "state",
|
||||
data() {
|
||||
return {
|
||||
list: [],
|
||||
actstate_: {
|
||||
apiObj: this.$API.wf.ticket.list,
|
||||
params: {"category": "duty"},
|
||||
act_states: {
|
||||
0: "草稿中",
|
||||
1: "进行中",
|
||||
2: "被退回",
|
||||
|
|
@ -93,14 +101,8 @@
|
|||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
async getList() {
|
||||
let res = await this.$API.wf.ticket.list.req({category: "duty", page: 0});
|
||||
console.log(res);
|
||||
this.list = res;
|
||||
},
|
||||
//处理
|
||||
handleDetail(row) {
|
||||
let projectId = '', operation = null;
|
||||
|
|
@ -112,7 +114,7 @@
|
|||
operation = row.ticket_data.operation ? row.ticket_data.operation : null;
|
||||
}
|
||||
this.$router.push({
|
||||
name: "visitdetail",
|
||||
name: "ticketdetail",
|
||||
query: {
|
||||
id: row.id,
|
||||
projectId: projectId,
|
||||
|
|
@ -139,7 +141,7 @@
|
|||
this.$API.wf.ticket.ticketAccept.req(row.id, {}).then(res => {
|
||||
if (res.err_msg) {
|
||||
} else {
|
||||
this.getList();
|
||||
this.$refs.table.refresh()
|
||||
}
|
||||
})
|
||||
},
|
||||
|
|
|
|||
|
|
@ -3,28 +3,32 @@
|
|||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="table"
|
||||
:data="list"
|
||||
:apiObj="apiObj"
|
||||
:params="params"
|
||||
row-key="id"
|
||||
stripe
|
||||
highlightCurrentRow
|
||||
hidePagination
|
||||
>
|
||||
<el-table-column label="ID" prop="id"></el-table-column>
|
||||
<el-table-column label="工单标题" prop="title"></el-table-column>
|
||||
<el-table-column label="流水号" prop="sn"></el-table-column>
|
||||
<el-table-column label="当前状态">
|
||||
<el-table-column label="ID" prop="id" width="180"></el-table-column>
|
||||
<el-table-column label="流水号" prop="sn" width="180"></el-table-column>
|
||||
<el-table-column label="工单标题" prop="title" width="180"></el-table-column>
|
||||
|
||||
<el-table-column label="工作流" prop="title">
|
||||
<template #default="scope">
|
||||
{{ scope.row.workflow_.name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="所在节点">
|
||||
<template #default="scope">
|
||||
{{ scope.row.state_.name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="进行状态" prop="sort">
|
||||
<template #default="scope">
|
||||
{{ actstate_[scope.row.act_state] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="关联工作流" prop="title">
|
||||
<template #default="scope">
|
||||
{{ scope.row.workflow_.name }}
|
||||
<el-tag
|
||||
:type="scope.row.act_state===0?'':scope.row.act_state===1?'':scope.row.act_state===2?'danger':scope.row.act_state===3?'danger':scope.row.act_state===5?'danger':scope.row.act_state===4?'success':''"
|
||||
>{{act_states[scope.row.act_state]}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="处理人类型">
|
||||
|
|
@ -32,26 +36,30 @@
|
|||
{{ participant_[scope.row.participant_type] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" prop="create_time"></el-table-column>
|
||||
<el-table-column label="创建时间" prop="create_time" width="150"></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="center" width="160">
|
||||
<template #default="scope">
|
||||
<el-button text size="small" type="primary" @click="handleShow(scope.row)">查看详情</el-button>
|
||||
<el-button text size="small" type="primary" @click="handleShow(scope.row)">查看</el-button>
|
||||
<!--创建人在初始状态-->
|
||||
<el-link
|
||||
<el-button
|
||||
v-if="scope.row.state_.type===1&&userId===scope.row.create_by"
|
||||
type="danger"
|
||||
size="small"
|
||||
link
|
||||
@click="handleClose(scope,'2')"
|
||||
>
|
||||
关闭
|
||||
</el-link>
|
||||
</el-button>
|
||||
<!--如果state_.retreat/state_.type==1处于草稿状态 -->
|
||||
<el-link
|
||||
<el-button
|
||||
v-if="scope.row.state_.enable_retreat&&userId===scope.row.create_by&&scope.row.state_.type!==1"
|
||||
type="danger"
|
||||
@click="handleClose(scope,'1')"
|
||||
size="small"
|
||||
link
|
||||
>
|
||||
撤回
|
||||
</el-link>
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</scTable>
|
||||
|
|
@ -75,9 +83,10 @@
|
|||
name: "state",
|
||||
data() {
|
||||
return {
|
||||
list: [],
|
||||
apiObj: this.$API.wf.ticket.list,
|
||||
params: {"category": "owner"},
|
||||
userId: this.$TOOL.data.get("USER_INFO").id,
|
||||
actstate_: {
|
||||
act_states: {
|
||||
0: "草稿中",
|
||||
1: "进行中",
|
||||
2: "被退回",
|
||||
|
|
@ -100,8 +109,6 @@
|
|||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getList();
|
||||
this.userId = this.$TOOL.data.get("USER_INFO").id;
|
||||
},
|
||||
methods: {
|
||||
handleShow(row) {
|
||||
|
|
@ -116,7 +123,7 @@
|
|||
projectId = row.ticket_data.opl;
|
||||
}
|
||||
this.$router.push({
|
||||
name: "visitdetail",
|
||||
name: "ticketdetail",
|
||||
query: {
|
||||
id: row.id,
|
||||
type: 'show',
|
||||
|
|
@ -126,11 +133,6 @@
|
|||
},
|
||||
});
|
||||
},
|
||||
async getList() {
|
||||
let res = await this.$API.wf.ticket.list.req({category: "owner", page: 0});
|
||||
console.log(res);
|
||||
this.list = res;
|
||||
},
|
||||
handleClose(scope, index) {
|
||||
if (index === '1') {
|
||||
this.handleTitle = '撤回工单';
|
||||
|
|
@ -160,10 +162,10 @@
|
|||
res = that.$API.wf.ticket.ticketClose.req(that.ticketId, that.handleForm);
|
||||
}
|
||||
if (res.err_msg) {
|
||||
that.getList();
|
||||
that.$refs.table.refresh()
|
||||
} else {
|
||||
that.limitedRetreat = false;
|
||||
that.getList();
|
||||
that.$refs.table.refresh()
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
|
|
|
|||
|
|
@ -207,17 +207,15 @@
|
|||
<script>
|
||||
import workDetails from "./details.vue";
|
||||
import workStep from "./steps.vue";
|
||||
import showDialog from "./../rpm/rpj_show.vue";
|
||||
import selectUser from '@/layout/components/userselect'
|
||||
import showDialog from "../rpm/rpj_show.vue";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
workDetails,
|
||||
workStep,
|
||||
selectUser,
|
||||
showDialog
|
||||
},
|
||||
name: "visitdetail",
|
||||
name: "ticketdetail",
|
||||
data() {
|
||||
return {
|
||||
ticketId: "",//工单id
|
||||
|
|
@ -3,28 +3,32 @@
|
|||
<el-main class="nopadding">
|
||||
<scTable
|
||||
ref="table"
|
||||
:data="list"
|
||||
:apiObj="apiObj"
|
||||
:params="params"
|
||||
row-key="id"
|
||||
stripe
|
||||
highlightCurrentRow
|
||||
hidePagination
|
||||
>
|
||||
<el-table-column label="ID" prop="id"></el-table-column>
|
||||
<el-table-column label="工单标题" prop="title"></el-table-column>
|
||||
<el-table-column label="流水号" prop="sn"></el-table-column>
|
||||
<el-table-column label="当前状态">
|
||||
<el-table-column label="ID" prop="id" width="180"></el-table-column>
|
||||
<el-table-column label="流水号" prop="sn" width="180"></el-table-column>
|
||||
<el-table-column label="工单标题" prop="title" width="180"></el-table-column>
|
||||
|
||||
<el-table-column label="工作流" prop="title">
|
||||
<template #default="scope">
|
||||
{{ scope.row.workflow_.name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="所在节点">
|
||||
<template #default="scope">
|
||||
{{ scope.row.state_.name }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="进行状态" prop="sort">
|
||||
<template #default="scope">
|
||||
{{ actstate_[scope.row.act_state] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="关联工作流" prop="title">
|
||||
<template #default="scope">
|
||||
{{ scope.row.workflow_.name }}
|
||||
<el-tag
|
||||
:type="scope.row.act_state===0?'':scope.row.act_state===1?'':scope.row.act_state===2?'danger':scope.row.act_state===3?'danger':scope.row.act_state===5?'danger':scope.row.act_state===4?'success':''"
|
||||
>{{act_states[scope.row.act_state]}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="处理人类型">
|
||||
|
|
@ -32,7 +36,7 @@
|
|||
{{ participant_[scope.row.participant_type] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建时间" prop="create_time"></el-table-column>
|
||||
<el-table-column label="创建时间" prop="create_time" width="150"></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<el-button text size="small" type="primary" @click="handleShow(scope.row)">查看详情</el-button>
|
||||
|
|
@ -48,8 +52,9 @@
|
|||
name: "state",
|
||||
data() {
|
||||
return {
|
||||
list: [],
|
||||
actstate_: {
|
||||
apiObj: this.$API.wf.ticket.list,
|
||||
params: {"category": "worked"},
|
||||
act_states: {
|
||||
0: "草稿中",
|
||||
1: "进行中",
|
||||
2: "被退回",
|
||||
|
|
@ -65,14 +70,8 @@
|
|||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
async getList() {
|
||||
let res = await this.$API.wf.ticket.list.req({category: "worked", page: 0});
|
||||
console.log(res);
|
||||
this.list = res;
|
||||
},
|
||||
handleShow(row) {
|
||||
let cateType = row.workflow_.key;
|
||||
let projectId = '', operation = null;
|
||||
|
|
@ -85,7 +84,7 @@
|
|||
projectId = row.ticket_data.opl;
|
||||
}
|
||||
this.$router.push({
|
||||
name: "visitdetail",
|
||||
name: "ticketdetail",
|
||||
query: {
|
||||
id: row.id,
|
||||
type: 'show',
|
||||
|
|
|
|||
Loading…
Reference in New Issue