123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- /**标准清单操作相关
- * Created by Zhong on 2017/8/2.
- */
- let billsController = require("./bills_lib_controllers");
- import baseController from "../../common/base/base_controller";
- import fs from 'fs';
- import path from 'path';
- import multiparty from 'multiparty';
- const uuidV1 = require('uuid/v1');
- const shareDir = 'public/share/images';
- const imgTriggers = ['billsRecharge', 'rationExplanation', 'rationRuleText'];
- class billsPermContr extends baseController{
- getCurrentUniqId(req, res){
- billsController.getCurrentUniqId(req, res);
- }
- getBills(req, res){
- billsController.getBills(req, res);
- }
- createBills(req, res){
- billsController.createBills(req, res);
- }
- updatePNId(req, res){
- billsController.updatePNId(req, res);
- }
- upMove(req, res){
- billsController.upMove(req, res);
- }
- downMove(req, res){
- billsController.downMove(req, res);
- }
- upLevel(req, res){
- billsController.upLevel(req, res);
- }
- downLevel(req, res){
- billsController.downLevel(req, res);
- }
- updateBills(req, res){
- billsController.updateBills(req, res);
- }
- updateSectionInfo(req, res){
- billsController.updateSectionInfo(req, res);
- }
- updateBillsArr(req, res){
- billsController.updateBillsArr(req, res);
- }
- removeTotal(req, res){
- billsController.removeTotal(req, res);
- }
- updateSerialNo(req, res){
- billsController.updateSerialNo(req, res);
- }
- pasteBills(req, res){
- billsController.pasteBills(req, res);
- }
- updateRecharge(req, res){
- billsController.updateRecharge(req, res);
- }
- pasteRel(req, res){
- billsController.pasteRel(req, res);
- }
- deleteBills(req, res){
- billsController.deleteBills(req, res);
- }
- isUsed(req, res){
- billsController.isUsed(req, res);
- }
- /*
- *上传图片
- * */
- uploadImg(req, res){
- let uploadDir = path.join(req.app.locals.rootDir, shareDir);
- let form = new multiparty.Form({uploadDir: uploadDir});
- form.parse(req, async function(err, fields, files){
- try {
- const file = typeof files.file !== 'undefined' ? files.file[0] : null;
- if(err || !file) {
- throw '上传失败';
- }
- //触发上传图片的地方
- const trigger = typeof fields.trigger !== 'undefined' && fields.trigger.length > 0 ? fields.trigger[0] : null;
- if (!trigger || !imgTriggers.includes(trigger)) {
- throw '该操作没有上传权限'
- }
- //根据触发源放置文件到相关文件夹
- let triggerPath = path.join(uploadDir, trigger);
- if (!fs.existsSync(triggerPath)) {
- fs.mkdirSync(triggerPath);
- }
- //文件后缀
- let px = file.originalFilename.split('.').pop();
- //时间戳重命名图片并移动文件
- let newFileName = Date.now() + '.' + px;
- if (fs.existsSync(newPath)) {
- newFileName += uuidV1();
- }
- let newPath = path.join(triggerPath, newFileName);
- fs.renameSync(file.path, newPath);
- //返回图片域名后的url
- res.json({error: 0, data: `${shareDir}/${trigger}/${newFileName}`, message: 'success'});
- } catch (err) {
- console.log(err);
- res.json({error: 1, data: null, message: err});
- }
- });
- }
- /*
- * 删除图片
- * */
- delImg(req, res){
- try {
- let data = JSON.parse(req.body.data),
- trigger = data.trigger,
- url = data.url;
- if (!imgTriggers.includes(trigger)) {
- throw '该操作没有权限';
- }
- //拼接完整的删除路径
- let delUrl = path.join(req.app.locals.rootDir, url);
- fs.unlinkSync(delUrl);
- res.json({error: 0, data: null, message: 'success'});
- } catch(err) {
- res.json({error: 1, data: null, message: err});
- }
- }
- /*
- * 根据页码加载图片
- * 返回总页码和当前页码的图片信息
- * */
- loadImgs(req, res){
- try {
- let data = JSON.parse(req.body.data),
- trigger = data.trigger,
- page = data.page;
- if (!imgTriggers.includes(trigger)) {
- throw '该操作没有权限';
- }
- //每页显示的图片数
- const perImgs = 3;
- //总的图片信息
- let triggerPath = path.join(req.app.locals.rootDir, shareDir, trigger);
- if (!fs.existsSync(triggerPath)) {
- fs.mkdirSync(triggerPath);
- }
- let allImgs = fs.readdirSync(triggerPath);
- //将图片按照时间排序,降序
- allImgs.sort(function (a, b) {
- let aV = a.split('.')[0],
- bV = b.split('.')[0];
- if(aV > bV) {
- return -1;
- } else if(aV < bV) {
- return 1;
- }
- return 0;
- });
- let pageCount = Math.ceil(allImgs.length / perImgs) || 1;
- //当前页图片信息
- let startIdx = (page - 1) * perImgs,
- endIdx = startIdx + 3,
- currentPageArr = allImgs.slice(startIdx, endIdx),
- currentImgsUrl = [];
- for (let img of currentPageArr){
- currentImgsUrl.push(`${shareDir}/${trigger}/${img}`);
- }
- res.json({error: 0, data: {pageCount: pageCount, currentImgsUrl: currentImgsUrl}, message: 'success'});
- } catch (err) {
- console.log(err);
- res.json({error: 1, data: {pageCount: 1, currentImgsUrl: []}, message: err});
- }
- }
- }
- export default billsPermContr;
|