From d441a339549da0e1280879333f0b22823a603443 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期一, 02 十二月 2024 16:59:11 +0800 Subject: [PATCH] 合同积分的提示、地图样式调整 --- src/views/system/work-order/distribute/index.vue | 171 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 129 insertions(+), 42 deletions(-) diff --git a/src/views/system/work-order/distribute/index.vue b/src/views/system/work-order/distribute/index.vue index 4113958..320c762 100644 --- a/src/views/system/work-order/distribute/index.vue +++ b/src/views/system/work-order/distribute/index.vue @@ -13,14 +13,61 @@ </el-col> </el-row> - <el-row class="op-warp" type="flex" justify="left" > - <el-col :span="24"> - <el-button size="mini" type="primary" @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-cascader + v-model="queryParams.errorType" + :options="errorTypeList" + :props="{ expandTrigger: 'hover',emitPath: false }" + :show-all-levels="false" + @change="page" + placeholder="鏁呴殰绫诲瀷" + clearable + ></el-cascader> + </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 label="鏃堕棿鑼冨洿" prop="timeRange" > + <el-date-picker + v-model="timeRange" + type="daterange" + range-separator="鑷�" + value-format="yyyy-MM-dd" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡" + @change="page" + clearable + > + </el-date-picker> + </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="mini" type="primary" class="op" slot="reference">鍏ㄩ儴涓嬪彂</el-button> + <el-button size="mini" plain type="danger" class="op" slot="reference">鍏ㄩ儴涓嬪彂</el-button> </el-popconfirm> <el-popover @@ -31,7 +78,6 @@ <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="LAST_HALF_HOUR">鏈�杩�30鍒嗛挓</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> @@ -49,30 +95,25 @@ </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="mini" 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="mini" @click="fastDistribute">绔嬪嵆涓嬪彂</el-button> + <el-button type="primary" size="small" @click="fastDistribute">绔嬪嵆涓嬪彂</el-button> </el-form-item> </el-form> - <el-button slot="reference" type="primary" size="mini">蹇嵎涓嬪彂</el-button> + <el-button slot="reference" type="primary" size="mini" plain>蹇嵎涓嬪彂</el-button> </el-popover> - <el-button - type="primary" - plain - icon="el-icon-plus" - size="mini" - @click="handleAdd" - >鎵嬪姩鏂板宸ュ崟</el-button> - <el-button icon="el-icon-refresh" circle @click="page"></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"> @@ -80,10 +121,23 @@ <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="serialNumber"/> + <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 @@ -98,7 +152,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="璇烽�夋嫨"> @@ -110,13 +164,13 @@ </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"> @@ -129,16 +183,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> @@ -146,13 +201,16 @@ </template> <script> -import {distributeWorkOrder, fastDistribute, addWorkOrder, updateWorkOrder, selectedIdsDistribute} from '@/api/platform/work-order' +import {distributeWorkOrder, fastDistribute, addWorkOrder, updateWorkOrder, selectedIdsDistribute, errorTypeAll} from '@/api/platform/work-order' import {workList} from "@/api/platform/unit"; import { pointSelectData } from "@/api/platform/point"; export default { - name: 'index', + dicts: ['error_type'], + name: 'Work-order-distribute', data() { return { + errorTypeList: [], // 鐢ㄤ簬瀛樺偍閫変腑鐨勯」鐩甀D + showSearch: true, selectedIdsDistributeForm: { ids: [], unitId: null @@ -173,6 +231,7 @@ multipleSelection: [], // 涓嬪彂鏃堕棿鑼冨洿 fastTimeRange: [], + timeRange : null, // 涓嬪彂 fastDistributeForm: { fastWay: null, @@ -207,6 +266,8 @@ }, queryParams: { unitId: null, + keyword: '', + status: 'WAIT_DISTRIBUTE', pageNum: 1, pageSize: 10, }, @@ -246,6 +307,11 @@ } }, mounted() { + const today = new Date(); + const start = today.toISOString().split('T')[0]; // 鑾峰彇鏃ユ湡閮ㄥ垎锛屾牸寮忎负 yyyy-MM-dd + const end = start; // 缁撴潫鏃ユ湡涔熸槸褰撳ぉ + this.timeRange = [start, end]; + this.getErrorList() this.page(); }, computed: { @@ -254,9 +320,14 @@ }, }, methods: { + getErrorList() { + errorTypeAll().then(errorRes => { + this.errorTypeList = errorRes.data; + }) + }, setPointId(selectedValue) { const selectedItem = this.pointList.find(item => item.value === selectedValue); - this.form.pointId = selectedItem.id + this.form.serialNumber = selectedItem.id }, submitSetting() { this.$refs['settingForm'].validate((valid) => { @@ -270,11 +341,20 @@ }, page() { this.loading = true; - this.selectUnit(); - distributeWorkOrder(this.queryParams).then(res => { - this.workOrderList = res.data.records; - this.total = res.total; - this.loading = false; + if (this.timeRange && this.timeRange.length > 0) { + this.queryParams.start = this.timeRange[0] + this.queryParams.end = this.timeRange[1] + }else { + this.queryParams.start = null + this.queryParams.end = null + } + 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) { @@ -332,11 +412,11 @@ console.log(key, keyPath); }, getList() { - + this.page() }, // 澶氶�夋閫変腑鏁版嵁 handleSelectionChange(selection) { - this.multipleSelection = selection.map(item => item.id) + this.multipleSelection = selection.map(item => item.workOrderNo) }, /** 鏂板鎸夐挳鎿嶄綔 */ handleAdd() { @@ -362,6 +442,7 @@ } else { addWorkOrder(this.form).then(response => { this.$modal.msgSuccess("鏂板鎴愬姛"); + this.pointList = []; this.open = false; this.page(); }); @@ -376,7 +457,7 @@ }, // 杩愮淮鍏徃涓嬫媺鏁版嵁 selectUnit() { - workList().then(res => { + workList(this.queryParams).then(res => { this.unitList = res.data; }) }, @@ -400,6 +481,12 @@ </script> <style scoped> +.important { + color: red; +} +/deep/ .el-popover__title { + margin-bottom: 0px; +} .row { padding: 0 20px; } -- Gitblit v1.8.0