'use strict'; /** * * * @author Mai * @date * @version */ const sendToWormhole = require('stream-wormhole'); const path = require('path'); module.exports = app => { class DrawingController extends app.BaseController { /** * 图纸管理 * * @param ctx * @returns {Promise} */ async tender(ctx) { try { if (!ctx.subProject.page_show.drawing) throw '该功能已关闭或无法查看'; const renderData = { jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.drawing.tender), }; renderData.tenderList = await ctx.service.tender.getSpecList(ctx.service.drawingPermission, ctx.session.sessionUser.is_admin ? 'all' : ''); renderData.categoryData = await this.ctx.service.category.getAllCategory(ctx.subProject); renderData.selfCategoryLevel = this.ctx.subProject.permission.self_category_level; await this.layout('drawing/tender.ejs', renderData, 'drawing/tender_modal.ejs'); } catch (err) { ctx.log(err); ctx.postError(err, '查询图纸管理数据错误'); ctx.redirect(this.menu.menu.dashboard.url); } } async design() { } async built() { } async manageUpdate(ctx) { try { this.checkLock(ctx); const data = JSON.parse(ctx.request.body.data); if (!data.updateType) throw '数据错误'; let result; const updateData = JSON.parse(JSON.stringify(data)); delete updateData.updateType; if (data.updateType === 'add') { result = await ctx.service.filing.add(updateData); } else if (data.updateType === 'del') { result = await ctx.service.filing.del(updateData); } else if (data.updateType === 'save') { result = await ctx.service.filing.save(updateData); } else if (data.updateType === 'move') { if (!data.id || !(data.tree_order >= 0)) throw '数据错误'; result = await ctx.service.filing.move(updateData); } else if (data.updateType === 'multi' ) { result = await ctx.service.filing.multiUpdate(ctx.subProject.id, data.data); } ctx.body = { err: 0, msg: '', data: result }; } catch (err) { ctx.log(err); ctx.ajaxErrorBody(err, '修改失败'); } } } return DrawingController; };