From 50147d17d5d5549877b578c185e8451cdd9f5593 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 10 四月 2024 14:08:22 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/system/threshold/index.vue | 17 +++ src/views/system/work-order/distribute/index.vue | 146 ++++++++++++++++++++++++++++ src/layout/components/Navbar.vue | 16 +++ src/api/platform/notify.js | 61 ++++++++++++ src/api/platform/people.js | 8 + src/views/system/report/index.vue | 41 ++++++- src/views/system/unit/index.vue | 4 7 files changed, 279 insertions(+), 14 deletions(-) diff --git a/src/api/platform/notify.js b/src/api/platform/notify.js new file mode 100644 index 0000000..6b0a016 --- /dev/null +++ b/src/api/platform/notify.js @@ -0,0 +1,61 @@ +import axios from "./request"; + +// 鑾峰彇閫氱煡鍒嗛〉 +export const getNotifys = (params) => { + return axios({ + url: "/notify/page", + method: "GET", + params: params + }) +} + +// 鑾峰彇閫氱煡鍒楄〃 +export const getNotifyList = () => { + return axios({ + url: "/notify/list", + method: "GET" + }) +} + +// 閫氳繃id鑾峰彇閫氱煡 +export const getNotifyById = (params) => { + return axios({ + url: "/notify/" + params, + method: "GET" + }) +} + +// 閫氳繃id鍒犻櫎閫氱煡 +export const deleteNotifyById = (params) => { + return axios({ + url: "/notify/" + params, + method: "DELETE" + }) +} + +// 鎵归噺鍒犻櫎閫氱煡 +export const deleteNotifyByIds = (params) => { + return axios({ + url: "/notify/batch", + method: "DELETE", + data: params + }) +} + +// 淇敼閫氱煡 +export const editNotify = (params) => { + return axios({ + url: "/notify/", + method: "PUT", + data: params + }) +} + +// 娣诲姞閫氱煡 +export const addNotify = (params) => { + return axios({ + url: "/notify/", + method: "POST", + data: params + }) +} diff --git a/src/api/platform/people.js b/src/api/platform/people.js index efc0d1f..5ee7a10 100644 --- a/src/api/platform/people.js +++ b/src/api/platform/people.js @@ -17,6 +17,14 @@ }) } +// 鏍规嵁杩愮淮鍗曚綅鏌ヨ杩愮淮浜哄憳璇︾粏 +export function getPeopleByUnitId(id) { + return request({ + url: '/yw-people/getPeopleByUnitId/' + id, + method: 'get' + }) +} + // 鏂板杩愮淮浜哄憳 export function addPeople(data) { return request({ diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue index cd90e52..7defbcf 100644 --- a/src/layout/components/Navbar.vue +++ b/src/layout/components/Navbar.vue @@ -41,6 +41,12 @@ <div class="button-container"> <el-button type="primary" @click="toScreen">鍙鍖栧ぇ灞�</el-button> </div> + <div class="button-container"> + <el-button type="primary" @click="toSystemB">璺宠浆B绯荤粺</el-button> + </div> + <div class="button-container"> + <el-button type="primary" @click="toSystemA">璺宠浆A绯荤粺</el-button> + </div> </div> </template> @@ -109,6 +115,16 @@ this.$router.push({ path: '/screen' }) + }, + toSystemA() { + this.$router.push({ + path: '/screen' + }) + }, + toSystemB() { + this.$router.push({ + path: '/screen' + }) } } } diff --git a/src/views/system/report/index.vue b/src/views/system/report/index.vue index e4b92de..950f1e9 100644 --- a/src/views/system/report/index.vue +++ b/src/views/system/report/index.vue @@ -92,7 +92,7 @@ <el-table-column label="鎶ュ浜哄憳" align="center" prop="peopleName" /> <el-table-column label="鐐逛綅" align="center" prop="pointName" /> <el-table-column label="鎶ュ绫诲瀷" align="center" prop="reportType" /> - <el-table-column label="鎶ュ鍐呭" align="center" prop="reportContent" /> + <el-table-column label="鎶ュ鍐呭" align="center" prop="reportContent" show-overflow-tooltip="true" /> <el-table-column label="涓婃姤鏉愭枡" align="center" prop="reportMaterials" /> <el-table-column label="鏁呴殰绫诲瀷" align="center" prop="errorType" /> <el-table-column label="瀹℃牳鏃堕棿" align="center" prop="auditingTime" width="180"> @@ -115,6 +115,7 @@ icon="el-icon-edit" @click="handleAuditing(scope.row)" v-hasPermi="['system:report:audit']" + v-if="scope.row.status === 0" >瀹℃牳</el-button> <el-button size="mini" @@ -218,21 +219,23 @@ <el-date-picker v-model="auditingForm.endCreateTime" disabled /> </el-form-item> <el-form-item label="鎶ュ鍐呭"> - <el-input v-model="auditingForm.pointName" disabled /> + <el-input type="textarea" v-html="auditingForm.reportContent" disabled /> </el-form-item> <el-form-item label="涓婃姤鏉愭枡"> - <el-upload v-model="auditingForm.reportMaterials" disabled/> + <el-link :href="auditingForm.reportMaterials" :underline="false">{{ auditingForm.reportMaterials }}</el-link> </el-form-item> - <el-form-item label="瀹℃牳缁撴灉" prop="auditing"> - <el-radio v-model="auditingForm.auditing" label="pass">閫氳繃</el-radio> - <el-radio v-model="auditingForm.auditing" label="reject">椹冲洖</el-radio> + <el-form-item label="瀹℃牳缁撴灉"> + <el-radio-group v-model="auditingForm.status"> + <el-radio :label="1">閫氳繃</el-radio> + <el-radio :label="2">椹冲洖</el-radio> + </el-radio-group> </el-form-item> <el-form-item label="瀹℃牳鎰忚" prop="suggest"> - <el-input v-model="auditingForm.suggest"/> + <el-input v-model="auditingForm.auditOpinion"/> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> - <el-button type="primary">纭� 瀹�</el-button> + <el-button type="primary" @click="auditingSubmit">纭� 瀹�</el-button> <el-button @click="auditingCancel">鍙� 娑�</el-button> </div> </el-dialog> @@ -321,6 +324,12 @@ reportType: [ { required: true, message: "璇烽�夋嫨鎶ュ绫诲瀷", trigger: "blur" } ], + errorType: [ + { required: true, message: "璇烽�夋嫨鏁呴殰绫诲瀷", trigger: "blur" } + ], + expirTime: [ + { required: true, message: "璇烽�夋嫨鏈夋晥鏃堕棿", trigger: "blur" } + ], } }; }, @@ -334,6 +343,7 @@ handleAuditing(row) { this.auditingOpen = true; this.auditingForm.id =row.id + this.auditingForm.pointId =row.pointId this.auditingForm.pointName =row.pointName this.auditingForm.unitName =row.unitName this.auditingForm.peopleName =row.peopleName @@ -342,6 +352,7 @@ this.auditingForm.reportType =row.reportType this.auditingForm.endCreateTime =row.endCreateTime this.auditingForm.beginCreateTime =row.beginCreateTime + this.auditingForm.reportMaterials =row.reportMaterials }, // 杩滅▼鎼滅储鐐逛綅 remoteGetPoints(query) { @@ -406,6 +417,8 @@ resetQuery() { this.daterangeCreateTime = []; this.daterangeAuditingTime = []; + this.queryParams["beginCreateTime"] = null; + this.queryParams["endCreateTime"] = null; this.resetForm("queryForm"); this.handleQuery(); }, @@ -429,6 +442,16 @@ this.form = response.data; this.open = true; this.title = "淇敼鎶ュ"; + }); + }, + /** 瀹℃牳鎸夐挳鎿嶄綔 */ + auditingSubmit() { + this.auditingForm.auditingTime = new Date(); + updateReport(this.auditingForm).then(response => { + this.$modal.msgSuccess("瀹℃牳鎴愬姛"); + this.auditingOpen = false + this.getList(); + this.auditingForm = {} }); }, /** 鎻愪氦鎸夐挳 */ @@ -471,7 +494,7 @@ }, /** 瀵煎嚭鎸夐挳鎿嶄綔 */ handleExport() { - this.download('system/report/export', { + this.download('report/export', { ...this.queryParams }, `report_${new Date().getTime()}.xlsx`) } diff --git a/src/views/system/threshold/index.vue b/src/views/system/threshold/index.vue index a334492..5b536ca 100644 --- a/src/views/system/threshold/index.vue +++ b/src/views/system/threshold/index.vue @@ -24,10 +24,17 @@ </template> </el-table-column> <el-table-column label="瓒呮椂澶╂暟" align="center" prop="timeout"/> - <el-table-column label="鎸囨爣" align="center" prop="indicator"> + <el-table-column label="宸ュ崟闃堝��" align="center" prop="indicator"> <template slot-scope="scope"> <div v-for="item in JSON.parse(scope.row.indicator)" :key="item"> {{ item.label }}锛歿{ item.value }} + </div> + </template> + </el-table-column> + <el-table-column label="涓嬪彂闃堝��" align="center" prop="indicator"> + <template slot-scope="scope"> + <div v-for="item in JSON.parse(scope.row.indicator)" :key="item"> + {{ item.label }}锛歿{ item.value2 }} </div> </template> </el-table-column> @@ -75,7 +82,8 @@ <el-input type="number" min="0" max="1000" v-model="form.timeout" placeholder="璇疯緭鍏ヨ秴鏃跺ぉ鏁�"/> </el-form-item> <el-form-item :label="indicator.label" prop="indexOneValue" v-for="indicator in indicators" label-width="150px"> - <el-input class="el-input-width" v-model="indicator.value" :placeholder="'璇疯緭鍏�' + indicator.label"/> + <el-input class="el-input-half-width" v-model="indicator.value" placeholder="宸ュ崟闃堝��"/> + <el-input style="float: right;" class="el-input-half-width" v-model="indicator.value2" placeholder="涓嬪彂闃堝��"/> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> @@ -325,3 +333,8 @@ } } </script> +<style> +.el-input-half-width { + width: calc(50% - 6px); /* 鍑忓幓涓�浜涢棿闅� */ +} +</style> \ No newline at end of file diff --git a/src/views/system/unit/index.vue b/src/views/system/unit/index.vue index dc3bf74..4409bfa 100644 --- a/src/views/system/unit/index.vue +++ b/src/views/system/unit/index.vue @@ -261,6 +261,8 @@ /** 閲嶇疆鎸夐挳鎿嶄綔 */ resetQuery() { this.daterangeCreateTime = []; + this.queryParams.start = null; + this.queryParams.end = null; this.resetForm("queryForm"); this.handleQuery(); }, @@ -318,7 +320,7 @@ }, /** 瀵煎嚭鎸夐挳鎿嶄綔 */ handleExport() { - this.download('system/unit/export', { + this.download('yw-unit/export', { ...this.queryParams }, `unit_${new Date().getTime()}.xlsx`) } diff --git a/src/views/system/work-order/distribute/index.vue b/src/views/system/work-order/distribute/index.vue index 6ae9267..45fae99 100644 --- a/src/views/system/work-order/distribute/index.vue +++ b/src/views/system/work-order/distribute/index.vue @@ -83,6 +83,13 @@ 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> + </el-form-item> <el-form-item label="鏁伴噺闄愬埗" prop="fastNumLimit"> <el-input v-model="fastDistributeForm.fastNumLimit" size="small" type="number" placeholder="姝ゆ宸ュ崟涓嬪彂鏈�澶ф暟閲�"></el-input> </el-form-item> @@ -92,7 +99,8 @@ </el-form> <el-button slot="reference" type="primary" size="small">蹇嵎涓嬪彂</el-button> </el-popover> - <el-button size="small" type="primary" @click="page" class="op">鍒锋柊</el-button> + <el-button size="small" type="primary" @click="page">鍒锋柊</el-button> + <el-button size="small" type="primary" @click="handleAdd">鏂板</el-button> </el-col> </el-row> @@ -117,11 +125,58 @@ </el-col> </el-row> + + <!-- 娣诲姞鎴栦慨鏀广�愯濉啓鍔熻兘鍚嶇О銆戝璇濇 --> + <el-dialog :title="detailName" :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="璇烽�夋嫨"> + <el-option + v-for="item in unitList" + :key="item.id" + :label="item.value" + :value="item.id"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="宸ュ崟鏉ユ簮" prop="source"> + <el-select + v-model="form.source" + filterable + remote + reserve-keyword + placeholder="璇烽�夋嫨鏉ユ簮" + :remote-method="remoteGetPoints" + :loading="selectLoading"> + <el-option + v-for="item in pointList" + :key="item.id" + :label="item.value" + :value="item.value"> + </el-option> + </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> + </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> + </div> + </el-dialog> + </div> </template> <script> -import {distributeWorkOrder, fastDistribute} from '@/api/platform/work-order' +import {distributeWorkOrder, fastDistribute, addWorkOrder, updateWorkOrder} from '@/api/platform/work-order' +import {unitSelect} from "@/api/platform/unit"; +import { pointSelectData } from "@/api/platform/point"; export default { name: 'index', data() { @@ -169,6 +224,9 @@ fastNumLimit: [ { required: true, message: "璇疯緭鍏ュ揩閫熷垎鍙戞暟閲忛檺鍒�", trigger: "change" } ], + errorType: [ + { required: true, message: "璇锋晠闅滅被鍨�", trigger: "change" } + ], }, queryParams: { unitId: null, @@ -182,10 +240,37 @@ activeIndex: '0', loading: false, workOrderList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 琛ㄥ崟鍙傛暟 + form: { + }, + // 涓嬫媺鍔犺浇 + selectLoading: false, + // 鐐逛綅list + pointList: [], + // 琛ㄥ崟鏍¢獙 + rules: { + source: [ + { required: true, message: "宸ュ崟鏉ユ簮涓嶈兘涓虹┖", trigger: "blur" } + ], + workOrderNo: [ + { required: true, message: "宸ュ崟鍙蜂笉鑳戒负绌�", trigger: "blur" } + ], + unitId: [ + { required: true, message: "杩愮淮鍗曚綅涓嶈兘涓虹┖", trigger: "blur" } + ], + errorType: [ + { required: true, message: "璇烽�夋嫨鏁呴殰绫诲瀷", trigger: "blur" } + ], + } } }, mounted() { this.page(); + this.selectUnit(); }, methods: { submitSetting() { @@ -264,6 +349,63 @@ handleSelectionChange(selection) { this.multipleSelection = selection.map(item => item.id) }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "娣诲姞鍚堝悓"; + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = {}; + this.resetForm("form"); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.id != null) { + updateWorkOrder(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.page(); + }); + } else { + addWorkOrder(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.page(); + }); + } + } + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 杩愮淮鍏徃涓嬫媺鏁版嵁 + selectUnit() { + unitSelect().then(res => { + this.unitList = res.data; + }) + }, + // 杩滅▼鎼滅储鐐逛綅 + remoteGetPoints(query) { + if (query !== '') { + this.selectLoading = true; + let data = { + "keyword": query + } + pointSelectData(data).then(res => { + this.pointList = res.data; + this.selectLoading = false; + }) + } else { + this.pointList = []; + } + }, } } </script> -- Gitblit v1.8.0