From 91d269e1ce5e72e6007122814d1d5b1fef534d65 Mon Sep 17 00:00:00 2001 From: zwq Date: Wed, 13 Dec 2023 09:18:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=88=90=E6=9C=AC=E5=92=8C?= =?UTF-8?q?=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/cost/costEneryAutoReport.js | 78 ++++++++ src/api/cost/costMaterialAutoReport.js | 73 +++++++ src/api/cost/costMaterialSet.js | 61 ++++++ src/views/cost/energyCost/index.vue | 162 +++++++++++++++ src/views/cost/energyCostHis/index.vue | 173 ++++++++++++++++ src/views/cost/mixins/basic-add.js | 121 ++++++++++++ src/views/cost/mixins/basic-page.js | 172 ++++++++++++++++ src/views/cost/mixins/code-filter.js | 79 ++++++++ src/views/cost/mixins/connectTime.vue | 23 +++ .../cost/rawMaterialConfig/add-or-updata.vue | 166 ++++++++++++++++ src/views/cost/rawMaterialConfig/index.vue | 186 ++++++++++++++++++ src/views/cost/rawMaterialCost/index.vue | 166 ++++++++++++++++ src/views/cost/rawMaterialCostHis/index.vue | 170 ++++++++++++++++ .../end-material/warehouseGoods/index.vue | 1 + .../end-material/warehouseRealtime/index.vue | 24 +-- .../add-or-updata.vue | 8 +- .../warehouseRealtimeLocation/index.vue | 30 +-- .../out-material/warehouseGoods/index.vue | 1 + .../out-material/warehouseRealtime/index.vue | 24 +-- .../add-or-updata.vue | 8 +- .../warehouseRealtimeLocation/index.vue | 30 +-- .../package-material/warehouseGoods/index.vue | 1 + .../warehouseRealtime/index.vue | 24 +-- .../add-or-updata.vue | 8 +- .../warehouseRealtimeLocation/index.vue | 30 +-- .../part-material/warehouseGoods/index.vue | 1 + .../part-material/warehouseRealtime/index.vue | 24 +-- .../add-or-updata.vue | 8 +- .../warehouseRealtimeLocation/index.vue | 30 +-- .../raw-material/warehouseGoods/index.vue | 1 + .../raw-material/warehouseRealtime/index.vue | 22 +-- .../add-or-updata.vue | 8 +- .../warehouseRealtimeLocation/index.vue | 30 +-- .../warehouse-info/add-or-updata1.vue | 4 +- 34 files changed, 1796 insertions(+), 151 deletions(-) create mode 100644 src/api/cost/costEneryAutoReport.js create mode 100644 src/api/cost/costMaterialAutoReport.js create mode 100644 src/api/cost/costMaterialSet.js create mode 100644 src/views/cost/energyCost/index.vue create mode 100644 src/views/cost/energyCostHis/index.vue create mode 100644 src/views/cost/mixins/basic-add.js create mode 100644 src/views/cost/mixins/basic-page.js create mode 100644 src/views/cost/mixins/code-filter.js create mode 100644 src/views/cost/mixins/connectTime.vue create mode 100644 src/views/cost/rawMaterialConfig/add-or-updata.vue create mode 100644 src/views/cost/rawMaterialConfig/index.vue create mode 100644 src/views/cost/rawMaterialCost/index.vue create mode 100644 src/views/cost/rawMaterialCostHis/index.vue diff --git a/src/api/cost/costEneryAutoReport.js b/src/api/cost/costEneryAutoReport.js new file mode 100644 index 00000000..4cfe8633 --- /dev/null +++ b/src/api/cost/costEneryAutoReport.js @@ -0,0 +1,78 @@ +/* + * @Author: zwq + * @Date: 2023-11-23 14:57:00 + * @LastEditors: zwq + * @LastEditTime: 2023-12-07 09:37:18 + * @Description: + */ +import request from '@/utils/request' + +// 创建能源自动记录报 +export function createCostEneryAutoReport(data) { + return request({ + url: '/extend/cost-enery-auto-report/create', + method: 'post', + data: data + }) +} + +// 更新能源自动记录报 +export function updateCostEneryAutoReport(data) { + return request({ + url: '/extend/cost-enery-auto-report/update', + method: 'put', + data: data + }) +} + +// 删除能源自动记录报 +export function deleteCostEneryAutoReport(id) { + return request({ + url: '/extend/cost-enery-auto-report/delete?id=' + id, + method: 'delete' + }) +} + +// 获得能源自动记录报 +export function getCostEneryAutoReport(id) { + return request({ + url: '/extend/cost-enery-auto-report/get?id=' + id, + method: 'get' + }) +} + +// 获得能源自动记录报分页历史 +export function getCostEneryAutoReportPage(data) { + return request({ + url: '/extend/cost-enery-auto-report/page', + method: 'post', + data: data + }) +} +// 获得能源查询 +export function getCostEneryAutoPage(data) { + return request({ + url: '/extend/cost-energy-search/getData', + method: 'post', + data: data + }) +} +// 导出能源自动记录报 Excel +export function exportCostEneryAutoReportExcel(data) { + return request({ + url: '/extend/cost-enery-auto-report/export-excel', + method: 'post', + data: data, + responseType: 'blob' + }) +} + +// 导出能源自动记录报 Excel 查询 +export function exportCostEneryExcel(data) { + return request({ + url: '/extend/cost-energy-search/export-excel', + method: 'post', + data: data, + responseType: 'blob' + }) +} diff --git a/src/api/cost/costMaterialAutoReport.js b/src/api/cost/costMaterialAutoReport.js new file mode 100644 index 00000000..32a58dc1 --- /dev/null +++ b/src/api/cost/costMaterialAutoReport.js @@ -0,0 +1,73 @@ +import request from '@/utils/request' + +// 创建原料成本自动统计报 +export function createCostMaterialAutoReport(data) { + return request({ + url: '/extend/cost-material-auto-report/create', + method: 'post', + data: data + }) +} + +// 更新原料成本自动统计报 +export function updateCostMaterialAutoReport(data) { + return request({ + url: '/extend/cost-material-auto-report/update', + method: 'put', + data: data + }) +} + +// 删除原料成本自动统计报 +export function deleteCostMaterialAutoReport(id) { + return request({ + url: '/extend/cost-material-auto-report/delete?id=' + id, + method: 'delete' + }) +} + +// 获得原料成本自动统计报 +export function getCostMaterialAutoReport(id) { + return request({ + url: '/extend/cost-material-auto-report/get?id=' + id, + method: 'get' + }) +} + +// 获得原料成本自动统计报分页历史 +export function getCostMaterialAutoReportPage(data) { + return request({ + url: '/extend/cost-material-auto-report/page', + method: 'post', + data: data + }) +} + +// 获得原料成本查询 +export function getCostMaterialSearchPage(data) { + return request({ + url: '/extend/cost-material-search/getData', + method: 'post', + data: data + }) +} + +// 导出原料成本自动统计报 Excel +export function exportCostMaterialAutoReportExcel(data) { + return request({ + url: '/extend/cost-material-auto-report/export-excel', + method: 'post', + data: data, + responseType: 'blob' + }) +} + +// 导出原料成本自动统计报 Excel查询 +export function exportCostMaterialSearch(data) { + return request({ + url: '/extend/cost-material-search/export-excel', + method: 'post', + data: data, + responseType: 'blob' + }) +} diff --git a/src/api/cost/costMaterialSet.js b/src/api/cost/costMaterialSet.js new file mode 100644 index 00000000..6d825d33 --- /dev/null +++ b/src/api/cost/costMaterialSet.js @@ -0,0 +1,61 @@ +/* + * @Author: zwq + * @Date: 2023-11-15 09:24:30 + * @LastEditors: zwq + * @LastEditTime: 2023-12-05 14:38:48 + * @Description: + */ +import request from '@/utils/request' + +// 创建原料价位配置 +export function createCostMaterialSet(data) { + return request({ + url: '/extend/cost-material-set/create', + method: 'post', + data: data + }) +} + +// 更新原料价位配置 +export function updateCostMaterialSet(data) { + return request({ + url: '/extend/cost-material-set/update', + method: 'put', + data: data + }) +} + +// 删除原料价位配置 +export function deleteCostMaterialSet(id) { + return request({ + url: '/extend/cost-material-set/delete?id=' + id, + method: 'delete' + }) +} + +// 获得原料价位配置 +export function getCostMaterialSet(id) { + return request({ + url: '/extend/cost-material-set/get?id=' + id, + method: 'get' + }) +} + +// 获得原料价位配置分页 +export function getCostMaterialSetPage(data) { + return request({ + url: '/extend/cost-material-set/page', + method: 'POST', + data: data + }) +} + +// 导出原料价位配置 Excel +export function exportCostMaterialSetExcel(query) { + return request({ + url: '/extend/cost-material-set/export-excel', + method: 'get', + params: query, + responseType: 'blob' + }) +} diff --git a/src/views/cost/energyCost/index.vue b/src/views/cost/energyCost/index.vue new file mode 100644 index 00000000..a0e122aa --- /dev/null +++ b/src/views/cost/energyCost/index.vue @@ -0,0 +1,162 @@ + + + + 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: --> - +