Browse Source

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

guq 7 years ago
parent
commit
98f888aed7

+ 4 - 0
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/po/report/PurchaseReportDetail.java

@@ -97,6 +97,10 @@ public class PurchaseReportDetail extends CommonBaseEntity implements Serializab
 
     private Double pd_acceptqty;
 
+    private Double pd_pdacceptqty;
+
+    private Double pd_pdaccepttotal;
+
     private Date pd_delivery;
 
     private String pd_salecode;

+ 3 - 1
applications/purchase/purchase-server/src/main/resources/mapper/PurchaseReportMapper.xml

@@ -60,6 +60,8 @@
     <result column="PD_TOTAL" property="pd_total" jdbcType="DOUBLE" />
     <result column="PD_TAXTOTAL" property="pd_taxtotal" jdbcType="DOUBLE" />
     <result column="PD_ACCEPTQTY" property="pd_acceptqty" jdbcType="DOUBLE" />
+    <result column="pd_pdacceptqty" property="pd_pdacceptqty" jdbcType="DOUBLE" />
+    <result column="pd_pdaccepttotal" property="pd_pdaccepttotal" jdbcType="DOUBLE" />
     <result column="PD_DELIVERY" property="pd_delivery" jdbcType="TIMESTAMP" />
     <result column="PD_SALECODE" property="pd_salecode" jdbcType="VARCHAR" />
     <result column="PD_SALEDETNO" property="pd_saledetno" jdbcType="INTEGER" />
@@ -112,7 +114,7 @@
   </select>
 
   <select id="selectDetailByCondition"  resultMap="ListMap">
-    select  *,ifnull(purchasedetail.PD_ACCEPTQTY,0)*ifnull(purchasedetail.PD_PRICE,0) pd_accepttotal  from purchase left join purchasedetail on pu_id=pd_puid
+    select  * from purchase left join purchasedetail on pu_id=pd_puid
     left join product on pd_prodid=pr_id
     <where>
       <if test="con != null">

+ 44 - 7
frontend/saas-portal-web/package-lock.json

@@ -688,6 +688,14 @@
       "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
       "dev": true
     },
+    "async-validator": {
+      "version": "1.8.5",
+      "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz",
+      "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
+      "requires": {
+        "babel-runtime": "6.x"
+      }
+    },
     "asynckit": {
       "version": "0.4.0",
       "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -985,8 +993,7 @@
     "babel-helper-vue-jsx-merge-props": {
       "version": "2.0.3",
       "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
-      "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==",
-      "dev": true
+      "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
     },
     "babel-helpers": {
       "version": "6.24.1",
@@ -1612,7 +1619,6 @@
       "version": "6.26.0",
       "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
       "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
-      "dev": true,
       "requires": {
         "core-js": "^2.4.0",
         "regenerator-runtime": "^0.11.0"
@@ -2798,8 +2804,7 @@
     "core-js": {
       "version": "2.5.7",
       "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
-      "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==",
-      "dev": true
+      "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw=="
     },
     "core-util-is": {
       "version": "1.0.2",
@@ -3334,6 +3339,11 @@
       "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
       "dev": true
     },
+    "deepmerge": {
+      "version": "1.5.2",
+      "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
+      "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ=="
+    },
     "default-require-extensions": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz",
@@ -3713,6 +3723,19 @@
       "integrity": "sha512-IYhbzJYOopiTaNWMBp7RjbecUBsbnbDneOP86f3qvS0G0xfzwNSvMJpTrvi5/Y1gU7tg2NAgeg8a8rCYvW9Whw==",
       "dev": true
     },
+    "element-ui": {
+      "version": "2.4.11",
+      "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.4.11.tgz",
+      "integrity": "sha512-RtgK0t840NAFTajGMWvylzZRSX1EkZ7V4YgAoBxhv4TtkeMscLuk/IdYOzPdlQq6IN0byx1YVBxCX+u4yYkGvw==",
+      "requires": {
+        "async-validator": "~1.8.1",
+        "babel-helper-vue-jsx-merge-props": "^2.0.0",
+        "deepmerge": "^1.2.0",
+        "normalize-wheel": "^1.0.1",
+        "resize-observer-polyfill": "^1.5.0",
+        "throttle-debounce": "^1.0.1"
+      }
+    },
     "elliptic": {
       "version": "6.4.1",
       "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
@@ -7772,6 +7795,11 @@
         "sort-keys": "^1.0.0"
       }
     },
+    "normalize-wheel": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
+      "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
+    },
     "npm-run-path": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
