Browse Source

Merge branch 'dev' of ssh://10.10.100.21/source/saas-platform into dev

rainco 7 years ago
parent
commit
399623c35a
29 changed files with 241 additions and 48 deletions
  1. 2 0
      applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java
  2. 16 1
      applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/CommonController.java
  3. 6 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/VerificationController.java
  4. 5 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/VerificationService.java
  5. 6 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/RecbalanceServiceImpl.java
  6. 9 0
      applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java
  7. 4 0
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/SaleMapper.java
  8. 12 4
      applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java
  9. 1 0
      applications/sale/sale-server/src/main/resources/mapper/ProdInOutListMapper.xml
  10. 10 1
      applications/sale/sale-server/src/main/resources/mapper/SaleMapper.xml
  11. 2 0
      applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/ProdInOutList.java
  12. 1 1
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountCenterServiceImpl.java
  13. 57 0
      frontend/saas-portal-web/build/utils.js
  14. 8 3
      frontend/saas-portal-web/build/webpack.base.conf.js
  15. 11 6
      frontend/saas-portal-web/build/webpack.dev.conf.js
  16. 22 17
      frontend/saas-portal-web/build/webpack.prod.conf.js
  17. 5 3
      frontend/saas-portal-web/config/dev.env.js
  18. 1 1
      frontend/saas-portal-web/config/index.js
  19. 1 0
      frontend/saas-portal-web/package.json
  20. 5 2
      frontend/saas-portal-web/src/components/conenter/company.vue
  21. 2 1
      frontend/saas-portal-web/src/components/conenter/home.vue
  22. 25 0
      frontend/saas-portal-web/src/pages/cell/cell.html
  23. 0 0
      frontend/saas-portal-web/src/pages/cell/cell.js
  24. 15 0
      frontend/saas-portal-web/src/pages/cell/cell.vue
  25. 2 1
      frontend/saas-portal-web/src/pages/index/index.html
  26. 3 3
      frontend/saas-portal-web/src/pages/index/index.js
  27. 2 1
      frontend/saas-portal-web/src/pages/index/index.vue
  28. 1 0
      frontend/saas-web/app/util/FormUtil.js
  29. 7 3
      frontend/saas-web/app/view/sale/saleOut/QueryPanel.js

+ 2 - 0
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java

