Kaynağa Gözat

Merge remote-tracking branch 'origin/dev' into dev

heqinwei 7 yıl önce
ebeveyn
işleme
6c2052a89c
38 değiştirilmiş dosya ile 350 ekleme ve 77 silme
  1. 1 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/WarehouseMapper.java
  2. 2 1
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java
  3. 5 0
      applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/WarehouseServiceImpl.java
  4. 1 1
      applications/document/document-server/src/main/resources/mapper/ProductMapper.xml
  5. 3 0
      applications/document/document-server/src/main/resources/mapper/WarehouseMapper.xml
  6. 112 0
      base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/AccountAddDTO.java
  7. 13 18
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/controller/AccountController.java
  8. 9 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/AccountMapper.java
  9. 1 1
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/AccountRoleMapper.java
  10. 9 0
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/AccountService.java
  11. 6 1
      base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/AccountServiceImpl.java
  12. 1 1
      base-servers/account/account-server/src/main/resources/application.yml
  13. 4 0
      base-servers/account/account-server/src/main/resources/mapper/AccountMapper.xml
  14. 2 2
      base-servers/account/account-server/src/main/resources/mapper/AccountRoleMapper.xml
  15. 18 0
      frontend/saas-web/app/Application.scss
  16. 1 1
      frontend/saas-web/app/view/home/HomeModel.js
  17. 2 4
      frontend/saas-web/app/view/home/charts/MonthIO.js
  18. 1 0
      frontend/saas-web/app/view/home/charts/MonthIO.scss
  19. 2 0
      frontend/saas-web/app/view/home/charts/MonthPurchase.js
  20. 1 0
      frontend/saas-web/app/view/home/charts/MonthSale.scss
  21. 2 0
      frontend/saas-web/app/view/home/charts/PurchaseTrend.js
  22. 2 0
      frontend/saas-web/app/view/home/charts/SaleTrend.js
  23. 2 0
      frontend/saas-web/app/view/home/charts/StockAmount.js
  24. 1 0
      frontend/saas-web/app/view/main/MainContainerWrap.js
  25. 1 1
      frontend/saas-web/app/view/main/MainController.js
  26. 15 13
      frontend/saas-web/app/view/main/Navigation.js
  27. 29 22
      frontend/saas-web/app/view/main/Navigation.scss
  28. 5 1
      frontend/saas-web/app/view/stock/appropriationInOut/QueryPanel.js
  29. 41 1
      frontend/saas-web/app/view/stock/otherIn/FormPanelController.js
  30. 41 1
      frontend/saas-web/app/view/stock/otherOut/FormPanelController.js
  31. BIN
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.eot
  32. 0 0
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.js
  33. 0 0
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.svg
  34. BIN
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.ttf
  35. BIN
      frontend/saas-web/packages/font-saas/resources/fonts/iconfont.woff
  36. 14 5
      frontend/saas-web/packages/font-saas/sass/etc/icons.scss
  37. 0 0
      frontend/saas-web/packages/font-saas/sass/src/all.scss
  38. 3 3
      frontend/saas-web/resources/json/navigation.json

+ 1 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/WarehouseMapper.java

@@ -43,4 +43,5 @@ public interface WarehouseMapper extends CommonBaseMapper<Warehouse> {
 
     int selectCountByCode(@Param("code") String code, @Param("companyId") Long companyId, @Param("id") Long id);
 
+    int deleteCheckProdIO(@Param("id") Long id, @Param("companyId") Long companyId);
 }

+ 2 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java

@@ -448,9 +448,10 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
     }
 
     @Override
+    @Transactional
     public boolean batchDelete(BatchDealBaseDTO baseDTOs) {
         for(DocBaseDTO docBaseDTO : baseDTOs.getBaseDTOs()){
-            getMapper().deleteByPrimaryKey(docBaseDTO.getId());
+            deleteByPrimaryKey(docBaseDTO.getId());
         }
         return true;
     }

+ 5 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/WarehouseServiceImpl.java

@@ -244,6 +244,11 @@ public class WarehouseServiceImpl extends CommonBaseServiceImpl<WarehouseMapper,
         if (num > 0) {
             throw new BizException(BizExceptionCode.PRODUCTWH_HAS_WAREHOUSE);
         }
+        //校验出入库单据
+        num = warehouseMapper.deleteCheckProdIO(id, companyId);
+        if (num > 0){
+            throw new BizException(BizExceptionCode.BIZ_RELDELETE);
+        }
         singleDelete(id);
     }
 

