Browse Source

Merge branch 'xiaoqin' into mergeBranch

codeMan 2 years ago
parent
commit
aacd455e50

+ 1 - 1
src/SManagement/orderclue/components/list.vue

@@ -2,7 +2,7 @@
   <div class="normal-card">
     <Header>
       <add @updataList="updataList" v-if="tool.checkAuth($route.name,'insert')"></add>
-      <export-btn v-if="tool.checkAuth($route.name,'download')"></export-btn>
+      <export-btn v-if="tool.checkAuth($route.name,'export')"></export-btn>
       <move type="more" :data="checkboxArr" @updataList="getList()" v-show="checkboxArr.length >= 1"></move>
     </Header>
     <div class="content">

+ 6 - 0
src/SManagement/submitedit_more/index.vue

@@ -90,4 +90,10 @@ export default {
   right: 16px;
   bottom: 0;
 }
+/deep/.el-empty {
+  position: absolute;
+  left: 50%;
+  top: 50%;
+  transform: translate(-50%,-50%);
+}
 </style>

+ 6 - 0
src/SManagement/submitedit_one/index.vue

@@ -93,4 +93,10 @@ export default {
   right: 16px;
   bottom: 0;
 }
+/deep/.el-empty {
+  position: absolute;
+  left: 50%;
+  top: 50%;
+  transform: translate(-50%,-50%);
+}
 </style>

+ 11 - 0
src/SManagement/user/team-manage/components/AddUser.vue

@@ -17,6 +17,11 @@
             <el-input v-model="param.content.phonenumber" placeholder="请输入" size="small"></el-input>
           </el-form-item>
         </el-col>
+        <el-col :span="12">
+          <el-form-item label="电子邮箱:" prop="email">
+            <el-input v-model="param.content.email" placeholder="请输入" size="small"></el-input>
+          </el-form-item>
+        </el-col>
         <el-col :span="24">
           <el-form-item label="角色配置:" label-width="102px" prop="roleids">
             <el-select v-model="param.content.roleids" multiple placeholder="请选择" size="small">
@@ -55,6 +60,7 @@ export default {
               "name": "",
               "phonenumber": "",
               "position": "",
+              "email":"",
               "remarks": "备注",
               "roleids":[]
           }
@@ -68,6 +74,10 @@ export default {
           { required: true, message: '请输入手机号', trigger: 'blur' },
           { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' }
         ],
+        email: [
+          { required: true, message: '请输入电子邮箱', trigger: 'blur' },
+          { pattern: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/, message: '请输入正确电子邮箱',trigger: 'blur' }
+        ],
         roleids: [
           { required: true, message: '请选择你的权限', trigger: 'blur' }
         ]
@@ -89,6 +99,7 @@ export default {
         this.param.content.phonenumber = val.phonenumber
         this.param.content.roleids = val.roleids ? val.roleids.map((item) => item) : []
         this.param.content.sa_agent_hrid = val.sa_agent_hrid
+        this.param.content.email = val.email
       }
     }
   },

+ 2 - 0
src/SManagement/user/user-info/UserInfo.vue

