Browse Source

新需求修改

sunyadv 5 years ago
parent
commit
3c8a32000f

+ 3 - 3
lss_vue/build/webpack.base.conf.js

@@ -14,9 +14,9 @@ module.exports = {
     app: ["babel-polyfill", "./src/main.js"]
   },
 //   externals: {
-//       'vue': 'Vue',
-//       'vuex': 'Vuex',
-//       'echarts': 'echarts'
+//     //   'vuex': 'Vuex',
+//     //   'echarts': 'echarts',
+//       'mui':'mui'
 //   },
   output: {
     path: config.build.assetsRoot,

+ 1 - 0
lss_vue/config/index.js

@@ -28,6 +28,7 @@ module.exports = {
     assetsPublicPath: '/',
     proxyTable: {
         '/api': {    
+            // target: 'http://'+ ip +':8091',  // 接口域名 开发
             target: 'http://'+ ip +':8091',  // 接口域名 开发
             secure: true,  // 如果是https接口,需要配置这个参数
             changeOrigin: true,  //是否跨域

+ 3 - 7
lss_vue/index.html

@@ -5,6 +5,9 @@
         <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
         <title>数据中心</title>
         <link rel="shortcut icon" type="image/x-icon" href="./cloud.ico" />
+        <link rel="stylesheet" type="text/css" href="./static/custom-picker.css" /> 
+        <!-- 引入mui -->
+        <!-- <script src="/static/mui.min.js"></script> -->
         <style>
             .toolbar {
                 background: #fff!important;
@@ -104,12 +107,5 @@
     </head>
     <body>
         <div id="app"></div>
-
-        <!-- 引入Vue.js -->
-        <!-- <script src="https://cdn.staticfile.org/vue/2.4.3/vue.min.js"></script> -->
-        <!-- 引入vuex.js -->
-        <!-- <script src="https://cdn.staticfile.org/vuex/3.0.0/vuex.min.js"></script> -->
-        <!-- 引入echarts -->
-        <!-- <script src="https://cdn.staticfile.org/echarts/4.1.0/echarts.min.js"></script> -->
     </body>
 </html>

+ 1 - 1
lss_vue/src/main.js

@@ -45,7 +45,7 @@ const router = new VueRouter({
 router.beforeEach((to, from, next) => {
     NProgress.configure({showSpinner: false}); 
     NProgress.start();
-
+    
     if(to.meta.parentPath == "/tab_assets"){
         document.title = '资产'
     } else if(to.meta.parentPath == "/tab_data") {

+ 1 - 1
lss_vue/src/port.js

@@ -51,7 +51,7 @@ export default {
         draft: '/idea/getDraft',                                // 获取草稿
 
         addressList: '/user/list',                              // 通讯录
-        scoreDetail: '/score/getDetailByTimeAndUid',            // 个人分数详情
+        scoreDetailByUid: '/score/getDetailByTimeAndUid',            // 个人分数详情
         ideaScore: '/idea/ideaListByTime',                      // TA的建议
         addOrUpdate: '/score/addOrUpdate',                      // 分数新增修改
         leaderScore: '/ideacomment/addOrUpdate',                // 添加/修改回复建议

+ 8 - 0
lss_vue/src/routes.js

@@ -27,8 +27,15 @@ import myGrade from './views/my/myGrade.vue'
 import myInstitution from './views/my/myInstitution.vue'
 import myInsDetail from './views/my/myInsDetail.vue'
 
+import test from './views/test/data.vue'
 
 let routes = [
+    {
+        path: '/test',
+        component: (resolve)=>require(['./views/test/data.vue'] , resolve),
+        name: '',
+        hidden: true
+    },
     {
         path: '/login',
         component: Login,
@@ -93,6 +100,7 @@ let routes = [
             { path: '/myScore', component:(resolve)=>require(['./views/my/myScore.vue'] , resolve), name: '我的评分', meta: {keepAlive: true, parentPath:'/tab_my'} },
             { path: '/myScore/:uid/:time', component:(resolve)=>require(['./views/my/myScoreDetail.vue'] , resolve), name: '我的评分详情', meta: {keepAlive: true, parentPath:'/tab_my'} },
             { path: '/mySuggest', component:(resolve)=>require(['./views/my/mySuggest.vue'] , resolve), name: '我的建议', meta: {keepAlive: true, parentPath:'/tab_my'} },
+            { path: '/mySuggestByLeader', component:(resolve)=>require(['./views/my/mySuggestByLeader.vue'] , resolve), name: 'TA的建议', meta: {keepAlive: true, parentPath:'/tab_my'} },
             { path: '/myAddress', component:(resolve)=>require(['./views/my/myAddress.vue'] , resolve), name: '通讯录', meta: {keepAlive: true, parentPath:'/tab_my'} },
             { path: '/myGrade/:id/:name', component:(resolve)=>require(['./views/my/myGrade.vue'] , resolve), name: '打分页面', meta: {keepAlive: true, parentPath:'/tab_my'} },
             { path: '/myInstitution', component:(resolve)=>require(['./views/my/myInstitution.vue'] , resolve), name: '管理制度', meta: {keepAlive: true, parentPath:'/tab_my'} },

+ 6 - 3
lss_vue/src/views/assets/assets.vue

@@ -9,9 +9,12 @@
             <div class="btn_body">
                 <img v-on:click.stop="showList()" class="btn_img" src="../../assets/image/add.png">
                 <div class="btn_list" v-show="popupVisible">
-                    <!-- <div v-on:click="toTest()"><img src="../../assets/image/export.png">扫描二维码</div> -->
-                    <div v-if="power.indexOf('registered_assets') > -1" v-on:click="register()"><img src="../../assets/image/register.png">登记资产</div>
-                    <div v-on:click="exportExcel()"><img src="../../assets/image/export.png">导出报表</div>
+                    <!-- <div v-on:click="toTest()">扫描二维码</div> -->
+                    <!-- <img src="../../assets/image/export.png"> -->
+                    <div v-if="power.indexOf('registered_assets') > -1" v-on:click="register()">登记资产</div>
+                    <!-- <img src="../../assets/image/register.png"> -->
+                    <div v-on:click="exportExcel()">导出报表</div>
+                    <!-- <img src="../../assets/image/export.png"> -->
                 </div>
             </div>
             <div class="searchkey">

+ 18 - 4
lss_vue/src/views/assets/assetsDetail.vue

@@ -27,7 +27,7 @@
             </div>
             <div class="detailBox">
                 <mt-cell v-if="power.indexOf('maintenance_assets')>-1" title="维护资产" is-link v-on:click.native="jumpTo(1)"></mt-cell>
-                <mt-cell v-if="power.indexOf('update_assets')>-1" title="资产编号" is-link v-on:click.native="jumpTo(2)"></mt-cell>
+                <!-- <mt-cell v-if="power.indexOf('update_assets')>-1" title="资产编号" is-link v-on:click.native="jumpTo(2)"></mt-cell> -->
             </div>
             <div class="detailBox">
                 <div class="assDel assDel_Head">
@@ -127,16 +127,29 @@
                     </div>
                 </div>
                 <div class="detailBox">
-                    <mt-cell title="所属分类" :value="detail.tagName"></mt-cell>
+                    <mt-cell title="资产分类" :value="detail.tagName"></mt-cell>
                     <mt-cell title="数量" :value="detail.goodsNosVO!=null?detail.goodsNosVO.length:0"></mt-cell>
                     <mt-cell title="单位" :value="detail.unit"></mt-cell>
                     <mt-cell title="地址" :value="detail.address"></mt-cell>
                 </div>
                 <div class="detailBox">
-                    <mt-cell title="生产厂家" :value="detail.factory"></mt-cell>
-                    <mt-cell title="服务期限" :value="detail.serviceLife"></mt-cell>
+                    <mt-cell title="项目编号" :value="detail.projectNo"></mt-cell>
+                    <mt-cell title="项目名称" :value="detail.projectName"></mt-cell>
+                    <mt-cell title="采购日期" :value="detail.purchaseDate"></mt-cell>
+                </div>
+                <div class="detailBox">
+                    <mt-cell title="供应商" :value="detail.factory"></mt-cell>
+                    <mt-cell title="采购价格" :value="detail.price"></mt-cell>
+                    <mt-cell title="质保期限" :value="detail.warrantyPeriod==null?'': detail.warrantyPeriod + '年'"></mt-cell>
+                    <mt-cell title="服务期限" :value="detail.serviceLife==null?'': detail.serviceLife + '天'"></mt-cell>
                     <mt-cell title="下次维护时间" :value="detail.nextIndate"></mt-cell>
                 </div>
+                <div class="detailBox">
+                    <mt-cell title="备注"></mt-cell>
+                    <p style="padding: 0.05rem 0.12rem;margin:0;font-size:0.16rem;color:#888;line-height:0.25rem;">
+                        {{detail.content}}
+                    </p>
+                </div>
             </div>
         </mt-popup>
     </div>
@@ -544,6 +557,7 @@
     .allocation {
         width: 100%;
         height: 100%;
+        overflow-y: auto;
     }
 
     .address_first .current{

+ 108 - 12
lss_vue/src/views/assets/assetsEdit.vue

@@ -6,6 +6,18 @@
             </router-link>
         </mt-header>
         <div class="detail_body">
+            <div class="detailBox">
+                <div class="left_tag">资产分类</div>
+                <div class="right">
+                    <ul class="address_first">
+                        <li v-for="(item,index) in labels" :id="'btn'+item.id" v-bind:class="{'active':item.id==tagId}" v-on:click="chooseTag(item.id)">
+                            {{item.name}}
+                            <img v-if="index > 7" v-on:click="delTag(item.id)" src="../../assets/image/del.png">
+                        </li>
+                        <li v-on:click="addNewTag()" class="add">+</li>
+                    </ul>
+                </div>
+            </div>
             <div class="detailBox">
                 <mt-field label="物品名称" placeholder="请输入物品名称" v-model="assetsForm.name"></mt-field>
                 <mt-field label="型号" placeholder="请输入物品型号" v-model="assetsForm.modelNumber"></mt-field>
@@ -27,21 +39,19 @@
                 <mt-field label="地址" placeholder="请输入地址" v-model="assetsForm.address"></mt-field>
             </div>
             <div class="detailBox">
-                <mt-field label="生产厂家" placeholder="请输入生产厂家" v-model="assetsForm.factory"></mt-field>
-                <mt-field label="服务期限" placeholder="请输入服务期限" type="number" v-model="assetsForm.serviceLife"></mt-field>
+                <mt-field label="项目编号" placeholder="请输入项目编号" v-model="assetsForm.projectNo"></mt-field>
+                <mt-field label="项目名称" placeholder="请输入项目名称" v-model="assetsForm.projectName"></mt-field>
+                <mt-field label="采购日期" placeholder="请选择采购日期" type="date" v-model="assetsForm.purchaseDate"></mt-field>
+            </div>
+            <div class="detailBox">
+                <mt-field label="供应商" placeholder="请输入供应商" v-model="assetsForm.factory"></mt-field>
+                <mt-field label="采购价格" placeholder="请输入采购价格" type="number" v-model="assetsForm.price"></mt-field>
+                <mt-field label="质保期限" placeholder="请输入质保期限(单位:年)" type="number" v-model="assetsForm.warrantyPeriod"></mt-field>
+                <mt-field label="服务期限" placeholder="请输入服务期限(单位:天)" type="number" v-model="assetsForm.serviceLife"></mt-field>
                 <mt-field label="下次维护日期" placeholder="请选择下次维护日期" type="date" v-model="assetsForm.nextIndate"></mt-field>
             </div>
             <div class="detailBox">
-                <div class="left_tag">所属分类</div>
-                <div class="right">
-                    <ul class="address_first">
-                        <li v-for="(item,index) in labels" :id="'btn'+item.id" v-bind:class="{'active':item.id==tagId}" v-on:click="chooseTag(item.id)">
-                            {{item.name}}
-                            <img v-if="index > 7" v-on:click="delTag(item.id)" src="../../assets/image/del.png">
-                        </li>
-                        <li v-on:click="addNewTag()" class="add">+</li>
-                    </ul>
-                </div>
+                <mt-field label="备注" placeholder="请输入备注" type="textarea" rows="5" v-model="assetsForm.content"></mt-field>
             </div>
             <div class="btn">
                 <mt-button class="allBtn" size="large" type="primary" v-on:click.native="submit()">确定</mt-button>
@@ -70,6 +80,13 @@
                     nextIndate: '',
                     pic: '',
                     tagId: 0,
+
+                    projectNo: '',
+                    projectName: '',
+                    purchaseDate: '',
+                    price: '',
+                    warrantyPeriod: '',
+                    content: '',
                 },
                 labels: [],
                 tagId: 0,
@@ -99,6 +116,13 @@
                             nextIndate: res.data.nextIndate,
                             pic: res.data.pic,
                             tagId: res.data.tagId,
+
+                            projectNo: res.data.projectNo,
+                            projectName: res.data.projectName,
+                            purchaseDate: res.data.purchaseDate,
+                            price: res.data.price,
+                            warrantyPeriod: res.data.warrantyPeriod,
+                            content: res.data.content,
                         }
                         this.tagId = res.data.tagId
                         this.getLabels();
@@ -294,6 +318,13 @@
                         });
                         this.canClick = true;
                         return false;
+                    } else if(this.assetsForm.modelNumber == null || this.assetsForm.modelNumber == "") {
+                        this.$toast({
+                            message: '请输入物品型号',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
                     } else if(this.assetsForm.number == null || this.assetsForm.number == "") {
                         this.$toast({
                             message: '请输入物品数量',
@@ -308,6 +339,69 @@
                         });
                         this.canClick = true;
                         return false;
+                    } else if(this.assetsForm.address == null || this.assetsForm.address == "") {
+                        this.$toast({
+                            message: '请输入地址',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
+                    } else if(this.assetsForm.projectNo == null || this.assetsForm.projectNo == "") {
+                        this.$toast({
+                            message: '请输入项目编号',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
+                    } else if(this.assetsForm.projectName == null || this.assetsForm.projectName == "") {
+                        this.$toast({
+                            message: '请输入项目名称',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
+                    } else if(this.assetsForm.purchaseDate == null || this.assetsForm.purchaseDate == "") {
+                        this.$toast({
+                            message: '请选择采购日期',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
+                    } else if(this.assetsForm.factory == null || this.assetsForm.factory == "") {
+                        this.$toast({
+                            message: '请输入供应商',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
+                    } else if(this.assetsForm.price == null || this.assetsForm.price == "") {
+                        this.$toast({
+                            message: '请输入采购价格',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
+                    } else if(this.assetsForm.warrantyPeriod == null || this.assetsForm.warrantyPeriod == "") {
+                        this.$toast({
+                            message: '请输入质保期限(单位:年)',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
+                    } else if(this.assetsForm.serviceLife == null || this.assetsForm.serviceLife == "") {
+                        this.$toast({
+                            message: '请输入服务期限',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
+                    } else if(this.assetsForm.content.length >= 100) {
+                        this.$toast({
+                            message: '备注内容请控制在100字以内',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
                     } else {
                         this.$indicator.open();
                         var _this = this;
@@ -371,6 +465,8 @@
     .detail_body {
         margin-top: 0.4rem;
         padding-bottom: 0.15rem;
+        height: auto;
+        background: #efefef;
     }
 
     .detail {

+ 2 - 0
lss_vue/src/views/assets/assetsHandle.vue

@@ -10,6 +10,7 @@
                 <mt-field label="资产编号" placeholder="请输入物品名称" v-model="detail.modelNo" disabled></mt-field>
                 <mt-field id="state" label="资产状态" placeholder="请选择资产状态" disableClear disabled v-on:click.native="chooseType()" v-model="state"></mt-field>
                 <mt-field v-if="assetsForm.state == 1" id="userId" label="对应人员" placeholder="请选择对应人员" disableClear disabled v-on:click.native="choosePeo()" v-model="userName"></mt-field>
+                <!-- <mt-field v-if="assetsForm.state == 1" label="备注" placeholder="请输入备注(150字以内)" type="textarea" rows="5" v-model="content"></mt-field> -->
             </div>
             <div class="btn">
                 <mt-button class="allBtn" size="large" type="primary" v-on:click.native="submit()">确定</mt-button>
@@ -35,6 +36,7 @@
                 },
                 state: "",
                 userName: "",
+                content: "",
                 popupVisible: false,
                 canClick: true,
 			}

+ 8 - 8
lss_vue/src/views/assets/assetsNumber.vue

@@ -6,7 +6,7 @@
             </router-link>
         </mt-header>
         <div class="detailBox textColor">
-            资产编号构成:部门编号 + 字母前缀 + 数字序号,字母前缀最多四位,数字序号由系统排序生成
+            资产编号构成:部门编号 + 字母前缀 + 数字序号,数字序号由系统排序生成
         </div>
         <div class="detailBox">
             <mt-field label="部门编号" placeholder="请输入部门编号" v-model="assetsForm.divisionCode"></mt-field>
@@ -51,13 +51,13 @@
                         });
                         this.canClick = true;
                         return false;
-                    } else if(!reg.test(this.assetsForm.suffixCode)) {
-                        this.$toast({
-                            message: '请输入不多于四位字母前缀',
-                            duration: 2000
-                        });
-                        this.canClick = true;
-                        return false;
+                    // } else if(!reg.test(this.assetsForm.suffixCode)) {
+                    //     this.$toast({
+                    //         message: '请输入不多于四位字母前缀',
+                    //         duration: 2000
+                    //     });
+                    //     this.canClick = true;
+                    //     return false;
                     } else {
                         this.$indicator.open();
                         var _this = this;

+ 93 - 23
lss_vue/src/views/assets/assetsRegister.vue

@@ -6,6 +6,18 @@
             </router-link>
         </mt-header>
         <div class="detail_body">
+            <div class="detailBox">
+                <div class="left_tag">资产分类</div>
+                <div class="right">
+                    <ul class="address_first">
+                        <li v-for="(item,index) in labels" :id="'btn'+item.id" v-bind:class="{'active':index==0}" v-on:click="chooseTag(item.id)">
+                            {{item.name}}
+                            <img v-if="index > 7" v-on:click="delTag(item.id)" src="../../assets/image/del.png">
+                        </li>
+                        <li v-on:click="addNewTag()" class="add">+</li>
+                    </ul>
+                </div>
+            </div>
             <div class="detailBox">
                 <mt-field label="物品名称" placeholder="请输入物品名称" v-model="assetsForm.name"></mt-field>
                 <mt-field label="型号" placeholder="请输入物品型号" v-model="assetsForm.modelNumber"></mt-field>
@@ -27,24 +39,24 @@
                 <mt-field label="地址" placeholder="请输入地址" v-model="assetsForm.address"></mt-field>
             </div>
             <div class="detailBox">
-                <mt-field label="生产厂家" placeholder="请输入生产厂家" v-model="assetsForm.factory"></mt-field>
-                <mt-field label="服务期限" placeholder="请输入服务期限" type="number" v-model="assetsForm.serviceLife"></mt-field>
+                <mt-field label="项目编号" placeholder="请输入项目编号" v-model="assetsForm.projectNo"></mt-field>
+                <mt-field label="项目名称" placeholder="请输入项目名称" v-model="assetsForm.projectName"></mt-field>
+                <mt-field label="采购日期" placeholder="请选择采购日期" type="date" v-model="assetsForm.purchaseDate"></mt-field>
+            </div>
+            <div class="detailBox">
+                <mt-field label="供应商" placeholder="请输入供应商" v-model="assetsForm.factory"></mt-field>
+                <mt-field label="采购价格" placeholder="请输入采购价格" type="number" v-model="assetsForm.price"></mt-field>
+                <mt-field label="质保期限" placeholder="请输入质保期限(单位:年)" type="number" v-model="assetsForm.warrantyPeriod"></mt-field>
+                <mt-field label="服务期限" placeholder="请输入服务期限(单位:天)" type="number" v-model="assetsForm.serviceLife"></mt-field>
                 <mt-field label="下次维护日期" placeholder="请选择下次维护日期" type="date" v-model="assetsForm.nextIndate"></mt-field>
             </div>
             <div class="detailBox">
-                <div class="left_tag">所属分类</div>
-                <div class="right">
-                    <ul class="address_first">
-                        <li v-for="(item,index) in labels" :id="'btn'+item.id" v-bind:class="{'active':index==0}" v-on:click="chooseTag(item.id)">
-                            {{item.name}}
-                            <img v-if="index > 7" v-on:click="delTag(item.id)" src="../../assets/image/del.png">
-                        </li>
-                        <li v-on:click="addNewTag()" class="add">+</li>
-                    </ul>
-                </div>
+                <mt-field label="备注" placeholder="请输入备注(100字以内)" type="textarea" rows="5" v-model="assetsForm.content"></mt-field>
             </div>
             <div class="btn">
-                <mt-button size="large" type="primary" v-on:click.native="toNext()">下一步</mt-button>
+                <mt-button class="allBtn" size="large" type="primary" v-on:click.native="submit()">确定</mt-button>
+                <mt-button class="allBtn" size="large" v-on:click.native="jumpBack()">取消</mt-button>
+                <!-- <mt-button size="large" type="primary" v-on:click.native="toNext()">下一步</mt-button> -->
             </div>
         </div>
         <mt-popup v-model="popupVisible" position="right" class="allocation">
@@ -54,7 +66,7 @@
                 </router-link>
             </mt-header>
             <div class="detailBox textColor">
-                资产编号构成:部门编号 + 字母前缀 + 数字序号,字母前缀最多四位,数字序号由系统排序生成
+                资产编号构成:部门编号 + 字母前缀 + 数字序号,数字序号由系统排序生成
             </div>
             <div class="detailBox">
                 <mt-field label="部门编号" placeholder="请输入部门编号" v-model="assetsForm.deptStr"></mt-field>
@@ -85,8 +97,15 @@
                     nextIndate: '',
                     pic: '',
                     tagId: 0,
-                    deptStr: '',
-                    goodStr: '',
+                    // deptStr: '',
+                    // goodStr: '',
+
+                    projectNo: '',
+                    projectName: '',
+                    purchaseDate: '',
+                    price: '',
+                    warrantyPeriod: '',
+                    content: '',
                 },
                 popupVisible: false,
                 labels: [],
@@ -101,6 +120,7 @@
                 this.http.post(this.port.label.list, {} , 
                 res => {
                     if (res.code == "ok") {
+                        this.assetsForm.tagId = res.data[0].id;
                         this.tagId = res.data[0].id;
                         this.labels = res.data;
                     } else {
@@ -271,6 +291,13 @@
                         });
                         this.canClick = true;
                         return false;
+                    } else if(this.assetsForm.modelNumber == null || this.assetsForm.modelNumber == "") {
+                        this.$toast({
+                            message: '请输入物品型号',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
                     } else if(this.assetsForm.number == null || this.assetsForm.number == "") {
                         this.$toast({
                             message: '请输入物品数量',
@@ -285,23 +312,65 @@
                         });
                         this.canClick = true;
                         return false;
-                    } else if(this.assetsForm.deptStr == null || this.assetsForm.deptStr == "") {
+                    } else if(this.assetsForm.address == null || this.assetsForm.address == "") {
+                        this.$toast({
+                            message: '请输入地址',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
+                    } else if(this.assetsForm.projectNo == null || this.assetsForm.projectNo == "") {
+                        this.$toast({
+                            message: '请输入项目编号',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
+                    } else if(this.assetsForm.projectName == null || this.assetsForm.projectName == "") {
+                        this.$toast({
+                            message: '请输入项目名称',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
+                    } else if(this.assetsForm.purchaseDate == null || this.assetsForm.purchaseDate == "") {
+                        this.$toast({
+                            message: '请选择采购日期',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
+                    } else if(this.assetsForm.factory == null || this.assetsForm.factory == "") {
+                        this.$toast({
+                            message: '请输入供应商',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
+                    } else if(this.assetsForm.price == null || this.assetsForm.price == "") {
+                        this.$toast({
+                            message: '请输入采购价格',
+                            duration: 2000
+                        });
+                        this.canClick = true;
+                        return false;
+                    } else if(this.assetsForm.warrantyPeriod == null || this.assetsForm.warrantyPeriod == "") {
                         this.$toast({
-                            message: '请输入部门编号',
+                            message: '请输入质保期限(单位:年)',
                             duration: 2000
                         });
                         this.canClick = true;
                         return false;
-                    } else if(this.assetsForm.goodStr == null || this.assetsForm.goodStr == "") {
+                    } else if(this.assetsForm.serviceLife == null || this.assetsForm.serviceLife == "") {
                         this.$toast({
-                            message: '请输入字母前缀',
+                            message: '请输入服务期限',
                             duration: 2000
                         });
                         this.canClick = true;
                         return false;
-                    } else if(!reg.test(this.assetsForm.goodStr)) {
+                    } else if(this.assetsForm.content.length >= 100) {
                         this.$toast({
-                            message: '请输入不多于四位字母前缀',
+                            message: '备注内容请控制在100字以内',
                             duration: 2000
                         });
                         this.canClick = true;
@@ -363,7 +432,7 @@
             this.getLabels();
         },
 		mounted() {
-            
+           
 		}
 	}
 
@@ -382,6 +451,7 @@
     }
 
     .detail {
+        height: auto;
         background: #EFEFEF;
     }
 

+ 19 - 7
lss_vue/src/views/data/data.vue

@@ -150,6 +150,10 @@
                             fontSize: 16,
                         }
                     },
+                    grid: {
+                        left: '30%',
+                        right: '30%',
+                    },
                     tooltip: {
                         trigger: 'item',
                         formatter: "{a} <br/>{b}: {c} ({d}%)",
@@ -172,21 +176,22 @@
                         {
                             name:'数据类型统计',
                             type:'pie',
-                            radius: ['25%', '45%'],
+                            radius: ['20%', '40%'],
                             avoidLabelOverlap: false,
                             color:['#F68077','#66B1FD','#0BC3FF','#FCF255','#90FB4C'],
                             label: {
                                 normal: {  //正常的样式
                                     show: true,
-                                    position: 'left'
+                                    position: 'left',
+                                    formatter: '{b}({d}%)' 
                                 },
                                 emphasis: { //选中时候的样式
                                     show: true,
                                     textStyle: {
-                                        fontSize: '20',
+                                        fontSize: '15',
                                         fontWeight: 'bold'
                                     }
-                                }
+                                },
                             },  //提示文字
                             labelLine: {
                                 normal: {
@@ -629,6 +634,10 @@
                             fontSize: 16,
                         }
                     },
+                    grid: {
+                        left: '30%',
+                        right: '30%',
+                    },
                     tooltip: {
                         trigger: 'item',
                         formatter: "{a} <br/>{b}: {c} ({d}%)",
@@ -653,19 +662,22 @@
                         {
                             name:'地理信息库图层分散',
                             type:'pie',
-                            radius: ['25%', '45%'],
+                            minAngle: 5,
+                            avoidLabelOverlap: true,
+                            radius: ['20%', '40%'],
                             avoidLabelOverlap: false,
                             color:['#F68077','#66B1FD','#0BDDDF','#FCF255','#90FB4C',
                             '#F6ADE7','#6253FD','#0663FF','#FC3255','#901B4C','#FCD255','#95D25C'],
                             label: {
                                 normal: {  //正常的样式
                                     show: true,
-                                    position: 'left'
+                                    position: 'left',
+                                    formatter: '{b}\n({d}%)'
                                 },
                                 emphasis: { //选中时候的样式
                                     show: true,
                                     textStyle: {
-                                        fontSize: '20',
+                                        fontSize: '15',
                                         fontWeight: 'bold'
                                     }
                                 }

+ 4 - 0
lss_vue/src/views/my/my.vue

@@ -18,6 +18,7 @@
             <mt-cell title="我的消息" is-link v-on:click.native="jumpTo(1)"><mt-badge v-if="newNum!=0" size="small" type="error">{{newNum}}</mt-badge><img slot="icon" src="../../assets/image/my_message.png" width="24" height="24"></mt-cell>
             <mt-cell title="我的资产" is-link v-on:click.native="jumpTo(2)"><img slot="icon" src="../../assets/image/my_assets.png" width="24" height="24"></mt-cell>
             <mt-cell v-if="user.roles!= null && user.roles[0].rolename != '部门领导'" title="我的评分" is-link v-on:click.native="jumpTo(3)"><img slot="icon" src="../../assets/image/my_score.png" width="24" height="24"></mt-cell>
+            <!-- <mt-cell v-if="user.roles!= null && user.roles[0].rolename == '部门领导'" title="TA的建议" is-link v-on:click.native="jumpTo(7)"><img slot="icon" src="../../assets/image/my_score.png" width="24" height="24"></mt-cell> -->
             <mt-cell v-if="user.roles!= null && user.roles[0].rolename != '部门领导'" title="我的建议" is-link v-on:click.native="jumpTo(4)"><img slot="icon" src="../../assets/image/my_sug.png" width="24" height="24"></mt-cell>
         </div>
         <div class="mybox">
@@ -63,6 +64,9 @@
                     case 6:
                         this.$router.push("/myInstitution");
                         break;
+                    case 7:
+                        this.$router.push("/mySuggestByLeader");
+                        break;
                     default:
                         return false
                         break;

+ 29 - 7
lss_vue/src/views/my/myGrade.vue

@@ -136,15 +136,14 @@
             // 消息列表
             getDetail() {
                 this.$indicator.open();
-                this.http.post(this.port.my.scoreDetail, {
+                this.http.post(this.port.my.scoreDetailByUid, {
                     'uid': this.id,
                     'time': this.chooseTime
                 } , 
                 res => {
                     this.$indicator.close();
                     if (res.code == "ok") {
-                        this.detail = res.data;
-                        if(res.data.scoreId == null && this.date[0].name == this.chooseTime) {
+                        if(res.data === undefined && this.date[0].name == this.chooseTime) {
                             var from = {
                                 "uid": this.id,
                                 "scoringYearMonth": this.chooseTime,
@@ -167,9 +166,32 @@
                                     duration: 2000
                                 });
                             })
+                        } else {
+                            if(res.data === undefined) {
+                                this.detail = {
+                                    deptId: "1",
+                                    ideaScore: 0,
+                                    ideaScoreSum: null,
+                                    ideaVO: null,
+                                    personalScore: 0,
+                                    rater: "",
+                                    raterId: 3,
+                                    reason: null,
+                                    scoreId: null,
+                                    scoringYearMonth: this.chooseTime,
+                                    time: null,
+                                    total: 0,
+                                    uid: this.id,
+                                };
+                                this.personalScore = 0;
+                                this.reason = '';
+                            } else {
+                                this.detail = res.data;
+                                this.personalScore = (res.data.personalScore==null?0:res.data.personalScore);
+                                this.reason = (res.data.reason==null?'':res.data.reason);
+                            }
                         }
-                        this.personalScore = (res.data.personalScore==null?0:res.data.personalScore);
-                        this.reason = (res.data.reason==null?'':res.data.reason);
+                        
                     } else {
                         this.$toast({
                             message: res.msg,
@@ -193,7 +215,7 @@
                 var pickerView = new PickerView({
                     bindElem: pickerDiv, 
                     data: dataShippingSpace, 
-                    title: "对应人员", 
+                    title: "时间选择", 
                     leftText: "取消", 
                     rightText: "确定", 
                     rightFn: function(selectArr) {
@@ -229,7 +251,7 @@
                     'time': this.chooseTime,
                 }
                 if(this.date[0].name == this.chooseTime && this.detail.scoreId != null) {
-                    form.scoreId = this.detail.scoreId
+                    form.sId = this.detail.scoreId
                 }
                 this.http.post(this.port.my.ideaScore, form , 
                 res => {

+ 679 - 0
lss_vue/src/views/my/mySuggestByLeader.vue

@@ -0,0 +1,679 @@
+<template>
+	<div class="detail">
+        <mt-header class="detail_head" fixed title="TA的建议">
+            <router-link to="" slot="left">
+                <mt-button icon="back" v-on:click="jumpBack()"></mt-button>
+            </router-link> 
+            <mt-button class="timePicker" slot="right" id="dateTime" v-on:click="timePicker()"><span class="dateTime">{{chooseTime}}</span> <img src="../../assets/image/pull_down.png"></mt-button>
+        </mt-header>
+        <div class="detail_body">
+            <div class="noList" v-if="list.length==0">
+                <img src="../../assets/image/noList.png">
+            </div> 
+            <ul v-else class="recordBox">
+                <li v-for="(item,index) in list" class="one_recordBox detailBox">
+                    <div>
+                        <div class="one_suggest_title">
+                            {{item.indate}}
+                            <span v-if="item.ideaComment != null" class="areaday">已打分</span>
+                            <span v-if="power.indexOf('scoring')>-1 && item.isEvaluated == 0" class="edit" v-on:click="openSugPop(index)">打分</span>
+                        </div>
+                        <div class="one_suggest_body">
+                            {{item.content}}
+                        </div>
+                        <div class="one_suggest_reply" v-if="item.ideaComment != null">
+                            <div class="reply_title">来自领导的回复</div>
+                            <div class="reply_body">
+                                {{item.ideaComment.content}}
+                                <div>{{item.ideaComment.responder}} <span class="score">得分:<span>{{item.score==null?'0分':item.score + '分'}}</span></span></div>
+                                <div>{{item.ideaComment.indate}}
+                                    <div v-if="power.indexOf('scoring')>-1" class="showMoreBtn" v-on:click.stop="showBtnList(item.id)">
+                                        <img src="../../assets/image/loadMore.png">
+                                        <div :id="'btn' + item.id" class="btn_list hide">
+                                            <div v-on:click="openSugPop(index)"><img src="../../assets/image/register.png"><span>编辑</span></div>
+                                            <div v-on:click="deleteScore(index)"><img src="../../assets/image/delete.png"><span>删除</span></div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </li>
+                <div class="order" v-if="haveMore">
+                    <span class="line"></span>
+                    <span class="txt">没有更多了</span>
+                    <span class="line"></span>
+                </div>
+            </ul>
+        </div>
+
+        <mt-popup v-model="sugScorePop" position="middle" popup-transition="popup-fade">
+            <div class="mint-popup-div">
+                <h4>打分</h4>
+                <mt-field label="" class="input" placeholder="请输入建议分" type="number" disableClear v-model="sugScore"></mt-field>
+                <mt-field label="" class="input" placeholder="请输入得分原因" type="textarea" rows="4" v-model="sugContent"></mt-field>
+                <div class="btns">
+                    <mt-button class="btn" size="small" v-on:click.native="submit(3)">确定</mt-button>
+                    <mt-button class="btn" size="small" v-on:click.native="closePop(3)">取消</mt-button>
+                </div>
+            </div>
+        </mt-popup>
+    </div>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+                user: JSON.parse(sessionStorage.getItem("user")),
+                power: sessionStorage.getItem("power"),
+                list: [],
+                pageNum: 1,
+                pages: 1,
+                haveMore: false,
+
+                date: [],
+                chooseTime: '',
+
+                sugScore: 0,
+                sugContent: '',
+                sugScorePop: false,
+                chooseSugNum: 0,
+
+                canEdit: true,
+			}
+		},
+		methods: {
+            // 时间筛选
+            timePicker() {
+                var _this = this;
+                var dataShippingSpace = this.date;
+                var pickerDiv = document.getElementById("dateTime");
+                var pickerView = new PickerView({
+                    bindElem: pickerDiv, 
+                    data: dataShippingSpace, 
+                    title: "时间选择", 
+                    leftText: "取消", 
+                    rightText: "确定", 
+                    rightFn: function(selectArr) {
+                        _this.chooseTime = selectArr[0].name;
+                        _this.getDetail();
+                        if(_this.chooseTime == _this.date[0].name) {
+                            _this.canEdit = true
+                        } else {
+                            _this.canEdit = false
+                        }
+                    }
+                });
+            },
+
+            // 消息列表
+            getList() {
+                this.$indicator.open();
+                this.http.post(this.port.my.ideaList, {
+                    'uid': this.user.id,
+                    'pageNum': 1,
+                } , 
+                res => {
+                    this.$indicator.close();
+                    if (res.code == "ok") {
+                        this.list = res.data.list;
+                        this.pages = res.data.pages==0?1:res.data.pages;
+                    } else {
+                        this.$toast({
+                            message: res.msg,
+                            duration: 2000
+                        });
+                    }
+                }, error => {
+                    this.$indicator.close();
+                    this.$toast({
+                        message: error,
+                        duration: 2000
+                    });
+                })
+            },
+
+            loadMore() {
+                if(this.pageNum == this.pages) {
+                    this.haveMore = true;
+                } else if(this.pageNum < this.pages) {
+                    this.$indicator.open();
+                    this.http.post(this.port.my.ideaList, {
+                        'uid': this.user.id,
+                        'pageNum': ++this.pageNum
+                    } , 
+                    res => {
+                        this.$indicator.close();
+                        if (res.code == "ok") {
+                            this.pages = res.data.pages==0?1:res.data.pages;
+                            if(res.data.list.length != 0) {
+                                for(var i in res.data.list) {
+                                    this.list.push(res.data.list[i]);
+                                }
+                            }
+                        } else {
+                            this.$toast({
+                                message: res.msg,
+                                duration: 2000
+                            });
+                        }
+                    }, error => {
+                        this.$indicator.close();
+                        this.$toast({
+                            message: error,
+                            duration: 2000
+                        });
+                    })
+                }
+            },
+
+            jumpBack() {
+                this.$router.go(-1);
+            },
+
+            getDate() {
+                const dateData = [];
+                const date1 = new Date();
+                for (let i = 0; i < 36; i++) {
+                    let cur = '';
+                    let tempYear = date1.getFullYear();
+                    let tempMonth = date1.getMonth() - i + 1;
+                    if (tempMonth <= 0) {
+                        tempYear = date1.getFullYear() - Math.floor(tempMonth / -12) - 1; 
+                        tempMonth += (Math.floor(tempMonth / -12) + 1) * 12;
+                    }
+                    if (tempMonth < 10) {
+                        cur = tempYear+ '-0' + tempMonth;
+                    } else {
+                        cur = tempYear+ '-' + tempMonth;
+                    }
+                    dateData.push({
+                        name: cur
+                    });
+                    if(i == 0) {
+                        this.chooseTime = cur;
+                    }
+                }
+                this.date = dateData;
+                this.getList();
+            },
+
+            openPop(type) {
+                if(type == 1) {
+                    this.personalScore = this.detail.personalScore==null?0:this.detail.personalScore;
+                    this.score = true;
+                } else if(type == 2) {
+                    this.reason = this.detail.reason==null?'':this.detail.reason;
+                    this.reasonPop = true;
+                }
+            },
+
+            submit(type) {
+                if(type == 1) {
+                    var reg = /^([1]?\d{1,2})$/;
+                    if(!reg.test(this.personalScore)) {
+                        this.$toast({
+                            message: '请输入0-100内的整数',
+                            duration: 2000
+                        });
+                        return false;
+                    } else {
+                        var from = {};
+                        if(this.detail.scoreId != null) {
+                            from = {
+                                "scoreId": this.detail.scoreId,
+                                "personalScore": this.personalScore,
+                                "ideaScore": this.detail.ideaScoreSum == null?0:this.detail.ideaScoreSum,
+                                "total": parseInt(this.personalScore) + (this.detail.ideaScoreSum == null?0:parseFloat(this.detail.ideaScoreSum)),
+                            }
+                        } else {
+                            from = {
+                                "uid": this.id,
+                                "personalScore": this.personalScore,
+                                "ideaScore": this.detail.ideaScoreSum == null?0:this.detail.ideaScoreSum,
+                                "scoringYearMonth": this.chooseTime,
+                                "raterId": this.user.id,
+                                "total": parseInt(this.personalScore) + (this.detail.ideaScoreSum == null?0:parseFloat(this.detail.ideaScoreSum)),
+                            }
+                        }
+                        this.$indicator.open();
+                        this.http.post(this.port.my.addOrUpdate, from , 
+                        res => {
+                            this.$indicator.close();
+                            if (res.code == "ok") {
+                                this.$toast({
+                                    message: "打分成功",
+                                    duration: 2000
+                                });
+                                this.getDetail();
+                                this.score = false;
+                            } else {
+                                this.$toast({
+                                    message: res.msg,
+                                    duration: 2000
+                                });
+                            }
+                        }, error => {
+                            this.$indicator.close();
+                            this.score = false;
+                            this.$toast({
+                                message: error,
+                                duration: 2000
+                            });
+                        })
+                    }
+                } else if(type == 2) {
+                    var from = {};
+                    if(this.detail.scoreId != null) {
+                        from = {
+                            "scoreId": this.detail.scoreId,
+                            "reason": this.reason,
+                        }
+                    } else {
+                        from = {
+                            "uid": this.id,
+                            "reason": this.reason,
+                            "scoringYearMonth": this.chooseTime,
+                            "raterId": this.user.id
+                        }
+                    }
+                    this.$indicator.open();
+                    this.http.post(this.port.my.addOrUpdate, from , 
+                    res => {
+                        this.$indicator.close();
+                        if (res.code == "ok") {
+                            this.$toast({
+                                message: "提交成功",
+                                duration: 2000
+                            });
+                            this.getDetail();
+                            this.reasonPop = false;
+                        } else {
+                            this.$toast({
+                                message: res.msg,
+                                duration: 2000
+                            });
+                        }
+                    }, error => {
+                        this.$indicator.close();
+                        this.reasonPop = false;
+                        this.$toast({
+                            message: error,
+                            duration: 2000
+                        });
+                    })
+                } else {
+                    var reg = /^\-?([0-9]|10)(\.\d)?$/;
+                    if(!reg.test(this.sugScore)) {
+                        this.$toast({
+                            message: '分数区间为-10 ~ 10',
+                            duration: 2000
+                        });
+                        return false;
+                    } else {
+                        var from = {};
+                        if(this.ideaList[this.chooseSugNum].ideaComment != null) {
+                            from = {
+                                "ideaId": this.ideaList[this.chooseSugNum].id,
+                                "score": this.sugScore,
+                                "content": this.sugContent,
+                                "responderId": this.user.id,
+                                "scoreId": this.ideaList[this.chooseSugNum].scoreId,
+                                "id": this.ideaList[this.chooseSugNum].ideaComment.id,
+                            }
+                        } else {
+                            from = {
+                                "ideaId": this.ideaList[this.chooseSugNum].id,
+                                "score": this.sugScore,
+                                "content": this.sugContent,
+                                "responderId": this.user.id,
+                                "scoreId": this.ideaList[this.chooseSugNum].scoreId,
+                            }
+                        }
+                        this.$indicator.open();
+                        this.http.post(this.port.my.leaderScore, from , 
+                        res => {
+                            this.$indicator.close();
+                            if (res.code == "ok") {
+                                this.$toast({
+                                    message: "打分成功",
+                                    duration: 2000
+                                });
+                                this.sugScorePop = false;
+                                this.toNext();
+                            } else {
+                                this.$toast({
+                                    message: res.msg,
+                                    duration: 2000
+                                });
+                            }
+                        }, error => {
+                            this.$indicator.close();
+                            this.sugScorePop = false;
+                            this.$toast({
+                                message: error,
+                                duration: 2000
+                            });
+                        })
+                    }
+                }
+            },
+
+            closePop() {
+                if(this.content != "" && this.content != null && this.chooseI == -1) {
+                    var from = {};
+                    if(this.chooseI == -1) {
+                        from = {
+                            "content": this.content,
+                            "scoringYearMonth": this.chooseTime,
+                            "uid": this.user.id,
+                            "isDraft": 1,
+                        }
+                    }
+                    this.$indicator.open();
+                    this.http.post(this.port.my.ideaAoU, from , 
+                    res => {
+                        this.$indicator.close();
+                        if (res.code == "ok") {
+                            this.$toast({
+                                message: "当前未提交内容已存为草稿",
+                                duration: 2000
+                            });
+                            this.popupVisible = false;
+                        } else {
+                            this.$toast({
+                                message: res.msg,
+                                duration: 2000
+                            });
+                        }
+                    }, error => {
+                        this.$indicator.close();
+                        this.popupVisible = false;
+                        this.$toast({
+                            message: error,
+                            duration: 2000
+                        });
+                    })
+                } else {
+                    this.popupVisible = false;
+                }
+            },
+
+            openSugPop(i) {
+                this.sugScore = this.ideaList[i].score == null? 0 : this.ideaList[i].score;
+                this.sugContent = this.ideaList[i].ideaComment == null? '' : this.ideaList[i].ideaComment.content;
+                this.sugScorePop = true;
+                this.chooseSugNum = i;
+            },
+
+            showBtnList(id) {
+                if($("#btn" + id).attr("class").indexOf("hide") == -1) {
+                    $("#btn" + id).slideUp().addClass("hide");
+                } else {
+                    $(".one_suggest_reply .showMoreBtn .btn_list").addClass("hide").slideUp();
+                    $("#btn" + id).slideDown().removeClass("hide");
+                }
+            },
+
+            deleteScore(index) {
+                MessageBox.confirm('', { 
+                    message: '是否删除该分数、评论?', 
+                        title: '', 
+                        confirmButtonText: '确定', 
+                        cancelButtonText: '取消' 
+                 }).then(action => { 
+                    if (action == 'confirm') {     //确认的回调
+                        this.http.post(this.port.my.delScore, {
+                            'id': this.ideaList[index].ideaComment.id,
+                        } , 
+                        res => {
+                            if (res.code == "ok") {
+                                this.$toast({
+                                    message: "删除成功",
+                                    duration: 2000
+                                });
+                                this.toNext();
+                            } else {
+                                this.$toast({
+                                    message: res.msg,
+                                    duration: 2000
+                                });
+                            }
+                        }, error => {
+                            this.$toast({
+                                message: error,
+                                duration: 2000
+                            });
+                        })
+                    }
+                 }).catch(err => { 
+                 });
+            },
+
+            globalClick(callback) {
+                document.getElementById('allocation').onclick = function () {
+                    $(".one_suggest_reply .showMoreBtn .btn_list").addClass("hide").slideUp();
+                }
+            }
+        },
+        created() {
+            this.getDate();
+        },
+		mounted() {
+            
+		}
+	}
+
+</script>
+
+<style scoped>
+    body {
+        background: #EFEFEF!important;
+    }
+
+    .context_router {
+        background: #EFEFEF;
+    }
+    
+    .detail {
+        background: #EFEFEF;
+    }
+
+    .detail_head {
+        background: #fff;
+        color: #333;
+        height: 0.4rem;
+    }
+
+    .detail_body {
+        margin-top: 0.4rem;
+        padding-bottom: 0.15rem;
+        background: #efefef;
+    }
+
+    .detailBox {
+        background: #fff;
+        margin-bottom: 0.1rem;
+    }
+
+    .one_recordBox {
+        padding: 0.12rem 0.2rem;
+    }
+
+    .record_head {
+        padding: 0 0 0.1rem 0;
+        line-height: 0.25rem;
+        border-bottom: 1px solid #ccc;
+    }
+
+    .record_head > div {
+        width: 100%;
+        display: inline-block;
+        vertical-align: middle;
+        line-height: 0.4rem;
+    }
+
+    .record_head > div img {
+        width:0.12rem;
+        float:right;
+        margin: 0.135rem 0 0 0;
+    }
+
+    .record_head > div span {
+        color: #5FA1F0;
+        margin-left: 0.2rem;
+        float: right;
+        margin-right: 0.05rem;
+    }
+
+    .record_body {
+        color: #5FA1F0;
+        font-size: 0.14rem;
+        margin: 0.12rem 0 0 0;
+    }
+
+    .record_body .toDetail {
+        float: right;
+        margin-right: 0.05rem;
+    }
+
+    .record_body .toDetail img {
+        width: 0.12rem;
+    }
+
+    .one_suggest_title {
+        line-height: 0.3rem;
+    }
+
+    .one_suggest_title span {
+        float: right;
+        font-size: 0.13rem;
+    }
+
+    .one_suggest_title span.areaday {
+        color: #ccc;
+    }
+
+    .one_suggest_title span.edit {
+        color:#5FA1F0;
+    }
+
+    .one_suggest_body {
+        font-size: 0.13rem;
+        line-height: 0.2rem;
+        color: #333;
+    }
+
+    .one_suggest_reply {
+        margin-top: 0.12rem;
+    }
+
+    .reply_title {
+        font-size: 0.12rem;
+        color: #999;
+        margin-bottom: 0.08rem;
+    }
+
+    .reply_body {
+        padding: 0.1rem;
+        background: #EEE;
+        color: #333;
+    }
+
+    .reply_body > div {
+        color: #333;
+        line-height: 0.2rem;
+        font-size: 0.13rem;
+        color: #777;
+    }
+
+    .reply_body > div:nth-child(1) {
+        margin-top: 0.1rem;
+    }
+
+    .reply_body .score {
+        float: right;
+    }
+
+    .reply_body .score span {
+        color: #5FA1F0;
+    }
+
+    .mint-popup {
+        width: 70%;
+        box-sizing: content-box;
+    }
+
+    .mint-popup-div {
+        padding: 0.12rem;
+        background: #fff;
+    }
+
+    .mint-popup-div h4 {
+        margin: 0;
+        padding: 0;
+    }
+
+    .mint-popup-div .mint-cell {
+        margin: 0.2rem 0;
+    }
+
+    .mint-popup-div > div.btns {
+        height: 0.3rem;
+    }
+
+    .mint-popup-div .btn {
+        float: right;
+        margin-right: 0.1rem;
+        background: #fff;
+        box-shadow: none;
+        width: 50%;
+        margin: 0;
+    }
+
+    .mint-popup-div .btn:nth-child(1) {
+        color: #f00;
+    }
+
+    .allocation {
+        width: 100%;
+        height: 100%;
+    }
+
+    .noList {
+        text-align: center;
+        padding: 1.5rem 0;
+    }
+
+    .noList img {
+        width: 1.2rem;
+        height: 1.2rem;
+    }
+
+    .order {
+        height: 0.6rem;
+        line-height: 0.6rem;
+        text-align: center;
+    }
+
+    .order .line {
+        display: inline-block;
+        width: 1.2rem;
+        border-top: 1px solid #ccc ;
+        vertical-align: middle;
+    }
+
+    .order .txt {
+        color: #ccc;
+        font-size: 0.13rem;
+        vertical-align: middle;
+    }
+</style>
+<style>
+    .mint-popup-div input {
+        border: 1px solid #ddd;
+        border-radius: 5px;
+        padding: 0.08rem;
+    }
+</style>

File diff suppressed because it is too large
+ 3760 - 0
lss_vue/src/views/test/data.vue


BIN
lss_vue/src/views/test/fonts/mui.ttf


+ 167 - 0
lss_vue/static/custom-picker.css

@@ -0,0 +1,167 @@
+@keyframes slideUp {
+  0% {
+    bottom:-40%;
+  }
+  100% {
+    bottom:0;
+  }
+}
+@-moz-keyframes slideUp {
+  0% {
+    bottom:-40%;
+  }
+  100% {
+    bottom:0;
+  }
+}
+@-webkit-keyframes slideUp {
+  0% {
+    bottom:-40%;
+  }
+  100% {
+    bottom:0;
+  }
+}
+@-o-keyframes slideUp {
+  0% {
+    bottom:-40%;
+  }
+  100% {
+    bottom:0;
+  }
+}
+.pickerView-wrap * {
+    margin:0;
+    padding:0;
+    list-style: none;
+    -webkit-box-sizing: border-box;
+    -ms-box-sizing:border-box;
+    -moz-box-sizing:border-box;
+    box-sizing: border-box;
+    font-size: 0;
+}
+.pickerView-wrap {
+    position: fixed;
+    left:0;
+    top:0;
+    height:100%;
+    width:100%;
+	z-index: 666;
+}
+.pickerView-mask {
+    height:100%;
+    width:100%;
+    background:rgba(0,0,0,.5);
+}
+.pickerView-box {
+    height:40%;
+    width:100%;
+    position: absolute;
+    left:0;
+    bottom:0;
+    background: #fff;
+    padding-top:45px;
+    animation: slideUp 0.3s;
+}
+.pickerView-box-header {
+    text-align: center;
+    height:45px;
+    border-bottom:1px solid #ddd;
+    width:100%;
+    padding:0 50px;
+    position: absolute;
+    left:0;
+    top:0;
+    z-index: 10;
+    background: #fff;
+}
+.pickerView-box-header>div {
+    line-height: 44px;
+    font-size: 16px;
+}
+.pickerView-box-header-btn {
+    height:100%;
+    width:50px;
+    position: absolute;
+    top:0;
+}
+.pickerView-box-header-left {
+    left:0;
+    color:#888;
+}
+.pickerView-box-header-right {
+    right:0;
+    color:#108ee9;
+}
+.pickerView-box-header-title {
+    text-align: center;
+    height:100%;
+    width:100%;
+    overflow:hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
+.pickerView-box-content-wrap {
+    height:100%;
+    width:100%;
+    overflow: hidden;
+    position: relative;
+    display: -webkit-box;
+    display: -webkit-flex;
+    display: -ms-flexbox;
+    display: flex;
+}
+.pickerView-box-content {
+    -webkit-box-flex: 1;
+    -webkit-flex: 1;
+    -ms-flex: 1;
+    flex: 1;
+    position: relative;
+}
+.pickerView-box-content-mask {
+    position: absolute;
+    left: 0;
+    bottom:0;
+    height: 100%;
+    margin: 0 auto;
+    width: 100%;
+    z-index: 3;
+    background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6)), -webkit-linear-gradient(bottom, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6));
+    background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.95)), to(rgba(255, 255, 255, 0.6))), -webkit-gradient(linear, left bottom, left top, from(rgba(255, 255, 255, 0.95)), to(rgba(255, 255, 255, 0.6)));
+    background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6)), linear-gradient(to top, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6));
+    background-position: top, bottom;
+    background-size: 100% 102px;
+    background-repeat: no-repeat;
+}
+.pickerView-box-content-indicator {
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    width: 100%;
+    height: 34px;
+    position: absolute;
+    left: 0;
+    top: 102px;
+    z-index: 3;
+    border-top: 1PX solid #ddd;
+    border-bottom: 1PX solid #ddd;
+}
+.pickerView-items {
+    position: absolute;
+    left: 0;
+    top: 0;
+    width: 100%;
+    z-index: 1;
+    padding: 102px 0;
+    padding: 102px 0px;
+}
+.pickerView-item {
+    touch-action: manipulation;
+    text-align: center;
+    font-size: 16px;
+    height: 34px;
+    line-height: 34px;
+    color: #000;
+    overflow:hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}

File diff suppressed because it is too large
+ 6 - 0
lss_vue/static/mui.min.js


+ 1 - 1
lss_vue_wx/src/port.js

@@ -76,7 +76,7 @@ export default {
         draft: '/idea/getDraft',                                // 获取草稿
 
         addressList: '/user/list',                              // 通讯录
-        scoreDetail: '/score/getDetailByTimeAndUid',            // 个人分数详情
+        scoreDetailByUid: '/score/getDetailByTimeAndUid',            // 个人分数详情
         ideaScore: '/idea/ideaListByTime',                      // TA的建议
         addOrUpdate: '/score/addOrUpdate',                      // 分数新增修改
         leaderScore: '/ideacomment/addOrUpdate',                // 添加/修改回复建议

+ 29 - 7
lss_vue_wx/src/views/my/myGrade.vue

@@ -136,15 +136,14 @@
             // 消息列表
             getDetail() {
                 this.$indicator.open();
-                this.http.post(this.port.my.scoreDetail, {
+                this.http.post(this.port.my.scoreDetailByUid, {
                     'uid': this.id,
                     'time': this.chooseTime
                 } , 
                 res => {
                     this.$indicator.close();
                     if (res.code == "ok") {
-                        this.detail = res.data;
-                        if(res.data.scoreId == null && this.date[0].name == this.chooseTime) {
+                        if(res.data === undefined && this.date[0].name == this.chooseTime) {
                             var from = {
                                 "uid": this.id,
                                 "scoringYearMonth": this.chooseTime,
@@ -167,9 +166,32 @@
                                     duration: 2000
                                 });
                             })
+                        } else {
+                            if(res.data === undefined) {
+                                this.detail = {
+                                    deptId: "1",
+                                    ideaScore: 0,
+                                    ideaScoreSum: null,
+                                    ideaVO: null,
+                                    personalScore: 0,
+                                    rater: "",
+                                    raterId: 3,
+                                    reason: null,
+                                    scoreId: null,
+                                    scoringYearMonth: this.chooseTime,
+                                    time: null,
+                                    total: 0,
+                                    uid: this.id,
+                                };
+                                this.personalScore = 0;
+                                this.reason = '';
+                            } else {
+                                this.detail = res.data;
+                                this.personalScore = (res.data.personalScore==null?0:res.data.personalScore);
+                                this.reason = (res.data.reason==null?'':res.data.reason);
+                            }
                         }
-                        this.personalScore = (res.data.personalScore==null?0:res.data.personalScore);
-                        this.reason = (res.data.reason==null?'':res.data.reason);
+                        
                     } else {
                         this.$toast({
                             message: res.msg,
@@ -193,7 +215,7 @@
                 var pickerView = new PickerView({
                     bindElem: pickerDiv, 
                     data: dataShippingSpace, 
-                    title: "对应人员", 
+                    title: "时间选择", 
                     leftText: "取消", 
                     rightText: "确定", 
                     rightFn: function(selectArr) {
@@ -229,7 +251,7 @@
                     'time': this.chooseTime,
                 }
                 if(this.date[0].name == this.chooseTime && this.detail.scoreId != null) {
-                    form.scoreId = this.detail.scoreId
+                    form.sId = this.detail.scoreId
                 }
                 this.http.post(this.port.my.ideaScore, form , 
                 res => {