This commit is contained in:
shijing 2022-07-21 16:01:09 +08:00
commit 70533ed872
11 changed files with 243 additions and 247 deletions

View File

@ -194,19 +194,17 @@ const routes = [
"meta": {
"title": "我创建的",
"icon": "el-icon-folder-add",
"perms": ["ownerwork"]
},
"component": "wf/ownerwork"
}
,
{
"name": "duyt",
"name": "duty",
"path": "/wf/dutywork",
"meta": {
"title": "待办工单",
"icon": "el-icon-folder-opened",
"perms": ["duyt"]
},
"component": "wf/dutywork"
},
@ -216,7 +214,6 @@ const routes = [
"meta": {
"title": "我处理的",
"icon": "el-icon-expand",
"perms": ["worked"]
},
"component": "wf/worked"
},
@ -226,7 +223,6 @@ const routes = [
"meta": {
"title": "抄送我的",
"icon": "el-icon-edit-pen",
"perms": ["ccwork"]
},
"component": "wf/ccwork"
},

View File

@ -279,6 +279,10 @@ body .tox-tinymce-aux {
margin-bottom: 16px;
}
.el-col .el-card {
margin-bottom: 8px;
}
.el-card,
.el-message {
border-radius: 0px;

View File

@ -39,40 +39,33 @@
prop="name"
min-width="150"
></el-table-column>
<el-table-column label="音量" prop="extra" min-width="100">
<el-table-column label="音量" prop="extra" min-width="40">
<template #default="scope">
<span v-if="scope.row.extra && scope.row.extra.player">{{
scope.row.extra.player.EnvVolume
}}</span>
</template>
</el-table-column>
<el-table-column
label="设备sn"
prop="sn"
min-width="150"
></el-table-column>
<el-table-column label="ip" prop="extra" min-width="90">
<template #default="scope">
<span v-if="scope.row.extra">{{ scope.row.extra.ip }}</span>
</template>
</el-table-column>
<el-table-column label="在线状态" prop="extra" min-width="90">
<el-table-column label="在线状态" prop="extra" min-width="40">
<template #default="scope">
<span v-if="scope.row.extra">{{ scope.row.extra.online }}</span>
<span v-if="scope.row.extra">
<el-tag v-if="scope.row.extra.online">在线</el-tag>
<el-tag v-else type="danger">离线</el-tag>
</span>
</template>
</el-table-column>
<!--<el-table-column label="位置" prop="count_people" min-width="90"></el-table-column>-->
<el-table-column
label="所在区域"
prop="create_time"
min-width="180"
prop="my_info.area_name"
min-width="100"
></el-table-column>
<el-table-column
label="覆盖区域"
prop="create_time"
width="160"
></el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="160">
<el-table-column label="操作" fixed="right" align="center" width="180">
<template #default="scope">
<el-button-group>
<el-button

View File

@ -64,7 +64,7 @@
<span v-if="scope.row.employee">{{scope.row.employee_.name}}</span>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="160">
<el-table-column label="操作" fixed="right" align="center" width="180">
<template #default="scope">
<el-button-group>
<el-button

View File

@ -71,12 +71,17 @@
<span v-else><el-tag type="success">在线</el-tag></span>
</template>
</el-table-column>
<el-table-column
label="所在区域"
prop="my_info.area_name"
min-width="100"
></el-table-column>
<el-table-column
label="创建时间"
prop="createTime"
min-width="160"
></el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="260">
<el-table-column label="操作" fixed="right" align="center" width="180">
<template #default="scope">
<el-button-group>
<el-button

View File

@ -1,124 +1,117 @@
<template>
<el-row>
<el-col :md="4" :sm="24" style="padding-left: 7.5px;padding-right: 7.5px">
<el-card shadow="hover" style="height:438px;" header="工单待办">
<div class="welcome" v-for="item in dutyAgg" :key="item.workflow">
<div style="width:33%;float:left">
<div style="margin: 0px 20px 12px 40px;">
<el-badge :value="item.count" class="item">
<el-button
icon="el-icon-document-copy"
type="primary"
size="small"
></el-button>
</el-badge>
<el-row :gutter="6">
<el-col :md="4" :sm="24">
<el-card shadow="hover">
<template #header>
<div class="card-header">
<span>工单待办</span>
</div>
<div style="margin: 0px 20px 12px 40px">
<span>{{item.workflow__name}}</span>
</template>
<div class="card-body">
<div v-for="item in dutyAgg" :key="item.workflow">
<el-badge :value="item.count" class="item">
<el-button
icon="el-icon-document-copy"
type="primary"
size="small"
@click="toTicket"
></el-button>
</el-badge>
<div style="font-size:12px">{{ item.workflow__name }}</div>
</div>
</div>
</div>
</div>
</el-card>
</el-col>
<el-col :md="10" :sm="24" style="padding-left: 7.5px;padding-right: 7.5px;
">
<el-card shadow="hover" header="今日事件">
<el-button style="float: right; padding: 3px;margin-top: -44px;" link @click="moreEvent">更多</el-button>
<div class="welcome">
<scTable
ref="table"
:apiObj="apiObj"
:params="params"
row-key="id"
fit
stripe
hideDo
>
<el-table-column
label="#"
type="index"
width="50"
></el-table-column>
<el-table-column label="事件种类">
<template #default="scope">
<el-span
v-for="item in scope.row.cates_"
:key="item.id"
:label="item.name"
:value="item.id"
>{{ item.name }}</el-span
>
</template>
</el-table-column>
<el-table-column
label="发生区域"
prop="area_.name"
></el-table-column>
<el-table-column label="当事人" prop="employee_.name">
<template #default="scope">
<span
v-if="scope.row.employee && scope.row.obj_cate == 'people'"
>{{ scope.row.employee_.name }}</span
>
<span v-else>未知人员</span>
</template>
</el-table-column>
<el-col :md="12" :sm="24">
<el-card shadow="hover">
<template #header>
<div class="card-header">
<span>今日事件</span>
<el-button @click="moreEvent" type="primary" text>更多</el-button>
</div>
</template>
<div style="height:340px">
<scTable
ref="table"
:apiObj="apiObj"
:params="params"
row-key="id"
fit
stripe
hideDo
>
<el-table-column label="#" type="index" width="50"></el-table-column>
<el-table-column label="事件种类">
<template #default="scope">
<el-span
v-for="item in scope.row.cates_"
:key="item.id"
:label="item.name"
:value="item.id"
>{{ item.name }}</el-span
>
</template>
</el-table-column>
<el-table-column label="发生区域" prop="area_.name"></el-table-column>
<el-table-column label="当事人" prop="employee_.name">
<template #default="scope">
<span
v-if="scope.row.employee && scope.row.obj_cate == 'people'"
>{{ scope.row.employee_.name }}</span
>
<span v-else>未知人员</span>
</template>
</el-table-column>
<el-table-column label="人员类型" prop="employee_.type">
<template #default="scope">
<el-table-column label="人员类型" prop="employee_.type">
<template #default="scope">
<span v-if="scope.row.employee && scope.row.obj_cate == 'people'">
<span
v-if="scope.row.employee && scope.row.obj_cate == 'people'"
v-if="
scope.row.employee_.type != '' &&
scope.row.employee_.type == 'employee'
"
>企业员工</span
>
<span
v-if="
scope.row.employee_.type != '' &&
scope.row.employee_.type == 'employee'
"
>企业员工</span
>
<span
v-if="
scope.row.employee_.type != '' &&
scope.row.employee_.type == 'remployee'
"
>相关方</span
>
<span
v-if="
scope.row.employee_.type != '' &&
scope.row.employee_.type == 'visitor'
"
>访客</span
>
</span>
</template>
</el-table-column>
<el-table-column
label="发生时间"
prop="create_time"
></el-table-column>
<span
v-if="
scope.row.employee_.type != '' &&
scope.row.employee_.type == 'remployee'
"
>相关方</span
>
<span
v-if="
scope.row.employee_.type != '' &&
scope.row.employee_.type == 'visitor'
"
>访客</span
>
</span>
</template>
</el-table-column>
<el-table-column
label="发生时间"
prop="create_time"
></el-table-column>
<el-table-column
<!-- <el-table-column
label="处理人"
prop="handle_user_name"
></el-table-column>
</scTable>
></el-table-column> -->
</scTable>
</div>
</el-card>
</el-col>
<el-col :md="10" :sm="24" style="
padding-left: 7.5px;">
<el-card header="今日事件统计">
<scEcharts
height="360px"
:option="option3"
></scEcharts>
<el-col :md="8" :sm="24">
<el-card shadow="hover">
<template #header>
<div class="card-header">
<span>今日事件统计</span>
</div>
</template>
<scEcharts height="340px" :option="option3"></scEcharts>
</el-card>
</el-col>
</el-row>
@ -136,33 +129,34 @@ export default {
},
data() {
return {
dutyAgg:[],
dutyAgg: [],
params: {
page: 1,
page_size: 20,
start_create: ""
start_create: "",
},
apiObj: null,
postOptions: [],
option3:null,
operationnumber: null,
rpjnumber:null,
visitnumber:null
option3: null,
operationnumber: null,
rpjnumber: null,
visitnumber: null,
};
},
created() {
var craeteTime=this.$TOOL.dateFormat(
var craeteTime = this.$TOOL.dateFormat(
new Date().toLocaleDateString(),
"yyyy-MM-dd"
);
this.postOptions = [];
this.$API.ecm.event.cateAgg.req({ completed: false,start_create:craeteTime }).then((res) => {
res.details.forEach((itemI, indexI) => {
this.postOptions.push({ value: itemI.count, name: itemI.cate__name });
this.$API.ecm.event.cateAgg
.req({ completed: false, start_create: craeteTime })
.then((res) => {
res.details.forEach((itemI, indexI) => {
this.postOptions.push({ value: itemI.count, name: itemI.cate__name });
});
});
});
this.option3 = {
title: {},
tooltip: {
@ -182,24 +176,27 @@ export default {
this.params.start_create = craeteTime;
this.apiObj = this.$API.ecm.event.list;
this.getdutyAgg();
this.getdutyAgg();
},
methods: {
moreEvent(){
this.$router.push({
name: "event",
query: {
},
});
moreEvent() {
this.$router.push({
name: "event",
query: {},
});
},
toTicket() {
this.$router.push({
name: "duty",
query: {},
});
},
//
async getdutyAgg() {
let res = await this.$API.wf.ticket.dutyAgg.req({ page: 0 });
this.dutyAgg = res.details;
},
},
};
</script>
@ -258,4 +255,16 @@ export default {
text-align: center;
margin: 40px 0 20px 0;
}
.card-header {
display: flex;
justify-content: space-between;
align-items: center;
height:24px;
}
.card-body {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
height:340px;
}
</style>

View File

@ -1,73 +1,61 @@
<template>
<el-row>
<el-col :md="12" :sm="24" style="padding-right: 7.5px; padding-left: 7.5px">
<el-card header="进行项目">
<div style="width:33%;float:left">
<div style="margin: 0px 20px 12px 40px;">
<el-badge :value="operationnumber" class="item">
<el-button
icon="el-icon-document-copy"
type="primary"
size="small"
></el-button>
</el-badge>
<el-row :gutter="6">
<el-col :md="12" :sm="24">
<el-card shadow="hover">
<template #header>
<div class="card-header">
<span>进行项目</span>
</div>
<div style="margin: 0px 20px 12px 40px">
<span>作业</span>
</template>
<div class="card-body">
<div>
<el-badge :value="operationnumber" class="item">
<el-button
icon="el-icon-document-copy"
type="primary"
size="small"
></el-button>
</el-badge>
<div style="font-size:16px">危险作业</div>
</div>
<div>
<el-badge :value="rpjnumber" class="item">
<el-button
icon="el-icon-document-copy"
type="warning"
size="small"
></el-button>
</el-badge>
<div style="font-size:16px">相关方项目</div>
</div>
<div>
<el-badge :value="visitnumber" class="item">
<el-button
icon="el-icon-document-copy"
type="success"
size="small"
></el-button>
</el-badge>
<div style="font-size:16px">来访项目</div>
</div>
</div>
</div>
<div style="width:33%;float:left">
<div style="margin: 0px 20px 12px 40px;">
<el-badge :value="rpjnumber" class="item">
<el-button
icon="el-icon-document-copy"
type="warning"
size="small"
></el-button>
</el-badge>
</div>
<div style="margin: 0px 20px 12px 40px">
<span>相关方项目</span>
</div>
</div>
<div style="width:33%;float:left">
<div style="margin: 0px 20px 12px 40px;">
<el-badge :value="visitnumber" class="item">
<el-button
icon="el-icon-document-copy"
type="success"
size="small"
></el-button>
</el-badge>
</div>
<div style="margin: 0px 20px 12px 40px">
<span>访客项目</span>
</div>
</div>
</el-card>
</el-col>
<el-col :md="12" :sm="24" style="padding-left: 7.5px">
<el-card>
<el-col :md="12" :sm="24">
<el-card shadow="hover">
<template #header>
<div class="card-header">
<span>人员统计</span>
<el-switch
v-model="ep_count_type"
active-text="在厂"
inactive-text="有卡"
@change="countTypeChange"
/>
</div>
</template>
<div class="screen-cockpits">
<div class="cockpit-count">
<div class="divider"></div>
<div class="simple-title">
<span>人员统计</span>
<div class="countTypeWrap">
<span
:class="{ activeCount: countIndex === '1' }"
@click="countINdexChange('1')"
>有卡</span
>
<el-divider direction="vertical"></el-divider>
<span
:class="{ activeCount: countIndex === '2' }"
@click="countINdexChange('2')"
>在厂</span
>
</div>
</div>
<div class="count-list">
<div class="count-list-item">
<div class="item-img item-img2"></div>
@ -113,6 +101,7 @@ export default {
return {
dutyAgg: [],
//
ep_count_type: true,
userCount: {
total: 0,
count_employee: 0, //
@ -120,8 +109,8 @@ export default {
count_visitor: 0, //
},
operationnumber: null,
rpjnumber:null,
visitnumber:null
rpjnumber: null,
visitnumber: null,
};
},
created() {
@ -170,7 +159,7 @@ export default {
this.operationnumber = res.count;
});
},
//
//
getRpj() {
this.$API.rpm.rpj.list
.req({ page: 1, page_size: 1, state: 40 })
@ -178,7 +167,7 @@ export default {
this.rpjnumber = res.count;
});
},
//访
//访
getVisit() {
this.$API.vm.visit.list
.req({ page: 1, page_size: 1, state: 40 })
@ -271,12 +260,14 @@ export default {
margin: 40px 0 20px 0;
}
.screen-cockpits {
margin-top: -15px;
// margin-top: -15px;
.cockpit-count {
.count-list {
display: flex;
flex-wrap: wrap;
margin-left: 30px;
// flex-wrap: wrap;
justify-content: space-around;
align-items: center;
height: 80px;
.count-list-item {
width: 33.3333%;
height: 50%;
@ -481,4 +472,16 @@ export default {
}
}
}
.card-header {
display: flex;
justify-content: space-between;
align-items: center;
height:24px;
}
.card-body {
display: flex;
justify-content: space-around;
align-items: center;
height:80px;
}
</style>

View File

@ -13,7 +13,7 @@
<div v-if="nowCompsList.length<=0" class="no-widgets">
<el-empty image="img/no-widgets.svg" description="没有部件啦" :image-size="280"></el-empty>
</div>
<el-row :gutter="15">
<el-row :gutter="6">
<el-col v-for="(item, index) in grid.layout" v-bind:key="index" :md="item" :xs="24">
<draggable v-model="grid.copmsList[index]" animation="200" handle=".customize-overlay" group="people" item-key="com" dragClass="aaaaa" force-fallback fallbackOnBody class="draggable-box">
<template #item="{ element }">
@ -193,7 +193,7 @@
<style scoped lang="scss">
.widgets-home {display: flex;flex-direction: row;flex: 1;height: 100%;}
.widgets-content {flex: 1;overflow: auto;overflow-x:hidden;padding:15px;}
.widgets-content {flex: 1;overflow: auto;overflow-x:hidden;padding:8px;}
.widgets-aside {width: 360px;background: #fff;box-shadow: 0 0 10px rgba(0,0,0,.1);position: relative;overflow: auto;}
.widgets-aside-title {font-size: 14px;display: flex;align-items: center;justify-content: center;}
.widgets-aside-title i {margin-right: 10px;font-size: 18px;}

View File

@ -13,12 +13,12 @@
clearable
:placeholder="$t('login.userPlaceholder')"
>
<template #append>
<!-- <template #append>
<el-select v-model="userType" style="width: 130px">
<el-option :label="$t('login.admin')" value="admin"></el-option>
<el-option :label="$t('login.user')" value="user"></el-option>
</el-select>
</template>
</template> -->
</el-input>
</el-form-item>
<el-form-item prop="password">

View File

@ -223,7 +223,7 @@ export default {
//
editMenu(row) {
this.type = "edit";
this.addForm = row;
this.addForm = Object.assign({}, row);
this.limitedVisible = true;
},

View File

@ -164,7 +164,7 @@
prop="participant"
v-if="addForm.participant_type == 7"
>
<el-select
<!-- <el-select
style="width: 100%"
v-model="addForm.participant"
placeholder="请选择字段"
@ -176,7 +176,8 @@
:value="item.field_key"
>
</el-option>
</el-select>
</el-select> -->
<el-input v-model="addForm.participant" placeholder="工单字段" />
</el-form-item>
<el-form-item
label="参与者"
@ -243,25 +244,11 @@
</el-select>
</el-form-item>
<el-form-item
label="过滤策略"
prop="participant"
v-if="
addForm.participant_type == 4 || addForm.participant_type == 0|| addForm.participant_type == 10
"
label="部门过滤"
prop="filter_dept"
v-if="addForm.participant_type == 4 || addForm.participant_type == 0|| addForm.participant_type == 10"
>
<el-select
style="width: 100%"
v-model="addForm.filter_policy"
placeholder="请选择过滤策略"
>
<el-option label="无" value="0"></el-option>
<el-option label="和工单同属以及上级部门" value="1"></el-option>
<el-option label="和创建人同属以及上级部门" value="2"></el-option>
<el-option
label="和上步处理人同属以及上级部门"
value="3"
></el-option>
</el-select>
<el-input v-model="addForm.filter_dept" placeholder="部门字段" />
</el-form-item>
<!-- <el-form-item label="代码选择" prop="participant" v-if="addForm.participant_type==9">
<el-select style="width: 100%" v-model="participants" placeholder="请选择代码">
@ -388,7 +375,6 @@ export default {
participant_cc: [],
enable_retreat: false,
participant_type: 0,
filter_policy: '0',
distribute_type: 2, //
state_fields: {}, //
},