@@ -63,6 +63,8 @@ export default {
     async getUserInfo() {
       let res = await this.$api.requested(this.param)
       this.userInfo = res.data
+      console.log(this.userInfo);
+      
     },
     //上传头像成功
     onSuccess(id) {

+ 5 - 5
src/SManagement/user/user-info/components/PhoneEdit.vue

@@ -7,16 +7,16 @@
     :before-close="handleClose">
     <el-form ref="form" :model="form" :rules="rules" label-width="80px">
       <el-form-item label="手机号" prop="phonenumber">
-        <el-input v-model="form.phonenumber" placeholder="请输入"></el-input>
+        <el-input v-model="form.phonenumber" placeholder="请输入" size="small"></el-input>
       </el-form-item>
       <el-form-item label="验证码">
-        <el-input v-model="logCode" placeholder="请输入"></el-input>
-        <el-button type="success" :disabled="count > 0" @click="countDown()">{{count == 0 ? "获取验证码" : count +'s'}}</el-button>
+        <el-input v-model="logCode" placeholder="请输入" size="small"></el-input>
+        <el-button type="success" :disabled="count > 0" @click="countDown()" size="small">{{count == 0 ? "获取验证码" : count +'s'}}</el-button>
       </el-form-item>
     </el-form>
     <div class="footer">
-      <el-button @click="dialogVisible=false">取消</el-button>
-      <el-button type="primary" @click="phoneEdit()">提交</el-button>
+      <el-button @click="dialogVisible=false" size="small">取消</el-button>
+      <el-button type="primary" @click="phoneEdit()" size="small">提交</el-button>
     </div>
   </el-dialog>
 </div>

+ 88 - 23
src/SManagement/user/user-info/components/baseInfo.vue

@@ -6,13 +6,12 @@
              ref="ruleForm" 
              label-width="104px"
              label-position="left" 
-             class="demo-ruleForm"
-             :show-message="false">
+             class="demo-ruleForm">
       <el-form-item label="姓名:" prop="name" v-focus>
-        <el-input v-model="ruleForm.name" size="small" :placeholder="ruleForm.name" :disabled="status" ref="nameEdit"></el-input>
+        <el-input v-model="ruleForm.name" size="small" :placeholder="ruleForm.name" :disabled="editStatus" ref="nameEdit"></el-input>
         <div class="handle">
-          <span v-if="status" @click="status = false">编辑</span>
-          <span v-else @click="save()">保存</span>
+          <span v-if="editStatus" @click="editStatus = false">编辑</span>
+          <span v-else @click="save('name')">保存</span>
         </div>
       </el-form-item>
       <el-form-item label="手机号:" prop="phonenumber">
@@ -23,6 +22,13 @@
         <el-input v-model="ruleForm.pass" size="small" placeholder="******" :disabled="true"></el-input>
         <slot :data="userInfo" name="passEdit"></slot>
       </el-form-item>
+      <el-form-item label="邮箱" prop="email" v-emailfocus>
+        <el-input v-model="ruleForm.email" size="small" :placeholder="ruleForm.email" :disabled="EmailStatus" ref="email"></el-input>
+        <div class="handle">
+          <span v-if="EmailStatus" @click="EmailStatus = false">编辑</span>
+          <span v-else @click="save('email')">保存</span>
+        </div>
+      </el-form-item>
     </el-form>
   </div>
 </template>
@@ -38,12 +44,14 @@ export default {
         "content": {
           "name":'',
           "phonenumber":'',
+          "email":''
         }
       },
       ruleForm: {
         name:'',
         phonenumber:'',
-        pass:'******'
+        pass:'******',
+        email:''
       },
       rules: {
         name:[
@@ -53,11 +61,16 @@ export default {
          { required: true, message: '请输入手机号', trigger: 'blur' },
           { pattern:/^1[3-9]\d{9}$/, message: '请输入正确手机号码',trigger: 'blur' }
         ],
+        email:[
+         { required: true, message: '请输入邮箱', trigger: 'blur' },
+          { pattern: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/, message: '请输入正确邮箱',trigger: 'blur' }
+        ],
         pass:[
          { required: true, message: '请输入密码', trigger: 'blur' }
         ],
       },
-      status:true
+      editStatus:true,
+      EmailStatus:true
     };
   },
   directives: {
@@ -67,7 +80,22 @@ export default {
         let handle = (e) => {
           if(!el.contains(e.target)) {
             vm.context.ruleForm.name = vm.context.userInfo.name
-            vm.context.status = true            
+            vm.context.editStatus = true            
+          }
+        }
+        el.handle = handle
+        document.addEventListener('click',handle)
+      },
+      unbind(el) {
+        document.removeEventListener('click',el.handle)
+      }
+    },
+    emailfocus: {
+      bind(el,node,vm) {
+        let handle = (e) => {
+          if(!el.contains(e.target)) {
+            vm.context.ruleForm.email = vm.context.userInfo.hr.email
+            vm.context.EmailStatus = true            
           }
         }
         el.handle = handle
@@ -86,9 +114,10 @@ export default {
       handler(val) {
         this.ruleForm.name = val.name
         this.ruleForm.phonenumber = val.phonenumber
+        this.ruleForm.email = val.hr.email
       }
     },
-    status: {
+    editStatus: {
       handler(val) {
         if(!val) {
           this.$nextTick(() => {
@@ -96,24 +125,60 @@ export default {
           })
         }        
       }
+    },
+    EmailStatus: {
+      handler(val) {
+        if(!val) {
+          this.$nextTick(() => {
+            this.$refs.email.focus()
+          })
+        }        
+      }
     }
   },
   methods: {
-    async save() {
-      if(this.ruleForm.name == this.userInfo.name) {
-        this.$notify({
+    save(type) {
+      this.$refs.ruleForm.validate(async val => {
+        if(!val) return  this.$notify({
           title:'提示',
-          message:'请输入新的名称',
-          type:'warning'
-        })
-        return
-      }
-      this.userInfo.name = this.ruleForm.name
-      this.status = true
-      this.edit.content.name = this.ruleForm.name
-      this.edit.content.phonenumber = this.ruleForm.phonenumber
-      let res = await this.$api.requested(this.edit)
-      this.tool.showMessage(res)
+          message:'请按照要求填写信息',
+          type: 'warning'
+        })   
+        if( type == 'name') {
+          if(this.ruleForm.name == this.userInfo.name) {
+            this.$notify({
+              title:'提示',
+              message:'请输入新的名称',
+              type:'warning'
+            })
+            return
+          }
+          this.userInfo.name = this.ruleForm.name
+          this.editStatus = true
+          this.edit.content.name = this.ruleForm.name
+          this.edit.content.phonenumber = this.ruleForm.phonenumber
+          
+          let res = await this.$api.requested(this.edit)
+          this.tool.showMessage(res)
+        } else if( type == 'email' ) {
+          if(this.ruleForm.email == this.userInfo.hr.email) {
+            this.$notify({
+              title:'提示',
+              message:'请输入新的邮箱',
+              type:'warning'
+            })
+            return
+          }
+          this.userInfo.email = this.ruleForm.email
+          this.EmailStatus = true
+          this.edit.content.name = this.ruleForm.name
+          this.edit.content.email = this.ruleForm.email
+          this.edit.content.phonenumber = this.ruleForm.phonenumber
+          
+          let res = await this.$api.requested(this.edit)
+          this.tool.showMessage(res)
+        }
+      })
     }
   },
 };

+ 1 - 11
src/views/message/components/list.vue

@@ -6,7 +6,7 @@
           <p class="title">{{item.title}}</p>
           <p class="message">{{item.message}}</p>
           <div class="info">
-            <div class="tag">{{item.type}}</div>
+            <div class="tag">{{item.name || '系统消息'}}</div>
             <p class="time">{{item.createdate}}</p>
           </div>
         </div>
@@ -16,16 +16,6 @@
         </div>
       </div>
     </div>
-    <!-- <el-dialog
-      title="提示"
-      :visible.sync="dialogVisible"
-      width="960px"
-      :before-close="handleClose">
-      <p>{{message}}</p>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="handleClose()">关闭</el-button>
-      </span>
-    </el-dialog> -->
   </div>
   <el-empty description="暂无数据" v-else></el-empty>
 </template>

+ 117 - 8
src/views/message/index.vue

@@ -28,6 +28,7 @@
           </p>
           <div class="content-txt">
             <p class="txt">{{message.message}}</p>
+            <p class="link" @click="goDetail" v-if="currentItem == 1 && message.link">请前往 {{message.name}}>></p>
           </div>
         </div>
       </el-col>
@@ -61,7 +62,8 @@ export default {
       },
       list: '',
       total: 0,
-      message:''
+      message:'',
+      isAllClick: true
     };
   },
   components: { list, pagination },
@@ -77,8 +79,11 @@ export default {
       this.param.content.type = this.currentItem == 0 ? '系统' : '应用'
       let res = await this.$api.requested(this.param)
       this.list = res.data
-      console.log(this.list);
-      
+      if(this.currentItem == 1) {
+        this.list.forEach(item => {
+          this.isCategory(item)
+        })
+      }
       if(this.list[0]) this.messageItemClick(this.list[0])
       this.total = res.total
     },
@@ -101,13 +106,111 @@ export default {
             "messageid":data.messageid
         }
       })