@@ -11115,8 +11143,7 @@
     "regenerator-runtime": {
       "version": "0.11.1",
       "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
-      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
-      "dev": true
+      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
     },
     "regenerator-transform": {
       "version": "0.10.1",
@@ -11300,6 +11327,11 @@
       "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
       "dev": true
     },
+    "resize-observer-polyfill": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+      "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+    },
     "resolve": {
       "version": "1.1.7",
       "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
@@ -12539,6 +12571,11 @@
       "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=",
       "dev": true
     },
+    "throttle-debounce": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
+      "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg=="
+    },
     "through2": {
       "version": "2.0.5",
       "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",

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

@@ -16,6 +16,7 @@
   },
   "dependencies": {
     "axios": "^0.18.0",
+    "element-ui": "^2.4.11",
     "v-distpicker": "^1.0.20",
     "vue": "^2.5.2",
     "vue-router": "^3.0.1",

+ 14 - 4
frontend/saas-portal-web/src/components/conenter/addenterprise.vue

@@ -9,7 +9,7 @@
             <div class="gs-worp qy-worp tj-up">
                 <div class="qy-title" style="position: relative;">
                     <span>完善企业信息</span>
-                    <div class="qy-anniu">
+                    <div class="qy-anniu" style="position: absolute;top: 0;right: 20px;margin-top: 0;">
                         <span @click= "Preservation" class="qy-xiugai dianji" style="left: -2px">保存</span>
                         <span @click= "tjquxiao" class="qy-quxiao xs">取消</span>
                     </div>
@@ -48,7 +48,8 @@
                             <span class="qy-biaoti left"><span class="xingxing">*</span>公司地址</span>
                             <div class="addbiaoqian">
                                 <!-- <v-distpicker @province= 'qyprovince' @city= 'qycity' @area= 'qyarea'></v-distpicker> -->
-                                <v-distpicker @selected= 'selected' province="广东省" city="广州市" area="荔湾区" :placeholders= 'placeholder'></v-distpicker>
+                                <!-- <v-distpicker @selected= 'selected' province="广东省" city="广州市" area="荔湾区" :placeholders= 'placeholder'></v-distpicker> -->
+                                <v-distpicker @selected= 'selected' @province= 'qyprovince' :placeholders= 'placeholder'></v-distpicker>
                                 <input ref="address" @change="address" :disabled="disabled" class="qy-xiangxi" type="text" placeholder="输入企业详细地址">
                                 
                             </div>
@@ -104,7 +105,12 @@ import { setTimeout } from 'timers';
                 isemail: true,//验证邮箱
                 disabled: true,
                 isadd: false,//添加成功弹窗
-                placeholder:{province:"", city:"", area:""}
+                placeholder:{province:"省", city:"市", area:"区"},
+                placeholde:{province:"", city:"", area:""},
+                tab:[
+                    {name:'创建新企业'},
+                    {name:'加入企业'},
+                ]
             }
         },
         components:{
@@ -302,6 +308,9 @@ import { setTimeout } from 'timers';
                 this.area = data.area.value;
                 this.disabled= false
             },
+            qyprovince(){
+                this.placeholder = this.placeholde
+            },
         }
     }
 </script>