+ 1 - 1
applications/document/document-server/src/main/resources/mapper/ProductMapper.xml

@@ -445,7 +445,7 @@
         <result column="pw_amount" property="rc_amount" jdbcType="DOUBLE" />
     </resultMap>
     <select id="selectReserveCost" resultMap="ProdReserveCostResultMap">
-        select * from productWH tab left join Product on pw_prodcode=pr_code left join warehouse on pw_whcode=wh_code
+        select * from productWH tab left join Product on pw_prodid=pr_id left join warehouse on pw_whid=wh_id
         <where>
           <if test="con!=null">
               ${con}

+ 3 - 0
applications/document/document-server/src/main/resources/mapper/WarehouseMapper.xml

@@ -371,5 +371,8 @@
         select count(1) from productwh where pw_whid = #{id} and pw_onhand > 0
         and companyId = #{companyId}
     </select>
+    <select id="deleteCheckProdIO" resultType="int">
+        SELECT COUNT(*) FROM PRODIODETAIL WHERE pd_whid = #{id} and companyid = #{companyId}
+    </select>
 </mapper>
 

+ 112 - 0
base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/AccountAddDTO.java

@@ -0,0 +1,112 @@
+package com.usoftchina.saas.account.dto;
+
+import java.io.Serializable;
+
+/**
+ * @author chenw
+ * @date 2018/11/27
+ */
+public class AccountAddDTO implements Serializable {
+
+    private String username;
+    /**
+     * 密文密码
+     */
+    private String password;
+    private String salt;
+    private String realname;
+    private String email;
+    private String mobile;
+    /**
+     * 账号类型 0 - 管理员
+     */
+    private Integer type;
+    private Long uu;
+    private String roleIds;
+
+    public String getRoleIds() {
+        return roleIds;
+    }
+
+    public void setRoleIds(String roleIds) {
+        this.roleIds = roleIds;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getSalt() {
+        return salt;
+    }
+
+    public void setSalt(String salt) {
+        this.salt = salt;
+    }
+
+    public String getRealname() {
+        return realname;
+    }
+
+    public void setRealname(String realname) {
+        this.realname = realname;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Long getUu() {
+        return uu;
+    }
+
+    public void setUu(Long uu) {
+        this.uu = uu;
+    }
+
+    @Override
+    public String toString() {
+        return "AccountCopyDTO{" +
+                "username='" + username + '\'' +
+                ", password='" + password + '\'' +
+                ", salt='" + salt + '\'' +
+                ", realname='" + realname + '\'' +
+                ", email='" + email + '\'' +
+                ", mobile='" + mobile + '\'' +
+                ", type=" + type +
+                ", uu=" + uu +
+                '}';
+    }
+}

+ 13 - 18
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/controller/AccountController.java

@@ -108,30 +108,25 @@ public class AccountController {
     /**
      * SAAS手动添加账户,并默认绑定当前公司
      *
-     * @param accountCopyDTO
+     * @param accountAddDTO
      * @return
      */
     @PostMapping("/register/add")
-    public Result AddAccount(@RequestBody AccountCopyDTO accountCopyDTO) {
-        // 判断是否已注册
-        Account account = accountService.findByUsername(accountCopyDTO.getUsername());
-        if (null != account) {
-            return Result.error(ExceptionCode.USER_NAME_EXIST);
-        }
-        account = accountService.findByMobile(accountCopyDTO.getMobile());
-        if (null != account) {
-            return Result.error(ExceptionCode.USER_MOBILE_EXIST);
-        }
-        account = accountService.findByEmail(accountCopyDTO.getEmail());
-        if (null != account) {
-            return Result.error(ExceptionCode.USER_EMAIL_EXIST);
+    public Result AddAccount(@RequestBody AccountAddDTO accountAddDTO) {
+        Account account = null;
+        // 根据手机号、邮箱、用户名片段判断是否已注册
+        boolean checked = accountService.findByUsernameOrMobileOrEmail(accountAddDTO.getUsername(), accountAddDTO.getMobile(), accountAddDTO.getEmail());
+        if (!checked) {
+            account = BeanMapper.map(accountAddDTO, Account.class);
+            account.setEnabled(true);
+            accountService.save(account);
         }
-
-        account = BeanMapper.map(accountCopyDTO, Account.class);
-        account.setEnabled(true);
-        accountService.save(account);
+        account = accountService.findByMobile(accountAddDTO.getMobile());
         //绑定企业
         accountService.bindCompany(account.getId(), BaseContextHolder.getCompanyId());
+        //绑定角色
+        accountService.bindRoles(account.getId(), accountAddDTO.getRoleIds());
+        accountService.clearCache(account.getId());
         return Result.success();
     }
 

+ 9 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/AccountMapper.java

@@ -113,4 +113,13 @@ public interface AccountMapper {
      * @return
      */
     int checkEmail(@Param("email") String email, @Param("companyId") Long companyId);
+
+    /**
+     * 查询用户是否已存在
+     * @param username
+     * @param mobile
+     * @param email
+     * @return
+     */
+    int findByUsernameOrMobileOrEmail(@Param("username") String username, @Param("mobile") String mobile, @Param("email") String email);
 }

+ 1 - 1
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/AccountRoleMapper.java

@@ -55,5 +55,5 @@ public interface AccountRoleMapper {
      * 解除账户绑定的所有角色
      * @param id
      */
-    void unBindRolesById(Long id);
+    void unBindRolesById(@Param("id") Long id, @Param("companyId") Long companyId);
 }

+ 9 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/AccountService.java

@@ -185,4 +185,13 @@ public interface AccountService {
      * @return
      */
     boolean checkEmail(String email);
+
+    /**
+     * 通过手机号、邮箱、用户名校验是否存在此用户
+     * @param username
+     * @param mobile
+     * @param email
+     * @return
+     */
+    boolean findByUsernameOrMobileOrEmail(String username, String mobile, String email);
 }

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

@@ -125,7 +125,7 @@ public class AccountServiceImpl implements AccountService {
 
     @Override
     public void bindRoles(Long accountId, String roleIds) {
-        accountRoleMapper.unBindRolesById(accountId);
+        accountRoleMapper.unBindRolesById(accountId, BaseContextHolder.getCompanyId());
         String[] array = roleIds.split(",");
         for (int i = 0; i < array.length; i++){
             bindRole(accountId, Long.parseLong(array[i]));
@@ -204,4 +204,9 @@ public class AccountServiceImpl implements AccountService {
         return accountMapper.checkEmail(email, BaseContextHolder.getCompanyId()) > 0;
     }
 
+    @Override
+    public boolean findByUsernameOrMobileOrEmail(String username, String mobile, String email) {
+        return accountMapper.findByUsernameOrMobileOrEmail(username, mobile, email) > 0;
+    }
+
 }

+ 1 - 1
base-servers/account/account-server/src/main/resources/application.yml

@@ -82,7 +82,7 @@ mybatis:
 auth:
   public-key: auth/pub.key
 sso:
-  base-url: http://192.168.253.12:32323
+  base-url: https://sso.ubtob.com
 ribbon:
   ReadTimeout: 6000
   ConnectTimeout: 2000

+ 4 - 0
base-servers/account/account-server/src/main/resources/mapper/AccountMapper.xml

@@ -206,4 +206,8 @@
         SELECT COUNT(*) FROM AC_ACCOUNT AA LEFT JOIN AC_ACCOUNT_COMPANY AAC ON AAC.ACCOUNT_ID = AA.ID
         WHERE AAC.COMPANY_ID = #{companyId} AND AA.EMAIL = #{email};
     </select>
+    <select id="findByUsernameOrMobileOrEmail" resultType="int">
+        SELECT COUNT(*) FROM AC_ACCOUNT
+        WHERE USERNAME = #{username} OR MOBILE = #{mobile} OR EMAIL = #{email};
+    </select>
 </mapper>

+ 2 - 2
base-servers/account/account-server/src/main/resources/mapper/AccountRoleMapper.xml

@@ -32,7 +32,7 @@
         </where>
         group by a.id,a.username,a.realname,a.email,a.mobile,a.enabled
     </select>
-    <delete id="unBindRolesById" parameterType="java.lang.Long">
-        DELETE FROM AC_ACCOUNT_ROLE WHERE ACCOUNT_ID = #{id}
+    <delete id="unBindRolesById" >
+        DELETE FROM AC_ACCOUNT_ROLE WHERE ACCOUNT_ID = #{id} and company_id = #{companyId}
     </delete>
 </mapper>

+ 18 - 0
frontend/saas-web/app/Application.scss

@@ -389,4 +389,22 @@ div::-webkit-scrollbar-track {
 .x-monthpicker-buttons .x-btn-default-toolbar-small{
   padding: 2px 2px 2px 2px;
   min-width: 56px;
+}
+
+/** charts **/
+.x-tip-default {
+  background-color: #485465;
+  border-color: #485465;
+}
+
+/** datepicker icon **/
+.x-form-field-date .x-form-date-trigger {
+  background: #F1F9FF;
+  border-left: 1px solid #D2D6E5;
+  
+  &:before {
+    content: "\e80f";
+    font-family: font-saas;
+    color: #5AC6F8;
+  }
 }

+ 1 - 1
frontend/saas-web/app/view/home/HomeModel.js

@@ -9,7 +9,7 @@ Ext.define('saas.view.home.HomeModel', {
         month_out: '0', // 本月支出合计
 
         insetPadding: '12 0 0 0', // 图表insetPadding
-        maxBarWidth: 20, // 最大柱宽
+        maxBarWidth: 25, // 最大柱宽
     },
 
     stores: {

+ 2 - 4
frontend/saas-web/app/view/home/charts/MonthIO.js

@@ -31,10 +31,6 @@ Ext.define('saas.view.home.charts.MonthIO', {
                     insetPadding: '{insetPadding}',
                     store: '{month_io}'
                 },
-                // legend: {
-                //     type: 'sprite',
-                //     docked: 'bottom'
-                // },
                 legend: {
                     type: 'dom',
                     docked: 'top',
@@ -50,6 +46,7 @@ Ext.define('saas.view.home.charts.MonthIO', {
                     fields: ['main'],
                     minimum: 0,
                     label: {
+                        fontSize: '12px',
                         fillStyle: '#485465'
                     },
                     grid: {
@@ -69,6 +66,7 @@ Ext.define('saas.view.home.charts.MonthIO', {
                     position: 'bottom',
                     fields: ['x'],
                     label: {
+                        fontSize: '12px',
                         fillStyle: '#485465'
                     },
                     style: {

+ 1 - 0
frontend/saas-web/app/view/home/charts/MonthIO.scss

@@ -11,6 +11,7 @@
         .x-legend-container {
 
             .x-legend-item {
+                font-size: 12px;
                 border: none !important;
                 outline: none !important;
                 text-align: left;

+ 2 - 0
frontend/saas-web/app/view/home/charts/MonthPurchase.js

@@ -26,6 +26,7 @@ Ext.define('saas.view.home.charts.MonthPurchase', {
                     fields: ['x'],
                     position: 'bottom',
                     label: {
+                        fontSize: '12px',
                         fillStyle: '#485465'
                     },
                     style: {
@@ -46,6 +47,7 @@ Ext.define('saas.view.home.charts.MonthPurchase', {
                         }
                     },
                     label: {
+                        fontSize: '12px',
                         fillStyle: '#485465',
                         textAlign: 'end'
                     },

+ 1 - 0
frontend/saas-web/app/view/home/charts/MonthSale.scss

@@ -6,6 +6,7 @@
         .x-legend-container {
 
             .x-legend-item {
+                font-size: 12px;
                 border: none !important;
                 outline: none !important;
                 text-align: left;

+ 2 - 0
frontend/saas-web/app/view/home/charts/PurchaseTrend.js

@@ -30,6 +30,7 @@ Ext.define('saas.view.home.charts.PurchaseTrend', {
                     fields: ['x'],
                     position: 'bottom',
                     label: {
+                        fontSize: '12px',
                         fillStyle: '#485465'
                     },
                     style: {
@@ -50,6 +51,7 @@ Ext.define('saas.view.home.charts.PurchaseTrend', {
                         }
                     },
                     label: {
+                        fontSize: '12px',
                         fillStyle: '#485465'
                     },
                     style: {

+ 2 - 0
frontend/saas-web/app/view/home/charts/SaleTrend.js

@@ -36,6 +36,7 @@ Ext.define('saas.view.home.charts.SaleTrend', {
                     fields: ['x'],
                     position: 'bottom',
                     label: {
+                        fontSize: '12px',
                         fillStyle: '#485465',
                     },
                     style: {
@@ -56,6 +57,7 @@ Ext.define('saas.view.home.charts.SaleTrend', {
                         }
                     },
                     label: {
+                        fontSize: '12px',
                         fillStyle: '#485465',
                     },
                     style: {

+ 2 - 0
frontend/saas-web/app/view/home/charts/StockAmount.js

@@ -30,6 +30,7 @@ Ext.define('saas.view.home.charts.StockAmount', {
                     fields: ['x'],
                     position: 'bottom',
                     label: {
+                        fontSize: '12px',
                         fillStyle: '#485465'
                     },
                     style: {
@@ -50,6 +51,7 @@ Ext.define('saas.view.home.charts.StockAmount', {
                         }
                     },
                     label: {
+                        fontSize: '12px',
                         fillStyle: '#485465'
                     },
                     style: {

+ 1 - 0
frontend/saas-web/app/view/main/MainContainerWrap.js

@@ -38,6 +38,7 @@ Ext.define('saas.view.main.MainContainerWrap', {
             })],
             items: [
                 {
+                    iconCls: 'x-sa sa-home',
                     xtype: 'home',
                     title: '首页',
                     closable: false

+ 1 - 1
frontend/saas-web/app/view/main/MainController.js

@@ -35,7 +35,7 @@ Ext.define('saas.view.main.MainController', {
         navigationList = refs.navigationTreeList,
         navCollapsed = !navigationList.navCollapsed,
         new_width = navCollapsed ? viewModel.get('smallNavWidth') : viewModel.get('navWidth'),
-        newLogoImgStyle = navCollapsed ? { width: 40, height: 40, top: 10, left: 10 } : { width: 32, height: 32, top: 16, left: 42 },
+        newLogoImgStyle = navCollapsed ? { width: 36, height: 36, top: 12, left: 12 } : { width: 32, height: 32, top: 16, left: 42 },
         newLogoTextStyle = navCollapsed ? {
             5: { opacity: 0 },
             10: { opacity: 0 },

+ 15 - 13
frontend/saas-web/app/view/main/Navigation.js

@@ -81,19 +81,21 @@ Ext.define('saas.view.main.Navigation', {
                     '<div class="nav-menu-body">',
                     '<tpl for=".">',
                     '<div class="menu">',
-                    '<h3 class="menu-title">{text}</h3>',
-                    '<div class="menu-content">',
-                    '<tpl for="items">',
-                    '<div class="menuitem">',
-                    '<div class="item-text" title="{text}" data-config="{config}" data-id="{id}" data-text="{text}" data-type="query" data-viewType="{viewType}">',
-                    '{text}',
-                    '</div>',
-                    '<tpl if="{addType}">',
-                    '<div class="item-icon" data-id="{id}" data-text="{text}" data-type="form" data-viewType="{addType}">新增</div>',
-                    '</tpl>',
-                    '</div>',
-                    '</tpl>',
-                    '</div>',
+                        '<div class="menu-title">',
+                            '<span class="menu-title-text">{text}</span>',
+                        '</div>',
+                        '<div class="menu-content">',
+                            '<tpl for="items">',
+                            '<div class="menuitem">',
+                                '<div class="item-text" title="{text}" data-config="{config}" data-id="{id}" data-text="{text}" data-type="query" data-viewType="{viewType}">',
+                                    '{text}',
+                                '</div>',
+                                '<tpl if="{addType}">',
+                                '<div class="item-icon" data-id="{id}" data-text="{text}" data-type="form" data-viewType="{addType}">新增</div>',
+                                '</tpl>',
+                            '</div>',
+                            '</tpl>',
+                        '</div>',
                     '</div>',
                     '</tpl>',
                     '</div>',

+ 29 - 22
frontend/saas-web/app/view/main/Navigation.scss

@@ -102,61 +102,67 @@ $nav-font-color-over: #fff;
     top: 0;
     background: white;
     overflow: hidden;
-    // animation: name duration timing-function delay iteration-count direction;
 
     .nav-menu-body {
         display: flex;
-        padding: 5px;
         border-top-right-radius: 4px;
         border-bottom-right-radius: 4px;
 
         .menu {
-            
+
+            &:first-child {
+                .menu-content {
+                    border-right: 1px solid #EEF9FE;
+                }
+            }
+
             width: 200px;
-            border-right: 1px dashed #ccc;
             letter-spacing: 1px;
-            color: #444;
 
-            &:last-child {
-                border: none;
-            }
-            
             .menu-title {
-                margin: 5px;
+                padding-left: 30px;
+                background: #EEF9FE;
+
+                .menu-title-text {
+                    height: 40px;
+                    line-height: 40px;
+                    font-size: 16px;
+                    color: #4F5170;
+                    letter-spacing: 0.64px;
+                    text-align: left;
+                }
             }
 
             .menu-content {
-                list-style: none;
-                padding-left: 10px;
-                padding-right: 10px;
 
                 .menuitem {
-                    padding: 5px;
+                    padding-left: 25px;
+                    margin: 6px;
                     display: flex;
-                    border-radius: 4px;
                     align-content: space-between;
 
                     .item-text {
+                        color: #4F5170;
                         cursor: pointer;
-                        line-height: 24px;
+                        height: 34px;
+                        line-height: 34px;
                         white-space: nowrap;
-                        width: 130px;
+                        flex: 1;
                         overflow: hidden;
+                        font-size: 14px;
                         text-overflow: ellipsis;
                     }
 
                     .item-icon {
                         cursor: pointer;
-                        float: right;
-                        display: none;
                         background: #64b448;
                         color: #fff;
-                        font-size: 11px;
+                        display: none;
                         padding: 3px 6px;
                         border-radius: 3px;
                         margin-right: 5px;
-                        font-weight: 400;
-                        width: 40px;
+                        height: 24px;
+                        margin-top: 5px;
 
                         &:hover {
                             opacity: 0.7;
@@ -164,6 +170,7 @@ $nav-font-color-over: #fff;
                     }
 
                     &:hover {
+                        border-radius: 4px;
                         background-color: #E4E4E4;
 
                         .item-icon {

+ 5 - 1
frontend/saas-web/app/view/stock/appropriationInOut/QueryPanel.js

@@ -21,6 +21,8 @@ Ext.define('saas.view.stock.appropriationInOut.QueryPanel', {
         getCondition: function(value) {
             if(value != '') {
                 return  ' (pi_inoutno like\'%' + value + '%\' or pd_prodcode like \'%'+value+'%\' ) ';
+            }else {
+                return '1=1';
             }
         }
     }, {
@@ -66,6 +68,8 @@ Ext.define('saas.view.stock.appropriationInOut.QueryPanel', {
         getCondition: function(value) {
             if(value != '') {
                 return  ' (pd_whcode like\'%' + value + '%\' or pd_whname like \'%'+value+'%\' or pd_inwhcode like\'%' + value + '%\' or pd_inwhname like \'%'+value+'%\') ';
+            }else {
+                return '1=1';
             }
         }
     }],
@@ -163,7 +167,7 @@ Ext.define('saas.view.stock.appropriationInOut.QueryPanel', {
                 text: '数量',
                 dataIndex: 'pd_inqty',
                 xtype:'numbercolumn',
-                width: 10
+                width: 110
             },{
                 text: '仓库',
                 dataIndex: 'pd_whname',

+ 41 - 1
frontend/saas-web/app/view/stock/otherIn/FormPanelController.js

@@ -82,5 +82,45 @@ Ext.define('saas.view.stock.otherIn.FormPanelController', {
                 },
             },
         });
-    }
+    },
+    initCopyData: function(formData) {
+        var me = this;
+        var form = this.getView();
+        var detailCount = form.detailCount;
+        var main = formData.main;
+        var auditTexts = form.auditTexts;
+
+        // 单号、id清空
+        main[form._idField] = 0;
+        main[form._codeField] = '';
+
+        // 单据状态为录入状态(未审核)
+        main[form._statusCodeField] = auditTexts.unAuditCode;
+        main[form._statusField] = auditTexts.unAuditText;
+        main['pi_auditman'] = '';
+        main['pi_auditdate'] = null;
+        for(var k in main) {
+            // 主表日期改为当前日期
+            if(saas.util.BaseUtil.isDateString(main[k])) {
+                main[k] = Ext.Date.format(new Date, 'Y-m-d H:i:s');
+            }
+        }
+
+        for(var j = 0; j < detailCount; j++) {
+            var detail = formData['detail' + j];
+            for(var x = 0; x < detail.length; x ++) {
+                var d = detail[x];
+
+                for(var k in d) {
+                    // 从表id清空
+                    delete d['id'];
+                    // 从表日期清空
+                    if(saas.util.BaseUtil.isDateString(d[k])) {
+                        d[k] = '';
+                    }
+                }
+            }
+        }
+        return me.myInitCopyData(formData);;
+    }    
 });

+ 41 - 1
frontend/saas-web/app/view/stock/otherOut/FormPanelController.js

@@ -103,5 +103,45 @@ Ext.define('saas.view.stock.otherOut.FormPanelController', {
             renderTo: this.ownerCmp.ownerCt.getEl()
         }).show();
 
-    }
+    },
+    initCopyData: function(formData) {
+        var me = this;
+        var form = this.getView();
+        var detailCount = form.detailCount;
+        var main = formData.main;
+        var auditTexts = form.auditTexts;
+
+        // 单号、id清空
+        main[form._idField] = 0;
+        main[form._codeField] = '';
+
+        // 单据状态为录入状态(未审核)
+        main[form._statusCodeField] = auditTexts.unAuditCode;
+        main[form._statusField] = auditTexts.unAuditText;
+        main['pi_auditman'] = '';
+        main['pi_auditdate'] = null;
+        for(var k in main) {
+            // 主表日期改为当前日期
+            if(saas.util.BaseUtil.isDateString(main[k])) {
+                main[k] = Ext.Date.format(new Date, 'Y-m-d H:i:s');
+            }
+        }
+
+        for(var j = 0; j < detailCount; j++) {
+            var detail = formData['detail' + j];
+            for(var x = 0; x < detail.length; x ++) {
+                var d = detail[x];
+
+                for(var k in d) {
+                    // 从表id清空
+                    delete d['id'];
+                    // 从表日期清空
+                    if(saas.util.BaseUtil.isDateString(d[k])) {
+                        d[k] = '';
+                    }
+                }
+            }
+        }
+        return me.myInitCopyData(formData);;
+    }     
 });

BIN
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.eot


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.svg


BIN
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.ttf


BIN
frontend/saas-web/packages/font-saas/resources/fonts/iconfont.woff


+ 14 - 5
frontend/saas-web/packages/font-saas/sass/etc/icons.scss

@@ -1,36 +1,45 @@
+.sa-home:before { content: "\e817"; }
 
-.sa-purchase:before { content: "\e800"; }
+.sa-bar:before { content: "\e814"; }
 
 .sa-tuichu:before { content: "\e811"; }
 
 .sa-feedback:before { content: "\e810"; }
 
+.sa-money:before { content: "\e805"; }
+
+.sa-setting:before { content: "\e803"; }
+
 .sa-document:before { content: "\e804"; }
 
 .sa-switch-on:before { content: "\e807"; }
 
+.sa-tag:before { content: "\e815"; }
+
 .sa-edit:before { content: "\e806"; }
 
 .sa-help:before { content: "\e813"; }
 
 .sa-sale:before { content: "\e801"; }
 
+.sa-info:before { content: "\e816"; }
+
 .sa-userBook:before { content: "\e80b"; }
 
 .sa-arrows-left:before { content: "\e809"; }
 
+.sa-purchase:before { content: "\e800"; }
+
 .sa-serviceOnline:before { content: "\e80c"; }
 
 .sa-accountCenter:before { content: "\e812"; }
 
-.sa-warehouse:before { content: "\e802"; }
+.sa-date:before { content: "\e80f"; }
 
-.sa-setting:before { content: "\e803"; }
+.sa-warehouse:before { content: "\e802"; }
 
 .sa-saas:before { content: "\e808"; }
 
-.sa-money:before { content: "\e805"; }
-
 .sa-question:before { content: "\e80d"; }
 
 .sa-arrows-right:before { content: "\e80a"; }

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
frontend/saas-web/packages/font-saas/sass/src/all.scss


+ 3 - 3
frontend/saas-web/resources/json/navigation.json

@@ -38,7 +38,7 @@
     }]
 }, {
     "text": "销售",
-    "iconCls": "x-fa fa-shopping-cart",
+    "iconCls": "x-sa sa-tag",
     "items": [{
         "text": "制单",
         "items": [{
@@ -80,7 +80,7 @@
     }]
 }, {
     "text": "库存",
-    "iconCls": "x-fa fa-home",
+    "iconCls": "x-sa sa-bar",
     "items": [{
         "text": "制单",
         "items": [{
@@ -190,7 +190,7 @@
     }]
 }, {
     "text": "资料",
-    "iconCls": "x-fa fa-book",
+    "iconCls": "x-sa sa-info",
     "items": [{
         "text": "基础资料",
         "items": [{

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor