From 9e5caf43d7059cd5b28703b138e95b7f4df94699 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 27 九月 2024 17:00:42 +0800
Subject: [PATCH] 首页图表
---
src/views/system/work-order/distribute/index.vue | 210 ++++++++++++++++++++++++++++++---------------------
1 files changed, 123 insertions(+), 87 deletions(-)
diff --git a/src/views/system/work-order/distribute/index.vue b/src/views/system/work-order/distribute/index.vue
index 1db9c1d..fc32a22 100644
--- a/src/views/system/work-order/distribute/index.vue
+++ b/src/views/system/work-order/distribute/index.vue
@@ -10,45 +10,47 @@
{{ item.unitName }}锛坽{ item.workOrderCount }}锛�
</el-menu-item>
</el-menu>
- <el-popover
- placement="right"
- width="400"
- trigger="click">
- <el-form :model="settingForm" :rules="settingRules" ref="settingForm" label-width="120px">
- <el-form-item label="褰曞儚璐ㄩ噺" prop="videoQuality">
- <el-select style="width: 100%" v-model="settingForm.videoQuality" placeholder="鏈�浣庡綍鍍忚川閲�">
- <el-option label="鍏ㄥ綍鍍�" value="鍏ㄥ綍鍍�"/>
- <el-option label="閮ㄥ垎褰曞儚" value="閮ㄥ垎褰曞儚"/>
- <el-option label="鏃犲綍鍍�" value="鏃犲綍鍍�"/>
- </el-select>
- </el-form-item>
- <el-form-item label="鐐逛綅绂荤嚎鏃堕暱" prop="outLine">
- <el-input type="number" v-model="settingForm.outLine" placeholder="涓嶈兘瓒呰繃澶氫箙">
- <template slot="append">鍒嗛挓</template>
- </el-input>
- </el-form-item>
- <el-form-item label="瑙嗛鏍囨敞鍑嗙‘鐜�" prop="videoLabel">
- <el-input type="number" v-model="settingForm.videoLabel" placeholder="鏈�浣庡噯纭巼">
- <template slot="append">%</template>
- </el-input>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="submitSetting">淇濆瓨</el-button>
- </el-form-item>
- </el-form>
- <el-button title="鑷姩鐢熸垚宸ュ崟璁剧疆" slot="reference" class="setting" style="" type="success" icon="el-icon-s-tools" circle></el-button>
- </el-popover>
</el-col>
</el-row>
- <el-row class="op-warp" type="flex" justify="left" >
- <el-col :span="24">
- <el-button size="small" type="info" @click="selectedDistribute" class="op">涓嬪彂閫変腑宸ュ崟</el-button>
+ <el-row class="op-warp">
+ <el-row v-show="showSearch">
+ <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
+ <el-form-item label="鍏抽敭璇�" prop="keyword">
+ <el-input
+ v-model="queryParams.keyword"
+ placeholder="鍏抽敭璇嶆悳绱�"
+ clearable
+ @keyup.enter.native="page"
+ @clear="page"
+ />
+ </el-form-item>
+ <el-form-item label="鏁呴殰绫诲瀷" prop="errorTypeList">
+ <el-select v-model="queryParams.errorTypeList" multiple placeholder="鏁呴殰绫诲瀷" clearable @change="page" @clear="page">
+ <el-option v-for="dict in dict.type.error_type"
+ :value="dict.value"
+ :label="dict.label"/>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="涓嬪彂鐘舵��" prop="status">
+ <el-select v-model="queryParams.status" @change="page" placeholder="涓嬪彂鐘舵��" clearable>
+ <el-option label="鏈笅鍙�" value="WAIT_DISTRIBUTE"/>
+ <el-option label="宸蹭笅鍙�" value="DISTRIBUTED"/>
+ </el-select>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="el-icon-search" size="small" @click="page">鎼滅储</el-button>
+ </el-form-item>
+ </el-form>
+ </el-row>
+
+ <el-row>
+ <el-button size="mini" plain type="info" @click="selectedDistribute" class="op">涓嬪彂閫変腑宸ュ崟</el-button>
<el-popconfirm
@confirm="allDistribute"
title="纭畾瑕佷笅鍙戞墍鏈夊伐鍗曞悧锛�"
>
- <el-button size="small" type="danger" class="op" slot="reference">鍏ㄩ儴涓嬪彂</el-button>
+ <el-button size="mini" plain type="danger" class="op" slot="reference">鍏ㄩ儴涓嬪彂</el-button>
</el-popconfirm>
<el-popover
@@ -59,41 +61,42 @@
<span style="font-weight: bold;font-size: 16px">蹇嵎涓嬪彂</span>
<el-form ref="fastDistributeForm" :model="fastDistributeForm" :rules="fastDistributeRules" label-width="80px">
<el-form-item label="蹇嵎鏂瑰紡" prop="fastWay">
- <el-radio v-model="fastDistributeForm.fastWay" label="0">鏈�杩�30鍒嗛挓</el-radio>
- <el-radio v-model="fastDistributeForm.fastWay" label="01">鏈�杩�1灏忔椂</el-radio>
- <el-radio v-model="fastDistributeForm.fastWay" label="10">鏈�杩�2灏忔椂</el-radio>
- <el-radio v-model="fastDistributeForm.fastWay" label="11">鏈�杩�1澶�</el-radio>
- <el-radio v-model="fastDistributeForm.fastWay" label="101">鑷畾涔�</el-radio>
+ <el-radio v-model="fastDistributeForm.fastWay" label="LAST_HOUR">鏈�杩�1灏忔椂</el-radio>
+ <el-radio v-model="fastDistributeForm.fastWay" label="LAST_TWO_HOUR">鏈�杩�2灏忔椂</el-radio>
+ <el-radio v-model="fastDistributeForm.fastWay" label="LAST_DAY">鏈�杩�1澶�</el-radio>
+ <el-radio v-model="fastDistributeForm.fastWay" label="CUSTOM">鑷畾涔�</el-radio>
</el-form-item>
- <el-form-item v-if="fastDistributeForm.fastWay === '101'" label="鏃堕棿鑼冨洿">
+ <el-form-item v-if="fastDistributeForm.fastWay === 'CUSTOM'" label="鏃堕棿鑼冨洿">
<el-date-picker
style="width: 100%"
v-model="fastTimeRange"
type="datetimerange"
range-separator="鑷�"
start-placeholder="寮�濮嬫棩鏈�"
+ value-format="yyyy-MM-dd HH:mm:ss"
end-placeholder="缁撴潫鏃ユ湡">
</el-date-picker>
</el-form-item>
<el-form-item label="鏁呴殰绫诲瀷" prop="errorType">
- <el-select v-model="fastDistributeForm.errorType">
- <el-option label="甯傛斂鏂藉伐" value="甯傛斂鏂藉伐"/>
- <el-option label="璁惧鏁呴殰" value="璁惧鏁呴殰"/>
- <el-option label="璁惧閬楀け" value="璁惧閬楀け"/>
+ <el-select v-model="fastDistributeForm.errorType" multiple>
+ <el-option v-for="dict in dict.type.error_type"
+ :value="dict.value"
+ :key="dict.value"
+ :label="dict.label"/>
</el-select>
</el-form-item>
<el-form-item label="鏁伴噺闄愬埗" prop="fastNumLimit">
- <el-input v-model="fastDistributeForm.fastNumLimit" size="small" type="number" placeholder="姝ゆ宸ュ崟涓嬪彂鏈�澶ф暟閲�"></el-input>
+ <el-input v-model="fastDistributeForm.fastNumLimit" type="number" placeholder="姝ゆ宸ュ崟涓嬪彂鏈�澶ф暟閲�"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" @click="fastDistribute">绔嬪嵆涓嬪彂</el-button>
</el-form-item>
</el-form>
- <el-button slot="reference" type="primary" size="small">蹇嵎涓嬪彂</el-button>
+ <el-button slot="reference" type="primary" size="mini" plain>蹇嵎涓嬪彂</el-button>
</el-popover>
- <el-button size="small" type="primary" @click="page">鍒锋柊</el-button>
- <el-button size="small" type="primary" @click="handleAdd">鏂板</el-button>
- </el-col>
+ <el-button size="mini" plain type="success" @click="handleAdd">鎵嬪姩鏂板宸ュ崟</el-button>
+ <right-toolbar :showSearch.sync="showSearch" @queryTable="page"></right-toolbar>
+ </el-row>
</el-row>
<el-row class="content-warp" type="flex" justify="left">
@@ -101,10 +104,22 @@
<el-table v-loading="loading" :data="workOrderList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="宸ュ崟鍙�" align="center" prop="workOrderNo"/>
- <el-table-column label="杩愮淮鍗曚綅" align="center" prop="unitName"/>
- <el-table-column label="宸ュ崟鏉ユ簮" align="center" prop="source"/>
+ <el-table-column label="鏁呴殰鐐逛綅" align="center" prop="source">
+ <template slot-scope="scope">
+ <el-popover
+ placement="right"
+ :title="scope.row.important ? '閲嶇偣鐐逛綅': '姝e父鐐逛綅'"
+ width="200"
+ trigger="hover">
+ <span :class="{important: scope.row.important}" slot="reference">{{ scope.row.source }}</span>
+ </el-popover>
+ </template>
+ </el-table-column>
<el-table-column label="鏁呴殰绫诲瀷" align="center" prop="errorType"/>
+ <el-table-column label="杩愮淮鍗曚綅" align="center" prop="unitName"/>
<el-table-column label="浜х敓鏃堕棿" align="center" prop="createTime"/>
+ <el-table-column v-if="queryParams.status === 'DISTRIBUTED'" label="涓嬪彂浜�" align="center" prop="realName"/>
+ <el-table-column v-if="queryParams.status === 'DISTRIBUTED'" label="涓嬪彂鏃堕棿" align="center" prop="distributeTime"/>
</el-table>
<pagination
@@ -119,7 +134,7 @@
</el-row>
<!-- 娣诲姞鎴栦慨鏀广�愯濉啓鍔熻兘鍚嶇О銆戝璇濇 -->
- <el-dialog :title="detailName" :visible.sync="open" width="500px" append-to-body>
+ <el-dialog title="鎵嬪姩鏂板宸ュ崟" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="杩愮淮鍗曚綅" prop="unitId">
<el-select v-model="form.unitId" placeholder="璇烽�夋嫨">
@@ -131,14 +146,15 @@
</el-option>
</el-select>
</el-form-item>
- <el-form-item label="宸ュ崟鏉ユ簮" prop="source">
+ <el-form-item label="鏁呴殰鐐逛綅" prop="source">
<el-select
v-model="form.source"
filterable
remote
reserve-keyword
- placeholder="璇烽�夋嫨鏉ユ簮"
+ placeholder="鍥芥爣鐮�/鐐逛綅鍚嶇О鎼滅储"
:remote-method="remoteGetPoints"
+ @change="setPointId"
:loading="selectLoading">
<el-option
v-for="item in pointList"
@@ -149,16 +165,17 @@
</el-select>
</el-form-item>
<el-form-item label="鏁呴殰绫诲瀷" prop="errorType">
- <el-select v-model="form.errorType">
- <el-option label="甯傛斂鏂藉伐" value="甯傛斂鏂藉伐"/>
- <el-option label="璁惧鏁呴殰" value="璁惧鏁呴殰"/>
- <el-option label="璁惧閬楀け" value="璁惧閬楀け"/>
+ <el-select v-model="form.errorType" multiple>
+ <el-option v-for="dict in dict.type.error_type"
+ :value="dict.value"
+ :key="dict.value"
+ :label="dict.label"/>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
- <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
<el-button @click="cancel">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
</div>
</el-dialog>
@@ -170,9 +187,15 @@
import {workList} from "@/api/platform/unit";
import { pointSelectData } from "@/api/platform/point";
export default {
+ dicts: ['error_type'],
name: 'index',
data() {
return {
+ showSearch: true,
+ selectedIdsDistributeForm: {
+ ids: [],
+ unitId: null
+ },
unitList: [],
settingForm: {
// 绂荤嚎
@@ -212,19 +235,21 @@
// 涓嬪彂琛ㄥ崟楠岃瘉
fastDistributeRules: {
fastWay: [
- { required: true, message: "璇烽�夋嫨蹇�熷垎鍙戞柟寮�", trigger: "change" }
+ { required: true, message: "璇烽�夋嫨蹇�熷垎鍙戞柟寮�", trigger: "blur" }
],
fastNumLimit: [
- { required: true, message: "璇疯緭鍏ュ揩閫熷垎鍙戞暟閲忛檺鍒�", trigger: "change" }
+ { required: true, message: "璇疯緭鍏ュ揩閫熷垎鍙戞暟閲忛檺鍒�", trigger: "blur" }
],
errorType: [
- { required: true, message: "璇锋晠闅滅被鍨�", trigger: "change" }
+ { required: true, message: "璇锋晠闅滅被鍨�", trigger: "blur" }
],
},
queryParams: {
unitId: null,
+ keyword: '',
+ status: 'WAIT_DISTRIBUTE',
pageNum: 1,
- pageSize: 20,
+ pageSize: 10,
},
// 鎬绘潯鏁�
total: 0,
@@ -270,6 +295,10 @@
},
},
methods: {
+ setPointId(selectedValue) {
+ const selectedItem = this.pointList.find(item => item.value === selectedValue);
+ this.form.serialNumber = selectedItem.id
+ },
submitSetting() {
this.$refs['settingForm'].validate((valid) => {
if (valid) {
@@ -282,11 +311,13 @@
},
page() {
this.loading = true;
- this.selectUnit();
- distributeWorkOrder(this.queryParams).then(res => {
- this.workOrderList = res.data;
- this.total = res.total;
- this.loading = false;
+ distributeWorkOrder(this.queryParams).then(data => {
+ workList(this.queryParams).then(res => {
+ this.unitList = res.data;
+ this.workOrderList = data.data.records;
+ this.total = data.total;
+ this.loading = false;
+ })
})
},
changeUnit(unitId, unitName) {
@@ -301,51 +332,50 @@
this.fastDistributeForm.end = null
this.fastDistributeForm.fastNumLimit = null
this.fastTimeRange = []
+ this.fastDistributeForm.errorType = null
},
// 鍏ㄩ儴涓嬪彂
allDistribute() {
- selectedIdsDistribute([]).then(res => {
+ this.selectedIdsDistributeForm.unitId = this.unitId
+ selectedIdsDistribute(this.selectedIdsDistributeForm).then(res => {
this.$message.success("宸ュ崟涓嬪彂鎴愬姛")
+ this.page();
})
},
// 蹇�熶笅鍙�
fastDistribute() {
- // this.$refs['fastDistributeForm'].validate((valid) => {
- // if (valid) {
- // 濡傛灉鏄嚜瀹氫箟鏂瑰紡锛岄偅涔堟椂闂存蹇呭~
- if (this.fastDistributeForm.fastWay === '101' && !this.fastTimeRange.length > 0) {
- this.$message.warning("璇烽�夋嫨鏃堕棿鑼冨洿")
- return false
- }
- if (this.fastTimeRange.length > 0) {
- this.fastDistributeForm.start = this.fastTimeRange[0]
- this.fastDistributeForm.end = this.fastTimeRange[1]
- }
+ this.$refs['fastDistributeForm'].validate((valid) => {
+ if (valid) {
+ this.fastDistributeForm.start = this.fastTimeRange[0]
+ this.fastDistributeForm.end = this.fastTimeRange[1]
this.fastDistributeForm.unitId = this.unitId
fastDistribute(this.fastDistributeForm).then(res => {
- // this.clearFastDistributeForm();
+ res.code == 200 ? this.$message.success(res.msg) : this.$message.warning(res.msg)
+ this.clearFastDistributeForm();
this.page();
})
- // } else {
- // return false
- // }
- // })
+ }
+ })
},
// 閫変腑宸ュ崟涓嬪彂
selectedDistribute() {
if (this.multipleSelection.length < 1) {
this.$message.warning("璇峰厛閫夋嫨瑕佷笅鍙戠殑宸ュ崟")
return
- }
- selectedIdsDistribute(this.multipleSelection).then(res => {
+ }
+ this.selectedIdsDistributeForm.unitId = this.unitId;
+ this.selectedIdsDistributeForm.ids = this.multipleSelection;
+ selectedIdsDistribute(this.selectedIdsDistributeForm).then(res => {
this.$message.success("宸ュ崟涓嬪彂鎴愬姛")
+ this.selectedIdsDistributeForm.ids = [];
+ this.page();
})
},
handleSelect(key, keyPath) {
console.log(key, keyPath);
},
getList() {
-
+ this.page()
},
// 澶氶�夋閫変腑鏁版嵁
handleSelectionChange(selection) {
@@ -389,7 +419,7 @@
},
// 杩愮淮鍏徃涓嬫媺鏁版嵁
selectUnit() {
- workList().then(res => {
+ workList(this.queryParams).then(res => {
this.unitList = res.data;
})
},
@@ -413,6 +443,12 @@
</script>
<style scoped>
+.important {
+ color: red;
+}
+/deep/ .el-popover__title {
+ margin-bottom: 0px;
+}
.row {
padding: 0 20px;
}
--
Gitblit v1.8.0