-      console.log(res);
-      
       data.isread = 1
+      res.data.name = data.name
+      res.data.link = data.link
+      res.data.modules = data.modules
       this.message = res.data
     },
-    allRead() {
-
+    async allRead() {
+      if(!this.isAllClick) return
+      let res = await this.$api.requested({
+        "classname": "system.message.Message",
+        "method": "readAllMessage",
+        "content": {
+            "nocache":true,
+        }
+      })
+      this.tool.showMessage(res,() => {
+        this.list.forEach(item => {
+          item.isread = 1
+        })
+        this.isAllClick = false
+        setTimeout(() => {
+          this.isAllClick = true
+        },5000)
+      })
+    },
+    //跳转到消息具体页面
+    goDetail() {
+      sessionStorage.setItem('active_modules',JSON.stringify(this.message.modules))
+      this.$router.push(this.message.link)
+    },
+    isCategory(data) {
+      switch (data.objectname) {
+        case 'sat_courseware':
+            data.name = '商学院'
+            JSON.parse(sessionStorage.getItem('module_info')).forEach(item1 => {
+              item1.modules.forEach(item2 => {
+                if(item2.systemmodulename == data.name) {
+                  data.modules = item2
+                  data.link = item2.apps[0].path
+                  return
+                }
+              })
+            })
+            break;
+        case 'sat_sharematerial':
+            data.name = '推广素材'
+            JSON.parse(sessionStorage.getItem('module_info')).forEach(item1 => {
+              item1.modules.forEach(item2 => {
+                if(item2.systemmodulename == data.name) {
+                  data.modules = item2
+                  data.link = item2.apps[0].path
+                  return
+                }
+              })
+            })
+            break;
+        case 'sat_notice':
+            data.name = '通告'
+            JSON.parse(sessionStorage.getItem('module_info')).forEach(item1 => {
+              item1.modules.forEach(item2 => {
+                if(item2.systemmodulename == data.name) {
+                  data.modules = item2
+                  data.link = item2.apps[0].path
+                  return
+                }
+              })
+            })
+            break;
+        case 'sat_submitedit':
+            data.name = '提报'
+            JSON.parse(sessionStorage.getItem('module_info')).forEach(item1 => {
+              item1.modules.forEach(item2 => {
+                if(item2.systemmodulename == data.name) {
+                  data.modules = item2
+                  data.link = item2.apps[0].path
+                  return
+                }
+              })
+            })
+            break;
+        case 'sat_orderclue':
+            data.name = '销售线索'
+            JSON.parse(sessionStorage.getItem('module_info')).forEach(item1 => {
+              item1.modules.forEach(item2 => {
+                if(item2.systemmodulename == data.name) {
+                  data.modules = item2
+                  data.link = item2.apps[0].path
+                  return
+                }
+              })
+            })
+            break;
+        case 'sys_attachment':
+            data.name = '营销物料'
+            JSON.parse(sessionStorage.getItem('module_info')).forEach(item1 => {
+              item1.modules.forEach(item2 => {
+                if(item2.systemmodulename == data.name) {
+                  data.modules = item2
+                  data.link = item2.apps[0].path
+                  return
+                }
+              })
+            })
+            break;
+      }
     }
   },
 };
@@ -179,9 +282,15 @@ export default {
   font-weight: 400;
   background: #ffffff;
 }
-.message .right .content-txt p:first-child {
+.message .right .content-txt .txt {
   color: #666666;
 }
+.message .right .content-txt .link {
+  margin-top:16px;
+  color:#3874F6;
+  font-size:14px;
+  cursor: pointer;
+}
 /* .message .right .content-txt p:last-child {
   color: #3874F6;
 } */