From 1ce61f13b7d49998ddbe27c48a456bff751e68d7 Mon Sep 17 00:00:00 2001 From: juzi <819872918@qq.com> Date: Tue, 5 Dec 2023 14:30:32 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=8E=9F=E6=A8=A1=E5=9D=97=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E8=83=BD=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.dev | 4 +- src/api/base/energyQuantityManual.js | 56 +++ src/utils/dict.js | 2 + .../components/energyQuantityManualAdd.vue | 150 ++++++++ .../base/energyQuantityManual/index.vue | 332 ++++++++++++++++++ .../base/energyType/components/InnerTable.vue | 9 +- .../energyType/components/energyTypeAdd.vue | 10 + .../energyLimit/components/energyLimitAdd.vue | 85 +++-- .../energy/monitoring/energyLimit/index.vue | 10 + .../monitoring/energyOverlimitLog/index.vue | 114 +++++- .../group/base/groupTeamScheduling/index.vue | 4 +- .../voc/vocDetectionHistory/index.vue | 8 + .../voc/vocDetectionIndication/index.vue | 8 + .../environmental/voc/vocManagement/index.vue | 8 + .../wasteGasDetectionHistory/index.vue | 8 + .../wasteGasDetectionIndication/index.vue | 8 + .../wasteGas/wasteGasManagement/index.vue | 8 + .../wasteWaterDetectionHistory/index.vue | 8 + .../components/wasteWaterAdd.vue | 161 +++++++++ .../wasteWaterDetectionIndication/index.vue | 202 +++++++++++ .../wasteWater/wasteWaterManagement/index.vue | 8 + 21 files changed, 1159 insertions(+), 44 deletions(-) create mode 100644 src/api/base/energyQuantityManual.js create mode 100644 src/views/energy/base/energyQuantityManual/components/energyQuantityManualAdd.vue create mode 100644 src/views/energy/base/energyQuantityManual/index.vue create mode 100644 src/views/safetyEnvironmental/environmental/voc/vocDetectionHistory/index.vue create mode 100644 src/views/safetyEnvironmental/environmental/voc/vocDetectionIndication/index.vue create mode 100644 src/views/safetyEnvironmental/environmental/voc/vocManagement/index.vue create mode 100644 src/views/safetyEnvironmental/environmental/wasteGas/wasteGasDetectionHistory/index.vue create mode 100644 src/views/safetyEnvironmental/environmental/wasteGas/wasteGasDetectionIndication/index.vue create mode 100644 src/views/safetyEnvironmental/environmental/wasteGas/wasteGasManagement/index.vue create mode 100644 src/views/safetyEnvironmental/environmental/wasteWater/wasteWaterDetectionHistory/index.vue create mode 100644 src/views/safetyEnvironmental/environmental/wasteWater/wasteWaterDetectionIndication/components/wasteWaterAdd.vue create mode 100644 src/views/safetyEnvironmental/environmental/wasteWater/wasteWaterDetectionIndication/index.vue create mode 100644 src/views/safetyEnvironmental/environmental/wasteWater/wasteWaterManagement/index.vue diff --git a/.env.dev b/.env.dev index 1da25e71..8b5bbe52 100644 --- a/.env.dev +++ b/.env.dev @@ -13,8 +13,8 @@ VUE_APP_TITLE = MES系统 # 芋道管理系统/开发环境 # VUE_APP_BASE_API = 'http://100.64.0.26:48082' -VUE_APP_BASE_API = 'http://192.168.0.33:48082' -# VUE_APP_BASE_API = 'http://192.168.4.173:48080' +# VUE_APP_BASE_API = 'http://192.168.0.33:48082' +VUE_APP_BASE_API = 'http://192.168.4.173:48080' # VUE_APP_BASE_API = 'http://192.168.2.173:48080' # VUE_APP_BASE_API = 'http://192.168.1.49:48082' # VUE_APP_BASE_API = 'http://192.168.1.8:48082' diff --git a/src/api/base/energyQuantityManual.js b/src/api/base/energyQuantityManual.js new file mode 100644 index 00000000..d919b5a3 --- /dev/null +++ b/src/api/base/energyQuantityManual.js @@ -0,0 +1,56 @@ +import request from '@/utils/request' + +// 获得分页数据 +export function energyQuantityManualPage(data) { + return request({ + url: '/base/energy-quantity-manual/page', + method: 'post', + data: data + }) +} + +// 创建 +export function energyQuantityManualCreate(data) { + return request({ + url: '/base/energy-quantity-manual/create', + method: 'post', + data: data + }) +} + +// 更新 +export function energyQuantityManualUpdate(data) { + return request({ + url: '/base/energy-quantity-manual/update', + method: 'put', + data: data + }) +} + +//获得能源抄表(手动) +export function energyQuantityManualGet(query) { + return request({ + url: '/base/energy-quantity-manual/get', + method: 'get', + params: query + }) +} + +//删除 +export function energyQuantityManualDelete(query) { + return request({ + url: '/base/energy-quantity-manual/delete', + method: 'delete', + params: query + }) +} + +//导出 +export function energyQuantityManualExport(data) { + return request({ + url: '/base/energy-quantity-manual/export-excel', + method: 'post', + data: data, + responseType: 'blob' + }) +} \ No newline at end of file diff --git a/src/utils/dict.js b/src/utils/dict.js index ecaafb16..64695e1e 100644 --- a/src/utils/dict.js +++ b/src/utils/dict.js @@ -94,6 +94,8 @@ export const DICT_TYPE = { OBJECT_TYPE: 'object_type', STATISTIC_TYPE: 'statistic_type', TIME_DIM: 'time_dim', + TABLE_NAME: 'table_name', + METHOD: 'method', // ============== ORDER - 订单模块 ============= ORDER_STATUS: 'order_status', diff --git a/src/views/energy/base/energyQuantityManual/components/energyQuantityManualAdd.vue b/src/views/energy/base/energyQuantityManual/components/energyQuantityManualAdd.vue new file mode 100644 index 00000000..8d40d3d8 --- /dev/null +++ b/src/views/energy/base/energyQuantityManual/components/energyQuantityManualAdd.vue @@ -0,0 +1,150 @@ + + \ No newline at end of file diff --git a/src/views/energy/base/energyQuantityManual/index.vue b/src/views/energy/base/energyQuantityManual/index.vue new file mode 100644 index 00000000..33a5edf2 --- /dev/null +++ b/src/views/energy/base/energyQuantityManual/index.vue @@ -0,0 +1,332 @@ + + + diff --git a/src/views/energy/base/energyType/components/InnerTable.vue b/src/views/energy/base/energyType/components/InnerTable.vue index 4dba190d..c7bfcfa7 100644 --- a/src/views/energy/base/energyType/components/InnerTable.vue +++ b/src/views/energy/base/energyType/components/InnerTable.vue @@ -1,12 +1,13 @@ @@ -91,6 +111,7 @@ export default { return { form: { id: '', + method: '1', objectId: '', objectType: '', energyTypeId: '', @@ -103,7 +124,8 @@ export default { objIds: [],// 回显数组 isEdit: false, //是否是编辑 rules: { - objectId: [{ required: true, message: '对象不能为空', trigger: 'change' }], + method: [{ required: true, message: '抄表方式不能为空', trigger: 'change' }], + objectId: [{ required: true, message: '监控对象不能为空', trigger: 'change' }], energyTypeId: [{ required: true, message: '能源类型不能为空', trigger: 'change' }], type: [{ required: true, message: '监控模式不能为空', trigger: 'change' }], limitType: [{ required: true, message: '指标类型不能为空', trigger: 'change' }] @@ -120,6 +142,7 @@ export default { if (res.code === 0) { this.form = res.data this.form.plcParamId = res.data.plcParamId || '' + this.form.method = this.form.method ? this.form.method + '' : '' this.form.limitType = this.form.limitType ? this.form.limitType + '' : '' this.objIds = this.changeDetSelect(this.form.objectId, this.objList) if (this.form.type === 2) { @@ -132,6 +155,14 @@ export default { this.form.id = '' } }, + // 切换方式 + changeMethod() { + if(this.form.method === '2'){ + this.form.limitType = "2" + }else{ + this.form.limitType = '' + } + }, // 监控详细参数 getDetailList() { getEnergyParamList({ diff --git a/src/views/energy/monitoring/energyLimit/index.vue b/src/views/energy/monitoring/energyLimit/index.vue index 1b82ab8b..d72aede2 100644 --- a/src/views/energy/monitoring/energyLimit/index.vue +++ b/src/views/energy/monitoring/energyLimit/index.vue @@ -51,6 +51,11 @@ import { getTree } from '@/api/base/factory' import { publicFormatter } from '@/utils/dict' import EnergyLimitAdd from './components/energyLimitAdd' const tableProps = [ + { + prop: 'method', + label: '抄表方式', + filter: publicFormatter('method') + }, { prop: 'objName', label: '监控对象' @@ -59,6 +64,11 @@ const tableProps = [ prop: 'objCode', label: '对象编码' }, + { + prop: 'tableName', + label: '水/气表名', + filter: publicFormatter('table_name') + }, { prop: 'energyType', label: '能源类型' diff --git a/src/views/energy/monitoring/energyOverlimitLog/index.vue b/src/views/energy/monitoring/energyOverlimitLog/index.vue index f748592c..c9284dea 100644 --- a/src/views/energy/monitoring/energyOverlimitLog/index.vue +++ b/src/views/energy/monitoring/energyOverlimitLog/index.vue @@ -1,5 +1,5 @@ \ No newline at end of file + + \ No newline at end of file diff --git a/src/views/safetyEnvironmental/environmental/wasteWater/wasteWaterManagement/index.vue b/src/views/safetyEnvironmental/environmental/wasteWater/wasteWaterManagement/index.vue index e21e1049..0545cb4c 100644 --- a/src/views/safetyEnvironmental/environmental/wasteWater/wasteWaterManagement/index.vue +++ b/src/views/safetyEnvironmental/environmental/wasteWater/wasteWaterManagement/index.vue @@ -22,18 +22,17 @@ 检测指标趋势图 - - + + + +
+ diff --git a/src/views/cost/energyCostHis/index.vue b/src/views/cost/energyCostHis/index.vue new file mode 100644 index 00000000..952eb8f1 --- /dev/null +++ b/src/views/cost/energyCostHis/index.vue @@ -0,0 +1,173 @@ + + + + diff --git a/src/views/cost/mixins/basic-add.js b/src/views/cost/mixins/basic-add.js new file mode 100644 index 00000000..7538902f --- /dev/null +++ b/src/views/cost/mixins/basic-add.js @@ -0,0 +1,121 @@ +/* + * @Author: zwq + * @Date: 2022-08-24 11:19:43 + * @LastEditors: zwq + * @LastEditTime: 2023-11-02 15:33:39 + * @Description: + */ +import { listData } from "@/api/system/dict/data"; +export default { + data() { + /* eslint-disable */ + return { + urlOptions: { + createURL: '', + updateURL: '', + infoURL: '', + codeURL: '', + getOption: false, //是否加载获取下拉框方法 + isGetCode: false, //是否加载获取code方法 + getDictList: false, //是否加载获取数据字典方法 + optionArrUrl: [], //需要获取下拉框的方法数组 + optionArr: {}, //需要获取下拉框的方法数组的返回结果 + dictList: {}, //需要获取数据字典的方法数组的返回结果 + }, + visible: false, + setData: false + } + }, + created() { + }, + activated() { + }, + methods: { + init(id) { + this.dataForm.id = id || ""; + this.visible = true; + if (this.urlOptions.getOption) { + this.getArr() + } + if (this.urlOptions.getDictList) { + this.getDict() + } + this.$nextTick(() => { + this.$refs["dataForm"].resetFields(); + if (this.dataForm.id) { + this.urlOptions.infoURL(id).then(response => { + this.dataForm = response.data; + if (this.setData) { + this.setDataForm() + } + }); + } else { + if (this.urlOptions.isGetCode) { + this.getCode() + } + } + }); + }, + getCode() { + this.urlOptions.codeURL() + .then(({ data: res }) => { + this.dataForm.code = res; + }) + .catch(() => {}); + }, + getArr() { + const params = { + pageSize: 100, + pageNo: 1, + } + this.urlOptions.optionArrUrl.forEach((item, index) => { + item(params).then(({ data: res }) => { + this.$set(this.urlOptions.optionArr, `arr${index}`, res.list) + }) + .catch(() => { + }); + }); + }, + /** 查询字典数据列表 */ + getDict() { + this.nameList.forEach((item,index)=>{ + const queryParams = { + pageNo: 1, + pageSize: 99, + dictType: item, + } + listData(queryParams).then(response => { + this.$set(this.urlOptions.dictList, `dict${index}`, response.data.list) + }); + }) + }, + // 表单提交 + dataFormSubmit() { + this.$refs["dataForm"].validate((valid) => { + if (!valid) { + return false; + } + // 修改的提交 + if (this.dataForm.id) { + this.urlOptions.updateURL(this.dataForm).then(response => { + this.$modal.msgSuccess("修改成功"); + this.visible = false; + this.$emit("refreshDataList"); + }); + return; + } + // 添加的提交 + this.urlOptions.createURL(this.dataForm).then(response => { + this.$modal.msgSuccess("新增成功"); + this.visible = false; + this.$emit("refreshDataList"); + }); + }); + }, + formClear() { + if (this.$refs.dataForm!==undefined) { + this.$refs.dataForm.resetFields(); + } + } + } +} diff --git a/src/views/cost/mixins/basic-page.js b/src/views/cost/mixins/basic-page.js new file mode 100644 index 00000000..89069ad4 --- /dev/null +++ b/src/views/cost/mixins/basic-page.js @@ -0,0 +1,172 @@ +/* + * @Author: zwq + * @Date: 2022-08-24 11:19:43 + * @LastEditors: zwq + * @LastEditTime: 2023-12-07 09:35:33 + * @Description: + */ +export default { + data() { + /* eslint-disable */ + return { + urlOptions: { + getDataListURL: '', + deleteURL: '', + statusUrl: '', + exportURL: '' + }, + tableData: [], + listQuery: { + pageSize: 10, + pageNo: 1, + total: 1, + }, + exportLoading: false, + dataListLoading: false, + addOrEditTitle: '', + addOrUpdateVisible: false, + addOrUpdate:'addOrUpdate' + } + }, + created() { + }, + mounted() { + this.getDataList() + }, + methods: { + // 获取数据列表 + getDataList() { + this.dataListLoading = true; + this.urlOptions.getDataListURL(this.listQuery).then(response => { + if(response.hasOwnProperty('data')){ + this.tableData = response.data.list; + this.listQuery.total = response.data.total; + } + this.dataListLoading = false; + }); + }, + // 每页数 + sizeChangeHandle(val) { + this.listQuery.pageSize = val; + this.listQuery.pageNo = 1; + this.getDataList(); + }, + // 当前页 + currentChangeHandle(val) { + this.listQuery.pageNo = val; + this.getDataList(); + }, + // 新增 / 修改 + addOrUpdateHandle(id) { + this.addOrUpdateVisible = true; + this.$nextTick(() => { + this.$refs.addOrUpdate.init(id); + }); + }, + cancel(id) { + this.$refs["popover-" + id].showPopper = false; + }, + //改变状态 + changeStatus(id) { + this.$http + .post(this.urlOptions.statusUrl, { id }) + .then(({ data: res }) => { + if (res.code !== 0) { + return this.$message.error(res.msg); + } + this.$refs["popover-" + id].showPopper = false; + this.$message({ + message: this.$t("prompt.success"), + type: "success", + duration: 500, + onClose: () => { + this.getDataList(); + }, + }); + }) + .catch(() => { }); + }, + //tableBtn点击 + handleClick(val) { + if (val.type === "edit") { + this.addOrUpdateVisible = true; + this.addOrEditTitle = "编辑"; + this.$nextTick(() => { + this.$refs.addOrUpdate.init(val.data.id); + }); + } else if (val.type === "delete") { + this.deleteHandle(val.data.id, val.data.name, val.data._pageIndex) + } else if (val.type === "change") { + this.changeStatus(val.data.id) + } else { + this.otherMethods(val) + } + }, + // 删除 + deleteHandle(id, name, index) { + this.$confirm(`是否确认删除${name ? '名称为"' + name + '"' : '序号为"' + index + '"'}的数据项?`, "系统提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }) + .then(() => { + this.urlOptions.deleteURL(id).then(({ data }) => { + this.$message({ + message: "操作成功", + type: "success", + duration: 1500, + onClose: () => { + this.getDataList(); + }, + }); + }); + }) + .catch(() => { }); + }, + //search-bar点击 + buttonClick(val) { + switch (val.btnName) { + case "search": + this.listQuery.xm1 = val.xm1; + this.listQuery.xm2 = val.xm2; + this.listQuery.pageNo = 1; + this.getDataList(); + break; + case "add": + this.addOrEditTitle = '新增' + this.addOrUpdateVisible = true; + this.addOrUpdateHandle() + break; + default: + console.log(val) + } + }, + handleCancel() { + this.$refs[this.addOrUpdate].formClear() + this.addOrUpdateVisible = false + this.addOrEditTitle = '' + this.addOrUpdate = 'addOrUpdate' + }, + handleConfirm() { + this.$refs[this.addOrUpdate].dataFormSubmit() + }, + successSubmit() { + this.handleCancel() + this.getDataList() + }, + /** 导出按钮操作 */ + handleExport(data) { + // 处理查询参数 + let params = data?{ ...data }:{ ...this.listQuery }; + params.pageNo = undefined; + params.pageSize = undefined; + this.$modal.confirm('是否确认导出所有数据项?').then(() => { + this.exportLoading = true; + return this.urlOptions.exportURL(params); + }).then(response => { + this.$download.excel(response, '报表.xls'); + this.exportLoading = false; + }).catch(() => { }); + } + } +} diff --git a/src/views/cost/mixins/code-filter.js b/src/views/cost/mixins/code-filter.js new file mode 100644 index 00000000..e6725c28 --- /dev/null +++ b/src/views/cost/mixins/code-filter.js @@ -0,0 +1,79 @@ + +/* + * @Date: 2020-12-29 16:49:28 + * @LastEditors: zwq + * @LastEditTime: 2023-12-07 10:00:51 + * @FilePath: \basic-admin\src\filters\basicData\index.js + * @Description: + */ + +const table = { + lineStatus: { + 1: '生产中', + 2: '停止', + 3: '未知', + }, + deactivate: { + 1: '启用', + 0: '停用', + }, + wareType: { + 1: '缓存', + 2: '活动', + 3: '其它', + }, + reportType: { + 2: '日', + 3: '周', + 4: '月', + 5: '年', + }, +} + +// 日期格式化 +export function parseTime(time, pattern) { + if (arguments.length === 0 || !time) { + return null + } + const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}' + let date + if (typeof time === 'object') { + date = time + } else { + if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { + time = parseInt(time) + } else if (typeof time === 'string') { + time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.\d{3}/gm),''); + } + if ((typeof time === 'number') && (time.toString().length === 10)) { + time = time * 1000 + } + date = new Date(time) + } + const formatObj = { + y: date.getFullYear(), + m: date.getMonth() + 1, + d: date.getDate(), + h: date.getHours(), + i: date.getMinutes(), + s: date.getSeconds(), + a: date.getDay() + } + const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { + let value = formatObj[key] + // Note: getDay() returns 0 on Sunday + if (key === 'a') { + return ['日', '一', '二', '三', '四', '五', '六'][value] + } + if (result.length > 0 && value < 10) { + value = '0' + value + } + return value || 0 + }) + return time_str +} +export default function (dictTable) { + return function (val) { + return table?.[dictTable]?.[val] + } +} diff --git a/src/views/cost/mixins/connectTime.vue b/src/views/cost/mixins/connectTime.vue new file mode 100644 index 00000000..4ecde04b --- /dev/null +++ b/src/views/cost/mixins/connectTime.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/views/cost/rawMaterialConfig/add-or-updata.vue b/src/views/cost/rawMaterialConfig/add-or-updata.vue new file mode 100644 index 00000000..6de75d00 --- /dev/null +++ b/src/views/cost/rawMaterialConfig/add-or-updata.vue @@ -0,0 +1,166 @@ + + + + diff --git a/src/views/cost/rawMaterialConfig/index.vue b/src/views/cost/rawMaterialConfig/index.vue new file mode 100644 index 00000000..462fa142 --- /dev/null +++ b/src/views/cost/rawMaterialConfig/index.vue @@ -0,0 +1,186 @@ + + + diff --git a/src/views/cost/rawMaterialCost/index.vue b/src/views/cost/rawMaterialCost/index.vue new file mode 100644 index 00000000..fdeeb275 --- /dev/null +++ b/src/views/cost/rawMaterialCost/index.vue @@ -0,0 +1,166 @@ + + + + diff --git a/src/views/cost/rawMaterialCostHis/index.vue b/src/views/cost/rawMaterialCostHis/index.vue new file mode 100644 index 00000000..f865cf4b --- /dev/null +++ b/src/views/cost/rawMaterialCostHis/index.vue @@ -0,0 +1,170 @@ + + + + diff --git a/src/views/warehouse/end-material/warehouseGoods/index.vue b/src/views/warehouse/end-material/warehouseGoods/index.vue index 6b6df36f..6d7c2fd1 100644 --- a/src/views/warehouse/end-material/warehouseGoods/index.vue +++ b/src/views/warehouse/end-material/warehouseGoods/index.vue @@ -62,6 +62,7 @@ const tableProps = [ { prop: 'code', label: '物品编码', + width: 200 }, { prop: 'spec', diff --git a/src/views/warehouse/end-material/warehouseRealtime/index.vue b/src/views/warehouse/end-material/warehouseRealtime/index.vue index 828fda98..b294ab4e 100644 --- a/src/views/warehouse/end-material/warehouseRealtime/index.vue +++ b/src/views/warehouse/end-material/warehouseRealtime/index.vue @@ -2,7 +2,7 @@ * @Author: zwq * @Date: 2023-11-03 16:37:06 * @LastEditors: zwq - * @LastEditTime: 2023-11-24 14:35:01 + * @LastEditTime: 2023-12-06 15:31:23 * @Description: --> - +