import request from '@/utils/request'; import moment from 'moment'; import { stringify } from 'qs'; export async function queryProjectV1(params) { return request(`/project?${stringify(params)}`); } export async function queryProject(params) { // return request(`/project?${stringify(params)}`); return request(`/api/v2/project?${stringify(params)}`); } // export async function queryProjectV2(params) { // return request(`/api/v2/project?${stringify(params)}`); // } export async function queryProjectById(params) { // return request(`/project/${params.ID}`); return request(`/api/v2/project/detail/${params.ID}`); } export async function addProject(params) { return request('/project/create', { method: 'POST', body: { ...params, }, }); } export async function updateProject(params = {}) { return request(`/project/update`, { method: 'PUT', body: { ...params, }, }); } export async function addDevice(params = {}) { return request(`/purchase_bill_device_item/`, { method: 'POST', body: { ...params, }, }); } export async function updateDevice(params = {}) { return request(`/purchase_bill_device_item/`, { method: 'PUT', body: { ...params, }, }); } export async function deleteDevice(params) { return request(`/purchase_bill_device_item/${params}`, { method: 'DELETE', }); } export async function removeProject(params) { return request(`/project/delete/${params.ID}`, { method: 'DELETE' }); } export async function addProjectUser(param) { return request(`/project/user`, { method: 'POST', body: param, }); } export async function addProjectUserV2(param) { return request(`/api/v2/project/user`, { method: 'POST', body: param, }); } export async function removeProjectUser(params) { return request(`/project/user/${params.ProjectId}/${params.UserId}`, { method: 'DELETE' }); } export async function removeProjectUserV2(params) { return request(`/api/v2/project/user/${params.ProjectId}/${params.UserId}`, { method: 'DELETE' }); } export async function queryProjectConstructor(params) { return request(`/project-constructor/${params.ProjectId}`); } export async function addProjectConstructor(params) { return request('/project-constructor/', { method: 'POST', body: { ...params, }, }); } export async function removeProjectConstructor(params) { return request(`/project-constructor/${params.ID}`, { method: 'DELETE' }); } export async function updateProjectConstructor(params = {}) { return request(`/project-constructor`, { method: 'PUT', body: { ...params, }, }); } export async function queryProjectClockOnOff(params) { return request(`/project-clock-on-off/${params.ProjectId}/${params.Date}?${stringify(params)}`); } export async function queryProblem(params) { return request(`/issue/list/${params.ProjectID}?${stringify(params)}`); } export async function getMyProblem(params) { return request(`/issue/my-list/${params.ProjectID}?${stringify(params)}`); } export async function addProblem(param) { return request(`/issue/create/`, { method: 'POST', body: param, }); } export async function updateProblem(params = {}) { return request(`/issue/update/`, { method: 'PUT', body: { ...params, }, }); } export async function removeProblem(params) { return request(`/issue/delete/${params.ID}`, { method: 'DELETE' }); } export async function queryProblemById(params) { return request(`/issue/item/${params.ID}`); } export async function addProblemRemark(param) { return request(`/issue/remark/`, { method: 'POST', body: param, }); } export async function deleteProblemRemark(params) { return request(`/issue/remark/${params.ID}`, { method: 'DELETE' }); } export async function queryPurchaseRequestBill(params) { return request(`/purchase_bill/request/list/${params.ProjectId}?${stringify(params)}`); } export async function queryPurchaseBill(params) { return request(`/purchase_bill/list/${params.ProjectId}?${stringify(params)}`); } export async function queryPurchaseRequestBillById(params) { return request(`/purchase_bill/request/item/${params.ID}`); } export async function removePurchaseRequestBillById(ID) { return request(`/purchase_bill/remove/${ID}`, { method: 'DELETE' }); } export async function updatePurchaseBill(params) { return request(`/purchase_bill/`, { method: 'PUT', body: params, }); } export async function updatePurchaseBillStatus(params = {}) { return request(`/purchase_bill/status/${params.ID}/`, { method: 'PUT', }); } export async function removePurchaseRequestBillFileById(params) { return request(`/purchase_bill/file/${params.FileId}?ops=${params.ops}`, { method: 'DELETE' }); } export async function queryProjectPlanList(params) { return request(`/project-plan-file/list/${params.ProjectId}`); } export async function getSelectList(params) { return request(`/setting/dashboard-items/${params.ID}`); } export async function getSelectListByDeviceIds(params) { return request(`/setting/dashboard-plc-items/${params.ID}?${stringify(params)}`); } export async function setConfList(params) { return request('/setting/dashboard', { method: 'PUT', body: params, }); } export async function saveConfList(params) { return request('/setting/dashboard', { method: 'POST', body: params, }); } export async function getDefaultConfList(params) { return request(`/setting/dashboard/${params.ID}`); } export async function uploadFile(param) { const { files } = param; return request(`/config/device-realtime-data/${param.ID}`, { method: 'POST', body: files, }); } export async function deviceAssociation(selectedRowKeys, billId, fileId) { return request(`/purchase_bill_device_file/${billId}/${fileId}`, { method: 'POST', body: selectedRowKeys, }); } export async function removePlanFile(params) { return request(`/project-plan-file/${params.fileId}`, { method: 'DELETE', }); } export async function getPlcList(params) { return request(`/config/device-realtime-data/plc/device/list?${stringify(params)}`); } export async function getDeviceRealData(params) { console.log(params); return request(`/jinke-cloud/device/current-data`, { method: 'POST', body: params, }); } export async function getDeviceRealDataByTime(params) { params.size = 999999; return request(`/jinke-cloud/db/device/history-data?${stringify(params)}`, { // return request(`/jinke-cloud/device/history-data?${stringify(params)}`, { method: 'GET', // body: params, }); } // projectId = 65专用接口 export async function getDeviceRealData2(params) { return request(`http://116.62.232.126:8800/currentdata?${stringify(params)}`); } export async function queryScreenShort(data) { return request(`/project-file/${data.projectId}/33/-1`); } export async function deleteScreenShort(data) { return request(`/api/v1/project-file/${data.id}`, { method: 'DELETE' }); } const CACHE = {}; // 查询图表对应的表单数据-最新数据 export async function queryFormCurrentData({ projectId, formName, titles }) { if (!CACHE[formName]) { const resCell = await queryFormCell({ projectId, formName }); CACHE[formName] = resCell.data || []; } let cells = titles.map(t => { let cell = CACHE[formName].find(item => item.title == t); return cell; }); const { data } = await request(`/runtime_form/chart/current/${projectId}/${formName}`); return cells.map(item => ({ key: item.cell_key, value: data[item.cell_key], title: item.title, })); } export async function queryFormCell({ projectId, formName }) { const res = await request(`/api/v1/runtime_form/cell/to/chart/${projectId}/${formName}`); return res; } // 查询图表对应的表单数据-历史数据 export async function queryFormHistoryData({ projectId, formName, titles, sTime, eTime }) { // 查询表单配置 if (!CACHE[formName]) { const resCell = await queryFormCell({ projectId, formName }); CACHE[formName] = resCell.data || []; } // 获取key、time与title的对应关系 let titleKey = titles.map(t => { let data = CACHE[formName].filter(item => item.title == t); if (data[0].time) { return { title: t, keys: data.map(item => { return { time: item.time, key: item.cell_key, }; }), }; } else { return { title: t, keys: data.map(item => item.cell_key), }; } }); // 查询数据 const { data } = await request( `/runtime_form/chart/list/${projectId}/${formName}?sTime=${sTime}&eTime=${eTime}` ); return titleKey.map(item => { const { title, keys } = item; let chartData = []; // 从数据中获取key和value keys.forEach(keyItem => { // 判断是否含有time if (keyItem instanceof Object) { const { key, time } = keyItem; data.forEach(dItem => { let value = dItem[key]; // 含有time则替换时间 c_time结构2022-03-10T16:05:37+08:00 let t = dItem.c_time.split('T')[0] + ' ' + dItem[time]; chartData.push({ htime: new Date(t), val: value || 0, }); }); } else { data.forEach(dItem => { let value = dItem[keyItem]; // 没有time则使用c_time let time = dItem.c_time; chartData.push({ htime: new Date(time), val: value || 0, }); }); } }); chartData .sort((a, b) => a.htime - b.htime) .forEach(item => { item.htime = moment(item.htime).format('YYYY-MM-DD HH:mm:ss'); }); return { name: title, data: chartData, }; }); }