@@ -75,6 +75,8 @@ public enum BizExceptionCode implements BaseExceptionCode {
     SALEOUT_UNAUDIT_ERROR(72006,"销售订单已转出货单,无法反审核"),
     SALE_ORDER_HASAUDIT(72003, "存在已审核单据,单据编号:%s"),
     SALE_EXISTS_PURCHASE(72004, "存在已转的采购单据,单据编号:%s"),
+    SALE_ALREADY_UNAUDIT(72007, "单据状态为未审核,无法反审核"),
+    SALE_CUST_CLOSE(72008, "客户已关闭,无法审核"),
 
     //资金
     PAYBALANCE_OUTNOWBALANCE(74001,"本次核销金额不能大于未核销金额"),

+ 16 - 1
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/CommonController.java

@@ -15,7 +15,12 @@ public class CommonController {
     private CommonService commonService;
 
     @GetMapping("/{caller}/export")
-    public Result export(@PathVariable("caller") String caller){
+    public Result export(){
+        return Result.success();
+    }
+
+    @GetMapping("/{caller}/print")
+    public Result print() {
         return Result.success();
     }
 
@@ -34,4 +39,14 @@ public class CommonController {
         return deferredResult;
     }
 
+    @GetMapping("/timeout/test")
+    public void timeout(@RequestParam("time") Long time){
+        try {
+            System.out.println("进入时间:" + time);
+            Thread.sleep(time);
+            System.out.println("出去时间:" + time);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
 }

+ 6 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/controller/VerificationController.java

@@ -120,4 +120,10 @@ public class VerificationController {
         verificationService.batchUnAudit(body);
         return Result.success();
     }
+
+    @RequestMapping("/batchDelete")
+    public Result batchDelete(@RequestBody BatchDealBaseDTO body) {
+        verificationService.batchDelete(body);
+        return Result.success();
+    }
 }

+ 5 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/VerificationService.java

@@ -83,4 +83,9 @@ public interface VerificationService {
      * @param id
      */
     void batchUnAudit(BatchDealBaseDTO baseDTO);
+
+    /**
+     * 批量删除
+     */
+    void batchDelete(BatchDealBaseDTO baseDTO);
 }

+ 6 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/RecbalanceServiceImpl.java

@@ -299,6 +299,9 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
         for (Recbalancedetail detail: recbalancedetail) {
             Subledger subledger1 = new Subledger();
             Subledger nowSubledger = subledgerMapper.selectByPrimaryKey(detail.getRbd_slid());
+            if (nowSubledger == null){
+                throw new BizException(500, BizExceptionCode.SUBLEDGER_NOT_EXIS.getMessage());
+            }
             subledger1.setId(Long.valueOf(String.valueOf(detail.getRbd_slid())));
             Double yamount = nowSubledger.getSl_yamount()==null?new Double(0):nowSubledger.getSl_yamount();
             Double namount = nowSubledger.getSl_namount()==null?new Double(0):nowSubledger.getSl_namount();
@@ -389,6 +392,9 @@ public class RecbalanceServiceImpl extends CommonBaseServiceImpl<RecbalanceMappe
         for(Recbalancedetail detail: recbalancedetail) {
             Subledger subledger1 = new Subledger();
             Subledger nowSubledger = subledgerMapper.selectByPrimaryKey(detail.getRbd_slid());
+            if (nowSubledger == null){
+                throw new BizException(500, BizExceptionCode.SUBLEDGER_NOT_EXIS.getMessage());
+            }
             subledger1.setId(Long.valueOf(String.valueOf(detail.getRbd_slid())));Double yamount = nowSubledger.getSl_yamount()==null?new Double(0):nowSubledger.getSl_yamount();
             Double namount = nowSubledger.getSl_namount()==null?new Double(0):nowSubledger.getSl_namount();
             Double nowBalance = detail.getRbd_nowbalance()==null?new Double(0):detail.getRbd_nowbalance();

+ 9 - 0
applications/money/money-server/src/main/java/com/usoftchina/saas/money/service/impl/VerificationServiceImpl.java

@@ -954,6 +954,15 @@ public class VerificationServiceImpl extends CommonBaseServiceImpl<VerificationM
         }
     }
 
+    @Override
+    public void batchDelete(BatchDealBaseDTO baseDTO) {
+        Iterator isList = baseDTO.getBaseDTOs().iterator();
+        while (isList.hasNext()){
+            DocBaseDTO docBaseDTO = (DocBaseDTO) isList.next();
+            this.delete(docBaseDTO.getId());
+        }
+    }
+
     private String pushMaxnubmer(String code, Long id) {
         if (null == code) {
             throw new BizException(BizExceptionCode.NULL_CODE);

+ 4 - 0
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/mapper/SaleMapper.java

@@ -52,4 +52,8 @@ public interface SaleMapper extends CommonBaseMapper<Sale> {
     Integer selectPurchaseId(@Param("code") String code,@Param("companyid") Long companyid);
 
     String checkIsTurnPurchase(@Param("id") Long id,@Param("companyid") Long companyid);
+
+    Integer checkCustomer(Long id);
+
+    String validateCustAudit(List<DocBaseDTO> baseDTOs);
 }

+ 12 - 4
applications/sale/sale-server/src/main/java/com/usoftchina/saas/sale/service/impl/SaleServiceImpl.java

@@ -247,6 +247,10 @@ public class SaleServiceImpl implements SaleService{
         sale.setSa_auditdate(new Date());
         //更新存在字段
         saleMapper.updateByPrimaryKeySelective(sale);*/
+        Integer integer = saleMapper.checkCustomer(id);
+        if (integer > 0) {
+            throw new BizException(BizExceptionCode.SALE_CUST_CLOSE);
+        }
         commonService.commonAudit("sale", "sa_id=" + id, "sa_status",
                 "sa_statuscode", "sa_auditdate", "sa_auditman");
         //更新销售金额
@@ -273,6 +277,10 @@ public class SaleServiceImpl implements SaleService{
             int code = BizExceptionCode.SALE_ORDER_HASAUDIT.getCode();
             throw new BizException(code, String.format(message, validate));
         }
+        String custAudit = saleMapper.validateCustAudit(baseDTOs.getBaseDTOs());
+        if (!StringUtils.isEmpty(custAudit)) {
+            throw new BizException(72009, "客户已关闭,无法审核, 单号:" + custAudit);
+        }
         for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
             singleAudit(base.getId());
         }
@@ -285,7 +293,7 @@ public class SaleServiceImpl implements SaleService{
         }
         String code = saleMapper.validateUnAudit(id);
         if (null != code) {
-            throw new BizException(BizExceptionCode.SALE_NULL_BILL);
+            throw new BizException(BizExceptionCode.SALE_ALREADY_UNAUDIT);
         }
         //检测出货状态为未出货
         Integer num = saleMapper.checkSendStatus(id);
@@ -322,15 +330,15 @@ public class SaleServiceImpl implements SaleService{
                 baseDTOs.getBaseDTOs().size() == 0) {
             return;
         }
-
-        String msg = saleMapper.validateBatchUnAudit(baseDTOs.getBaseDTOs());
+      /*  String msg = saleMapper.validateBatchUnAudit(baseDTOs.getBaseDTOs());
         if (null != msg) {
             String message = BizExceptionCode.SALE_ORDER_HASAUDIT.getMessage();
             int code = BizExceptionCode.SALE_ORDER_HASAUDIT.getCode();
             throw new BizException(code, String.format(message, msg));
         }
+        saleMapper.BatchcheckSendStatus();*/
         for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
-            singleUnAudit(base.getId());
+            unAudit(base.getId());
         }
     }
 

+ 1 - 0
applications/sale/sale-server/src/main/resources/mapper/ProdInOutListMapper.xml

@@ -71,6 +71,7 @@
     <result column="pi_remark" jdbcType="VARCHAR" property="pi_remark" />
     <result column="pi_prstatus" jdbcType="VARCHAR" property="pi_prstatus" />
     <result column="pi_prstatuscode" jdbcType="VARCHAR" property="pi_prstatuscode" />
+    <result column="pd_ordertotal" jdbcType="DOUBLE" property="pd_ordertotal" />
   </resultMap>
 
 

+ 10 - 1
applications/sale/sale-server/src/main/resources/mapper/SaleMapper.xml

@@ -356,6 +356,13 @@
       #{item.id}
     </foreach>
   </select>
+
+  <select id="validateCustAudit" parameterType="com.usoftchina.saas.commons.dto.DocBaseDTO" resultType="java.lang.String">
+    select GROUP_CONCAT(sa_code) from sale left join customer on cu_id=sa_custid  where sa_statuscode='AUDITED' and sa_id in
+    <foreach collection="list" item="item" open="(" close=")" separator=",">
+      #{item.id}
+    </foreach>
+  </select>
   <select id="validateBatchUnAudit" parameterType="com.usoftchina.saas.commons.dto.DocBaseDTO" resultType="java.lang.String">
     select GROUP_CONCAT(sa_code) from sale where sa_statuscode='UNAUDITED' and sa_id in
     <foreach collection="list" item="item" open="(" close=")" separator=",">
@@ -394,7 +401,9 @@
     where pd_saleid = #{id}
     and purchasedetail.companyid= #{companyid}
   </select>
-  
+  <select id="checkCustomer" parameterType="long" resultType="integer">
+    select count(1) from sale left join  customer on sa_custid=cu_id  where  cu_statuscode='CLOSE' and cu_statuscode='CLOSE'
+  </select>
   
   <!-- 销售订单转采购单-->
   <insert id="turnPurchase" parameterType="com.usoftchina.saas.sale.dto.PurchaseDTO" >

+ 2 - 0
applications/storage/storage-dto/src/main/java/com/usoftchina/saas/storage/po/ProdInOutList.java

@@ -130,6 +130,8 @@ public class ProdInOutList extends CommonBaseEntity{
 
     private String pd_remark;
 
+    private Double pd_ordertotal;
+
     private Long pd_ioid;
 
     private Date pi_auditdate;

+ 1 - 1
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountCenterServiceImpl.java

@@ -164,7 +164,7 @@ public class AccountCenterServiceImpl implements AccountCenterService {
                         false,
                         false,
                         ssoUserSpace.getSpaceUU().toString(),
-                        ssoUserSpace.getAdmin().getVipName(),
+                        ssoUserSpace.getAdmin()!=null ? ssoUserSpace.getAdmin().getVipName() : null,
                         0L,
                         ssoUserSpace.getProfession()
                 );

+ 57 - 0
frontend/saas-portal-web/build/utils.js

@@ -83,6 +83,63 @@ exports.styleLoaders = function (options) {
   return output
 }
 
+/* 这里是添加的部分 ---------------------------- 开始 */
+// glob是webpack安装时依赖的一个第三方模块,还模块允许你使用 *等符号, 例如lib/*.js就是获取lib文件夹下的所有js后缀名的文件
+var glob = require('glob')
+// 页面模板
+var HtmlWebpackPlugin = require('html-webpack-plugin')
+// 取得相应的页面路径,因为之前的配置,所以是src文件夹下的pages文件夹
+var PAGE_PATH = path.resolve(__dirname, '../src/pages')
+// 用于做相应的merge处理
+var merge = require('webpack-merge')
+
+
+//多入口配置
+// 通过glob模块读取pages文件夹下的所有对应文件夹下的js后缀文件,如果该文件存在
+// 那么就作为入口处理
+exports.entries = function () {
+    var entryFiles = glob.sync(PAGE_PATH + '/*/*.js')
+    var map = {}
+    entryFiles.forEach((filePath) => {
+        var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))
+        map[filename] = filePath
+    })
+    return map
+}
+
+//多页面输出配置
+// 与上面的多页面入口配置相同,读取pages文件夹下的对应的html后缀文件,然后放入数组中
+exports.htmlPlugin = function () {
+    let entryHtml = glob.sync(PAGE_PATH + '/*/*.html')
+    let arr = []
+    entryHtml.forEach((filePath) => {
+        let filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))
+        let conf = {
+            // 模板来源
+            template: filePath,
+            // 文件名称
+            filename: filename + '.html',
+            // 页面模板需要加对应的js脚本,如果不加这行则每个页面都会引入所有的js脚本
+            chunks: ['manifest', 'vendor', filename],
+            inject: true
+        }
+        if (process.env.NODE_ENV === 'production') {
+            conf = merge(conf, {
+                minify: {
+                    removeComments: true,
+                    collapseWhitespace: true,
+                    removeAttributeQuotes: true
+                },
+                chunksSortMode: 'dependency'
+            })
+        }
+        arr.push(new HtmlWebpackPlugin(conf))
+    })
+    return arr
+}
+/* 这里是添加的部分 ---------------------------- 结束 */
+
+
 exports.createNotifierCallback = () => {
   const notifier = require('node-notifier')
 

+ 8 - 3
frontend/saas-portal-web/build/webpack.base.conf.js

@@ -12,9 +12,14 @@ function resolve (dir) {
 
 module.exports = {
   context: path.resolve(__dirname, '../'),
-  entry: {
-    app: './src/main.js'
-  },
+
+ /* 修改部分 ---------------- 开始 */
+ entry: utils.entries(),
+ /* 修改部分 ---------------- 结束 */
+
+  // entry: {
+  //   app: './src/main.js'
+  // },
   output: {
     path: config.build.assetsRoot,
     filename: '[name].js',

+ 11 - 6
frontend/saas-portal-web/build/webpack.dev.conf.js

@@ -52,11 +52,15 @@ const devWebpackConfig = merge(baseWebpackConfig, {
     new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
     new webpack.NoEmitOnErrorsPlugin(),
     // https://github.com/ampedandwired/html-webpack-plugin
-    new HtmlWebpackPlugin({
-      filename: 'index.html',
-      template: 'index.html',
-      inject: true
-    }),
+
+    /* 注释这个区域的文件 ------------- 开始 */
+    // new HtmlWebpackPlugin({
+    //   filename: 'index.html',
+    //   template: 'index.html',
+    //   inject: true
+    // }),
+     /* 注释这个区域的文件 ------------- 结束 */
+
     // copy custom static assets
     new CopyWebpackPlugin([
       {
@@ -65,7 +69,8 @@ const devWebpackConfig = merge(baseWebpackConfig, {
         ignore: ['.*']
       }
     ])
-  ]
+     /* 添加 .concat(utils.htmlPlugin()) ------------------ */
+  ].concat(utils.htmlPlugin())
 })
 
 module.exports = new Promise((resolve, reject) => {

+ 22 - 17
frontend/saas-portal-web/build/webpack.prod.conf.js

@@ -62,22 +62,26 @@ const webpackConfig = merge(baseWebpackConfig, {
     // generate dist index.html with correct asset hash for caching.
     // you can customize output by editing /index.html
     // see https://github.com/ampedandwired/html-webpack-plugin
-    new HtmlWebpackPlugin({
-      filename: process.env.NODE_ENV === 'testing'
-        ? 'index.html'
-        : config.build.index,
-      template: 'index.html',
-      inject: true,
-      minify: {
-        removeComments: true,
-        collapseWhitespace: true,
-        removeAttributeQuotes: true
-        // more options:
-        // https://github.com/kangax/html-minifier#options-quick-reference
-      },
-      // necessary to consistently work with multiple chunks via CommonsChunkPlugin
-      chunksSortMode: 'dependency'
-    }),
+
+    /* 注释这个区域的内容 ---------------------- 开始 */
+    // new HtmlWebpackPlugin({
+    //   filename: process.env.NODE_ENV === 'testing'
+    //     ? 'index.html'
+    //     : config.build.index,
+    //   template: 'index.html',
+    //   inject: true,
+    //   minify: {
+    //     removeComments: true,
+    //     collapseWhitespace: true,
+    //     removeAttributeQuotes: true
+    //     // more options:
+    //     // https://github.com/kangax/html-minifier#options-quick-reference
+    //   },
+    //   // necessary to consistently work with multiple chunks via CommonsChunkPlugin
+    //   chunksSortMode: 'dependency'
+    // }),
+     /* 注释这个区域的内容 ---------------------- 结束 */
+
     // keep module.id stable when vendor modules does not change
     new webpack.HashedModuleIdsPlugin(),
     // enable scope hoisting
@@ -120,7 +124,8 @@ const webpackConfig = merge(baseWebpackConfig, {
         ignore: ['.*']
       }
     ])
-  ]
+     /* 该位置添加 .concat(utils.htmlPlugin()) ------------------- */
+  ].concat(utils.htmlPlugin())
 })
 
 if (config.build.productionGzip) {

+ 5 - 3
frontend/saas-portal-web/config/dev.env.js

@@ -8,9 +8,11 @@ module.exports = merge(prodEnv, {
     // 前端地址
     web: '"http://192.168.0.181"',
     // 后端接口网关
-    // api: '"http://192.168.253.31:8560"',
-    api: '"http://192.168.0.181:8560"',
+    // api: '"http://192.168.0.181:8560"',
+    //api:'"http://192.168.253.58:8560"',
+    api: '"https://saas-api.usoftchina.com"',
     // 账户中心接口
-    sso: '"http://192.168.253.12:32323"'
+    // sso: '"http://192.168.253.12:32323"'
+    sso: '"https://sso.ubtob.com"'
   }
 })

+ 1 - 1
frontend/saas-portal-web/config/index.js

@@ -44,7 +44,7 @@ module.exports = {
     // Paths
     assetsRoot: path.resolve(__dirname, '../dist'),
     assetsSubDirectory: 'static',
-    assetsPublicPath: '/',
+    assetsPublicPath: './',
 
     /**
      * Source Maps

+ 1 - 0
frontend/saas-portal-web/package.json

@@ -42,6 +42,7 @@
     "extract-text-webpack-plugin": "^3.0.0",
     "file-loader": "^1.1.4",
     "friendly-errors-webpack-plugin": "^1.6.1",
+    "glob": "^7.1.3",
     "html-webpack-plugin": "^2.30.1",
     "jest": "^22.0.4",
     "jest-serializer-vue": "^0.3.0",

+ 5 - 2
frontend/saas-portal-web/src/components/conenter/company.vue

@@ -107,7 +107,8 @@
         },
         computed :{
             setTokenPage() {
-                return this.$url.web + '/set-token.html'
+                return 'http://192.168.253.39/set-token.html'
+                //return this.$url.web + '/set-token.html'
             }
         },
         watch:{
@@ -204,8 +205,10 @@
                     session.account.companyId=id;
                     session.span = session.timestamp - new Date().getTime();
                     session.token=mytoken;
+                    // frame.postMessage(JSON.stringify(session), '*');
+                    // window.location.href = this.$url.web
                     frame.postMessage(JSON.stringify(session), '*');
-                    window.location.href = this.$url.web
+                    window.open('http://192.168.253.39:1841/#main','_blank');
                 })
                 .catch(err=>{
                     // console.log('请求失败',err)

+ 2 - 1
frontend/saas-portal-web/src/components/conenter/home.vue

@@ -430,7 +430,8 @@
                 session.account = account
                 const frame = window.frames[window.frames.length - 1]
                 frame.postMessage(JSON.stringify(session), '*')
-                window.location.href = me.$url.web
+                // window.location.href = me.$url.web
+                    window.open('http://192.168.253.39:1841/#main','_blank');
                 // console.log("请求成功",res)
                 phone = ''
             })

+ 25 - 0
frontend/saas-portal-web/src/pages/cell/cell.html

@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>Document</title>
+</head>
+<body>
+    <div id="app">hello</div>
+    <script>
+        // iframe接收消息
+        window.addEventListener('message', function(e) {
+            if (e.data == 'removeToken') {
+                if (e.source != window.parent) {
+                    return;
+                }
+                var storeKey = 'app-state-session';
+                localStorage.removeItem(storeKey);
+                window.parent.postMessage("success", "*");
+            }
+        });
+    </script>
+</body>
+</html>

+ 0 - 0
frontend/saas-portal-web/src/pages/cell/cell.js


+ 15 - 0
frontend/saas-portal-web/src/pages/cell/cell.vue

@@ -0,0 +1,15 @@
+<template>
+    <div>
+
+    </div>
+</template>
+
+<script>
+    export default {
+        
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 2 - 1
frontend/saas-portal-web/index.html → frontend/saas-portal-web/src/pages/index/index.html

@@ -15,7 +15,8 @@
         <meta name="author" content="优软科技">
         <meta name="Robots" content="all|index|follow">
         
-        <link rel="icon" type="image/x-icon" href="./static/img/logo.png"/>
+        <!-- <link rel="icon" type="image/x-icon" href="./static/img/logo.png"/> -->
+        <link rel="icon" type="image/x-icon" href="../../../static/img/logo.png"/>
 
         <link rel="stylesheet" href="./static/css/animate.css">
         <link rel="stylesheet" href="./static/css/bootstrap.min.css">

+ 3 - 3
frontend/saas-portal-web/src/main.js → frontend/saas-portal-web/src/pages/index/index.js

@@ -1,9 +1,9 @@
 
 import Vue from 'vue'
-import App from './App'
-import router from './router'
+import App from './index.vue'
+import router from '../../router'
 import Axios from 'axios'
-import store from './store'
+import store from '../../store'
 
 Vue.prototype.$ajax = Axios;
 Vue.config.productionTip = false

+ 2 - 1
frontend/saas-portal-web/src/App.vue → frontend/saas-portal-web/src/pages/index/index.vue

@@ -5,7 +5,8 @@
   </div>
 </template>
 <script>
-import footers from './components/footer/footer.vue';
+// import footers from './components/footer/footer.vue';
+import footers from '../../components/footer/footer.vue';
 export default {
   name: 'App',
   components: {

+ 1 - 0
frontend/saas-web/app/util/FormUtil.js

@@ -225,6 +225,7 @@ Ext.define('saas.util.FormUtil', {
                 .catch(function(response) {
                     form.setLoading(false);
                     console.error(response);
+                    saas.util.BaseUtil.showErrorToast(response.message);
                 });
             }else{
                 //取后台编号

+ 7 - 3
frontend/saas-web/app/view/sale/saleOut/QueryPanel.js

@@ -152,9 +152,13 @@ Ext.define('saas.view.sale.saleout.QueryPanel', {
             width: 90
         }, {
             text: '明细序号',
-            dataIndex: 'pd_detno',
+            dataIndex: 'pd_pdno',
             xtype: 'numbercolumn',
-            width: 100
+            width: 100,
+            renderer : function(v) {
+                var format = '0'
+                return Ext.util.Format.number(v, format);
+            }
         }, {
             text: '关联销售单号',
             dataIndex: 'pd_ordercode',
@@ -200,7 +204,7 @@ Ext.define('saas.view.sale.saleout.QueryPanel', {
             }
         }, {
             text: '金额',
-            dataIndex: 'pd_total',
+            dataIndex: 'pd_ordertotal',
             xtype:'numbercolumn',
             width: 110,
             renderer : function(v) {