@@ -343,7 +352,8 @@ import { setTimeout } from 'timers';
     height: 30px;
 }
 .addbiaoqian>>>.distpicker-address-wrapper {
-    width: 110%
+    width: 130%;
+    margin-bottom: 10px;
 }
 .qy-Tips {
     margin: 0;

+ 100 - 15
frontend/saas-portal-web/src/components/conenter/company.vue

@@ -60,7 +60,6 @@
             <div class="gs-xiangqing dotted">
                 <router-link to="/addenterprise">
                     <div class="gs-tianja" @click= "addEnterprise">
-                        <!-- <div class="gs-tj"></div> -->
                         <img src="/static/img/Fill 1.png" alt="">
                         <p>添加企业</p>
                     </div>
@@ -68,28 +67,39 @@
             </div>
             <!-- 点击查看企业详情 -->
             <div v-for="(d , i) in arr " :key="i" class="gs-xiangqing">
-                <div class="gs-morentop" :class= "{gsqiye:nowindex == (i+1)}">
-                    <span v-if = "d.default_" class="gs-btn2 xs">取消默认</span>
-                    <span v-else @click="showDefaultWin(i)" class="gs-btn2 xs">设为默认</span>
-                </div>
                 <!-- 上 -->
-                <div class="gs-shang" @click.stop @mousemove="setismoren">
-                    <span @click="setmoren(i)" class="xs">设置</span>
+                <div class="gs-shang">
+                    <div class="gs-morentop" :class= "{gsqiye:nowindex == (i+1)}">
+                        <span v-if = "d.default_" @click="hideDefaultWin(i)" class="gs-btn2 xs">取消默认</span>
+                        <span v-else @click="showDefaultWin(i)" class="gs-btn2 xs">设为默认</span>
+                    </div>
+                    <img @click.stop @mouseenter="setismoren" @click="setmoren(i)" class="shezhi xs" src="/static/img/shezhi.png" alt="设置">
                     <img v-if = "d.default_" class="gs-morenimg" src="/static/img/moren2x.png" alt="">
                 </div>
                 <!-- 中 -->
-                <div class="gs-xqleft" >
+                <div class="gs-xqleft">
                     <p class="gs-qynema xs" @click= "getEnterpriseInfo(d)">{{d.name}}</p>
+                    <!-- <img @mouseenter="setismoren" @click="setmoren(i)" class="shezhi xs" src="/static/img/shezhi.png" alt="设置"> -->
+                    <!-- <div class="gs-morentop" :class= "{gsqiye:nowindex == (i+1)}">
+                        <span v-if = "d.default_" @click="hideDefaultWin(i)" class="gs-btn2 xs">取消默认</span>
+                        <span v-else @click="showDefaultWin(i)" class="gs-btn2 xs">设为默认</span>
+                    </div> -->
                 </div>
                 <!-- 下 -->
                 <div class="gs-xqright over">
-                    <div v-if= "d.saas_" class="gs-xqright-left left">
-                        <p><span>saas管理员:</span>{{d.admin}}</p>
-                        <p><span>联系方式:</span>{{d.adminMobile}}</p>
-                        <p v-if= "d.time"><span>开通日期:</span>{{d.time}}</p>
+                    <div v-if= "d.saas_" class="gs-xqright-left left" style="margin-top: 5%;" @click.stop >
+                        <!-- <p class="saasfuwu"><span>SaaS服务</span></p> -->
+                        <!-- <p v-if= "d.saas_"  class="saasgengduo xs">
+                            <span @mouseenter="setissaasxiangxi" @click="gengduo(i)">更多 ></span>
+                        </p> -->
+                        <!-- <div class="saasxiangxi" :class= "{gssaasxiangxi:nowindex2 == (i+1)}"> -->
+                            <p><span>saas管理员:</span>{{d.admin}}</p>
+                            <p><span>联系方式:</span>{{d.adminMobile}}</p>
+                            <!-- <p><span>开通日期:</span></p> -->
+                        <!-- </div> -->
                     </div>
                     <div class="gs-border gs-xqright-right right">
-                        <span v-if= "d.saas_" class="gs-btn1 dianji" @click="selectServe(d.id)">进入服务</span>
+                        <span v-if= "d.saas_" class="gs-btn1 xs" @click="selectServe(d.id)">进入服务</span>
                         <span v-else @click="showOpenServeWin(d.id , i)" class="gs-btn1 kaitong xs">开通服务</span>
                     </div>
                 </div>
@@ -119,6 +129,7 @@
                 admin: '',
                 adminMobile: '',
                 ismoren:true,
+                issaasxiangxi:true,
             }
         },
         computed :{
@@ -127,7 +138,10 @@
             },
             nowindex() {
                 return this.$store.state.ismoren
-            }
+            },
+            nowindex2() {
+                return this.$store.state.issaasxiangxi
+            },
         },
         watch:{
             arr:function(){
@@ -202,10 +216,28 @@
                     this.isDefault = false;
                     this.$router.go(0);
                 })
