ProjectAdmin.js 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. import request from '@/utils/request';
  2. import moment from 'moment';
  3. import { stringify } from 'qs';
  4. export async function queryProjectV1(params) {
  5. return request(`/project?${stringify(params)}`);
  6. }
  7. export async function queryProject(params) {
  8. // return request(`/project?${stringify(params)}`);
  9. return request(`/api/v2/project?${stringify(params)}`);
  10. }
  11. // export async function queryProjectV2(params) {
  12. // return request(`/api/v2/project?${stringify(params)}`);
  13. // }
  14. export async function queryProjectById(params) {
  15. // return request(`/project/${params.ID}`);
  16. return request(`/api/v2/project/detail/${params.ID}`);
  17. }
  18. export async function addProject(params) {
  19. return request('/project/create', {
  20. method: 'POST',
  21. body: {
  22. ...params,
  23. },
  24. });
  25. }
  26. export async function updateProject(params = {}) {
  27. return request(`/project/update`, {
  28. method: 'PUT',
  29. body: {
  30. ...params,
  31. },
  32. });
  33. }
  34. export async function addDevice(params = {}) {
  35. return request(`/purchase_bill_device_item/`, {
  36. method: 'POST',
  37. body: {
  38. ...params,
  39. },
  40. });
  41. }
  42. export async function updateDevice(params = {}) {
  43. return request(`/purchase_bill_device_item/`, {
  44. method: 'PUT',
  45. body: {
  46. ...params,
  47. },
  48. });
  49. }
  50. export async function deleteDevice(params) {
  51. return request(`/purchase_bill_device_item/${params}`, {
  52. method: 'DELETE',
  53. });
  54. }
  55. export async function removeProject(params) {
  56. return request(`/project/delete/${params.ID}`, { method: 'DELETE' });
  57. }
  58. export async function addProjectUser(param) {
  59. return request(`/project/user`, {
  60. method: 'POST',
  61. body: param,
  62. });
  63. }
  64. export async function addProjectUserV2(param) {
  65. return request(`/api/v2/project/user`, {
  66. method: 'POST',
  67. body: param,
  68. });
  69. }
  70. export async function removeProjectUser(params) {
  71. return request(`/project/user/${params.ProjectId}/${params.UserId}`, { method: 'DELETE' });
  72. }
  73. export async function removeProjectUserV2(params) {
  74. return request(`/api/v2/project/user/${params.ProjectId}/${params.UserId}`, { method: 'DELETE' });
  75. }
  76. export async function queryProjectConstructor(params) {
  77. return request(`/project-constructor/${params.ProjectId}`);
  78. }
  79. export async function addProjectConstructor(params) {
  80. return request('/project-constructor/', {
  81. method: 'POST',
  82. body: {
  83. ...params,
  84. },
  85. });
  86. }
  87. export async function removeProjectConstructor(params) {
  88. return request(`/project-constructor/${params.ID}`, { method: 'DELETE' });
  89. }
  90. export async function updateProjectConstructor(params = {}) {
  91. return request(`/project-constructor`, {
  92. method: 'PUT',
  93. body: {
  94. ...params,
  95. },
  96. });
  97. }
  98. export async function queryProjectClockOnOff(params) {
  99. return request(`/project-clock-on-off/${params.ProjectId}/${params.Date}?${stringify(params)}`);
  100. }
  101. export async function queryProblem(params) {
  102. return request(`/issue/list/${params.ProjectID}?${stringify(params)}`);
  103. }
  104. export async function getMyProblem(params) {
  105. return request(`/issue/my-list/${params.ProjectID}?${stringify(params)}`);
  106. }
  107. export async function addProblem(param) {
  108. return request(`/issue/create/`, {
  109. method: 'POST',
  110. body: param,
  111. });
  112. }
  113. export async function updateProblem(params = {}) {
  114. return request(`/issue/update/`, {
  115. method: 'PUT',
  116. body: {
  117. ...params,
  118. },
  119. });
  120. }
  121. export async function removeProblem(params) {
  122. return request(`/issue/delete/${params.ID}`, { method: 'DELETE' });
  123. }
  124. export async function queryProblemById(params) {
  125. return request(`/issue/item/${params.ID}`);
  126. }
  127. export async function addProblemRemark(param) {
  128. return request(`/issue/remark/`, {
  129. method: 'POST',
  130. body: param,
  131. });
  132. }
  133. export async function deleteProblemRemark(params) {
  134. return request(`/issue/remark/${params.ID}`, { method: 'DELETE' });
  135. }
  136. export async function queryPurchaseRequestBill(params) {
  137. return request(`/purchase_bill/request/list/${params.ProjectId}?${stringify(params)}`);
  138. }
  139. export async function queryPurchaseBill(params) {
  140. return request(`/purchase_bill/list/${params.ProjectId}?${stringify(params)}`);
  141. }
  142. export async function queryPurchaseRequestBillById(params) {
  143. return request(`/purchase_bill/request/item/${params.ID}`);
  144. }
  145. export async function removePurchaseRequestBillById(ID) {
  146. return request(`/purchase_bill/remove/${ID}`, { method: 'DELETE' });
  147. }
  148. export async function updatePurchaseBill(params) {
  149. return request(`/purchase_bill/`, {
  150. method: 'PUT',
  151. body: params,
  152. });
  153. }
  154. export async function updatePurchaseBillStatus(params = {}) {
  155. return request(`/purchase_bill/status/${params.ID}/`, {
  156. method: 'PUT',
  157. });
  158. }
  159. export async function removePurchaseRequestBillFileById(params) {
  160. return request(`/purchase_bill/file/${params.FileId}?ops=${params.ops}`, { method: 'DELETE' });
  161. }
  162. export async function queryProjectPlanList(params) {
  163. return request(`/project-plan-file/list/${params.ProjectId}`);
  164. }
  165. export async function getSelectList(params) {
  166. return request(`/setting/dashboard-items/${params.ID}`);
  167. }
  168. export async function getSelectListByDeviceIds(params) {
  169. return request(`/setting/dashboard-plc-items/${params.ID}?${stringify(params)}`);
  170. }
  171. export async function setConfList(params) {
  172. return request('/setting/dashboard', {
  173. method: 'PUT',
  174. body: params,
  175. });
  176. }
  177. export async function saveConfList(params) {
  178. return request('/setting/dashboard', {
  179. method: 'POST',
  180. body: params,
  181. });
  182. }
  183. export async function getDefaultConfList(params) {
  184. return request(`/setting/dashboard/${params.ID}`);
  185. }
  186. export async function uploadFile(param) {
  187. const { files } = param;
  188. return request(`/config/device-realtime-data/${param.ID}`, {
  189. method: 'POST',
  190. body: files,
  191. });
  192. }
  193. export async function deviceAssociation(selectedRowKeys, billId, fileId) {
  194. return request(`/purchase_bill_device_file/${billId}/${fileId}`, {
  195. method: 'POST',
  196. body: selectedRowKeys,
  197. });
  198. }
  199. export async function removePlanFile(params) {
  200. return request(`/project-plan-file/${params.fileId}`, {
  201. method: 'DELETE',
  202. });
  203. }
  204. export async function getPlcList(params) {
  205. return request(`/config/device-realtime-data/plc/device/list?${stringify(params)}`);
  206. }
  207. export async function getDeviceRealData(params) {
  208. console.log(params);
  209. return request(`/jinke-cloud/device/current-data`, {
  210. method: 'POST',
  211. body: params,
  212. });
  213. }
  214. export async function getDeviceRealDataByTime(params) {
  215. params.size = 999999;
  216. return request(`/jinke-cloud/db/device/history-data?${stringify(params)}`, {
  217. // return request(`/jinke-cloud/device/history-data?${stringify(params)}`, {
  218. method: 'GET',
  219. // body: params,
  220. });
  221. }
  222. // projectId = 65专用接口
  223. export async function getDeviceRealData2(params) {
  224. return request(`http://116.62.232.126:8800/currentdata?${stringify(params)}`);
  225. }
  226. export async function queryScreenShort(data) {
  227. return request(`/project-file/${data.projectId}/33/-1`);
  228. }
  229. export async function deleteScreenShort(data) {
  230. return request(`/api/v1/project-file/${data.id}`, { method: 'DELETE' });
  231. }
  232. const CACHE = {};
  233. // 查询图表对应的表单数据-最新数据
  234. export async function queryFormCurrentData({ projectId, formName, titles }) {
  235. if (!CACHE[formName]) {
  236. const resCell = await queryFormCell({ projectId, formName });
  237. CACHE[formName] = resCell.data || [];
  238. }
  239. let cells = titles.map(t => {
  240. let cell = CACHE[formName].find(item => item.title == t);
  241. return cell;
  242. });
  243. const { data } = await request(`/runtime_form/chart/current/${projectId}/${formName}`);
  244. return cells.map(item => ({
  245. key: item.cell_key,
  246. value: data[item.cell_key],
  247. title: item.title,
  248. }));
  249. }
  250. export async function queryFormCell({ projectId, formName }) {
  251. const res = await request(`/api/v1/runtime_form/cell/to/chart/${projectId}/${formName}`);
  252. return res;
  253. }
  254. // 查询图表对应的表单数据-历史数据
  255. export async function queryFormHistoryData({ projectId, formName, titles, sTime, eTime }) {
  256. // 查询表单配置
  257. if (!CACHE[formName]) {
  258. const resCell = await queryFormCell({ projectId, formName });
  259. CACHE[formName] = resCell.data || [];
  260. }
  261. // 获取key、time与title的对应关系
  262. let titleKey = titles.map(t => {
  263. let data = CACHE[formName].filter(item => item.title == t);
  264. if (data[0].time) {
  265. return {
  266. title: t,
  267. keys: data.map(item => {
  268. return {
  269. time: item.time,
  270. key: item.cell_key,
  271. };
  272. }),
  273. };
  274. } else {
  275. return {
  276. title: t,
  277. keys: data.map(item => item.cell_key),
  278. };
  279. }
  280. });
  281. // 查询数据
  282. const { data } = await request(
  283. `/runtime_form/chart/list/${projectId}/${formName}?sTime=${sTime}&eTime=${eTime}`
  284. );
  285. return titleKey.map(item => {
  286. const { title, keys } = item;
  287. let chartData = [];
  288. // 从数据中获取key和value
  289. keys.forEach(keyItem => {
  290. // 判断是否含有time
  291. if (keyItem instanceof Object) {
  292. const { key, time } = keyItem;
  293. data.forEach(dItem => {
  294. let value = dItem[key];
  295. // 含有time则替换时间 c_time结构2022-03-10T16:05:37+08:00
  296. let t = dItem.c_time.split('T')[0] + ' ' + dItem[time];
  297. chartData.push({
  298. htime: new Date(t),
  299. val: value || 0,
  300. });
  301. });
  302. } else {
  303. data.forEach(dItem => {
  304. let value = dItem[keyItem];
  305. // 没有time则使用c_time
  306. let time = dItem.c_time;
  307. chartData.push({
  308. htime: new Date(time),
  309. val: value || 0,
  310. });
  311. });
  312. }
  313. });
  314. chartData
  315. .sort((a, b) => a.htime - b.htime)
  316. .forEach(item => {
  317. item.htime = moment(item.htime).format('YYYY-MM-DD HH:mm:ss');
  318. });
  319. return {
  320. name: title,
  321. data: chartData,
  322. };
  323. });
  324. }