+            },
+            // 取消默认企业
+            hideDefaultWin(i){
+                let token = this.mytoken.token;
+                this.$ajax({
+                    url: this.$url.api+'/api/account/accountCenter/unBind/defaultCompany',
+                    method: 'post',
+                    data:{
+                        companyId: this.arr[i].id,
+                        accountId: this.mytoken.account.id
+                    },
+                    headers: {
+                        "Authorization":token,
+                    }
+                })
+                .then(res=>{
+                    // console.log('请求成功',res);
+                    this.$router.go(0);
+                })
                 .catch(err=>{
                     // console.log('请求失败',err);
                 });
-                
             },
             //进入服务
             selectServe(id){
@@ -329,9 +361,21 @@
                 }
                 this.ismoren = !this.ismoren
             },
+            // 弹出更多
+            gengduo(i){
+                if (this.issaasxiangxi) {
+                    this.$store.state.issaasxiangxi = i+1
+                } else {
+                    this.$store.state.issaasxiangxi = ''
+                }
+                this.issaasxiangxi = !this.issaasxiangxi
+            },
             setismoren(){
                 this.ismoren = true
             },
+            setissaasxiangxi(){
+                this.issaasxiangxi = true
+            },
             //没有内容也要有一定的高度
             boxheight(){
                 let H = this.$refs.qiyebox.offsetHeight;
@@ -349,4 +393,45 @@
 .heigh {
     height: 500px;
 }
+.gs-xqright {
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    -khtml-user-select: none;
+    user-select: none;
+}
+.shezhi {
+    /* margin-left: 92%;
+    margin-top: 23%; */
+}
+.gs-morentop {
+    position: absolute;
+    margin-top: 20px;
+    /* right: 11px; */
+    left: 5px;
+    display: none;
+}
+.saasfuwu {
+    font-size: 16px;
+    color: #677897;
+}
+.saasgengduo {
+    font-family: PingFangSC-Regular;
+    font-size: 12px;
+    color: #1E88F5;
+    letter-spacing: 0;
+}
+.saasxiangxi {
+    display: none;
+    position: absolute;
+    background: #F8FBFF;
+    border: 1px solid #1E88F5;
+    border-radius: 4px;
+    padding: 10px;
+    font-size: 14px;
+    color: #1E88F5 !important;
+}
+.gssaasxiangxi {
+    display: block;
+}
 </style>

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

@@ -35,7 +35,7 @@
             <div class="gs-worp qy-worp" style="width: 100%">
                 <div class="qy-title" style="position: relative;">
                     <span>企业基本信息</span>
-                    <div class="qy-anniu">
+                    <div class="qy-anniu" style="position: absolute;top: 0;right: 20px;margin-top: 0;">
                         <span @click= "baocunxiugai" class="qy-xiugai dianji" style="left: 0">保存</span>
                         <span @click= "quxiaoxiugai" class="qy-quxiao xs">取消</span>
                     </div>

+ 29 - 4
frontend/saas-portal-web/src/components/conenter/enterprise.vue

@@ -118,8 +118,11 @@
                         </div>
                     </div>
                 </div>
+    <!-- 消息 ------------------------------------------------------------------>
+                <div :class="{gsqiye:nowindex == 3}">
+                    我是消息页面
+                </div>
             </div>
-            
         </div>
     </div>
 </template>
@@ -140,7 +143,8 @@ import { setTimeout } from 'timers';
                 tab: [
                     {name: '企业信息'},
                     {name: '个人信息'},
-                    {name: '安全信息'},
+                    {name: '安全设置'},
+                    // {name: '消息'},
                     ],
             }
         },
@@ -202,11 +206,32 @@ import { setTimeout } from 'timers';
             Preservation(){
                 if (this.isname) {
                     let name = this.$refs.realname.value.replace(/\s+/g, "");
-                    console.log(name)
+                    let id = this.mytoken.id;
+                    let token = JSON.parse(localStorage.getItem('app-state-session')).token;
+                    this.$ajax({
+                        url: this.$url.api+"/api/account/account/update",
+                        method :'post',
+                        data: {
+                            id:id,
+                            realname:name
+                        },
+                        headers: {
+                            "Authorization":token
+                        }
+                    })
+                    .then(res=>{
+                        if (res.data.success) {
+                            this.$router.go(0)
+                        }
+                    })
+                    .catch(err=>{
+                        // console.log("请求错误",err);
+                    })
                 }
             },
             onshezhi(){
-                this.$store.state.ismoren = ''
+                this.$store.state.ismoren = '';
+                this.$store.state.issaasxiangxi = ''
             },
         },
     }

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

@@ -4,6 +4,10 @@ import App from './index.vue'
 import router from '../../router'
 import Axios from 'axios'
 import store from '../../store'
+import ElementUI from 'element-ui';
+import 'element-ui/lib/theme-chalk/index.css';
+
+Vue.use(ElementUI);
 
 Axios.defaults.withCredentials=true;
 Axios.interceptors.request.use(function (config) {

+ 2 - 1
frontend/saas-portal-web/src/store/index.js

@@ -7,7 +7,8 @@ export default new Vuex.Store({
         isAutoLogin: false,
         isproblem: '',//常见问题
         isloading:false,
-        ismoren:''
+        ismoren:'',
+        issaasxiangxi:''
     },
     mutations:{
          Logintrue(state) {

+ 63 - 18
frontend/saas-portal-web/static/css/gongsi.css

@@ -1,7 +1,5 @@
 .xs:hover {
     cursor:pointer;
-    /* border-bottom: 1px solid #2868c8; */
-    /* box-shadow: 1px 1px 1px #ccc; */
 }
 .dianji:hover{
     border-bottom: 1px solid #2868c8;
@@ -106,7 +104,7 @@
     margin-left: -22%;
 }
 .gs-xiangqing {
-    height: 200px;
+    height: 240px;
     background: #FFFFFF;
     border: 1px solid rgba(30,136,245,0.32);
     box-shadow: 0 20px 60px 8px #F4F8FC;
@@ -120,6 +118,7 @@
     font-weight: 600;
     color: #243A52;
     letter-spacing: 0;
+    font-size: 18px;
 }
 .dotted {
     border: 1px dashed rgba(30,136,245,0.32);
@@ -139,10 +138,17 @@
     width: 70%;
 }
 .gs-shang {
-    height: 30%;
+    height: 25%;
     padding: 10px;
     position: relative;
 }
+.gs-shang span {
+    font-size: 12px;
+    color: #9EA8B2;
+    letter-spacing: 0;
+    text-align: center;
+    line-height: 30px;
+}
 .gs-morenimg {
     width: 20%;
     position: absolute;
@@ -150,12 +156,13 @@
     right: 0;
 }
 .gs-xqleft {
-    height: 30%;
+    height: 40%;
     position: relative;
     padding: 0px 10px;
+    text-align: center;
 }
 .gs-xqright {
-    height: 40%;
+    height: 35%;
     background: #F4F9FE;
     padding: 10px;
 }
@@ -164,17 +171,12 @@
 }
 .gs-xqright div p{
     font-size: 12px;
-    color: #677897;
     letter-spacing: 0;
 }
 .gs-border {
     margin-top: 8%;
 }
-.gs-morentop {
-    position: absolute;
-    margin-top: -27px;
-    display: none;
-}
+
 .gs-btn1 {
     padding: 5px;
     background: #4EC66B;;
@@ -217,9 +219,9 @@
     color: red;
 }
 .qy-anniu {
-    position: absolute;
-    top: 0;
-    right: 40px;
+    margin-left: 56%;
+    margin-top: 30px;
+    margin-bottom: 45px;
 }
 .qy-conent input {
     border: 1px solid #1E88F5;
@@ -243,14 +245,11 @@
 }
 .addbiaoqian {
     width: 59%;
-    /* float: right;
-    margin-right: 102px; */
     float: left;
     margin-left: 4px;
 }
 .qy-xiangxi {
     width: 100% !important;
-    margin-top: 10px;
     font-size: 12px;
     padding-left: 10px;
 }
@@ -341,6 +340,17 @@
     font-size: 16px;
     font-weight: 600;
 }
+.qy-title>ul{
+    margin: 0;
+    padding: 0;
+    width: 100%;
+}
+.qy-title>ul>li{
+    margin: 0;
+    padding: 0;
+    width: 50%;
+    text-align: center;
+}
 .qy-xiugai {
     font-family: PingFangSC-Regular;
     font-size: 14px;
@@ -375,4 +385,39 @@
     background: #1E88F5;
     border-radius: 2px;
     margin-right: 8px;
+}
+.jr-conent {
+    padding: 60px 30px 30px 30px;
+    text-align: center;
+}
+.jr-conent input {
+    width: 30%;
+    padding-left: 10px;
+    border: 0;
+    border-bottom: 1px solid #BDBEBE;
+}
+.lookup {
+    width: 40%;
+    background: #FFFFFF;
+    border: 1px solid #1E88F5;
+    border-radius: 2px;
+    margin-left: 5%;
+    position: absolute;
+    /* display: none; */
+    margin-top: -20px;
+    z-index: 1;
+    text-align: left;
+}
+.lookup > ul {
+    padding: 20px;
+}
+.lookup > ul > li {
+    margin-bottom: 10px;
+} 
+.lookup > ul > li span{
+    width: 15%;
+    display: inline-block;
+} 
+.saasguanli {
+    width: 18% !important;
 }

+ 3 - 0
frontend/saas-portal-web/static/css/main.css

@@ -40,6 +40,9 @@ h1, h2, h3, h4, h5, h6,
 p {
     font-size: 15px;
 }
+li {
+    list-style: none;
+}
 main > section {
     /* padding: 70px 0; */
 }

BIN
frontend/saas-portal-web/static/img/shezhi.png


+ 9 - 2
frontend/saas-web/app/view/core/form/FormPanel.js

@@ -152,7 +152,7 @@ Ext.define('saas.view.core.form.FormPanel', {
             }
         }, {
             xtype: 'textfield',
-            name: 'code',
+            name: me._codeField,
             minHeight: 24,
             maxHeight: 24,
             width: 200,
@@ -255,7 +255,14 @@ Ext.define('saas.view.core.form.FormPanel', {
     addItems: function (items) {
         var me = this;
         me.setBindFields(items);
-        var formItems = me.formItems = me.add(items);
+        var formItems = me.add(items);
+        var codeField = me.getForm().findField(me._codeField);
+        if(codeField && !Ext.Array.findBy(formItems, function(i) {
+            return i.name == me._codeField;
+        })) {
+            formItems.push(codeField);
+        }
+        me.formItems = formItems;
         return formItems;
     },
 

+ 5 - 2
frontend/saas-web/app/view/core/form/FormPanelController.js

@@ -164,9 +164,10 @@ Ext.define('saas.view.core.form.FormPanelController', {
     save:function(){
         var me = this,
         form = this.getView(),
+        codeField = form.getForm().findField(form._codeField),
         detailCount = form.detailCount,
         viewModel = me.getViewModel(),
-        modelData = viewModel.getData();
+        codeModified = codeField && codeField.isDirty();
 
         //form里面数据
         var formData = form.getSaveData();
@@ -185,6 +186,8 @@ Ext.define('saas.view.core.form.FormPanelController', {
             delete params.items1;
         }
 
+        params.codeModified = codeModified;
+
         form.setLoading(true);
         saas.util.BaseUtil.request({
             url: form._saveUrl,
@@ -377,7 +380,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
     codeEditorClick: function() {
         var me = this,
         form = me.getView(),
-        codeField = form.getForm().findField('code'),
+        codeField = form.getForm().findField(form._codeField),
         viewModel = me.getViewModel(),
         codeEditable = viewModel.get('base.codeEditable');
 

+ 4 - 4
frontend/saas-web/app/view/document/customer/FormPanel.js

@@ -260,8 +260,8 @@ Ext.define('saas.view.document.customer.FormPanel', {
                 allowBlank:false,
                 text : "电话", 
                 editor : {
-                    regex:/^1(3|4|5|7|8|9)\d{9}$/,
-                    regexText:'请输入正确的手机号码',
+                    // regex:/^1(3|4|5|7|8|9)\d{9}$/,
+                    // regexText:'请输入正确的手机号码',
                     hideTrigger:true,
                     xtype : "textfield"
                 },
@@ -334,8 +334,8 @@ Ext.define('saas.view.document.customer.FormPanel', {
                 allowBlank:true,
                 text : "联系电话", 
                 editor : {
-                    regex:/^1(3|4|5|7|8|9)\d{9}$/,
-                    regexText:'请输入正确的手机号码',
+                    // regex:/^1(3|4|5|7|8|9)\d{9}$/,
+                    // regexText:'请输入正确的手机号码',
                     xtype : "textfield",
                     hideTrigger:true,
                 },

+ 2 - 2
frontend/saas-web/app/view/document/vendor/FormPanel.js

@@ -254,8 +254,8 @@ Ext.define('saas.view.document.vendor.FormPanel', {
                 allowBlank:false,
                 text : "电话", 
                 editor : {
-                    regex:/^1(3|4|5|7|8|9)\d{9}$/,
-                    regexText:'请输入正确的手机号码',
+                    // regex:/^[\d | -]*$/,
+                    // regexText:'请输入正确的手机号码',
                     hideTrigger:true,
                     xtype : "textfield"
                 },

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

@@ -68,18 +68,18 @@ Ext.define('saas.view.home.HomeModel', {
                 },
                 listeners: {
                     exception: function(proxy, response, operation, eOpts) {
-                        var p = Ext.getCmp('infocard');
+                        var p = Ext.getCmp('month_sale');
                         p && p.setLoading(false);
                     }
                 }
             },
             listeners: {
                 beforeload: function() {
-                    var p = Ext.getCmp('infocard');
+                    var p = Ext.getCmp('month_sale');
                         p && p.setLoading(true);
                 },
                 load: function(s, d) {
-                    var p = Ext.getCmp('infocard');
+                    var p = Ext.getCmp('month_sale');
                         p && p.setLoading(false);
                     var sum = Ext.util.Format.number(s.sum('y'), '0.00') || 0;
                     Ext.getCmp('home').getViewModel().set('month_sale_amount', sum);

+ 5 - 1
frontend/saas-web/app/view/money/verification/FormPanelController.js

@@ -561,9 +561,11 @@ Ext.define('saas.view.money.verification.FormPanelController', {
     save:function(){
         var me = this,
         form = this.getView(),
+        codeField = form.getForm().findField(form._codeField),
         detailCount = form.detailCount,
         viewModel = me.getViewModel(),
-        modelData = viewModel.getData();
+        codeModified = codeField && codeField.isDirty();
+
 
         //form里面数据
         var formData = form.getSaveData();
@@ -576,6 +578,8 @@ Ext.define('saas.view.money.verification.FormPanelController', {
             params['items' + ( i + 1)] = formData['detail' + i];
         }
 
+        params.codeModified = codeModified;
+
         form.setLoading(true);
         saas.util.BaseUtil.request({
             url: form._saveUrl,

+ 2 - 2
frontend/saas-web/app/view/purchase/report/Purchase.js

@@ -180,7 +180,7 @@ Ext.define('saas.view.purchase.report.Purchase', {
         }
     }, {
         text: '收货数量',
-        dataIndex: 'pd_acceptqty',
+        dataIndex: 'pd_pdacceptqty',
         exportFormat: 'Quantity',
         width: 110,
         xtype: 'numbercolumn',
@@ -199,7 +199,7 @@ Ext.define('saas.view.purchase.report.Purchase', {
         }
     }, {
         text: '收货金额',
-        dataIndex: 'pd_accepttotal',
+        dataIndex: 'pd_pdaccepttotal',
         exportFormat: 'Amount',
         width: 110,
         xtype: 'numbercolumn',